Большасць кіраўніцтваў падаюць гэты выбар як касметычны: альбо дазволіць NetworkManager узняць тунель, альбо ўключыць асобнік systemd і скончыць. Гэтыя два шляхі розняцца адной рэччу, якая вызначае вынік на машыне без экрана, і яна ніяк не звязана з тым, які інструмент навейшы. NetworkManager адкрывае сакрэты праз сеанс; у асобніка systemd няма сеансу, які можна адкрыць. Выберайце той, чыя праца з сакрэтамі адпавядае машыне перад вамі.

Усё астатняе, ад усталявання маршрутаў да паводзін перападключэння, вынікае з гэтага першага рашэння.

Звязка ключоў — гэта розніца, пра якую ніхто не кажа

Калі NetworkManager валодае профілем VPN, пароль можа захоўвацца ў звязцы ключоў уваходу, якая адкрываецца, калі карыстальнік уваходзіць. Гэта добра працуе на наўтбуку: чалавек прысутнічае, звязка ключоў адкрываецца, тунель узнімаецца. На серверы, які загружаецца без нагляду, няма каму што-небудзь адкрыць, таму профіль чакае сакрэт, які ніколі не прыходзіць. Злучэнне выглядае наладжаным і ніколі не актывуецца.

Асобнік systemd пазбягае гэтай праблемы, чытаючы файл уліковых даных з дыска, што робіць файл тым, што вы ахоўваеце. chmod 400 плюс валоданне root — гэта мінімум, і файл павінен заставацца па-за рэзервовымі копіямі і шаблонамі вобразаў, якія вы не кантралюеце.

Далучэнне VPN да злучэння не гарантуе загрузку

У nm-connection-editor выберыце правадное або бесправадное злучэнне, а не VPN, адкрыйце ўкладку General, пазначце опцыю аўтаматычнага падключэння да VPN і назвіце профіль. Пасля гэтага NetworkManager актывуе VPN як другаснае злучэнне, калі асноўнае дасягне стану «падключана». Гэта залежнасць, а не правіла міжсеткавага экрана. Пакеты ўсё яшчэ могуць выходзіць на працягу секунд да ўзняцця тунеля, а захаваны сакрэт, які не адкрываецца, пакідае машыну ў сетцы без яго.

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

Асобніку systemd патрэбна супадаючая назва файла

Змесціце профіль у кліенцкі каталог, якога чакае пакет, напрыклад /etc/openvpn/client/office.conf, і спашліцеся знутры на файл уліковых даных праз auth-user-pass office.cred. Назва асобніка — гэта назва файла без суфікса, таму openvpn-client@office чытае office.conf. Уключыце яго праз sudo systemctl enable --now openvpn-client@office і пацвердзіце адпаведнасць праз systemctl cat openvpn-client@office замест таго, каб давяраць прыкладу з блога.

Шляхі ўнутры профіля вылічваюцца адносна працоўнага каталога юніта, а не адносна самога профіля, таму адносны радок ca або auth-user-pass можа не спрацаваць пры загрузцы, хоць працуе пры ручной праверцы. Выкарыстоўвайце абсалютныя шляхі для ўсяго, што юніт павінен знайсці. Затым прачытайце journalctl -u openvpn-client@office -b пасля рэальнай загрузкі; юніт, які паведамляе пра актыўнасць без тунеля, звычайна называе адсутны файл у гэтым журнале.

Старыя пакеты пастаўляюць іншую назву шаблона, таму systemctl list-unit-files 'openvpn*' вырашае, які з іх існуе на гэтым хасце.

Паводзіны перападключэння — асобнае рашэнне

Профіль з ping-restart перабудоўвае тунель пасля падзення, а юніт з дырэктывай перазапуску робіць нешта падобнае на ўзроўні сэрвісу. Гэта палітыкі, якія вы выбіраеце, а не прадвызначаныя значэнні, якія вы атрымліваеце ў спадчыну. Калі злучэнне павінна ўзнімацца толькі па запыце, прыбярыце паводзіны перазапуску свядома і запішыце, чаму. Калі юніт стартуе раней, чым сетка стане прыдатнай, яму патрэбна палітыка паўторных спроб, бо адна няўдалая спроба пры загрузцы сама не паўтараецца.

Спыненне гэтак жа літаральнае: sudo systemctl disable --now openvpn-client@office спыняе працуючы асобнік і выдаляе спасылку загрузкі. Адно адключэнне пакідае тунель працаваць да наступнага перазапуску, што здзіўляе кожнага, хто правярае, адключаючы і назіраючы, як інтэрфейс застаецца ўзнятым.

Перазапусціце, потым праверце чатыры рэчы па парадку

Перазапуск сэрвісу правярае сэрвіс; перазапуск машыны правярае шлях загрузкі. Пасля перазапуску пацвердзіце, што юніт узняўся, затым што існуе маршрут да аддаленай падсеткі, затым які адрас машына паказвае інтэрнэту, і нарэшце што імёны развязваюцца праз тунель. Гэтыя чатыры праверкі правальваюцца менавіта ў такім парадку, калі нешта не так, што робіць першую няўдачу карыснай.

Актыўны юніт без маршруту звычайна азначае, што профіль падключыўся, але сервер не адправіў ніводнага маршруту, або маршрут быў усталяваны на інтэрфейсе, які пазней знік. Маршрут без працуючага пошуку імёнаў паказвае на налады DNS, а не на сам тунель.

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

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