Ferese onibara sọ Connected, adirẹsi tunnel wa, ati browser ṣì yiyi. Àkópọ̀ yẹn jẹ deede, nitori ìfọwọ́sọ̀rọ̀ àṣeyọrí ń ṣe ẹ̀rí pé a ti kọ́ tunnel nìkan; kò sọ nǹkan kan nípa bóyá server yóò gbé àwọn pákẹ́tì rẹ lọ, yóò tún orísun wọn kọ, tàbí yóò dáhùn àwọn ìbéèrè DNS rẹ. Àṣìṣe tí ọ̀pọ̀ ènìyàn ń ṣe ni ṣíṣe ìtòlẹ́sẹẹsẹ server ní àkọ́kọ́. Dípò bẹ́ẹ̀ ṣiṣẹ́ láti ọ̀dọ̀ oníbàárà jáde, nítorí pé ìgbésẹ̀ kọ̀ọ̀kan nísàlẹ̀ sọ bóyá èyí tó ń bọ̀ yẹ láti yẹ̀wò.

Bẹ̀rẹ̀ ní oníbàárà kí o sì jáde

Ṣe àwọn ìdánwò mẹ́ta ní ìtòlẹ́sẹẹsẹ yìí kí o sì kọ ibi tí èkíní ti kùnà. Ping adirẹsi tunnel server, èyí tí ó fi hàn pé tunnel fúnra rẹ̀ ń gbé ìrìnàjò. Ping adirẹsi gbangba pẹ̀lú nọ́mbà, èyí tí ó fi ìgbékalẹ̀ àti ìtumọ̀ hàn láìfi ìyọ́nú orúkọ kún. Lẹ́yìn náà gbìyànjú láti yanjú orúkọ agbàlejò, èyí tí ó jẹ́ ìdánwò kan ṣoṣo tí ó ń lo DNS. Gbogbo èsì ń yọ gbogbo ipò kan kúrò nínú àìdánilójú.

Má ṣe gbé sí ìdánwò kẹta nítorí pé browser dàbí ẹni tí ó yára. Ìkùnà ìgbéyàwó ojú-ìwé ń bo gbogbo ipò mẹ́ta ní ẹ̀ẹ̀kan, àti ibẹ̀ ni àwọn ènìyàn ti bẹ̀rẹ̀ tí wọ́n sì tún kọ́ tunnel tí ó ń ṣiṣẹ́. Ojú-ìwé tí ó kùnà kò sọ èyí tí ó já nínú mẹ́ta.

Gbigba méjì fi ibi tí pákẹ́tì dúró hàn

Nígbà tí ping sí adirẹsi gbangba ń lọ láti oníbàárà, gba ẹ̀ẹ̀kan lórí interface tunnel àti ẹ̀ẹ̀kan lórí ìsopọ̀ òkè tí ó yẹ kí ó dé internet. Ṣiṣẹ́ méjèèjì ní ẹ̀ẹ̀kan náà kí àwọn àmì àkókò lè bára wọn mu.

sudo tcpdump -ni tun0 -c 20 icmp
sudo tcpdump -ni enp1s0 -c 20 icmp

Bí àwọn ìbéèrè bá farahàn lórí tunnel tí wọn kò sì farahàn lórí ìsopọ̀ òkè rárá, server ti dà wọ́n nù láàrin tunnel àti waya, ìdí sì ni gbígbé lọ tàbí ìlànà odi iná fún gbígbé lọ, kì í ṣe NAT. Bí wọ́n bá farahàn lórí méjèèjì, server ti ṣe ipa rẹ̀ àti pé ìdáhùn ń sọnù ní jìnnà sí i, èyí tí ó tọ́ka sí ìtumọ̀, àlẹmọ òkè tàbí ìdíwọ́ láti ọ̀dọ̀ olùpèsè.

