Mo yan Gbéwọlé láti fáìlì… nínú Àwọn Ètò GNOME, mo yan àkọsílẹ̀ tí ó ń ṣiṣẹ́ pẹ̀lú ẹ̀rọ ìbánisọ̀rọ̀ olùpèsè, ìjíròrò náà sì tìí láìfi ohunkóhun kún àkójọ náà. Ní kọ̀mpútà àgbékalẹ̀ kejì ìgbéwọlé parí, ìsopọ̀ náà fi ara hàn pẹ̀lú orúkọ àkọsílẹ̀ náà, lẹ́yìn náà ó kùnà ní ìbéèrè ìjẹ́rìí àkọ́kọ́. NetworkManager kì í ṣe fáìlì .ovpn tàbí wg-quick rẹ bí ó ti wà rárá. Ó ń fi fáìlì náà fún aṣàyẹ̀wò, aṣàyẹ̀wò náà yí i padà sí ọ̀nà ìsopọ̀ ti NetworkManager fúnra rẹ̀, àti láti ìgbà yẹn tunnel náà ni a kọ́ láti inú ohun tí a ti ṣàyẹ̀wò yẹn — àwọn àṣírí, àwọn ọ̀nà, DNS àti gbogbo rẹ̀. Nítorí náà ìbéèrè tí ó wúlò kì í ṣe ìdí tí fáìlì náà fi bàjẹ́, bí kò ṣe bóyá ìṣàyẹ̀wò náà ṣẹlẹ̀ àti ohun tí ó pa mọ́.

Ohun tí ìgbéwọlé ń ṣe pẹ̀lú fáìlì náà ní ti gidi

Fún OpenVPN, aṣàyẹ̀wò náà wà nínú àpò plugin, ìsopọ̀ tí ó ń dá sì tọ́ka sí iṣẹ́ D-Bus bí org.freedesktop.NetworkManager.openvpn. Láìsí plugin, kò sí aṣàyẹ̀wò: nmcli kò mọ irú náà, àkójọ àfikún VPN àwòrán lè má fi ẹ̀ka ìgbéwọlé hàn rárá. WireGuard yàtọ̀ ní kókó kan tí ó ṣe pàtàkì — NetworkManager ní àwọn ètò WireGuard tirẹ̀ láti ìlà 1.30, nítorí náà kò sí àpò plugin ọ̀tọ̀, ṣùgbọ́n olùkàwé wg-quick wà nínú àwọn ìkọ́ tí ó ń fi í lọ nìkan.

Bí ó ti wù kí ó rí, a ka fáìlì náà lẹ́ẹ̀kan. A kọ àbájáde náà gẹ́gẹ́ bí keyfile lábẹ́ /etc/NetworkManager/system-connections/, a sọ ọ́ ní orúkọ ìsopọ̀ náà, ó jẹ́ ti root àti àwọn olùmúlò mìíràn kò lè kà á nítorí ó ní ohun èlò kọ́kọ́rọ́. Keyfile yẹn ni ìsopọ̀ báyìí; ṣíṣe àtúnṣe fáìlì .ovpn ìpilẹ̀ lẹ́yìn náà kò yí ohunkóhun padà.

Àwọn àmì mẹ́ta wà ní àwọn ìpele mẹ́ta ọ̀tọ̀ọ̀tọ̀. Kò sí ẹ̀ka ìgbéwọlé tàbí irú àìmọ̀ túmọ̀ sí pé plugin tàbí ẹ̀yà kù. Àṣìṣe ìgbéwọlé tí ó dárúkọ ìtọ́ni túmọ̀ sí pé aṣàyẹ̀wò náà ka fáìlì náà ó sì kọ apá kan rẹ̀. Ìsopọ̀ tí ó wà ṣùgbọ́n tí kò mú ṣiṣẹ́ rárá túmọ̀ sí pé ohun tí a ṣàyẹ̀wò kò pé tàbí olùpèsè ń kọ̀ ọ́. Pinnu èwo nínú àwọn ọ̀ràn mẹ́ta náà ni ó jẹ́ tirẹ̀ kí o tó ṣe àtúnṣe ohunkóhun.

Ìjẹ́rìí plugin kí o tó ṣàyẹ̀wò àkọsílẹ̀ náà

