Instans náà bẹ̀rẹ̀, àwọn ìfisọ́rọ̀ àkójọpọ̀ jáde ní àṣeyọrí, kódà iṣẹ́ náà ń ròyìn ipò ṣíṣe, ṣùgbọ́n kò sí ohun tí ó so mọ́. Àwòrán yìí wọ́pọ̀ lórí àwọn sáfà aládàáni àròtẹ́lẹ̀, nítorí àlejò tí ó ń dé sí Íńtánẹ́ẹ̀tì lọ́nà ìrọ̀rùn lè ṣì má lè ṣe interface tí ètò ìbánisọ̀rọ̀ rẹ fẹ́. Àyẹ̀wò márààrún yà sáfà tí ó lè ṣe iṣẹ́ tunnel yàtọ̀ sí èyí tí ó kàn dàbí ẹni tí ó ti ṣetán, àti àyẹ̀wò àkọ́kọ́ tí ó kùnà sábà máa ń ṣàlàyé gbogbo ohun tí ó tẹ̀lé. Ọ̀kọ̀ọ̀kan wọn kò wọ́n láti ṣe, ó sì parí pẹ̀lú ìpinnu kì í ṣe àkọsílẹ̀.

Jẹ́rìí interface tí ètò ìbánisọ̀rọ̀ nílò

OpenVPN lórí TUN nílò ẹ̀rọ kíkọ̀ àti module kernel tí ó wà lẹ́yìn rẹ̀; WireGuard nílò àtìlẹ́yìn kernel tirẹ̀ tàbí ìmúṣẹ ààyè olùlò pẹ̀lú àwọn ìfojúsọ́nà tí ó báramu. Àwọn kọ́ntéńà tí a ń ṣàkóso lè pín kernel sáfà tí kì í fi ẹ̀rọ náà hàn rí, àwọn pẹpẹ kan sì gbèèsè fún ṣíṣe interface tunnel rárá bóyá ohun tí a fi sórí ẹ̀rọ náà.

Dán agbára wò dípò kíkà ojú-ìwé àtìlẹ́yìn, nítorí àwọn àmì títàjá máa ń yí padà kíákíá ju àwọn ààlà ìsàlẹ̀ lọ. Àkójọ àwọn ẹ̀yà tí a kọ fún ètò kan lè má ṣàlàyé kernel tí àlejò ń ṣiṣẹ́ lórí rẹ̀ ní ti gidi. Àwọn àṣẹ kúkúrú méjì ń dáhùn ìbéèrè fún àwọn ètò ìbánisọ̀rọ̀ tí a sábà lò, àti méjèèjì ń ṣe ìmọ́tótó lẹ́yìn wọn. Àwọn àṣẹ nísàlẹ̀ kò ṣẹ̀dá ohunkóhun tí ó wà títí, a sì máa ń yọ wọ́n kúrò lẹ́sẹ̀kẹsẹ̀.

sudo ip tuntap add dev tun9 mode tun
sudo ip tuntap del dev tun9 mode tun
sudo ip link add wgtest type wireguard && sudo ip link del wgtest

Ìkọ̀sílẹ̀ lórí pérépéré àkọ́kọ́ túmọ̀ sí pé TUN kò sí, ipò àkọ́kọ́ ti OpenVPN kò sì lè bẹ̀rẹ̀; ìkọ̀sílẹ̀ lórí ìlà tí ó gbẹ̀yìn túmọ̀ sí pé interface kernel WireGuard kò sí. ìwé kernel nípa TUN/TAP ṣàlàyé ẹ̀rọ tí àyẹ̀wò àkọ́kọ́ ń dán wò. Kò sí ọ̀kan nínú àwọn ìkùnà méjì náà tí a máa ń tún ṣe nípasẹ̀ fífi àkójọpọ̀ VPN sórí ẹ̀rọ lẹ́ẹ̀kan sí i.

Rántí pé ọ̀nà tí ń wọlé ní olówó méjì

Àwọn òfin nẹ́tíwọ́kì olùpèsè àti firewall àlejò jẹ́ ètò ọ̀tọ̀ọ̀tọ̀, ìrìnàjò sì gbọdọ̀ kọjá méjèèjì. Olùgbọ́ tí a so mọ́ àlejò kò túmọ̀ sí nkankan bí ẹgbẹ́ ààbò olùpèsè bá ju ibùdó náà sílẹ̀, òfin olùpèsè tí ó ṣí sì kò ṣe nkankan bí àlejò bá kọ packet náà. Ṣàyẹ̀wò olùgbọ́, lẹ́yìn náà àwọn òfin àlejò, lẹ́yìn náà pánẹ́ẹ̀lì olùpèsè, ní ọ̀nà yẹn, kí o sì jẹ́rìí ètò ìbánisọ̀rọ̀ pẹ̀lú nọ́mbà ibùdó. Fífo tààrà sí pánẹ́ẹ̀lì olùpèsè ni ọ̀nà tí àwọn ènìyàn ń gbà ṣí ìpín tí wọn kò nílò.

UDP ni ẹni tí a ń pa ní gbogbo ìgbà: ọ̀pọ̀ pẹpẹ ń gba TCP láàyè ní àkọ́kọ́, wọ́n sì ka àwọn òfin UDP sí àkọsílẹ̀ ọ̀tọ̀. Bí instans bá wà lẹ́yìn NAT olùpèsè dípò kí ó ní àdírẹ́sì gbogbo ènìyàn, gbígbé ibùdó lọ ní ẹ̀gbẹ́ olùpèsè di ìṣètò kẹta tí a gbọdọ̀ múpọ̀.

