Raspberry Pi tí ó kan ní láti dáàbò bo ìrìnàjò ìjáde tirẹ̀ ní ọ̀nà méjì tí ó gbéṣẹ́: jẹ́ kí olùṣàkóso nẹ́tíwọ́kì ní ọ̀nà àbẹ̀wò, tàbí kí o pa àkọsílẹ̀ tí ó ní í mọ́. Àwọn méjèèjì lè gbé ìrìnàjò. Wọ́n kùnà ní ibi ọ̀tọ̀ọ̀tọ̀, àti àìṣẹ́ tí o lè ṣàyẹ̀wò rẹ̀ ní ọ̀nà jíjìn ní agogo méjì òru ni èyí tí ó yẹ kí a yàn. Fi wọ́n wé nípa ìní, nípa ohun tí ọ̀nà àbẹ̀wò kíkún túmọ̀ sí nígbà tí IPv6 àti DNS bá wọlé, àti nípa ohun tí ó ṣẹlẹ̀ ní àkókò tí ọ̀nà àbẹ̀wò bá já.

Olùní méjì fún ọ̀nà àbẹ̀wò kan

Ìtẹ̀mọ́ A jẹ́ profáìlì nínú olùṣàkóso nẹ́tíwọ́kì ẹ̀rọ náà: profáìlì OpenVPN tí a kó wọlé tàbí ìsopọ̀ WireGuard ìbílẹ̀, tí a ń mú ṣiṣẹ́ nígbà ìbẹ̀rẹ̀ nípasẹ̀ iṣẹ́ kan náà tí ó gbé Ethernet àti Wi-Fi ró. Ìtẹ̀mọ́ B jẹ́ ẹ̀yà tirẹ tí ó ń ṣiṣẹ́ alábàákẹ́gbẹ́ náà ní tààrà, tí ó ń ṣàtúnṣe ìṣètò olùyọjáde àti tí ó ń fi àwọn ọ̀nà àti òfin odi iná tirẹ̀ sórí. Àwọn méjèèjì jẹ́ ìtẹ̀mọ́ tí ó tọ́; wọ́n yàtọ̀ ní ẹni tí a fún ní àṣẹ láti yí tábìlì ìtọ́sọ́nà padà.

Àwọn àìṣẹ́ yàtọ̀ nítorí àwọn olùní yàtọ̀. Nínú A, profáìlì tí kò bá ṣiṣẹ́ ń fi àgbékalẹ̀ sílẹ̀ ní òkè àti ọ̀nà àbẹ̀wò ní ìsàlẹ̀, àwọn àkọsílẹ̀ olùṣàkóso sì sọ ìdí. Nínú B, àkọsílẹ̀ tí ó ṣàṣeyọrí ìdajì ń fi àwọn ọ̀nà sílẹ̀ tí wọ́n yè kuro lẹ́yìn ìlànà tí ó dá wọn. Ṣíṣe àwọn méjèèjì ni àbájáde tí ó burú jù: ìlànà méjì ń kọ ọ̀nà àkọ́kọ́, àtúnṣe olùyọjáde méjì ń díje nígbà ìbẹ̀rẹ̀, àti ẹ̀ka àṣírí méjì tí a gbọ́dọ̀ yí.

Yan olùní kan fún ọ̀nà àbẹ̀wò kọ̀ọ̀kan kí o sì pa èkejì dé kí o tó dán ohunkóhun wò. Olùní méjì túmọ̀ sí ibi méjì láti wò nígbà tí ọ̀nà àbẹ̀wò wà lórí tí kò sì sí ohun tí ń yọjáde. Òfin kan ṣoṣo yẹn ń dènà ọ̀pọ̀lọpọ̀ àwọn ipò dídàrú tí a ṣàpèjúwe nínú àwọn ìjíròrò Pi VPN.

Ohun tí ìkó wọlé ń dá, àti ohun tí kò dá

Lórí Raspberry Pi OS Bookworm àti àwọn ẹ̀yà tuntun, irinṣẹ́ ìṣètò nẹ́tíwọ́kì àkọ́kọ́ ni NetworkManager, nítorí náà profáìlì ni ilé àdánidá fún ọ̀nà àbẹ̀wò alábàákẹ́gbẹ́. Ìkó wọlé nílò àfikún tí ó bá a mu tí a ti fi sórí ẹ̀rọ; láìsí rẹ̀, ìkó wọlé kùnà pẹ̀lú ìfiránṣẹ́ nípa irú ìsopọ̀ tí a kò ṣe àtìlẹ́yìn fún, èyí tí ó jẹ́ àmì olóòótọ́ láti dúró àti fi àfikún náà sórí.

