ConnMan працуе паўдня, а потым адмаўляе, і радок журнала згадвае праверку сертыфіката. Гэты радок накіроўвае людзей да набораў CA, якія ніколі не былі зламаныя. Дзве розныя непаладкі даюць амаль аднолькавую форму адмовы: сканчаецца тэрмін кукі сеансу або сертыфікат сервера сапраўды змяніўся. Іх можна адрозніць прыкладна за хвіліну, і толькі адна з іх наогул датычыцца адбітка.

Дзве непаладкі, адзін заблытаны радок журнала

Яны адрозніваюцца па двух назіраннях, і ні адно з іх не патрабуе другога прачытання. Першае — калі пачалася адмова: пратэрмінаванае кукі прыходзіць пасля гадзін або дзён працы, а заменены сертыфікат прыходзіць адразу пасля змены шлюза.

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

Праверка за хвіліну — гэта запуск authenticate ніжэй. Параўнайце яго FINGERPRINT з OpenConnect.ServerCert у файле. Ідэнтычны адбітак з іншым COOKIE азначае, што трэба замяніць толькі кукі. Іншы адбітак азначае, што сертыфікат сервера сапраўды змяніўся, таму замацуйце яго свядома і запішыце, хто гэта ўхваліў.

Стварайце матэрыял, а не ўводзьце яго ўручную

У ConnMan няма кроку імпарту профілю OpenConnect, у адрозненне ад NetworkManager. Ён чытае файл забеспячэння, значэнні якога павінны быць створаны загадзя, і падтрымліваемы спосаб іх стварэння — рэжым authenticate у OpenConnect.

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 і перапісвае толькі радок кукі. Трымайце ўліковыя даныя па-за скрыптам і чытальнымі толькі для ўліковага запісу, які яго запускае, а перазапіс рабіце атамарным, каб няўдалы запуск не пакінуў паўзапісаны файл.

Калі абнаўленне патрэбнае кожныя некалькі гадзін, запішыце інтэрвал. Гэта ўласцівасць палітыкі сеансаў шлюза, і яна вырашае, ці аўтаматызаваць абнаўленне, ці прасіць даўжэйшы сеанс.

Падобныя артыкулы