Linux болон macOS дээр AnyConnect нэвтрэлтийг скриптээр хийх арга
vpn бинарь стандарт оролтоос хариултуудыг асуултын дарааллаар уншдаг. Дарааллыг бүрдүүлж, нэг удаа хашилтад хийж, процессын жагсаалтаас гадуур байлгаж, эхлээд нэг нөөцийг туршина уу.
Скрипт тэгээр төгсөж, туннель гарч ирэх бөгөөд дараагийн ажиллагаа нууц үг асуухаас өмнө л татгалзагдана. Эсвэл ижил команд терминал дээр ажиллаж, товлосон ажлаас «үйл явдал олдсонгүй» гэсэн юу ч нэрлэдэггүй алдаатай бүтэлгүйтнэ. Хоёулаа сүлжээний гэмтэл биш, AnyConnect клиентийн стандарт оролтын яриа муудсан хэрэг. Нэвтрэлтийг бичсэн асуулт-хариулт гэж үзвэл бүтэлгүйтэл урьдчилан таамаглагдах, жижиг болно.
Яагаад ижил команд скрипт дотор бүтэлгүйтдэг вэ
Клиент хариултаа стандарт оролтоос уншдаг, асуулт бүрт нэг мөр, гарц асуух дарааллаар. Асуултын тоог өөрчилдөг бүхэн, жишээ нь шинэ баннер, бүлгийн сонгогч эсвэл хоёр дахь хүчин зүйлийн сорилт, дараагийн хариулт бүрийг нэг мөрөөр гүйцээнэ. Дараа нь клиент нууц үг хүлээж байсан газарт хэрэглэгчийн нэрийг уншиж, аль алинд нь заадаггүй бүтэлгүйтлийг мэдээлнэ.
Анхаарлын тэмдэг агуулсан нууц үг илүү чимээгүй хоёр дахь бүтэлгүйтлийг нэмнэ. Давхар хашилтын дотор бүрхүүл клиент юу ч харахаас хамаагүй өмнө үүнийг өргөжүүлдэг.
Ачааг ганц хашилтад хийвэл тэмдэгт гэмтэлгүй явна. Энэ бол бүх засвар бөгөөд ижил итгэмжлэл бичихэд ажиллаж, хадгалахад бүтэлгүйтдэг тайлангийн бүхэл ангийг тайлбарладаг. Гарцыг шалгахаас өмнө бүрхүүл юу хийснийг шалга: ачааг яг байтуудыг харуулдаг бүрхүүлээр хэвлэж, мөрүүдийг тоол. Эдгээр мөрдөн байцаалтын ихэнх нь яг тэнд дуусдаг.
Хариултуудыг клиент асуух дарааллаар бич
Клиентийг нэг удаа интерактив байдлаар ажиллуулж, асуулт бүрийг дарааллаар нь бичиж ав. Бүлгийн сонгогч нь гарц хэд хэдэн профайл нийтлэх үед л гарч ирдэг, баннерын асуулт нь зөвхөн нэг тохируулагдсан үед гарч ирдэг. Хариултын файл нь таны үнэхээр чиглэж буй гарцтай тохирох ёстой, баримт бичигт байгаа гарцтай биш.
Дараа нь файлыг яг тэр дарааллаар бүрдүүл, мөр бүрт нэг хариулт. Бүлгийн индекс нь клиентийн жагсаасан тоо бөгөөд баримт бичиг дэх профайлын байрлал биш. Баннерыг зөвхөн гарц тань нэгийг илгээсэн тохиолдолд хүлээн авч, тэр гарц асуудаг гэж мэдэгддэг нэмэлт асуулт бүрт нэг мөр нэм. Клиентийг интерактив бус тугтай эхлүүлж, терминал хүлээхийн оронд файлыг идээгүүлэг.
connect vpn.lab.example
0
username
password
y
exit/opt/cisco/anyconnect/bin/vpn -s < anyconnect.txtДиск дээр файл байлгахыг хүсэхгүй бол ижил дарааллыг хоолойгоор дамжуулж болно. Хашилтын дүрэм түүний амьд үлдэх эсэхийг шийдсэн хэвээр байна.
Итгэмжлэлийг процессын жагсаалтаас гадуур байлга
Команд мөрийн аргументыг процессын бүх насны турш аливаа орон нутгийн хэрэглэгч уншиж чадна, тиймээс нууц үг файл эсвэл хоолойд хамаарах бөгөөд аргументын жагсаалтад хэзээ ч хамаарахгүй. Тэр файлыг зөвхөн скриптийг ажиллуулж буй бүртгэлд уншигдахаар болгож, ажил дуусахад устга. macOS дээр бинарь нь ихэвчлэн Linux-тэй ижил замд байдаг, гэхдээ таамаглахын оронд суулгасан байршлыг баталгаажуул. Хоёр замыг шалгадаг бүрхүүл нь ослын тайлангаас богино.
printf 'username\npassword\ny\n' | /opt/cisco/anyconnect/bin/vpn -s connect vpn.lab.exampleСкриптэд мөнхөд дахин оролдохыг бүү зөвшөөр. Баннер өөрчлөгдөх эсвэл шөнийн турш нууц үгний хугацаа дуусах нь тогтмол хариултын файлыг давтан оролдлогын давталт болгож, яг тэр давталт бүртгэлийг түгжинэ.
Нэг удаа бүтэлгүйтэж, клиентийн өөрийн алдааны текстийг хэвлээд гар. Товлосон ажил нь бусад хяналтгүй ажилтай адил ижил биет ба итгэмжлэлийн хүртээмжийн хяналт шаарддаг, учир нь чимээгүй хугацаа дууссан итгэмжлэлийг шөнийн гурван цагийн тасалдалаас ялгах боломжгүй.
Гарах кодед итгэхээс өмнө сессийг баталгаажуул
Холбогдсон төлөв нь туннель байгааг нотолж, үүнээс өөр юу ч биш. Скрипт жинхэнэ ажил эхлэхээс өмнө түүгээр хүрэх ёстой нэг нөөцийг туршиж, тэндхийн бүтэлгүйтлийг бүтэлгүй нэвтрэлтээс өөр гэмтэл гэж үз. Эс бөгөөс зорьсон газартаа хүрч чадахгүй төгс сайн холболтыг дахин оролдоно.
Салгахаас өмнө болон дараа нь клиентээс төлвийг нь асуу, учир нь хуучирсан сесс дараагийн холболтыг татгалзаж болох бөгөөд скрипт амжилт гэж мэдээлж байх болно.
/opt/cisco/anyconnect/bin/vpn state
/opt/cisco/anyconnect/bin/vpn disconnectТөлвийн гаралтыг гарах кодын хажууд бич, учир нь зөвхөн код нь татгалзсан нэвтрэлтийг хэзээ ч хаагдаагүй сессээс ялгаж чадахгүй. Гарц хоёр дахь хүчин зүйл эсвэл интерактив зөвшөөрөл шаардвал тэр алхмыг скриптлэхээ зогсоож, оронд нь клиентийн дэмждэг механизмыг ашигла. Тогтмол хариултын файл нь таны хянадаг итгэмжлэлд зориулсан тав тух бөгөөд таны хянадаггүй баталгаажуулалтын алхмыг тойрох арга биш. Хүрээг ийм нарийн байлгавал энэ богино скрипт хэвээр үлдэнэ.
Тогтмол хариултын файл хэзээ буруу хэрэгсэл вэ
Хоёр дахь хүчин зүйл эсвэл зөвшөөрлийн асуулт энэ хэв маягийг бүрэн ялж, энэ нь скриптийн оньсого биш, дизайны хязгаар юм. Тэр алхамд клиентийн дэмждэг ямар ч механизмыг ашигла хариултыг урьдчилан таамаглахын оронд. Тогтмол файл нь ажиллагааны хооронд ижил хэвээр байх итгэмжлэлд л ажиллана.
Итгэмжлэлийн хоёр хуучин хэв маяг ч AnyConnect-той андуурагддаг. vpnc профайл өөр протоколоор ярьдаг бөгөөд бүлгийн нэрийг IPSec танигч болгон, дараа нь хуваалцсан бүлгийн нууц, дараа нь өөрийн бүртгэлийн мэдээллийг шаарддаг.
Протоколууд ялгаатай тул vpnc зөвхөн AnyConnect профайл нийтэлдэг гарцад хүрч чадахгүй бөгөөд энэ үйлчилгээний ердийн нээлттэй хувилбар нь anyconnect протокол сонгосон openconnect юм. pcf файл нь хуучин Cisco клиентэд хамаарах бөгөөд түүний хост, бүлгийн нэр, бүлгийн нууц үгийг Cisco IPsec ярьдаг клиентэд дахин оруулж болох ч файл клиентүүдийн хооронд шилждэггүй. Ер бусын порт эсвэл стандарт бус туннельчлэлийн горим ихэвчлэн тэр шилжилтэд алдагдана. Хэрэгсэл сонгохын өмнө гарц ямар протокол санал болгож байгааг шийд.