Plugin tí ó kù dàbí àkọsílẹ̀ tí ó bàjẹ́ gan-an, nítorí náà kọ́kọ́ ṣàyẹ̀wò àpò náà. Ní Debian àti Ubuntu àtìlẹ́yìn OpenVPN wá gẹ́gẹ́ bí network-manager-openvpn pẹ̀lú olùrànlọ́wọ́ ojú-iṣẹ́; ní Fedora àwọn àpò ni NetworkManager-openvpn àti NetworkManager-openvpn-gnome; ní Arch ó jẹ́ networkmanager-openvpn.

dpkg -l network-manager-openvpn-gnome | tail -n 2
rpm -q NetworkManager-openvpn
pacman -Q networkmanager-openvpn

Lẹ́yìn náà gbé wọlé láti ọ̀nà pípé: nmcli connection import type openvpn file /home/you/profile.ovpn. Àwọn ọ̀nà ìbátan máa ń ṣiṣẹ́, ṣùgbọ́n shell tí ó ti yí àkójọpọ̀ padà yí ìgbéwọlé kíákíá padà sí ọ̀nà yíyí. Fún WireGuard ṣàyẹ̀wò nmcli --version kí o sì rí i dájú pé ẹ̀gbẹ́ kérnéẹ̀lì wà pẹ̀lú modprobe wireguard; ìgbéwọlé tí ó ṣàṣeyọrí lórí ẹ̀rọ tí kò ní module yóò fi ọ́ sílẹ̀ pẹ̀lú ìsopọ̀ tí ẹ̀rọ rẹ̀ kò ní fi ara hàn rárá. ìtọ́kasí nmcli ṣàkọsílẹ̀ àṣẹ abẹ́ import àti àwọn orúkọ irú tí a gbà. Tí wọ́n bá kọ̀ type wireguard lẹ́ẹ̀kọ̀ọ̀kan, ìkọ́ náà ti pẹ́ ju ẹ̀yà yìí lọ, ìgbésẹ̀ tí ó tọ́ sì ni àpò ìpínkiri tàbí backport — kì í ṣe dídààkọ ìṣètò sínú àkójọpọ̀ àìdábọ̀ pẹ̀lú ìrètí pé ohun kan yóò kà á.

Ka ìsopọ̀ OpenVPN, kì í ṣe .ovpn

Nígbà tí ìsopọ̀ bá wà, ka àwọn ètò tí a ṣàyẹ̀wò dípò kíkà fáìlì náà lẹ́ẹ̀kan sí i: nmcli connection show "Work VPN" | grep -E '^vpn\.'. Ìwọ fẹ́ remote àti ibùdó, ọ̀nà gbígbé, ohun èlò ìdánimọ̀ — ca, cert, key, tls-auth tàbí tls-crypt — àti ọ̀nà ìjẹ́rìí. Nínú àkọsílẹ̀ tí ó ní ọ̀rọ̀ ìpamọ́ kọ́kọ́rọ́ àdáni, fi sudo nmcli --show-secrets connection show "Work VPN" kún un kí o sì wo secret flags: 0 jẹ́ none, nítorí náà àṣírí wà nínú keyfile; 1 jẹ́ agent-owned; 2 jẹ́ not-saved, ìyẹn ni pé a kì í kọ ọ́ sínú keyfile rárá; 4 jẹ́ not-required, ìyẹn ni pé a kò nílò àṣírí rárá. Bítì ni wọ́n, kì í ṣe ìwọ̀n, nítorí náà 3 jẹ́ agent-owned pẹ̀lú not-saved lásán. Àṣírí tí a béèrè lẹ́ẹ̀kan lórí ìpàdé jẹ́ agent-owned (1), pẹ̀lú agent tí ó ń béèrè rẹ̀; kò sí nọ́mbà àmì ọ̀tọ̀ fún ìyẹn. Àìbáramu àwọn àmì ni ìdí tí ó wọ́pọ̀ tí àkọsílẹ̀ fi ń so mọ́ láti applet ojú-iṣẹ́ tí ó sì ń kùnà láti script tàbí ní àkókò ìbẹ̀rẹ̀.