Gba orúkọ ìsopọ̀ òkè láti ìtẹ́ ìtọ́sọ́nà, kì í ṣe láti ìwé ẹ̀kọ́. Àwọn àwòrán ìsánmọ̀ àti àwọn adapter tí a tún orúkọ wọn kọ ṣọ̀wọ́n bára interface àpẹẹrẹ nínú ìtọ́sọ́nà mu, àti gbigba lórí ẹ̀rọ tí kò tọ́ dàbí server tí kò ń gbé lọ gan-an:

ip -4 route get 9.9.9.9

Pápá dev nínú ìjáde yẹn ni orúkọ tí ìlànà NAT yóò nílò lẹ́yìn náà, nítorí náà pa á mọ́.

Gbígbé lọ jẹ́ iyipada kan nínú kernel àti ìlànà odi iná

Kernel gbọdọ̀ gbà láti gbé lọ ní àkọ́kọ́. Ka iye tí ó wà báyìí, lẹ́yìn náà sọ ètò náà di pé kí ó dúró ṣinṣin dípò kíkọ ọ́ sínú kernel tí ń ṣiṣẹ́ nìkan:

sysctl net.ipv4.ip_forward
printf 'net.ipv4.ip_forward=1\n' > /etc/sysctl.d/70-vpn-forward.conf
sysctl --system

Gbígbé lọ jẹ́ ìdajì nìkan. Lórí agbàlejò tí ó ń lo UFW, a ń ṣètò ìlànà gbígbé lọ nínú /etc/default/ufw àti pé ó gbọdọ̀ jẹ́ ACCEPT kí ìgbéyàwó tuntun lè ní ipa. Ìdà nù àìlẹ́wọ̀n lórí ọ̀nà gbígbé lọ ń fi ìfọwọ́sọ̀rọ̀ sílẹ̀ ní àìlera pátápátá ṣùgbọ́n ó ń dà gbogbo pákẹ́tì tí ó gbìyànjú láti jáde kúrò ní ìdákẹ́jẹ́, àti pé ìyẹn gan-an ni àmì tí o bẹ̀rẹ̀ pẹ̀lú.

Àwọn agbàlejò tí ó ń ṣàkóso nftables tààrà ní ìbéèrè kan náà ní ọ̀nà ọ̀rọ̀ mìíràn. Wo àwọn kàǹtà lórí ẹ̀wọ̀n gbígbé lọ nígbà tí ìdánwò oníbàárà ń ṣiṣẹ́, nítorí pé ẹ̀wọ̀n tí a ń béèrè lọ́wọ́ àti ẹ̀wọ̀n tí ń dà nù dàbí ara wọn nínú fáìlì ètò.

Dárúkọ interface ijade gidi nínú ìlànà NAT

Ìtumọ̀ orísun jẹ́ ti interface tí ó ń fi agbàlejò sílẹ̀ gan-an, pẹ̀lú àkójọ tí server ń pín. Ẹ̀ka méjèèjì ìlànà yẹn gbọdọ̀ ṣàpèjúwe òtítọ́, kò sì sí ọ̀kan tí ó jẹ́ àṣàyàn.

iptables -t nat -A POSTROUTING -s 10.44.0.0/24 -o enp1s0 -j MASQUERADE

Ìkùnà àtijọ́ ni ìlànà tí a dà láti ìwé ìtọ́sọ́nà tí ó sọ -o eth0 lórí ẹ̀rọ tí adapter rẹ̀ ní orúkọ mìíràn. Ìlànà náà ń fi ara rẹ̀ sínú láìsí ìkìlọ̀, kò bára nǹkan kankan mu, oníbàárà kò sì ní internet. Àkójọ náà ni ẹ̀ka kejì àṣìṣe kan náà: bí server bá ń pín 10.44.0.0/24 tí ìlànà sì bo 10.8.0.0/24, kò sí nǹkan tí yóò bára mu láé.

