Väčšina návodov podáva túto voľbu ako kozmetickú: buď nechajte NetworkManager zdvihnúť tunel, alebo povoľte inštanciu systemd a hotovo. Obe cesty sa líšia v jednej veci, ktorá rozhoduje o výsledku na stroji bez obrazovky, a tá nemá nič spoločné s tým, ktorý nástroj je novší. NetworkManager odomyká tajomstvá cez reláciu; inštancia systemd nemá žiadnu reláciu na odomknutie. Vyberte tú, ktorej zaobchádzanie s tajomstvami zodpovedá stroju pred vami.

Všetko ostatné, od inštalácie trás po správanie pri opätovnom pripojení, vyplýva z tohto prvého rozhodnutia.

Kľúčenka je rozdiel, o ktorom nikto nehovorí

Keď NetworkManager vlastní profil VPN, heslo môže žiť v prihlasovacej kľúčenke, ktorá sa odomkne, keď sa používateľ prihlási. Na prenosnom počítači to funguje dobre: človek je prítomný, kľúčenka sa otvorí, tunel sa zdvihne. Na serveri, ktorý sa spúšťa bez dozoru, nie je nikto, kto by čokoľvek odomkol, takže profil čaká na tajomstvo, ktoré nikdy nepríde. Pripojenie vyzerá nastavené a nikdy sa neaktivuje.

Inštancia systemd sa tejto problémovej situácii vyhýba čítaním súboru prihlasovacích údajov z disku, čo zo súboru robí vec, ktorú chránite. chmod 400 plus vlastníctvo rootom je minimum a súbor by mal zostať mimo záloh a šablón obrazov, ktoré nekontrolujete.

Pripojenie VPN k pripojeniu nie je zárukou štartu

V nm-connection-editor vyberte káblové alebo bezdrôtové pripojenie namiesto VPN, otvorte kartu General, zaškrtnite voľbu automatického pripojenia k VPN a pomenujte profil. NetworkManager potom aktivuje VPN ako sekundárne pripojenie, keď primárne dosiahne stav pripojené. To je závislosť, nie pravidlo firewallu. Pakety stále môžu odchádzať počas sekúnd pred zdvihnutím tunela a uložené tajomstvo, ktoré sa nepodarí odomknúť, nechá stroj online bez neho.

Ak je požiadavkou, aby nič neodchádzalo bez tunela, povedzte to a postavte kill switch, pretože toto nastavenie ho neposkytne. Otestujte aj pozastavenie a obnovenie, pretože sekundárne pripojenie sa pri návrate znova vyhodnocuje.

Inštancia systemd potrebuje zodpovedajúci názov súboru

Umiestnite profil do klientskeho adresára, ktorý balík očakáva, napríklad /etc/openvpn/client/office.conf, a zvnútra odkážte na súbor prihlasovacích údajov pomocou auth-user-pass office.cred. Názov inštancie je názov súboru bez prípony, takže openvpn-client@office číta office.conf. Povoľte ju pomocou sudo systemctl enable --now openvpn-client@office a overte mapovanie pomocou systemctl cat openvpn-client@office, namiesto toho, aby ste verili príkladu z blogu.

Cesty vnútri profilu sa vyhodnocujú relatívne k pracovnému adresáru jednotky, nie k profilu samotnému, takže relatívny riadok ca alebo auth-user-pass môže pri štarte zlyhať, hoci pri ručnom testovaní funguje. Pre všetko, čo jednotka musí nájsť, používajte absolútne cesty. Potom po skutočnom štarte prečítajte journalctl -u openvpn-client@office -b; jednotka, ktorá hlási aktivitu bez tunela, zvyčajne v tom protokole pomenuje chýbajúci súbor.

Staršie balíky dodávajú iný názov šablóny, takže systemctl list-unit-files 'openvpn*' rozhodne, ktorá na tomto hostiteľovi existuje.

Správanie pri opätovnom pripojení je samostatné rozhodnutie

Profil s ping-restart znovu postaví tunel po páde a jednotka s direktívou reštartu robí niečo podobné na úrovni služby. To sú zásady, ktoré si vyberáte, nie predvolené hodnoty, ktoré dedíte. Ak sa má pripojenie zdvíhať len na požiadanie, správanie reštartu zámerne odstráňte a napíšte prečo. Ak jednotka štartuje skôr, než je sieť použiteľná, potrebuje zásadu opakovania, pretože jeden neúspešný pokus pri štarte sa sám neopakuje.

Zastavenie je rovnako doslovné: sudo systemctl disable --now openvpn-client@office zastaví bežiacu inštanciu a odstráni odkaz pre štart. Samotné vypnutie nechá tunel bežať do ďalšieho reštartu, čo prekvapí každého, kto testuje vypnutím a sleduje, ako rozhranie zostáva hore.

Reštartujte a potom skontrolujte štyri veci v poradí

Reštart služby testuje službu; reštart stroja testuje cestu štartu. Po reštarte overte, že jednotka nabehla, potom že existuje trasa pre vzdialenú podsietu, potom akú adresu stroj predstavuje internetu, a nakoniec že sa názvy prekladajú cez tunel. Tieto štyri kontroly zlyhávajú v tomto poradí, keď je niečo zle, čo robí prvý neúspech tým užitočným.

Aktívna jednotka bez trasy zvyčajne znamená, že profil sa pripojil, ale server neposlal žiadnu trasu, alebo že trasa bola nainštalovaná na rozhraní, ktoré neskôr zmizlo. Trasa bez funkčného vyhľadávania názvov ukazuje na konfiguráciu DNS, nie na samotný tunel.

Vopred rozhodnite, čo sa má stať, keď sa tunel nedá zdvihnúť. Návrat k obyčajnému pripojeniu je zásada a mala by byť zapísaná, namiesto toho, aby bola ponechaná tomu správcovi, ktorý naštartoval prvý.

Súvisiace články