nmcli connection import type openvpn file ./provider.ovpn
nmcli connection show
nmcli --ask connection up id provider-name

Ìkó wọlé ń tọ́jú profáìlì. Kò fi hàn pé a lè dé ẹ̀gbẹ́ kejì, kò sì ṣe ìdánilójú pé gbogbo ìtọ́sọ́nà nínú fáìlì náà yè kuro lẹ́yìn ìyípadà. Tún ìsopọ̀ tí ó jáde kà kí o sì yẹ̀wò àwọn apá tí ó ń gbé ìdánimọ̀ àti ìgbẹ́kẹ̀lé: ẹ̀rí, olùgbàlejò jíjìn àti ebute, àti bóyá a ń béèrè fún ọ̀rọ̀ ìpamọ́ tàbí a ń tọ́jú rẹ̀.

Mímú ṣiṣẹ́ pẹ̀lú --ask ń pa gbólóhùn ọ̀rọ̀ ìpamọ́ mọ́ ní ìta ìtàn shell lórí ẹ̀rọ tí a pín. Fún Pi tí kò ní àbójútó, nígbẹ̀yìnwá ìwọ yóò fẹ́ kí profáìlì náà gbé ró nígbà ìbẹ̀rẹ̀, èyí tí ó jẹ́ ìpinnu ọ̀tọ̀ sí gbígbé e ró lẹ́ẹ̀kan pẹ̀lú ọwọ́.

Ọ̀nà àbẹ̀wò kíkún, ní ìfiwéra àwọn ìtẹ̀mọ́ méjèèjì

Ọ̀nà àbẹ̀wò kíkún jẹ́ ọ̀rọ̀ nípa àwọn ọ̀nà, kì í ṣe nípa èrò, àwọn ìtẹ̀mọ́ méjèèjì sì ń sọ ọ́ ní ọ̀nà ọ̀tọ̀ọ̀tọ̀. Ọ̀nà profáìlì ń béèrè lọ́wọ́ olùṣàkóso láti fi ọ̀nà àkọ́kọ́ àti àwọn ìṣètò olùyọjáde rẹ̀ sórí; ọ̀nà àkọsílẹ̀ ń ṣe ohun tí àkọsílẹ̀ náà sọ, pẹ̀lú ṣíṣe kankan. Kò sí ìtẹ̀mọ́ tí ó ń bo IPv6 àyàfi tí a bá sọ fún un, ọ̀nà àkọ́kọ́ IPv6 tí a kò fọwọ́ kàn yóò sì gbé ìrìnàjò jáde kúrò nínú ọ̀nà àbẹ̀wò pẹ̀lú inú dídùn nígbà tí IPv4 yóò dà bí ẹni tí ó pé.

ip -4 route get 198.51.100.23
ip -6 route show default
resolvectl query example.org

Lo àdírẹ́sì ìwé fún wíwá ọ̀nà kí o sì fi olùgbàlejò tí a gbà ọ́ láyè láti yẹ̀wò rọ́pò rẹ̀. Àṣẹ àkọ́kọ́ fi hàn irú àgbékalẹ̀ tí Pi yóò lò fún àfojúsùn lasan; èkejì fi hàn bóyá ọ̀nà àkọ́kọ́ IPv6 ṣì wà; ẹ̀kẹta fi hàn irú olùyọjáde tí ó dáhùn. Ka àwọn mẹ́tẹ̀ẹ̀ta kí o tó gbà ọ̀rọ̀ kan nípa ọ̀nà àbẹ̀wò kíkún gbọ́.

Tí àwọn ìtọ́sọ́nà olùpèsè bá ṣèlérí ọ̀nà àbẹ̀wò kíkún ṣùgbọ́n ọ̀nà àkọ́kọ́ IPv6 bá ṣì wà, Pi ń jò. Pa IPv6 dé lórí ìsopọ̀ òkè tàbí béèrè lọ́wọ́ profáìlì láti gbà á, kí o sì pinnu pẹ̀lú ìmọ̀ dípò kí o ṣàwárí rẹ̀ nígbẹ̀yìn.

Àìṣẹ́ ṣíṣí lòdì sí àìṣẹ́ títì

