GNOME тохиргоонд Файлаас импортлох… сонгож, нийлүүлэгчийн клиенттэй ажилладаг профайлыг сонгосон бөгөөд диалог жагсаалтад юу ч нэмэхгүйгээр хаагдсан. Хоёр дахь зөөврийн компьютер дээр импорт дууссан, холболт профайлын нэрээр гарч ирсэн, дараа нь эхний баталгаажуулалтын хүсэлт дээр бүтэлгүйтсэн. NetworkManager таны .ovpn эсвэл wg-quick файлыг хэзээ ч байгаа хэвээр нь ажиллуулдаггүй. Файлыг задлагчид өгдөг, задлагч түүнийг NetworkManager-ийн өөрийн холболтын формат болгон хувиргаж, тэр цагаас хойш туннель энэ задлагдсан объектоос баригдана — нууцууд, маршрутууд, DNS болон бусад бүх зүйл. Тиймээс ашигтай асуулт нь файл яагаад эвдэрсэн бэ гэдэг биш, харин задлан уншилт болсон эсэх, юу хадгалагдсан бэ гэдэг юм.

Импорт файлтай үнэхээр юу хийдэг

OpenVPN-ийн хувьд задлагч plugin багцад амьдардаг бөгөөд түүний үүсгэсэн холболт org.freedesktop.NetworkManager.openvpn шиг D-Bus үйлчилгээг заадаг. Plugin байхгүй бол задлагч байхгүй: төрөл нь nmcli-д танигдахгүй, график VPN нэмэх жагсаалт импортын бичлэг огт харуулахгүй байж болно. WireGuard нэг чухал зүйлээр ялгаатай — NetworkManager 1.30 цувралаас хойш өөрийн WireGuard тохиргоог авч явдаг тул тусдаа plugin багц байхгүй, гэхдээ wg-quick уншигч зөвхөн түүнийг нийлүүлдэг бүтээцүүдэд байдаг.

Ямар ч тохиолдолд файлыг нэг удаа уншдаг. Үр дүн нь /etc/NetworkManager/system-connections/ дор keyfile хэлбэрээр бичигдэж, холболтын нэрээр нэрлэгдэж, root-д харьяалагдаж, бус хэрэглэгчдэд уншигдахгүй, учир нь түлхүүрийн материал агуулдаг. Энэ keyfile одоо холболт болж байна; анхны .ovpn-ийг дараа нь засах нь юу ч өөрчлөхгүй.

Гурван шинж тэмдэг гурван өөр үе шатанд хамаарна. Импортын бичлэг байхгүй эсвэл төрөл танигдахгүй байх нь plugin эсвэл хувилбар дутуу гэсэн үг. Зааварчилгаа нэрлэсэн импортын алдаа нь задлагч файлыг уншиж, нэг хэсгийг нь татгалзсан гэсэн үг. Байгаа боловч хэзээ ч идэвхжихгүй холболт нь задлагдсан объект бүрэн бус эсвэл сервер татгалзаж байгаа гэсэн үг. Ямар нэг зүйлийг засахаас өмнө аль гурван тохиолдол таны доор байгааг шийдээрэй.

Профайлыг дибаг хийхийн өмнө plugin-ийг баталгаажуул

Дутуу plugin яг эвдэрсэн профайл шиг харагдана, тиймээс эхлээд багцыг шалгана уу. 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) бөгөөд үүнийг agent асуудаг; үүнд тусдаа тугны дугаар байхгүй. Тугны зөрчил нь профайл ширээний апплетаас холбогдож, скрипт эсвэл ачаалах үед бүтэлгүйтдэг ердийн шалтгаан юм.

Задлагч юу хаясныг харах хамгийн хурдан арга бол plugin-оос файлыг буцааж бичихийг хүсээд дараа нь харьцуулах: nmcli connection export "Work VPN" /tmp/roundtrip.ovpn. Тэр diff-д алга болсон зааварчилгаа холбогдох үед байхгүй. Hook-ууд ердийн сэжигтнүүд — script-security, up, down болон route-up нь өндөрлөсөн эрхтэй скриптийг хүлээдэг бөгөөд санаатайгаар шилжүүлэгддэггүй. Импорт амжилттай болохын тулд шалгалтыг буулгаж болохгүй, нэмэлт эрх өгөх хэрэггүй; дэмжигдээгүй сонголт нь ихэвчлэн хүрэх боломжгүй серверийг биш, plugin-ийн функцын багцыг илэрхийлдэг. Энэ зан төлөвийг 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-ийн зан төлөв, нэр солигдсон интерфейс болон төхөөрөмжийн дараа ачаалагддаг plugin нь зөвхөн цэвэр ачаалал дээр хардаг гэмтлүүд юм. journalctl -u NetworkManager -b --no-pager | tail -n 40 daemon энэ ачаалалд энэ холболттой юу хийснийг харуулна. Хоёр дахь компьютерт keyfile-г хуулж, root-ийн эзэмшилд 600 горимд байлга, эсвэл OpenVPN-д nmcli connection export ашиглаж, үүссэн .ovpn-г дахин импортол — экспортын замд WireGuard-ийн дүйцэл байхгүй тул энэ чиглэл нь файлын хуулбар эсвэл хамгаалагдсан эх хувилбараас шинэ импорт.

Товч хувилбар, дарааллаар: plugin эсвэл NetworkManager хувилбарыг баталгаажуул, үнэмлэхүй замаас импортол, secret тугнуудыг оролцуулан задлагдсан тохиргоог унш, OpenVPN экспортыг эх хувилбартай харьцуул, WireGuard талд hook болон маршрутыг шалга, аливаа хоёр дахь эзнийг унтраа, дараа нь дахин ачаалсны дараа нэрийн шийдэл болон маршрутын хүснэгтийг шалга. Холболт энэ бүгдийг давахад түүнийг эхлүүлсэн профайл файл хамгаалагдсан санд буцаж болно.

Холбоотой нийтлэлүүд