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. ஒப்பீட்டு பாதைகள் பொதுவாக வேலை செய்கின்றன, ஆனால் அடைவை மாற்றிய ஷெல் விரைவான இறக்குமதியை சுற்றுவழியாக்கும். 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. அந்த வேறுபாட்டில் மறையும் கட்டளைகள் இணைப்பின் போது இருக்காது. கொக்கிகள் வழக்கமான சந்தேகத்திற்குரியவை — script-security, up, down மற்றும் route-up உயர் அதிகாரத்துடன் இயங்கும் ஸ்கிரிப்டை எதிர்பார்க்கின்றன, வேண்டுமென்றே மாற்றப்படுவதில்லை. சரிபார்ப்பைக் குறைக்கவோ இறக்குமதி வெற்றிபெற கூடுதல் சலுகைகளை வழங்கவோ வேண்டாம்; ஆதரிக்கப்படாத விருப்பம் பொதுவாக செருகுநிரலின் அம்சத் தொகுப்பைக் காட்டுகிறது, அணுக முடியாத சேவையகத்தை அல்ல. அந்த நடத்தையை NetworkManager dispatcher ஸ்கிரிப்ட் அல்லது சேவையகப் பக்கக் கொள்கைக்கு நகர்த்தவும்.
அடையாளப் புலங்கள் தப்பினவா என்பதையும் உறுதிசெய்யவும்: CA குறிப்பு, remote-cert-tls மற்றும் சுயவிவரம் நம்பிய எந்தப் பெயர்ச் சரிபார்ப்பும். இவை இல்லாமல் எழும் இணைப்பு அந்த முகவரியில் பதிலளிக்கும் எதனுடனோ பேசிக்கொண்டிருக்கலாம்.
WireGuard இணைப்பைப் படிக்கவும், wg-quick கோப்பு அல்ல
wg-quick கோப்பு ஷெல் பொருள் கொண்ட வடிவம்; இறக்குமதி செய்யப்பட்ட இணைப்பு அமைப்புகளின் தொகுப்பு. 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 இன் ஷெல் பாதி. PreUp, PostUp, PreDown, PostDown மற்றும் Table அந்தக் கருவியின் நடத்தை, WireGuard இடைமுகத்தின் பண்புகள் அல்ல, எனவே இறக்குமதிக்குப் பிறகு எதுவும் அவற்றை இயக்குவதில்லை. அசல் இயல்புநிலை வழியைத் தொடாமல் விட Table = off ஐப் பயன்படுத்தியிருந்தால், புதிய NetworkManager வெளியீடுகள் அதே நோக்கத்திற்கு ip4-auto-default-route மற்றும் ip6-auto-default-route ஐ வழங்குகின்றன; இணைப்பு ஸ்கிரிப்ட் போல நடக்கும் என்று கருதாமல் அவற்றை வெளிப்படையாக அமைக்கவும். தனிப்பயன் வழியைத் தள்ளிய கொக்கி அந்த வழியை இணைப்பின் வழியமைப்பு அமைப்புகளில் தேவைப்படுத்தும், இல்லையேல் அது வெறுமனே காணாமல் போகும்.
இணைப்புக்கு சரியாக ஒரு உரிமையாளரைக் கொடுங்கள்
வழக்கமான அடுத்த தோல்வி என்பது அடுத்த துவக்கம்வரை வேலை செய்து பின்னர் சுழற்சியில் சிக்கும் இணைப்பு. பொதுவாக [email protected] முந்தைய சோதனையிலிருந்து இன்னும் இயக்கப்பட்டிருந்தது, அல்லது விற்பனையாளரின் கிளையண்ட் அதன் சொந்த டீமனை இயக்கிக்கொண்டிருந்தது, மேலும் இரண்டு உரிமையாளர்கள் ஒரே இலக்குக்கு வழிகளையும் DNS ஐயும் எழுதிக்கொண்டிருந்தனர். NetworkManager தன் வழியாக resolver ஐ அமைக்கிறது, wg-quick resolvconf வழியாக எழுதுகிறது, கடைசியாக எழுதியவர் வெல்கிறார் — எனவே பெயர்த் தீர்வு வேலை செய்கிறது, பிறகு நிற்கிறது, பிறகு மீண்டும் வேலை செய்கிறது. systemctl status wg-quick@wg0, nmcli connection show --active மற்றும் ip link show type wireguard ஐச் சரிபார்த்து, பின்னர் இரண்டாவது உரிமையாளரை முடக்கவும், அதன் metric ஐ மாற்றுவதற்குப் பதிலாக.
உண்மையில் இரண்டும் தேவைப்பட்டால், வெவ்வேறு இடைமுகங்களையும் ஒன்றையொன்று தொடாத அனுமதிக்கப்பட்ட IP களையும் கொடுத்து, இயல்புநிலை வழியை சரியாக ஒன்று மட்டும் நிறுவட்டும். வெவ்வேறு metrics கொண்ட இரண்டு இயல்புநிலை வழிகள் split tunnel அல்ல; அது இரண்டாவதாகத் தொடங்கும் சேவை தீர்மானிக்கும் பந்தயம். மீண்டும் இணைந்த பிறகு பயன்படுத்தப்பட்ட நிலையை மீண்டும் பார்க்கவும் — resolver ஐ ஒருமுறை கைமுறையாகத் திருத்தி எல்லாம் வேலை செய்வது இறக்குமதி முழுமையானது என்பதற்கான சான்று அல்ல.
போக்குவரத்தால் சரிபார்த்து மறுதொடக்கத்தைத் தாங்குங்கள்
இணைப்பை nmcli connection up "Work VPN" மூலம் ஏற்றி, பின்னர் ஐகானை நம்பாமல் நிலை, முகவரி மற்றும் வழிகளைப் படிக்கவும்: nmcli device show wg0 | grep -E 'GENERAL.STATE|IP4.ADDRESS|IP4.ROUTE', ip route show default மற்றும் சுரங்கப்பாதைக்குள் மட்டுமே தீரும் பெயருக்கான உண்மையான வினவல். கைகுலுக்கல் அல்லது வெற்றிகரமான ping குறியாக்கம் வேலை செய்கிறது என்பதை மட்டுமே நிரூபிக்கிறது; அது முன்னனுப்புதல், split tunnel முன்னொட்டு அல்லது தனிப்பட்ட DNS பற்றி எதுவும் சொல்லாது, பொதுவாக அந்தப் பகுதிகளே உடைகின்றன.
பின்னர் மறுதொடக்கம் செய்து மீண்டும் செய்யவும். autoconnect நடத்தை, பெயர் மாற்றப்பட்ட இடைமுகம் மற்றும் சாதனத்திற்குப் பின் ஏற்றப்படும் செருகுநிரல் — இவை அனைத்தும் சுத்தமான துவக்கத்தில் மட்டுமே தெரியும் தோல்விகள். journalctl -u NetworkManager -b --no-pager | tail -n 40 இந்த துவக்கத்தில் டீமன் இந்த இணைப்புடன் என்ன செய்தது என்பதைக் காட்டுகிறது. இரண்டாவது கணினிக்கு keyfile ஐ நகலெடுத்து root உடைமையில் 600 பயன்முறையுடன் வைத்திருங்கள், அல்லது OpenVPN க்கு nmcli connection export ஐப் பயன்படுத்தி உருவான .ovpn ஐ மீண்டும் இறக்குமதி செய்யுங்கள் — ஏற்றுமதிப் பாதைக்கு WireGuard இல் இணையானது இல்லை, எனவே அந்தத் திசை கோப்பு நகல் அல்லது பாதுகாக்கப்பட்ட அசலிலிருந்து புதிய இறக்குமதி.
சுருக்கமான பதிப்பு, வரிசையாக: செருகுநிரல் அல்லது NetworkManager பதிப்பை உறுதிசெய்து, முழுமையான பாதையிலிருந்து இறக்குமதி செய்து, secret கொடிகள் உட்பட பகுப்பாய்வு செய்யப்பட்ட அமைப்புகளைப் படித்து, OpenVPN ஏற்றுமதியை அசலுடன் ஒப்பிட்டு, WireGuard பக்கத்தில் கொக்கிகள் மற்றும் வழிகளைச் சரிபார்த்து, எந்த இரண்டாவது உரிமையாளரையும் முடக்கி, பின்னர் மறுதொடக்கத்திற்குப் பின் பெயர்த் தீர்வையும் வழி அட்டவணையையும் சரிபார்க்கவும். ஒரு இணைப்பு இவை அனைத்தையும் கடந்தால், அதைத் தொடங்கிய சுயவிவரக் கோப்பு பாதுகாக்கப்பட்ட சேமிப்புக்குத் திரும்பலாம்.