Linux va macOS'da AnyConnect kirishini skriptlash
vpn ikkilik fayli javoblarni so'rovlar tartibida standart kiritishdan o'qiydi. Ketma-ketlikni tuzing, uni bir marta qo'shtirnoqqa oling, jarayonlar ro'yxatidan tashqarida saqlang va avval bitta resursni sinang.
Skript nol bilan tugaydi, tunnel paydo bo'ladi va keyingi ishga tushirish parol so'rashdan oldin rad etiladi. Yoki xuddi shu buyruq terminalda ishlaydi va rejalashtirilgan ishdan «hodisa topilmadi» degan hech narsani foydali nomlamaydigan xato bilan muvaffaqiyatsiz bo'ladi. Ikkalasi ham tarmoq nosozligi emas, AnyConnect mijozi standart kiritish suhbatining buzilishidir. Kirishni yozma savol-javob deb qarang va muvaffaqiyatsizliklar oldindan aytiladigan va kichik bo'ladi.
Nima uchun xuddi shu buyruq skript ichida muvaffaqiyatsiz bo'ladi
Mijoz o'z javoblarini standart kiritishdan o'qiydi, har bir so'rovga bir qator, darvoza ularni so'ragan tartibda. So'rovlar sonini o'zgartiradigan har qanday narsa, masalan yangi banner, guruh tanlagichi yoki ikkinchi omil sinovi, har bir keyingi javobni bir qatorga suradi. Keyin mijoz parolni kutgan joyda foydalanuvchi nomini o'qiydi va ikkalasiga ham ishora qilmaydigan muvaffaqiyatsizlik haqida xabar beradi.
Undov belgisi bor parol yanada sokin ikkinchi muvaffaqiyatsizlikni qo'shadi. Qo'sh qo'shtirnoq ichida qobiq uni mijoz hech narsa ko'rishidan ancha oldin kengaytiradi.
Yukni yakka qo'shtirnoqqa oling va belgi shikastlanmasdan o'tadi. Bu butun tuzatish va bir xil hisob ma'lumotlari kiritishda ishlab, saqlashda muvaffaqiyatsiz bo'ladigan hisobotlarning butun sinfini tushuntiradi. Darvozani tekshirishdan oldin qobiq nima qilganini tekshiring: yukni aniq baytlarni ko'rsatadigan qobiq orqali chop eting va qatorlarni sanang. Bunday tekshirishlarning ko'pchiligi shu yerda tugaydi.
Javoblarni mijoz so'ragan tartibda yozing
Mijozni bir marta interaktiv ishga tushiring va har bir so'rovni tartib bilan yozib oling. Guruh tanlagichi faqat darvoza bir nechta profil e'lon qilganda ko'rinadi, banner so'rovi esa faqat bittasi sozlanganda ko'rinadi. Javob fayli siz haqiqatan yo'naltirilgan darvozaga mos kelishi kerak, hujjatlardagiga emas.
Keyin faylni aynan shu tartibda tuzing, har bir qatorga bitta javob. Guruh indeksi mijoz sanab o'tadigan raqam, hujjatdagi profil o'rni emas. Bannerni faqat darvozangiz yuborsa qabul qiling va o'sha darvoza so'rashi ma'lum bo'lgan har bir qo'shimcha savol uchun bir qator qo'shing. Mijozni interaktiv bo'lmagan belgi bilan ishga tushiring, u terminalni kutish o'rniga faylni iste'mol qilsin.
connect vpn.lab.example
0
username
password
y
exit/opt/cisco/anyconnect/bin/vpn -s < anyconnect.txtDiskda fayl saqlashni xohlamasangiz, xuddi shu tartib quvur orqali ham kelishi mumkin. Qo'shtirnoq qoidalari u omon qolishini hal qiladi.
Hisob ma'lumotlarini jarayonlar ro'yxatidan tashqarida saqlang
Buyruq satridagi argument jarayonning butun umri davomida har bir mahalliy foydalanuvchi o'qiy oladigan narsadir, shuning uchun parol faylga yoki quvurga tegishli va hech qachon argumentlar ro'yxatiga tegishli emas. O'sha faylni faqat skriptni ishga tushiruvchi hisob uchun o'qish mumkin qiling va ish tugagach o'chiring. macOS'da ikkilik fayl odatda Linux'dagi kabi yo'lda bo'ladi, lekin taxmin qilish o'rniga o'rnatilgan joyni tasdiqlang. Ikkala yo'lni ham sinaydigan qobiq hodisa hisobotidan qisqaroq.
printf 'username\npassword\ny\n' | /opt/cisco/anyconnect/bin/vpn -s connect vpn.lab.exampleSkript abadiy qayta urinishiga ham yo'l qo'ymang. O'zgargan banner yoki kechasi muddati tugagan parol qat'iy javob faylini qayta urinish halqasiga aylantiradi va aynan shu halqa hisobni qulflaydi.
Bir marta muvaffaqiyatsiz bo'ling, mijozning o'z xato matnini chop eting va chiqing. Rejalashtirilgan ish har qanday boshqa nazoratsiz vazifa kabi shaxs va hisob ma'lumotlari mavjudligini tekshirishni talab qiladi, chunki jimgina muddati tugaydigan ma'lumotni tungi uchdagi uzilishdan ajratib bo'lmaydi.
Chiqish kodiga ishonishdan oldin sessiyani tasdiqlang
Ulangan holat tunnel mavjudligini isbotlaydi va bundan boshqa hech narsani emas. Skript haqiqiy ishni boshlashdan oldin u orqali yetib borish kerak bo'lgan bitta resursni sinang va u yerdagi muvaffaqiyatsizlikni muvaffaqiyatsiz kirishdan boshqa nosozlik deb biling. Aks holda siz o'z manziliga yeta olmaydigan mutlaqo yaxshi ulanishni qayta urinasiz.
Uzishdan oldin va keyin mijozdan uning holatini so'rang, chunki eskirgan sessiya keyingi ulanishni rad etishi mumkin, skriptingiz esa muvaffaqiyat haqida xabar beradi.
/opt/cisco/anyconnect/bin/vpn state
/opt/cisco/anyconnect/bin/vpn disconnectHolat chiqishini chiqish kodi yoniga yozib qo'ying, chunki faqat kod rad etilgan kirishni hech qachon yopilmagan sessiyadan ajrata olmaydi. Darvoza ikkinchi omil yoki interaktiv tasdiq talab qilganda, bu qadamni skriptlashni to'xtating va uning o'rniga mijoz qo'llab-quvvatlaydigan mexanizmdan foydalaning. Qat'iy javob fayli siz nazorat qiladigan ma'lumotlar uchun qulaylik, siz nazorat qilmaydigan autentifikatsiya qadamini chetlab o'tish yo'li emas. Qamrovni shunchalik tor tuting va bu qisqa skript bo'lib qoladi.
Qachon qat'iy javob fayli noto'g'ri asbob
Ikkinchi omil yoki tasdiq so'rovi bu namunani butunlay yengadi va bu skript jumbog'i emas, dizayn chegarasi. Bu qadam uchun mijoz qo'llab-quvvatlaydigan har qanday mexanizmdan foydalaning javobni oldindan taxmin qilish o'rniga. Qat'iy fayl faqat ishga tushirishlar orasida bir xil qoladigan ma'lumotlar uchun ishlaydi.
Hisob ma'lumotlarining ikkita eski uslubi ham AnyConnect bilan aralashtiriladi. vpnc profili boshqa protokolda gapiradi va guruh nomini IPSec identifikatori sifatida talab qiladi, keyin umumiy guruh siri, keyin o'zingizning hisob ma'lumotlaringiz.
Protokollar turlicha bo'lgani uchun vpnc faqat AnyConnect profillarini e'lon qiladigan darvozaga yeta olmaydi va bu xizmat uchun odatiy ochiq muqobil anyconnect protokoli tanlangan openconnect. pcf fayli eski Cisco mijoziga tegishli va uning xosti, guruh nomi va guruh parolini hali ham Cisco IPsec gapiradigan mijozga qayta kiritish mumkin bo'lsa-da, fayl mijozlar orasida ko'chmaydi. G'ayrioddiy port yoki nostandart tunnel rejimi odatda bu ko'chirishda yo'qoladi. Asbob tanlashdan oldin darvoza qaysi protokolni taklif qilishini hal qiling.