NetworkManager импорту OpenVPN жана WireGuard файлдарында ийгиликсиз болот
Адатта профиль эмес, талдоочу бузулат. Плагинди текшериңиз, импортталган туташууну окуңуз, secret желекчелерин жана маршруттарды оңдоңуз, анан кайра жүктөөнү текшериңиз.
GNOME жөндөөлөрүндө Файлдан импорттоо… тандадым, өндүрүүчүнүн кардары менен иштеген профилди тандадым, диалог тизмеге эч нерсе кошпой жабылды. Экинчи ноутбукта импорт аяктады, туташуу профилдин аты менен пайда болду, анан биринчи аутентификация суроосунда ийгиликсиз болду. NetworkManager сиздин .ovpn же wg-quick файлын эч качан ошол бойдон иштетпейт. Ал файлды талдоочуга берет, талдоочу аны NetworkManager'дун өз туташуу форматына айландырат, ошондон кийин туннель ушул талданган объектиден курулат — сырлар, маршруттар, DNS жана калганы. Демек пайдалуу суроо файл эмне үчүн бузулган дегенде эмес, талдоо болдубу жана эмнени сактады дегенде.
Импорт файл менен чындыгында эмне кылат
OpenVPN үчүн талдоочу плагин пакетинде жашайт, ал түзгөн туташуу org.freedesktop.NetworkManager.openvpn сыяктуу D-Bus кызматына шилтеме жасайт. Плагин жок болсо, талдоочу да жок: тип nmcli үчүн белгисиз, ал эми VPN кошуунун графикалык тизмеси импорт жазуусун такыр көрсөтпөшү мүмкүн. WireGuard бир маанилүү жагынан айырмаланат — NetworkManager 1.30 сериясынан бери өзүнүн WireGuard жөндөөлөрүн алып жүрөт, ошондуктан өзүнчө плагин пакети жок, бирок wg-quick окугучу аны жеткирген курулуштарда гана бар.
Кандай болбосун файл бир жолу окулат. Жыйынтык /etc/NetworkManager/system-connections/ астында keyfile катары жазылат, туташуунун аты менен аталат, root'ко таандык жана башка колдонуучулар окуй албайт, анткени анда ачкыч материалы бар. Бул keyfile эми туташуу; баштапкы .ovpn кийин оңдоо эч нерсени өзгөртпөйт.
Үч симптом үч башка баскычка таандык. Импорт жазуусу жок болсо же тип белгисиз болсо, плагин же версия жетишпейт. Директиваны атаган импорт катасы талдоочу файлды окуп, анын бир бөлүгүн четке какканын билдирет. Бар болуп, бирок эч качан активдешпеген туташуу талданган объектинин толук эмес экенин же сервер аны четке какканын билдирет. Бир нерсени оңдоодон мурун кайсы үч учур сизде экенин аныктаңыз.
Профилди оңдоодон мурун плагинди ырастаңыз
Жок плагин так бузулган профилге окшош, ошондуктан адегенде пакетти текшериңиз. Debian жана Ubuntu'до OpenVPN колдоосу network-manager-openvpn жана иш тактасынын жардамчысы катары жеткирилет; Fedora'да пакеттер NetworkManager-openvpn жана NetworkManager-openvpn-gnome; Arch'та бул networkmanager-openvpn.
dpkg -l network-manager-openvpn-gnome | tail -n 2 rpm -q NetworkManager-openvpn pacman -Q networkmanager-openvpn
Анан абсолюттук жолдон импорттоңуз: nmcli connection import type openvpn file /home/you/profile.ovpn. Салыштырмалуу жолдор адатта иштейт, бирок каталогду алмаштырган shell тез импортту айланып өтүүгө айландырат. WireGuard үчүн nmcli --version текшериңиз жана ядро тарабы modprobe wireguard менен бар экенине ынаныңыз; модул жок машинада ийгиликтүү өткөн импорт түзмөгү эч качан көрүнбөгөн туташуу калтырат. nmcli маалымдамасы import ички командасын жана кабыл алынган тип аттарын документтештирет. Эгер type wireguard дароо четке кагылса, курулуш бул функциядан эски, туура кадам — дистрибутив пакети же backport, конфигурацияны каалаган каталогго көчүрүп, бир нерсе аны окуйт деп үмүт кылуу эмес.
OpenVPN туташуусун окуңуз, .ovpn эмес
Туташуу пайда болгондон кийин файлды кайра окубай, талданган жөндөөлөрдү окуңуз: nmcli connection show "Work VPN" | grep -E '^vpn\.'. Сизге remote жана порт, транспорт, идентификация материалы — ca, cert, key, tls-auth же tls-crypt — жана аутентификация ыкмасы керек. Жеке ачкычтын сырсөзү бар профилде sudo nmcli --show-secrets connection show "Work VPN" кошуңуз жана secret желекчелерин караңыз: 0 — none, демек сыр keyfile'да; 1 — agent-owned; 2 — not-saved, башкача айтканда ал эч качан keyfile'га жазылбайт; 4 — not-required, башкача айтканда сыр такыр керек эмес. Бул биттер, шкала эмес, ошондуктан 3 — жөн гана agent-owned плюс not-saved. Сессияда бир жолу суралган сыр — agent-owned (1), аны агент сурайт; бул үчүн өзүнчө желекче номери жок. Желекчелердин дал келбестиги профилдин иш тактасынын апплетинен туташып, скрипттен же жүктөөдө ийгиликсиз болушунун кадимки себеби.
Талдоочу эмнени таштаганын көрүүнүн эң тез жолу — плагинден файлды кайра жазуусун сурап, анан аны салыштыруу: nmcli connection export "Work VPN" /tmp/roundtrip.ovpn. Ошол diff'те жоголгон директивалар туташуу убагында болбойт. Hook'тор кадимки шектүүлөр — script-security, up, down жана route-up жогорулатылган укуктар менен иштеген скриптти күтөт жана атайылап өткөрүлбөйт. Импорт ийгиликтүү болушу үчүн текшерүүнү төмөндөтпөңүз жана кошумча укук бербеңиз; колдоого алынбаган опция адатта жеткиликсиз серверди эмес, плагиндин функция жыйындысын чагылдырат. Бул жүрүм-турумду NetworkManager dispatcher скриптине же сервер тараптагы саясатка которуңуз.
Идентификация талааларынын сакталганын да ырастаңыз: CA шилтемеси, remote-cert-tls жана профил таянган ар кандай ат текшерүүсү. Аларсыз көтөрүлгөн туташуу ошол даректе жооп берген нерсе менен сүйлөшүшү мүмкүн.
WireGuard туташуусун окуңуз, wg-quick файлын эмес
wg-quick файлы — shell семантикасы бар формат; импортталган туташуу — жөндөөлөр жыйындысы. PrivateKey интерфейстин жеке ачкычы болот, Address бир же бир нече IPv4 жана IPv6 дарегине айланат, DNS NetworkManager'дун resolver касиеттерине салыштырылат, MTU wireguard.mtu'га салыштырылат (wg-quick'тин өз демейки мааниси — 1420), ал эми ар бир peer блогу ачык ачкыч, endpoint, уруксат берилген IP жана persistent keepalive менен peer жазуусуна айланат. Эмне сакталганын nmcli --show-secrets connection show wg0 менен чыгарыңыз; эгер peer тизмеси бул чыгарылышта көрүнбөсө, keyfile'ды окуңуз:
sudo sed -n '/^\[wireguard\]/,/^\[/p' /etc/NetworkManager/system-connections/wg0.nmconnection
Сакталбаган нерсе — wg-quick'тин shell жарымы. PreUp, PostUp, PreDown, PostDown жана Table — ошол куралдын жүрүм-туруму, WireGuard интерфейсинин атрибуттары эмес, ошондуктан импорттон кийин аларды эч нерсе аткарбайт. Эгер баштапкы Table = off колдонуп, демейки маршрутту тынч калтырса, жаңы NetworkManager чыгарылыштары ошол эле максатта ip4-auto-default-route жана ip6-auto-default-route сунуштайт; туташуу скрипт сыяктуу жүрөт деп болжолдоонун ордуна аларды ачык коюңуз. Өзгөчө маршрутту түрткөн hook ошол маршрутту туташуунун маршруттоо жөндөөлөрүндө талап кылат, болбосо ал жөн эле жетишпейт.
Туташууга так бир ээсин бериңиз
Классикалык кийинки бузулуу — кийинки жүктөөгө чейин иштеп, анан циклге түшкөн туташуу. Адатта [email protected] мурунку тажрыйбадан дагы күйүп турар эле, же өндүрүүчүнүн кардары өз daemon'ун иштетип жаткан, жана эки ээ бирдей багыт үчүн маршруттар менен DNS жазышкан. NetworkManager resolver'ди өз жолу менен коёт, wg-quick resolvconf аркылуу жазат, акыркы жазган жеңет — ошондуктан ат чечүү иштейт, анан токтойт, анан кайра иштейт. systemctl status wg-quick@wg0, nmcli connection show --active жана ip link show type wireguard текшериңиз, анан metric'ин жөндөөнүн ордуна экинчи ээсин өчүрүңүз.
Эгер сизге чын эле экөө тең керек болсо, аларга өзүнчө интерфейстер жана кесилишпеген уруксат берилген IP бериңиз жана демейки маршрутту так бири орнотсун. Ар башка metric'тери бар эки демейки маршрут split tunnel эмес; бул экинчи болуп ишке кирген кызмат чечкен жарыш. Кайра туташкандан кийин колдонулган абалды дагы карап чыгыңыз — баарын иштеткен бир жолку кол менен resolver оңдоо импорттун толук экенине далил эмес.
Трафик менен текшериңиз жана кайра жүктөөдөн өтүңүз
Туташууну nmcli connection up "Work VPN" менен көтөрүңүз, анан белгичеге ишенүүнүн ордуна абалды, даректи жана маршруттарды окуңуз: nmcli device show wg0 | grep -E 'GENERAL.STATE|IP4.ADDRESS|IP4.ROUTE', ip route show default жана туннелдин ичинде гана чечилген аттын чыныгы суроосу. Handshake же ийгиликтүү ping криптографиянын иштешин гана далилдейт; ал форвардинг, split tunnel префикстери же жеке DNS жөнүндө эч нерсе айтпайт, ал эми адатта бузулган бөлүктөр — ушулар.
Анан кайра жүктөңүз жана кайталаңыз. Autoconnect жүрүм-туруму, аты өзгөртүлгөн интерфейс жана түзмөктөн кийин жүктөлгөн плагин — булардын баары таза жүктөөдө гана көрүнө турган бузулуулар. journalctl -u NetworkManager -b --no-pager | tail -n 40 daemon'дун ушул жүктөөдө ушул туташуу менен эмне кылганын көрсөтөт. Экинчи компьютер үчүн keyfile'ды көчүрүңүз жана аны root ээлигинде 600 режиминде кармаңыз, же OpenVPN үчүн nmcli connection export колдонуп, алынган .ovpn файлын кайра импорттоңуз — экспорт жолунун WireGuard баламасы жок, ошондуктан бул багыт файл көчүрмөсү же корголгон түпнускадан жаңы импорт.
Кыскача, тартиби менен: плагинди же NetworkManager версиясын ырастаңыз, абсолюттук жолдон импорттоңуз, secret желекчелерин кошуп талданган жөндөөлөрдү окуңуз, OpenVPN экспортун түпнуска менен салыштырыңыз, WireGuard тарабындагы hook'торду жана маршруттарды текшериңиз, ар кандай экинчи ээсин өчүрүңүз, анан кайра жүктөөдөн кийин ат чечүүнү жана маршрут таблицасын текшериңиз. Туташуу ушунун баарынан өтсө, аны баштаган профиль файлы корголгон кампага кайта алат.