NetworkManager idxalı OpenVPN və WireGuard fayllarında uğursuz olur
Adətən profil deyil, təhlil edici sınır. Plagini yoxlayın, idxal edilmiş bağlantını oxuyun, secret bayraqlarını və marşrutları düzəldin, sonra yenidən başlatmanı sınaqdan keçirin.
GNOME Ayarlarında Fayldan idxal et… seçdim, satıcının müştərisi ilə işləyən profil seçdim və dialoq siyahıya heç nə əlavə etmədən bağlandı. İkinci noutbukda idxal tamamlandı, bağlantı profilin adı ilə göründü və sonra ilk autentifikasiya sorğusunda uğursuz oldu. NetworkManager .ovpn və ya wg-quick faylınızı heç vaxt olduğu kimi icra etmir. Faylı təhlil ediciyə verir, təhlil edici onu NetworkManager-ın öz bağlantı formatına çevirir və bundan sonra tunel bu təhlil edilmiş obyektdən qurulur — sirlər, marşrutlar, DNS və hər şey. Yəni faydalı sual faylın niyə xarab olduğu deyil, təhlilin baş verib-vermədiyi və nə saxladığıdır.
İdxal faylla əslində nə edir
OpenVPN üçün təhlil edici plugin paketində yaşayır və yaratdığı bağlantı org.freedesktop.NetworkManager.openvpn kimi D-Bus xidmətinə işarə edir. Plugin yoxdursa, təhlil edici də yoxdur: tip nmcli üçün naməlumdur və qrafik VPN əlavə etmə siyahısı heç idxal elementi göstərməyə bilər. WireGuard bir mühüm cəhətdən fərqlənir — NetworkManager 1.30 seriyasından bəri öz WireGuard ayarlarını daşıyır, buna görə ayrı plugin paketi yoxdur, amma wg-quick oxuyucusu yalnız onu təqdim edən build-lərdə mövcuddur.
Hər halda fayl bir dəfə oxunur. Nəticə /etc/NetworkManager/system-connections/ altında keyfile kimi yazılır, bağlantının adı ilə adlanır, root-a məxsusdur və digər istifadəçilər üçün oxunmazdır, çünki açar materialını saxlayır. Bu keyfile artıq bağlantıdır; orijinal .ovpn faylını sonradan redaktə etmək heç nəyi dəyişmir.
Üç simptom üç fərqli mərhələyə aiddir. İdxal elementi yoxdursa və ya tip naməlumdursa, plugin və ya versiya çatmır. Direktiv adlandıran idxal xətası təhlil edicinin faylı oxuyub bir hissəsini rədd etdiyini bildirir. Mövcud olan, lakin heç vaxt aktivləşməyən bağlantı təhlil edilmiş obyektin natamam olduğunu və ya serverin onu rədd etdiyini bildirir. Nəyisə redaktə etməzdən əvvəl hansı üç halın sizin olduğunu müəyyənləşdirin.
Profili sazlamadan əvvəl plugini təsdiqləyin
Çatışmayan plugin tam olaraq zədələnmiş profil kimi görünür, buna görə əvvəlcə paketi yoxlayın. Debian və Ubuntu-da OpenVPN dəstəyi network-manager-openvpn üstəgəl masaüstü köməkçisi kimi gəlir; Fedora-da paketlər NetworkManager-openvpn və NetworkManager-openvpn-gnome-dur; Arch-da bu networkmanager-openvpn-dir.
dpkg -l network-manager-openvpn-gnome | tail -n 2 rpm -q NetworkManager-openvpn pacman -Q networkmanager-openvpn
Sonra mütləq yoldan idxal edin: nmcli connection import type openvpn file /home/you/profile.ovpn. Nisbi yollar adətən işləyir, amma kataloqu dəyişmiş shell sürətli idxalı dövrəyə çevirir. WireGuard üçün nmcli --version yoxlayın və kernel tərəfinin modprobe wireguard ilə mövcud olduğuna əmin olun; modul olmayan maşında uğurla tamamlanan idxal sizi cihazı heç vaxt görünməyən bir bağlantı ilə qoyub gedir. nmcli arayışı import alt əmrini və qəbul edilən tip adlarını sənədləşdirir. Əgər type wireguard dərhal rədd edilirsə, build bu funksiyadan köhnədir və düzgün addım distribusiya paketi və ya backport-dur — konfiqurasiyanı ixtiyari kataloqa köçürüb nəyinsə onu oxuyacağına ümid etmək deyil.
OpenVPN bağlantısını oxuyun, .ovpn faylını deyil
Bağlantı yarandıqdan sonra faylı yenidən oxumaq əvəzinə təhlil edilmiş ayarları oxuyun: nmcli connection show "Work VPN" | grep -E '^vpn\.'. Sizə remote və port, nəqliyyat, şəxsiyyət materialı — ca, cert, key, tls-auth və ya tls-crypt — və autentifikasiya üsulu lazımdır. Şəxsi açar parolu olan profildə sudo nmcli --show-secrets connection show "Work VPN" əlavə edin və secret bayraqlarına baxın: 0 none-dur, yəni sirr keyfile-dadır; 1 agent-owned-dir; 2 not-saved-dir, yəni heç vaxt keyfile-a yazılmır; 4 not-required-dır, yəni heç bir sirr lazım deyil. Bunlar bitlərdir, şkala deyil, buna görə 3 sadəcə agent-owned üstəgəl not-saved-dir. Sessiya üzrə bir dəfə soruşulan sirr agent-owned (1)-dir və onu agent tələb edir; bunun üçün ayrı bayraq nömrəsi yoxdur. Bayraq uyğunsuzluğu profilin masaüstü appletindən qoşulub skriptdən və ya açılışda uğursuz olmasının adi səbəbidir.
Təhlil edicinin nə atdığını görməyin ən sürətli yolu plugindən faylı geri yazmağı xahiş etmək və sonra onu müqayisə etməkdir: nmcli connection export "Work VPN" /tmp/roundtrip.ovpn. Həmin diff-də yox olan direktivlər qoşulma anında mövcud olmayacaq. Hook-lar adi şübhəlilərdir — script-security, up, down və route-up yüksəldilmiş hüquqlarla işləyən skript gözləyir və qəsdən köçürülmür. İdxalın uğur qazanması üçün yoxlamanı aşağı salmayın və əlavə imtiyaz verməyin; dəstəklənməyən seçim adətən əlyetməz serveri deyil, plaginin funksiya dəstini əks etdirir. Bu davranışı NetworkManager dispatcher skriptinə və ya server tərəfindəki siyasətə köçürün.
Şəxsiyyət sahələrinin sağ qaldığını da təsdiqləyin: CA istinadı, remote-cert-tls və profilin güvəndiyi hər hansı ad yoxlaması. Bunlar olmadan qalxan bağlantı o ünvanda cavab verən hər hansı şeylə danışa bilər.
WireGuard bağlantısını oxuyun, wg-quick faylını deyil
wg-quick faylı shell semantikası olan formatdır; idxal edilmiş bağlantı ayarlar toplusudur. PrivateKey interfeysin şəxsi açarı olur, Address bir və ya bir neçə IPv4 və IPv6 ünvanı olur, DNS NetworkManager-ın resolver xassələrinə uyğunlaşdırılır, MTU wireguard.mtu-ya uyğunlaşdırılır (wg-quick-in öz standart dəyəri 1420-dir), hər peer bloku isə açıq açar, endpoint, icazə verilən IP-lər və persistent keepalive ilə peer qeydi olur. Nəyin saxlandığını nmcli --show-secrets connection show wg0 ilə çap edin; peer siyahısı bu çıxışda görünmürsə, keyfile-ı oxuyun:
sudo sed -n '/^\[wireguard\]/,/^\[/p' /etc/NetworkManager/system-connections/wg0.nmconnection
Sağ qalmayan wg-quick-in shell yarısıdır. PreUp, PostUp, PreDown, PostDown və Table həmin alətin davranışıdır, WireGuard interfeysinin atributları deyil, buna görə idxaldan sonra onları heç nə icra etmir. Əgər orijinal standart marşrutu tək qoymaq üçün Table = off istifadə edirdisə, yeni NetworkManager buraxılışları eyni məqsəd üçün ip4-auto-default-route və ip6-auto-default-route təqdim edir; bağlantının skript kimi davrandığını güman etmək əvəzinə onları açıq şəkildə təyin edin. Fərdi marşrut itələyən hook həmin marşrutun bağlantının marşrutlaşdırma ayarlarında olmasına ehtiyac duyur, əks halda o, sadəcə çatmayacaq.
Bağlantıya tam olaraq bir sahib verin
Klassik sonrakı nasazlıq növbəti açılışa qədər işləyən və sonra dövrəyə girən bağlantıdır. Adətən [email protected] əvvəlki təcrübədən hələ aktiv idi və ya satıcı müştərisi öz daemonunu işə salırdı, və iki sahib eyni təyinat üçün marşrutlar və DNS yazırdı. NetworkManager resolver-i öz yolu ilə qurur, wg-quick resolvconf vasitəsilə yazır və son yazan qalib gəlir — buna görə ad həlli işləyir, sonra dayanır, sonra yenidən işləyir. systemctl status wg-quick@wg0, nmcli connection show --active və ip link show type wireguard yoxlayın, sonra metric-i tənzimləmək əvəzinə ikinci sahibi söndürün.
Əgər həqiqətən hər ikisi lazımdırsa, onlara ayrı interfeyslər və kəsişməyən icazə verilən IP-lər verin və standart marşrutu tam olaraq biri quraşdırsın. Fərqli metric-li iki standart marşrut split tunnel deyil; bu, ikinci başlayan xidmətin həll etdiyi yarışdır. Və yenidən qoşulduqdan sonra tətbiq olunmuş vəziyyəti yenidən yoxlayın — hər şeyi işlək edən birdəfəlik əl ilə resolver düzəlişi idxalın tam olduğuna sübut deyil.
Trafiklə yoxlayın və yenidən başlatmadan sağ çıxın
Bağlantını nmcli connection up "Work VPN" ilə qaldırın, sonra ikona güvənmək əvəzinə vəziyyəti, ünvanı və marşrutları oxuyun: nmcli device show wg0 | grep -E 'GENERAL.STATE|IP4.ADDRESS|IP4.ROUTE', ip route show default və yalnız tunelin içində həll olunan adın həqiqi sorğusu. Handshake və ya uğurlu ping yalnız kriptoqrafiyanın işlədiyini sübut edir; yönləndirmə, split tunnel prefiksləri və ya şəxsi DNS haqqında heç nə demir, adətən qırılan hissələr də elə bunlardır.
Sonra yenidən başladın və təkrarlayın. Autoconnect davranışı, adı dəyişdirilmiş interfeys və cihazdan sonra yüklənən plugin — hamısı yalnız təmiz açılışda gördüyünüz nasazlıqlardır. journalctl -u NetworkManager -b --no-pager | tail -n 40 daemonun bu açılışda bu bağlantı ilə nə etdiyini göstərir. İkinci masaüstü üçün keyfile-ı kopyalayın və root mülkiyyətində 600 rejimində saxlayın, ya da OpenVPN üçün nmcli connection export istifadə edin və yaranan .ovpn faylını yenidən idxal edin — ixrac yolu üçün WireGuard ekvivalenti yoxdur, buna görə bu istiqamət fayl kopyası və ya qorunan orijinaldan yeni idxaldır.
Qısa versiya, sıra ilə: plugini və ya NetworkManager versiyasını təsdiqləyin, mütləq yoldan idxal edin, secret bayraqları daxil olmaqla təhlil edilmiş ayarları oxuyun, OpenVPN ixracını orijinalla müqayisə edin, WireGuard tərəfində hook-ları və marşrutları yoxlayın, hər ikinci sahibi söndürün və yenidən başlatmadan sonra ad sorğusunu və marşrut cədvəlini yoxlayın. Bağlantı bütün bunlardan keçdikdə, onu başladan profil faylı qorunan saxlanmaya qayıda bilər.