Skript sıfırla çıxır, tunel görünür və növbəti işə salma hələ parol istəməmişdən əvvəl rədd edilir. Ya da eyni əmr terminalda işləyir və planlaşdırılmış tapşırıqdan «hadisə tapılmadı» xətası ilə uğursuz olur ki, bu heç nəyi adlandırmır. Hər ikisi şəbəkə nasazlığı deyil, AnyConnect müştərisinin standart giriş söhbətinin pozulmasıdır. Girişi skriptlə yazılmış sual-cavab kimi qəbul edin və uğursuzluqlar proqnozlaşdırıla bilən və kiçik olur.

Niyə eyni əmr skriptin içində uğursuz olur

Müştəri cavablarını standart girişdən oxuyur, hər sorğu üçün bir sətir, şlüzün onları soruşduğu sıra ilə. Sorğuların sayını dəyişən hər şey, məsələn yeni baner, qrup seçicisi və ya ikinci faktor çağırışı, hər sonrakı cavabı bir sətir sürüşdürür. Sonra müştəri parol gözlədiyi yerdə istifadəçi adını oxuyur və heç birinə işarə etməyən uğursuzluq bildirir.

Tərkibində nida işarəsi olan parol daha səssiz ikinci uğursuzluq əlavə edir. İkiqat dırnaqların içində qabıq onu müştəri heç nə görməmişdən çox əvvəl genişləndirir.

Yükü tək dırnaqlara alın və simvol toxunulmaz qalır. Bütün düzəliş budur və bu, eyni etimad məlumatının yazıldıqda işləyib saxlandıqda uğursuz olduğu bütöv bir hesabat sinfini izah edir. Şlüzü yoxlamadan əvvəl qabığın nə etdiyini yoxlayın: yükü dəqiq baytları göstərən sarğıdan keçirib çap edin və sətirləri sayın. Bu araşdırmaların çoxu elə orada bitir.

Cavabları müştərinin soruşduğu sıra ilə yazın

Müştərini bir dəfə interaktiv işə salın və hər sorğunu ardıcıllıqla yazın. Qrup seçicisi yalnız şlüz bir neçə profil dərc etdikdə görünür və baner sorğusu yalnız biri konfiqurasiya edildikdə görünür. Cavab faylı sənədləşmədəki deyil, həqiqətən yönəldiyiniz şlüzə uyğun olmalıdır.

Sonra faylı o dəqiq ardıcıllıqla qurun, hər sətirdə bir cavab. Qrup indeksi müştərinin sadaladığı nömrədir, profilin sənəddəki mövqeyi deyil. Baneri yalnız şlüzünüz göndərirsə qəbul edin və o şlüzün verdiyi bilinən hər əlavə sual üçün bir sətir əlavə edin. Müştərini qeyri-interaktiv bayraqla başladın ki, terminal gözləmək əvəzinə faylı istehlak etsin.

connect vpn.lab.example
0
username
password
y
exit
/opt/cisco/anyconnect/bin/vpn -s < anyconnect.txt

Eyni ardıcıllıq diskdə fayl saxlamaq istəmədikdə boru vasitəsilə də gələ bilər. Dırnaq qaydaları hələ də onun sağ qalıb-qalmayacağını həll edir.

Etimad məlumatını proses siyahısından kənarda saxlayın

Əmr sətrindəki arqument prosesin bütün ömrü boyu hər yerli istifadəçi üçün oxunaqlıdır, ona görə parol fayla və ya boruya aiddir və heç vaxt arqument siyahısına aid deyil. O faylı yalnız skripti işə salan hesab üçün oxunaqlı edin və tapşırıq bitəndə silin. macOS-da ikili fayl adətən Linux-dakı eyni yolda olur, lakin fərz etmək əvəzinə quraşdırılmış yeri təsdiqləyin. Hər iki yolu yoxlayan sarğı hadisə hesabatından qısadır.