Wo àwọn kàǹtà dípò gbígbà ọ̀rọ̀ ìlànà gbọ́. Àkọsílẹ̀ ń sọ pákẹ́tì fún ìlànà kọ̀ọ̀kan, ìlànà tí kò bára mu rárá sì dúró ní ọ̀dọ̀ nóńbà bí ó ti wù kí ó dàbí ẹni tí ó tọ́. Fún un ní ìṣẹ́jú kan ìrìnàjò oníbàárà gidi kí o tó ka nǹkan kan nínú nọ́mbà yẹn:

iptables -t nat -L POSTROUTING -v -n

Ìṣirò pákẹ́tì ọ̀dọ̀ nóńbà lẹ́yìn ìdánwò oníbàárà gidi túmọ̀ sí pé ìbáramu jẹ́ aṣiṣe, kì í ṣe pé tunnel ti já. Ní kété tí ó bá bára mu, fi àkójọ ìlànà pamọ́ kí ó lè gbé ìtúnbẹ̀rẹ̀ já. Àtúnṣe tí ó ń gbé nínú ìtàn shell rẹ nìkan yóò pòórá ní ìtúnbẹ̀rẹ̀ àkọ́kọ́.

Bí server bá tún jẹ́ àpẹẹrẹ NAT nínú ìsánmọ̀, pẹpẹ náà ní ọ̀rọ̀. Àpẹẹrẹ tí ó ń tumọ̀ àwọn adirẹsi sábà máa ń nílò ṣíṣe àyẹ̀wò orísun àti ibi-ìlọ déédéé níbi tí olùpèsè ti ń fúnni ní ètò yẹn, àti pé ebute VPN fúnra rẹ̀ gbọdọ̀ jẹ́ èyí tí a lè dé láti ìta.

DNS ni ìkùnà kejì lẹ́yìn èkíní

Ping pẹ̀lú adirẹsi tí ń ṣiṣẹ́ nígbà tí àwọn orúkọ ń kùnà jẹ́ ìṣòro olùyọ́nú, ó sì ní ìdí tirẹ̀. Oníbàárà tí ó pa olùyọ́nú àdúgbò rẹ̀ mọ́ yóò fi àwọn ìbéèrè yẹn ránṣẹ́ sínú tunnel kíkún yóò sì dúró de ìdáhùn tí kò ní dé láé, nítorí pé olùyọ́nú àdúgbò wà ní ẹ̀gbẹ́ tí kò tọ́ nínú ọ̀nà báyìí.

Ti olùyọ́nú kan jáde láti server kí oníbàárà lè mọ ibi tí yóò béèrè. Àwọn àkọsílẹ̀ méjì ń fún oníbàárà ní àyè bí èkíní kò bá dé, àti pé méjèèjì gbọdọ̀ jẹ́ olùyọ́nú tí tunnel gbà gan-an.

push "dhcp-option DNS 9.9.9.9"
push "dhcp-option DNS 149.112.112.112"

Àwọn oníbàárà Windows lè padà sí olùyọ́nú àdúgbò bí ó ti wù kí ó rí, àti pé ìyẹn gan-an ni block-outside-dns wà fún láti dènà, pẹ̀lú iye owó pípadà àwọn orúkọ tí nẹ́tíwọ́kì àdúgbò nìkan lè yanjú. Àwọn oníbàárà Linux tí ó ń lo systemd-resolved sábà máa ń fojú fo olùyọ́nú tí a ti jáde bí script kò bá fi í sínú, nítorí náà yẹ̀wò resolvectl status fún ẹ̀rọ tunnel kí o tó pinnu pé a fojú fo ìjáde náà.

Parí irin-ajo náà bí olùlò ṣe ń ní ìrírí rẹ̀. Gbé ojú-ìwé gidi láti oníbàárà, jẹ́rìí adirẹsi tí ó ti jáde, tún server bẹ̀rẹ̀, tún sopọ̀, kí o sì tún àwọn ìdánwò mẹ́ta ṣe. Ìyípo kejì yẹn nìkan ni ó fi hàn pé àwọn ìlànà tí a fi pamọ́, ìlànà odi iná àti olùyọ́nú tí a ti jáde gbogbo wọn gbé já pẹ̀lú ara wọn.

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