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 режимин иштетет жана куки сабын гана кайра жазат. Каттоо маалыматтарын скрипттен тышкары кармаңыз жана аны иштеткен эсепке гана окулуучу кылыңыз, ал эми кайра жазууну атомдук кылыңыз, ийгиликсиз жүгүртүү жарым жазылган файл калтырбасын.
Эгер жаңыртуу ар бир нече саат сайын керек болсо, аралыкты жазып коюңуз. Бул шлюздун сессия саясатынын касиети жана жаңыртууну автоматташтыруу керекпи же узагыраак сессия сураш керекпи, ошону чечет.