Ọ̀nà tí ó yára jùlọ láti rí ohun tí aṣàyẹ̀wò náà dà nù ni láti ní kí plugin kọ fáìlì náà padà, kí o sì fi wé e: nmcli connection export "Work VPN" /tmp/roundtrip.ovpn. Àwọn ìtọ́ni tí ó padà nù nínú ìyàtọ̀ yẹn kò ní wà ní àkókò ìsopọ̀. Hook ni a sábà ń fura sí — script-security, up, down àti route-up ń retí script tí a ń ṣe pẹ̀lú àṣẹ gíga, a kò sì gbé wọn lọ mọ̀ọ́mọ̀. Má dín ìjẹ́rìí kù, má sì fún ní àǹfààní àfikún kí ìgbéwọlé lè ṣàṣeyọrí; àṣàyàn tí a kò tìlẹ́yìn máa ń fi àkójọ ẹ̀yà plugin hàn, kì í ṣe olùpèsè tí kò lè dé. Gbé ìhùwàsí yẹn lọ sínú script dispatcher NetworkManager tàbí ìlànà ẹ̀gbẹ́ olùpèsè.

Tún rí i dájú pé àwọn pápá ìdánimọ̀ yè bọ́: ìtọ́kasí CA, remote-cert-tls àti ìwádìí orúkọ èyíkéyìí tí àkọsílẹ̀ gbẹ́kẹ̀lé. Ìsopọ̀ tí ó dìde láìsí wọ́n lè ń bá ohunkóhun tí ó dáhùn ní àdírẹ́sì yẹn sọ̀rọ̀.

Ka ìsopọ̀ WireGuard, kì í ṣe fáìlì wg-quick

Fáìlì wg-quick jẹ́ ọ̀nà pẹ̀lú ìtumọ̀ shell; ìsopọ̀ tí a gbé wọlé jẹ́ àkójọ ètò. PrivateKey di kọ́kọ́rọ́ àdáni ti interface, Address di àdírẹ́sì IPv4 àti IPv6 kan tàbí jù bẹ́ẹ̀ lọ, DNS máa ń yí padà sí àwọn ohun-ìní resolver ti NetworkManager, MTU yí padà sí wireguard.mtu (iye àkọ́kọ́ ti wg-quick fúnra rẹ̀ ni 1420), gbogbo blọ́ọ̀kù peer sì di ẹ̀ka peer pẹ̀lú kọ́kọ́rọ́ gbangba, endpoint, IP tí a gbà àti persistent keepalive. Tẹ̀wé ohun tí a fipamọ́ pẹ̀lú nmcli --show-secrets connection show wg0; tí àkójọ peer kò bá farahàn nínú ìjáde yẹn, ka keyfile:

sudo sed -n '/^\[wireguard\]/,/^\[/p' /etc/NetworkManager/system-connections/wg0.nmconnection

Ohun tí kò yè bọ́ ni ìdajì shell ti wg-quick. PreUp, PostUp, PreDown, PostDown àti Table jẹ́ ìhùwàsí irinṣẹ́ yẹn, kì í ṣe àwọn ànímọ́ interface WireGuard, nítorí náà kò sí ohun tí ó ń ṣe wọ́n lẹ́yìn ìgbéwọlé. Tí ìpilẹ̀ bá lo Table = off láti fi ọ̀nà àkọ́kọ́ sílẹ̀ ní àlàáfíà, àwọn ìtújáde NetworkManager tuntun ń pèsè ip4-auto-default-route àti ip6-auto-default-route fún ìdí kan náà; ṣètò wọ́n ní gbangba dípò ríronú pé ìsopọ̀ náà ń ṣe bí script. Hook tí ó ń ti ọ̀nà àkànṣe jáde nílò ọ̀nà yẹn nínú àwọn ètò ìtọ́sọ́nà ìsopọ̀ náà, bí bẹ́ẹ̀ kọ́ yóò kàn má wà.

Fún ìsopọ̀ náà ní olùní kan ṣoṣo

Ìkùnà tí ó tẹ̀le ni ìsopọ̀ tí ó ń ṣiṣẹ́ títí dé ìbẹ̀rẹ̀ tó ń bọ̀ tí ó sì wọ inú àyíká. Ní ọ̀pọ̀ ìgbà [email protected] ṣì ń ṣiṣẹ́ láti àdánwò àtẹ̀yìnwá, tàbí ẹ̀rọ ìbánisọ̀rọ̀ olùpèsè ń gbé daemon tirẹ̀ kalẹ̀, àti olùní méjì ń kọ àwọn ọ̀nà àti DNS fún ibi kan náà. NetworkManager ń gbé resolver kalẹ̀ ní ọ̀nà tirẹ̀, wg-quick ń kọ nípasẹ̀ resolvconf, ẹni tí ó kẹ́yìn tí ó kọ ni ó ń borí — nítorí náà yíyanjú orúkọ ń ṣiṣẹ́, lẹ́yìn náà ó dúró, lẹ́yìn náà ó tún ṣiṣẹ́. Ṣàyẹ̀wò systemctl status wg-quick@wg0, nmcli connection show --active àti ip link show type wireguard, lẹ́yìn náà dà olùní kejì dúró dípò títún metric rẹ̀ ṣe.

