ConnMan yarim kun ishlaydi, keyin rad etadi va jurnal satri sertifikatni tekshirishni eslatadi. Bu satr odamlarni hech qachon buzilmagan CA to'plamlariga yuboradi. Ikki xil nosozlik deyarli bir xil ko'rinishdagi muvaffaqiyatsizlikni keltirib chiqaradi: sessiya cookie muddati tugaydi yoki server sertifikati haqiqatan ham o'zgargan. Ularni taxminan bir daqiqada ajratish mumkin va faqat bittasi barmoq izi bilan bog'liq.

Ikki nosozlik, bitta chalkash jurnal satri

Ular ikkita kuzatuv bo'yicha ajraladi va hech biri ikkinchi marta o'qishni talab qilmaydi. Birinchisi nosozlik qachon boshlangani: muddati o'tgan cookie soatlar yoki kunlar ishlagandan keyin keladi, va almashtirilgan sertifikat shlyuz o'zgarishidan keyin darhol keladi.

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 daqiqalik sinov quyidagi authenticate ishga tushirishidir. Uning FINGERPRINT qiymatini fayldagi OpenConnect.ServerCert bilan solishtiring. Bir xil barmoq izi va boshqa COOKIE faqat cookie almashtirishni bildiradi. Boshqa barmoq izi server sertifikati haqiqatan o'zgarganini bildiradi, shuning uchun uni ataylab qayta qadang va kim tasdiqlaganini yozib qo'ying.

Yozish o'rniga materialni yarating

ConnMan'da NetworkManager'dan farqli o'laroq, OpenConnect profili uchun import qadami yo'q. U qiymatlari oldindan yaratilishi kerak bo'lgan ta'minot faylini o'qiydi va ularni yaratishning qo'llab-quvvatlanadigan usuli OpenConnect'ning authenticate rejimidir.

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

Chiqish to'rtta qiymatni chop etadi: POST, COOKIE, HOST va FINGERPRINT. sha256: prefiksli barmoq izi server qadog'idir. Cookie esa umrini shlyuz belgilaydigan sessiya artefaktidir. Ularga har xil turdagi sir sifatida munosabatda bo'ling: ular turli jadvallar bo'yicha tugaydi va faqat bittasi o'zgarishi kutiladi.

Fayl ikkalasini ham olib yuradi va ular turlicha qariydi

Ta'minot fayli /var/lib/connman-vpn/ ostida joylashgan va har bir ulanish uchun uni VPN demoni o'qiydi, tizim patnisidagi dastur emas. Ulanish nomini global bo'limda, protokol tafsilotlarini esa yetkazib beruvchi bo'limida saqlang.

[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 haqiqatan xizmat qiladigan xost nomidan foydalaning. Yalang'och IP manzil sertifikat tekshiruvidan o'tib, baribir muvaffaqiyatsiz bo'lishi mumkin, chunki qurilma virtual xost bo'yicha yo'naltiradi va nomni kutadi.

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 aslida nimani ko'rsatadi

Patnis maslahati qaysi nosozlik borligini aytmaydi. Agar birinchi xavotirli satr o'rniga ketma-ketlikni o'qisangiz, jurnal aytadi. Eski cookie odatda TLS muzokaralari tugaganini va keyin HTTP qatlami rad etganini ko'rsatadi; shuning uchun sertifikatlar haqidagi so'zlar avtorizatsiya muvaffaqiyatsizligi yonida turadi.

Yangi authenticate ishga tushirishini fayldagi qiymatlar bilan solishtiring. Barmoq izi mos kelsa va faqat cookie farq qilsa, ishonch sozlamalariga tegmasdan javobingiz bor.

Muddati o'tgan maydonni yangilang

authenticate buyrug'ini takrorlang, OpenConnect.Cookie ni almashtiring va demonni qayta ishga tushiring. Yangi chiqish boshqa qiymat ko'rsatmasa, barmoq izini tegmang; u holda server sertifikati haqiqatan almashtirilgan va qayta qadash kimdir yozib qo'yishi kerak bo'lgan qaror, xato xabaridan ko'chirish emas.

Yangilashni avtomatlashtirish o'rinli: kichik skript parolni standart kiritishdan o'qiydi, authenticate rejimini ishga tushiradi va faqat cookie satrini qayta yozadi. Hisob ma'lumotlarini skriptdan tashqarida saqlang va faqat uni ishga tushiruvchi hisob uchun o'qish mumkin qiling, qayta yozishni esa atomar qiling, muvaffaqiyatsiz ishga tushirish yarim yozilgan fayl qoldirmasin.

Agar yangilash har bir necha soatda kerak bo'lsa, intervalni yozib qo'ying. Bu shlyuzning sessiya siyosati xususiyati va yangilashni avtomatlashtirish yoki uzoqroq sessiya so'rash kerakligini hal qiladi.

O'xshash maqolalar