Већина водича представља овај избор као козметички: или пустите 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 конфигурацију, а не на сам тунел.

Унапред одлучите шта треба да се догоди када се тунел не може подићи. Враћање на обичну повезаност је политика и треба је записати, уместо да се препусти оном менаџеру који је први стартовао.

Повезани чланци