ConnMan bir günorta işləyir, sonra imtina edir və jurnal sətri sertifikat yoxlamasını qeyd edir. Bu sətir insanları heç vaxt pozulmamış CA paketlərinə yönəldir. İki fərqli nasazlıq demək olar ki, eyni uğursuzluq formasını yaradır: sessiya kukisi bitir, ya da server sertifikatı həqiqətən dəyişib. Onları təxminən bir dəqiqədə ayırmaq olar və yalnız biri barmaq izi ilə bağlıdır.

İki nasazlıq, bir qarışıq jurnal sətri

Onlar iki müşahidə ilə ayrılır və heç biri ikinci dəfə oxumaq tələb etmir. Birincisi nasazlığın nə vaxt başladığıdır: bitmiş kuki saatlar və ya günlərlə işdən sonra gəlir, və dəyişdirilmiş sertifikat şlüz dəyişikliyindən dərhal sonra gəlir.

SignalExpired cookieChanged certificate
When it startedafter hours or days of workingright after a gateway change
Fingerprint from a fresh authenticateunchangeddifferent value
Usual log tailHTTP CONNECT 401 / unauthorizedsigner not found / verify failed
Repairreplace the cookie, restartre-pin deliberately, then restart

Bir dəqiqəlik test aşağıdakı authenticate işə salmasıdır. Onun FINGERPRINT dəyərini fayldakı OpenConnect.ServerCert ilə müqayisə edin. Eyni barmaq izi və fərqli COOKIE yalnız kukini dəyişmək deməkdir. Fərqli barmaq izi server sertifikatının həqiqətən dəyişdiyini bildirir, ona görə onu qəsdən yenidən bərkidin və kimin təsdiqlədiyini qeyd edin.

Materialı yazmaq əvəzinə yaradın

ConnMan-ın OpenConnect profili üçün idxal addımı yoxdur, NetworkManager-dən fərqli olaraq. O, dəyərləri əvvəlcədən hazırlanmalı olan təminat faylını oxuyur və onları hazırlamağın dəstəklənən yolu OpenConnect-in authenticate rejimidir.

sudo openconnect --csd-wrapper=/home/user/.cisco/csd-wrapper.sh \
  --authenticate --user myuser vpn.example.com

Çıxış dörd dəyər çap edir: POST, COOKIE, HOST və FINGERPRINT. sha256: prefiksi ilə barmaq izi server bərkidicisidir. Kuki isə ömrünü şlüzün təyin etdiyi sessiya artefaktıdır. Onlara fərqli sirr növləri kimi yanaşın: fərqli cədvəllərlə bitirlər və yalnız birinin dəyişməsi gözlənilir.

Fayl hər ikisini daşıyır və onlar fərqli qocalır

Təminat faylı /var/lib/connman-vpn/ altında yerləşir və hər bağlantı üçün VPN demonu tərəfindən oxunur, sistem tepsisinin proqramı tərəfindən deyil. Bağlantı adını qlobal bölmədə, protokol təfərrüatlarını isə provayder bölməsində saxlayın.

[global]
Name = Company VPN

[provider_openconnect]
Type = OpenConnect
Name = Company Cisco VPN
Host = vpn.example.com
Domain = corp.example
OpenConnect.ServerCert = sha256:...
OpenConnect.Cookie = ...

Portalın həqiqətən xidmət etdiyi host adını istifadə edin. Çılpaq IP ünvanı sertifikat yoxlamasını keçib yenə də uğursuz ola bilər, çünki cihaz virtual host üzrə marşrutlaşdırır və adı gözləyir.

systemctl status connman-vpn --no-pager   # is the daemon even installed and running
sudo systemctl restart connman-vpn       # after the file edit
journalctl -u connman-vpn --since '1 hour ago'  # after the connection attempt

Jurnal əslində nə göstərir

Tepsi ipucu hansı nasazlığın olduğunu deməyəcək. Jurnal deyəcək, əgər ilk həyəcanverici sətir yerinə ardıcıllığı oxusanız. Köhnəlmiş kuki adətən TLS danışıqlarının tamamlandığını və HTTP qatının sonra rədd etdiyini göstərir; buna görə sertifikatla bağlı sözlər avtorizasiya uğursuzluğunun yanında durur.

Təzə authenticate çıxışını fayldakı dəyərlərlə müqayisə edin. Barmaq izi uyğun gəlirsə və yalnız kuki fərqlənirsə, etimad parametrlərinə toxunmadan cavabınız var.

Müddəti bitmiş sahəni yeniləyin

authenticate əmrini təkrarlayın, OpenConnect.Cookie dəyərini əvəz edin və demonu yenidən başladın. Barmaq izinə toxunmayın, məgər təzə çıxış fərqli dəyər göstərirsə; bu halda server sertifikatı həqiqətən dəyişdirilib və yenidən bərkitmə kimsənin qeyd etməli olduğu qərardır, xəta mesajından kopyalama deyil.

Yeniləməni avtomatlaşdırmaq məqbuldur: kiçik skript parolu standart girişdən oxuyur, authenticate rejimini işlədir və yalnız kuki sətrini yenidən yazır. Etimad məlumatını skriptdən kənarda saxlayın və yalnız onu işlədən hesab üçün oxunaqlı edin, yenidən yazmanı isə atomik edin ki, uğursuz işə salma yarımçıq fayl qoymasın.

Yeniləmə hər bir neçə saatda lazımdırsa, intervalı yazın. Bu, şlüzün sessiya siyasətinin xassəsidir və yeniləmənin avtomatlaşdırılmalı, yoxsa daha uzun sessiya istənilməli olduğunu müəyyən edir.

Əlaqəli məqalələr