printf 'username\npassword\ny\n' | /opt/cisco/anyconnect/bin/vpn -s connect vpn.lab.example

Skriptin sonsuza qədər yenidən cəhd etməsinə də imkan verməyin. Dəyişmiş baner və ya gecə boyu vaxtı bitmiş parol sabit cavab faylını yenidən cəhd dövrəsinə çevirir və hesabı bağlayan elə həmin dövrədir.

Bir dəfə uğursuz olun, müştərinin öz xəta mətnini çap edin və çıxın. Planlaşdırılmış tapşırıq hər hansı digər nəzarətsiz tapşırıq kimi eyni şəxsiyyət və etimad məlumatının mövcudluğu yoxlamasına ehtiyac duyur, çünki səssizcə vaxtı bitən etimad məlumatını gecə saat üçdə kəsintidən ayırmaq mümkün deyil.

Çıxış koduna güvənməzdən əvvəl sessiyanı təsdiqləyin

Qoşulmuş vəziyyət tunelin mövcud olduğunu sübut edir və bundan başqa heç nə. Skript real işə başlamazdan əvvəl onun vasitəsilə əlçatan olmalı olan bir resursu sınayın və oradakı uğursuzluğu uğursuz girişdən fərqli nasazlıq kimi qəbul edin. Əks halda sadəcə təyinatına çata bilməyən tamamilə yaxşı bağlantını yenidən cəhd edəcəksiniz.

Müştəridən vəziyyətini ayırmadan əvvəl və sonra soruşun, çünki köhnəlmiş sessiya növbəti qoşulmanı rədd edə bilər, skriptiniz isə uğur bildirir.

/opt/cisco/anyconnect/bin/vpn state
/opt/cisco/anyconnect/bin/vpn disconnect

Vəziyyət çıxışını çıxış kodunun yanında qeyd edin, çünki tək kod rədd edilmiş girişi heç vaxt bağlanmamış sessiyadan ayıra bilməz. Şlüz ikinci faktor və ya interaktiv təsdiq tələb etdikdə, o addımı skriptləşdirməyi dayandırın və əvəzində müştərinin dəstəklədiyi mexanizmdən istifadə edin. Sabit cavab faylı nəzarət etdiyiniz etimad məlumatı üçün rahatlıqdır, nəzarət etmədiyiniz autentifikasiya addımını dolanmağın yolu deyil. Əhatəni bu qədər dar saxlayın və bu qısa skript olaraq qalır.

Sabit cavab faylı nə vaxt yanlış alətdir

İkinci faktor və ya təsdiq sorğusu naxışı tamamilə məğlub edir və bu, skript tapmacası deyil, dizayn sərhədidir. Həmin addım üçün müştərinin dəstəklədiyi hansı mexanizm varsa ondan istifadə edin cavabı əvvəlcədən təxmin etmək əvəzinə. Sabit fayl yalnız işə salmalar arasında eyni qalan etimad məlumatları üçün işləyir.

İki daha qədim etimad məlumatı üslubu da AnyConnect ilə səhv salınır. vpnc profili başqa protokol danışır və qrup adını IPSec identifikatoru kimi, sonra ortaq qrup sirrini, sonra öz hesab məlumatlarınızı istəyir.

Protokollar fərqləndiyi üçün vpnc yalnız AnyConnect profilləri dərc edən şlüzə çata bilməz və bu xidmət üçün adi açıq alternativ anyconnect protokolu seçilmiş openconnect-dir. pcf faylı köhnə Cisco müştərisinə aiddir və onun hostu, qrup adı və qrup parolu hələ də Cisco IPsec danışan müştəridə yenidən daxil edilə bilsə də, fayl müştərilər arasında keçmir. Qeyri-adi port və ya qeyri-standart tunel rejimi ümumiyyətlə o keçiddə itir. Alət seçməzdən əvvəl şlüzün hansı protokolu təklif etdiyini dəqiqləşdirin.

Əlaqəli məqalələr