Nígbà tí ọ̀nà àbẹ̀wò bá já, tábìlì ìtọ́sọ́nà tí ó pàdánù ọ̀nà àkọ́kọ́ rẹ̀ kàn ń padà sí ìsopọ̀ ti ara, ìrìnàjò sì ń tẹ̀síwájú ní gbangba. Ìyẹn ni àìṣẹ́ ṣíṣí, ó sì jẹ́ ìhùwàsí àkọ́kọ́ àwọn ìtẹ̀mọ́ méjèèjì àyàfi tí ohun kan bá dènà rẹ̀. Ọ̀pọ̀ ènìyàn ń ṣàwárí rẹ̀ lẹ́yìn ọ̀sẹ̀ pẹ̀lú kíkà àkọsílẹ̀ odi iná.

Àìṣẹ́ títì ń gba àǹfààní ìwọlé jíjìn lọ́wọ́ rẹ nígbà tí ọ̀nà àbẹ̀wò wà ní ìsàlẹ̀, nítorí náà ó nílò ìyàsọ́tọ̀ àmọ̀ọ́nú fún ọ̀nà ìṣàkóso. Ọ̀nà kan ni òfin tí ó ń gbà àdírẹ́sì ẹlẹgbẹ́ VPN nìkan láyè ní ìta ọ̀nà àbẹ̀wò:

sudo nft add table inet vpnkill
sudo nft 'add chain inet vpnkill out { type filter hook output priority 0; policy accept; }'
sudo nft add rule inet vpnkill out oifname != "tun0" ip daddr != 203.0.113.24 reject

Fi iye ìnáwó iṣẹ́ wé ní òtítọ́. Profáìlì kì í sábà lè sọ òfin yìí, nítorí náà àìṣẹ́ títì ń ti ọ lọ sí ìtẹ̀mọ́ àkọsílẹ̀ tàbí sí ẹ̀yà kékeré tí ó ń fi òfin sórí láìka ọ̀nà àbẹ̀wò. Nínú ọ̀nàkọ̀ọ̀kan, kọ àwọn ìkọ̀sílẹ̀ sílẹ̀ fún ọ̀sẹ̀ kan: ìkọ̀sílẹ̀ tí ó dákẹ́ ń dà bí iṣẹ́ tí ó ti bàjẹ́, ìwọ yóò sì nílò olùkà nígbà tí olùlò kan bá ròyìn pé aaye kan ti dá ìgbé wọlé dúró.

Yíyan fún Pi tí kò ní ìbòjú

Tí àwòrán bá ti ń ṣiṣẹ́ NetworkManager, tí ọ̀nà àbẹ̀wò kò nílò ohunkóhun àjèjì, tí o sì fẹ́ kí ó tẹ̀lé ìsopọ̀ òkè ní àìfọwọ́yí, mú profáìlì náà. Tí o bá nílò ìtọ́sọ́nà ìlànà, ọ̀pọ̀lọpọ̀ ọ̀nà àbẹ̀wò tí a yàn fún ibi àfojúsùn kọ̀ọ̀kan, tàbí òfin àìṣẹ́ títì tí ó gbọ́dọ̀ wà kí ọ̀nà àbẹ̀wò tó gbé ró, mú àkọsílẹ̀ náà kí o sì ní ìní gbogbo apá rẹ̀, pẹ̀lú ìlànà ìbẹ̀rẹ̀ àti ìmútótó. Dídà àwọn ìtẹ̀mọ́ méjèèjì pọ̀ náwó ju ọ̀kọ̀ọ̀kan lọ.

Ìṣíwọ́ọ̀wọ́ láàárín wọn jẹ́ ọ̀ràn ìlànà ní pàtàkì: pa olùní àtijọ́ dé, jẹ́rìí pé kò sí ọ̀nà tàbí àkọsílẹ̀ olùyọjáde tí ó ti pẹ́ tí ó kù, kí o sì mú tuntun ṣiṣẹ́ kí o tún bẹ̀rẹ̀ lẹ́ẹ̀mejì. Ìtúnbẹ̀rẹ̀ kan lè fi ìdíje kan pamọ́ tí èkejì yóò fi hàn. Parí pẹ̀lú dídán Pi wò dípò ọ̀nà àbẹ̀wò: yọjáde orúkọ kan, gbé ohun kan wá nípasẹ̀ IPv4, gbé wá nípasẹ̀ IPv6 tí o bá pa á mọ́, kí o sì ju ọ̀nà àbẹ̀wò sílẹ̀ kí o sì jẹ́rìí pé ìhùwàsí tí o yàn ń ṣẹlẹ̀ gan-an. Àgbékalẹ̀ nínú ip link ni ìbẹ̀rẹ̀ ìdánwò, kì í ṣe òpin rẹ̀.

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