ConnMan OpenConnect кукиінің мерзімі бітуі — сертификат мәселесі емес
Журналда екі ақау бірдей көрінеді. Бекітілген саусақ ізін сессия кукиімен салыстырыңыз, мерзімі өткен өрісті жаңартыңыз, содан кейін демонды қайта іске қосыңыз.
ConnMan түстен кейін жұмыс істейді, содан кейін бас тартады, ал журнал жолы сертификатты тексеруді атайды. Бұл жол адамдарды ешқашан бұзылмаған CA бумаларына жібереді. Екі түрлі ақау сәтсіздіктің дерлік бірдей пішінін туғызады: сессия кукиінің мерзімі бітеді немесе сервер сертификаты шынымен өзгерді. Оларды шамамен бір минутта ажыратуға болады, және олардың тек біреуі ғана саусақ ізіне қатысты.
Екі ақау, бір шатастыратын журнал жолы
Олар екі бақылау бойынша ажыратылады, және ешқайсысы екінші оқуды қажет етпейді. Біріншісі — ақау қашан басталды: мерзімі өткен куки сағаттар немесе күндер бойы жұмыс істегеннен кейін келеді, ал ауыстырылған сертификат шлюз өзгерісінен кейін бірден келеді.
| Signal | Expired cookie | Changed certificate |
|---|---|---|
| When it started | after hours or days of working | right after a gateway change |
| Fingerprint from a fresh authenticate | unchanged | different value |
| Usual log tail | HTTP CONNECT 401 / unauthorized | signer not found / verify failed |
| Repair | replace the cookie, restart | re-pin deliberately, then restart |
Бір минуттық тест — төмендегі authenticate жүгірісі. Оның FINGERPRINT мәнін файлдағы OpenConnect.ServerCert-мен салыстырыңыз. Бірдей саусақ ізі және басқа COOKIE болса, тек кукиді ауыстыру керек. Басқа саусақ ізі сервер сертификаты шынымен өзгергенін білдіреді, сондықтан оны әдейі қайта бекітіңіз және кім мақұлдағанын жазып қойыңыз.
Материалды тергеннен гөрі құрған дұрыс
ConnMan-да NetworkManager-дан өзгеше, OpenConnect профилін импорттау қадамы жоқ. Ол мәндері алдын ала дайындалуы тиіс жабдықтау файлын оқиды, ал оларды дайындаудың қолдау көрсетілетін жолы — OpenConnect-тің authenticate режимі.
sudo openconnect --csd-wrapper=/home/user/.cisco/csd-wrapper.sh \
--authenticate --user myuser vpn.example.comШығыс төрт мәнді басып шығарады: POST, COOKIE, HOST және FINGERPRINT. sha256: префиксі бар саусақ ізі — сервер бекітпесі. Куки — өмір сүру мерзімін шлюз айқындайтын сессия артефактісі. Оларды әртүрлі құпия түрлері ретінде қарастырыңыз: олар әртүрлі кесте бойынша бітеді және тек біреуінің өзгеруі күтіледі.
Файл екеуін де алып жүреді, және олар әртүрлі қартаяды
Жабдықтау файлы /var/lib/connman-vpn/ астында орналасқан және әр қосылым үшін оны VPN демоны оқиды, жүйелік науа қолданбасы емес. Қосылым атын ғаламдық бөлімде, ал протокол мәліметтерін жеткізуші бөлімінде ұстаңыз.
[global]
Name = Company VPN
[provider_openconnect]
Type = OpenConnect
Name = Company Cisco VPN
Host = vpn.example.com
Domain = corp.example
OpenConnect.ServerCert = sha256:...
OpenConnect.Cookie = ...Портал нақты қызмет көрсететін хост атын пайдаланыңыз. Жалаң IP мекенжайы сертификат тексерісінен өтіп, бәрібір сәтсіздікке ұшырауы мүмкін, өйткені құрылғы виртуалды хост бойынша маршруттайды және атауды күтеді.
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Журнал шын мәнінде нені көрсетеді
Науа кеңесі қай ақау екенін айтпайды. Егер бірінші алаңдатарлық жолды емес, ретті оқысаңыз, журнал айтады. Ескірген куки әдетте TLS келіссөзінің аяқталғанын және HTTP қабатының кейін бас тартқанын көрсетеді, сондықтан сертификаттар туралы сөздер авторизация сәтсіздігінің қасында тұрады.
Жаңа authenticate жүгірісін файлдағы мәндермен салыстырыңыз. Саусақ ізі сәйкес келсе және тек куки өзгеше болса, сенім параметрлеріне тимей-ақ жауабыңыз бар.
Мерзімі өткен өрісті жаңартыңыз
authenticate командасын қайталаңыз, OpenConnect.Cookie орнын ауыстырыңыз және демонды қайта іске қосыңыз. Жаңа шығыс басқа мән көрсетпесе, саусақ ізін тимей қалдырыңыз; ондай жағдайда сервер сертификаты шынымен ауыстырылған және қайта бекіту — біреудің жазып қоюы тиіс шешім, қате хабарламасынан көшіру емес.
Жаңартуды автоматтандыру орынды: кішкентай скрипт құпиясөзді стандартты кірістен оқиды, authenticate режимін іске қосады және тек куки жолын қайта жазады. Тіркелгі деректерін скрипттен тыс ұстаңыз және оны іске қосатын тіркелгіге ғана оқылатын етіңіз, ал қайта жазуды атомдық етіңіз, сәтсіз жүгіріс жартылай жазылған файл қалдырмасын.
Егер жаңарту әр бірнеше сағат сайын қажет болса, аралықты жазып қойыңыз. Бұл шлюздің сессия саясатының қасиеті және жаңартуды автоматтандыру керек пе, әлде ұзағырақ сессия сұрау керек пе, соны шешеді.