Tí ìwọ bá nílò àwọn méjèèjì gan-an, fún wọn ní interface ọ̀tọ̀ọ̀tọ̀ àti IP tí a gbà tí kò parapọ̀, kí o sì jẹ́ kí ẹni kan ṣoṣo gbé ọ̀nà àkọ́kọ́ kalẹ̀. Ọ̀nà àkọ́kọ́ méjì pẹ̀lú metric ọ̀tọ̀ọ̀tọ̀ kì í ṣe split tunnel; ìdíje ni tí iṣẹ́ tí ó bẹ̀rẹ̀ kejì ń pinnu. Lẹ́yìn àtúnso pọ̀, tún wo ipò tí a fi sílẹ̀ — àtúnṣe resolver pẹ̀lú ọwọ́ lẹ́ẹ̀kan tí ó mú kí nǹkan ṣiṣẹ́ kì í ṣe ẹ̀rí pé ìgbéwọlé pé.

Ṣàjẹ́rìí pẹ̀lú ìjáde ìrìnàjò kí o sì yè bọ́ lẹ́yìn ìtúnjáde

Gbé ìsopọ̀ náà ró pẹ̀lú nmcli connection up "Work VPN", lẹ́yìn náà ka ipò, àdírẹ́sì àti àwọn ọ̀nà dípò gbẹ́kẹ̀lé àwòrán: nmcli device show wg0 | grep -E 'GENERAL.STATE|IP4.ADDRESS|IP4.ROUTE', ip route show default àti ìwádìí gidi ti orúkọ tí a ń yanjú nínú tunnel nìkan. Handshake tàbí ping tí ó ṣàṣeyọrí fi hàn pé ìsekóòdù ń ṣiṣẹ́ nìkan; kò sọ ohunkóhun nípa gbígbé jáde, àwọn àkọ́kọ́ split tunnel tàbí DNS àdáni, àwọn apá yẹn sì ni ó sábà ń bàjẹ́.

Lẹ́yìn náà túnjáde kí o sì tún ṣe. Ìhùwàsí autoconnect, interface tí a tún sọ orúkọ rẹ̀ àti plugin tí ó ń gbé wọlé lẹ́yìn ẹ̀rọ náà jẹ́ gbogbo ìkùnà tí ìwọ kì í rí àfi ní ìbẹ̀rẹ̀ mímọ́. journalctl -u NetworkManager -b --no-pager | tail -n 40 fi hàn ohun tí daemon ṣe pẹ̀lú ìsopọ̀ yìí nínú ìbẹ̀rẹ̀ yìí. Fún kọ̀mpútà kejì, dààkọ keyfile kí o sì pa á mọ́ ní ìní root pẹ̀lú ipò 600, tàbí lo nmcli connection export fún OpenVPN kí o sì tún gbé .ovpn tí ó jáde wọlé — ọ̀nà ìgbékalẹ̀ jáde kò ní ìbámu WireGuard, nítorí náà ìtọ́sọ́nà yẹn jẹ́ dídààkọ fáìlì tàbí ìgbéwọlé tuntun láti ìpilẹ̀ tí a dáàbò bo.

Ẹ̀yà kúkúrú, ní tẹ̀lẹ̀tẹ̀lẹ̀: jẹ́rìí plugin tàbí ẹ̀yà NetworkManager, gbé wọlé láti ọ̀nà pípé, ka àwọn ètò tí a ṣàyẹ̀wò pẹ̀lú secret flags, fi ìgbékalẹ̀ jáde OpenVPN wé ìpilẹ̀, ṣàyẹ̀wò hook àti ọ̀nà ní ẹ̀gbẹ́ WireGuard, dà olùní kejì èyíkéyìí dúró, lẹ́yìn náà lẹ́yìn ìtúnjáde ṣàjẹ́rìí yíyanjú orúkọ àti tábìlì ọ̀nà. Nígbà tí ìsopọ̀ bá kọjá gbogbo rẹ̀, fáìlì àkọsílẹ̀ tí ó bẹ̀rẹ̀ rẹ̀ lè padà sínú ìpamọ́ tí a dáàbò bo.

Àwọn àpilẹ̀kọ tó jọra