Ṣètò ọ̀nà ìpadà, kì í ṣe àbáyọ nìkan

Iṣẹ́ tunnel kíkún nílò gbígbé lọ tí ó ṣí, ètò ìtumọ̀ tàbí ìtọ́sọ́nà fún ìrìnàjò àwọn alábàáṣepọ̀, àti ọ̀nà ìpadà tí ó dé ọ̀dọ̀ àkójọ alábàáṣepọ̀. Ṣíṣí olùgbọ́ kò pèsè ọ̀kan nínú ìwọ̀nyí. Tunnel tí ó fìdí kalẹ̀ ṣùgbọ́n tí kò gbé ìrìnàjò wíwúlò kì í ṣàṣeyọrí níbí kì í ṣe ní ìjẹ́rìí. Ka ìfọwọ́sowọ́pọ̀ tí ó ṣàṣeyọrí sí ìbẹ̀rẹ̀ ìwádìí, kì í ṣe òpin rẹ̀.

Kọ ètò náà gẹ́gẹ́ bí ìpinnu mẹ́ta tí ó ṣe kedere: irú ìpín orísun tí àwọn alábàáṣepọ̀ ń gbà, bí ìrìnàjò wọn ṣe ń jáde lọ sí Íńtánẹ́ẹ̀tì, àti bí àwọn ìdáhùn ṣe ń rí ọ̀nà ìpadà. Lẹ́yìn náà jẹ́rìí pé kernel gbà pẹ̀lú ètò náà kí o tó dán alábàáṣepọ̀ wò, kí àìbáramu tí ó dákẹ́ má bàa di èrò pé àbùkù ní ẹ̀gbẹ́ alábàáṣepọ̀ ni.

sysctl -n net.ipv4.ip_forward
sudo nft list ruleset | head -n 40
ip -4 route show default

Pinnu ọ̀rọ̀ IPv6 ní gbangba

IPv6 ń bọ̀ nípasẹ̀ àwọn ọ̀nà mélòó kan tí wọ́n ń hùwà ọ̀tọ̀ọ̀tọ̀ fún ẹnubodè: àdírẹ́sì lórí instans, ìpilẹ̀ tí a tọ́ sọ́nà, tàbí rárá. Ìpilẹ̀ tí a tọ́ sọ́nà nìkan ni ó ń jẹ́ kí sáfà lè fi àdírẹ́sì fún àwọn alábàáṣepọ̀ ní ọ̀nà tí ó wọ́pọ̀. Ìrònú pé àdírẹ́sì IPv6 tí ń ṣiṣẹ́ lórí sáfà túmọ̀ sí ìpilẹ̀ alábàáṣepọ̀ tí ó ṣe é lò jẹ́ àṣìṣe tí yóò farahàn ní ìgbà tí ó tọ́ gẹ́gẹ́ bí ìsopọ̀ tí ó já pẹ̀lú. Irú àbùkù ni èyí tí ó ń yege gbogbo àyẹ̀wò tí a ṣe pẹ̀lú IPv4 nìkan.

Bí olùpèsè kò bá tọ́ ìpilẹ̀ kankan sọ́nà, pinnu bóyá tunnel jẹ́ ti IPv4 nìkan àti bóyá a gbọdọ̀ sọ fún àwọn alábàáṣepọ̀. Àìsí tí a kọ sílẹ̀ ló léwu díẹ̀ ju ìṣètò apá kan tí ó ń ju àwọn ìdí IPv6 lọ sínú ihò dúdú ní ìdákẹ́jẹ́ fún àwọn olùlò tí ó so mọ́.

Fi í hàn láti ọ̀dọ̀ alábàáṣepọ̀ ode

Ipò iṣẹ́ àdúgbò ń ṣàlàyé ìlànà kan lórí sáfà kan. Àyẹ̀wò tí ó wúlò ni alábàáṣepọ̀ tí a fọwọ́ sí lórí nẹ́tíwọ́kì mìíràn, tí ó so pẹ̀lú profáìlì tí o ń fẹ́ pín, lẹ́yìn náà tí ó dé ohun-èlò kan tí ó sì yanjú orúkọ kan. Tún sopọ̀ lẹ́ẹ̀kan sí i pẹ̀lú, nítorí tunnel tí ó ń ṣiṣẹ́ ní ìgbìyànjú àkọ́kọ́ nìkan kò ní ìbámu pẹ̀lú ohun tí ó ṣe pàtàkì jùlọ ní àṣà.

sudo wg show wg0 latest-handshakes
ip -4 route get 203.0.113.44
sudo journalctl -u wg-quick@wg0 -n 15 --no-pager

Pa àwọn ìpìlẹ̀ ìṣiṣẹ́ mọ́ lẹ́gbẹ̀ẹ́ àyẹ̀wò náà: ààyè fún àwọn àtúnṣe, àwọn àkọsílẹ̀ tí ó ní ààlà, ààyè ìṣàkóso tí kò gbára lé tunnel, kọ́nsólì ìmúpadàbọ̀, àti àkọsílẹ̀ nípa ohun tí ó ṣẹlẹ̀ sí àwọn profáìlì alábàáṣepọ̀ nígbà tí a bá tún instans kọ́ tí àdírẹ́sì gbogbo ènìyàn rẹ̀ sì yí padà. Bí interface tàbí àwòrán gbígbé lọ tí a nílò kò bá sí rárá, kò sí ìyípadà ní ẹ̀gbẹ́ alábàáṣepọ̀ tí yóò pèsè rẹ̀, ìgbésẹ̀ tí ó tẹ̀lé tí ó ṣe déédé ni irú instans mìíràn kì í ṣe ìṣètò púpọ̀ sí i.

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