Ubuntu'da açılışta OpenVPN: NetworkManager mı systemd mi?
Dizüstü bilgisayar ve ekransız sunucu farklı açılış yollarına ihtiyaç duyar. NetworkManager'ın ikincil bağlantısını openvpn-client@ ve onun kimlik bilgileri dosyasıyla karşılaştırın.
Çoğu kılavuz bu seçimi kozmetik bir mesele gibi sunar: ya NetworkManager'ın tüneli kaldırmasına izin verin ya da bir systemd örneğini etkinleştirip bitirin. İki yol, ekransız bir makinede sonucu belirleyen tek bir şeyde farklılaşır ve bunun hangi aracın daha yeni olduğuyla hiçbir ilgisi yoktur. NetworkManager gizli bilgileri bir oturum aracılığıyla açar; bir systemd örneğinin açacak oturumu yoktur. Gizli bilgileri işleme biçimi önünüzdeki makineye uyan yolu seçin.
Geri kalan her şey, yönlendirme kurulumundan yeniden bağlanma davranışına kadar, bu ilk karardan doğar.
Kimsenin bahsetmediği fark anahtarlıktır
NetworkManager bir VPN profiline sahip olduğunda parola, kullanıcı oturum açtığında açılan oturum anahtarlığında yaşayabilir. Bu, dizüstü bilgisayarda iyi çalışır: kişi oradadır, anahtarlık açılır, tünel kalkar. Denetimsiz açılan bir sunucuda hiçbir şeyi açacak kimse yoktur, bu yüzden profil hiç gelmeyen bir gizli bilgiyi bekler. Bağlantı yapılandırılmış görünür ve hiçbir zaman etkinleşmez.
systemd örneği bu sorundan diskten bir kimlik bilgileri dosyası okuyarak kaçınır; bu da dosyayı koruduğunuz şey yapar. chmod 400 ve root sahipliği asgari düzeydir; dosya, denetlemediğiniz yedeklemelerin ve imaj şablonlarının dışında kalmalıdır.
VPN'i bir bağlantıya eklemek açılış garantisi değildir
nm-connection-editor içinde VPN yerine kablolu veya kablosuz bağlantıyı seçin, General sekmesini açın, otomatik olarak VPN'e bağlanma seçeneğini işaretleyin ve profile bir ad verin. Ardından birincil bağlantı bağlı duruma ulaştığında NetworkManager VPN'i ikincil bağlantı olarak etkinleştirir. Bu bir bağımlılıktır, güvenlik duvarı kuralı değildir. Paketler tünel kalkmadan önceki saniyelerde hâlâ dışarı çıkabilir ve açılamayan kayıtlı bir gizli bilgi makineyi o olmadan çevrimiçi bırakır.
Gereksinim tünel olmadan hiçbir şeyin çıkmamasıysa bunu söyleyin ve bir öldürme anahtarı kurun, çünkü bu ayar bir tane sağlamaz. Askıya alma ve devam etmeyi de test edin, çünkü ikincil bağlantı dönüş yolunda yeniden değerlendirilir.
systemd örneği eşleşen bir dosya adına ihtiyaç duyar
Profili paketin beklediği istemci dizinine koyun, örneğin /etc/openvpn/client/office.conf, ve içinden kimlik bilgileri dosyasına auth-user-pass office.cred ile başvurun. Örnek adı, uzantısız dosya adıdır, bu yüzden openvpn-client@office office.conf dosyasını okur. sudo systemctl enable --now openvpn-client@office ile etkinleştirin ve eşleşmeyi bir blogdaki örneğe güvenmek yerine systemctl cat openvpn-client@office ile doğrulayın.
Profil içindeki yollar birimin çalışma dizinine göre çözülür, profilin kendisine göre değil; bu yüzden göreli bir ca veya auth-user-pass satırı elle test ettiğinizde çalışsa da açılışta başarısız olabilir. Birimin bulması gereken her şey için mutlak yollar kullanın. Ardından gerçek bir açılıştan sonra journalctl -u openvpn-client@office -b çıktısını okuyun; tünel olmadan etkin olduğunu bildiren bir birim genellikle o günlükte eksik bir dosya adı verir.
Daha eski paketler farklı bir şablon adı getirir, bu yüzden systemctl list-unit-files 'openvpn*' bu ana makinede hangisinin bulunduğunu belirler.
Yeniden bağlanma davranışı ayrı bir karardır
ping-restart içeren bir profil tünel düştükten sonra onu yeniden kurar ve yeniden başlatma yönergesi olan bir birim hizmet düzeyinde benzer bir şey yapar. Bunlar sizin seçtiğiniz politikalar, devraldığınız varsayılanlar değil. Bağlantı yalnızca istendiğinde kalkmalıysa yeniden başlatma davranışını bilinçli olarak kaldırın ve nedenini yazın. Birim ağ kullanılabilir olmadan önce başlıyorsa yeniden deneme politikasına ihtiyaç duyar, çünkü açılışta bir kez başarısız olan deneme kendiliğinden yinelenmez.
Durdurma da aynı ölçüde sözlüdür: sudo systemctl disable --now openvpn-client@office çalışan örneği durdurur ve açılış bağlantısını kaldırır. Yalnızca devre dışı bırakmak tüneli bir sonraki yeniden başlatmaya kadar çalışır bırakır, bu da devre dışı bırakarak test eden ve arayüzün yukarıda kaldığını gören herkesi şaşırtır.
Yeniden başlatın, sonra dört şeyi sırayla kontrol edin
Hizmeti yeniden başlatmak hizmeti test eder; makineyi yeniden başlatmak açılış yolunu test eder. Yeniden başlatmadan sonra birimin kalktığını, ardından uzak alt ağ için bir yol bulunduğunu, ardından makinenin internete hangi adresi sunduğunu ve son olarak adların tünel üzerinden çözüldüğünü doğrulayın. Bu dört kontrol bir sorun olduğunda tam da bu sırayla başarısız olur, bu da ilk başarısızlığı işe yarar kılar.
Yolsuz etkin bir birim genellikle profilin bağlandığı ancak sunucunun hiçbir yol itmediği ya da yolun sonradan kaybolan bir arayüze kurulduğu anlamına gelir. Ad çözümlemesi çalışmayan bir yol tünelin kendisine değil DNS yapılandırmasına işaret eder.
Tünel kalkamadığında ne olması gerektiğine önceden karar verin. Sıradan bağlantıya geri dönmek bir politikadır ve ilk başlayan yöneticiye bırakmak yerine yazılmalıdır.