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 сөйлейтін клиентке қайта енгізуге болса да, файл клиенттер арасында тасымалданбайды. Әдеттен тыс порт немесе стандартты емес туннельдеу режимі әдетте сол көшіруде жоғалады. Құрал таңдамас бұрын қақпа қандай протокол ұсынатынын шешіңіз.