Òfin NAT tí ó ń ṣiṣẹ́ nígbà tí a bá tẹ̀ ẹ́ sínú shell yóò kùnà nígbà tí a bá fi pọ́mọ́ sínú before.rules, nítorí fáìlì yẹn kì í ṣe script. Ó jẹ́ àkọsílẹ̀ ní ìlànà ìmúpadà pẹ̀lú àwọn apá tábìlì, àwọn ìkéde ẹ̀wọ̀n àti àmì COMMIT fún gbogbo tábìlì. Líìnì ní ibi tí kò tọ́ yálà yóò dá gbogbo ìmúpadà dúró tàbí yóò sọ àwọn òfin tí o rò pé wọ́n wà nù ní ìdákẹ́jẹ́. Ìlànà ìsàlẹ̀ yìí fi àpá náà sí ibi tí ètò náà retí rẹ̀, ó sì fi èsì hàn kí ìtúnṣiṣẹ́ tó kàn tó dé.

Àṣẹ shell kì í ṣe fáìlì ìmúpadà

Líìnì tí ó bẹ̀rẹ̀ pẹ̀lú iptables -t nat jẹ́ ìtọ́ni fún bínárì iptables, nígbà tí fáìlì tí UFW ń kà jẹ́ àpèjúwe gbogbo àkójọ òfin. Ìyàtọ̀ kì í ṣe ojú-ọ̀rọ̀: ìlànà ìmúpadà gbọ́dọ̀ mọ tábìlì tí ó wà nínú rẹ̀, àwọn ẹ̀wọ̀n tí ó wà àti ibi tí tábìlì náà parí. Pàṣípààrọ̀ tí a fi pọ́mọ́ sínú àkọsílẹ̀ yẹn yálà jẹ́ àṣìṣe ìlànà-ọ̀rọ̀ tàbí, èyí tí ó burú jù, òfin tí a so mọ́ tábìlì tí kò tọ́. Ètò náà ń gbé àwọn fáìlì wọ̀nyí wọlé nípasẹ̀ irinṣẹ́ ìmúpadà gan-an nítorí wọ́n jẹ́ ìkéde-kíkún kì í ṣe ìtẹ̀lẹ́sẹ̀.

A tún ń gbé àkọsílẹ̀ náà wọlé pẹ̀lú gbogbo rẹ̀, nítorí náà apá kan tí kò tọ́ lè dá àwọn ìyókù fáìlì dúró kí wọ́n má lò. Ìdí ni pé àṣìṣe kékeré nínú àpá NAT ń fa àwọn òfin àyọ̀jáde lọ sí ìsàlẹ̀ pẹ̀lú rẹ̀, àti bẹ́ẹ̀ ni ìyípadà firewall fi di ìdíwọ́.

Fi àpá náà sínú apá tábìlì tí ó wà

Àpá NAT ní ìrísí, ìrísí sì ṣe pàtàkì ju ọ̀rọ̀ òfin tí ó wà nínú rẹ̀. Àkọlé tábìlì ń ṣí apá náà, àwọn ìkéde ẹ̀wọ̀n ń fi àwọn kíkà kalẹ̀, àwọn òfin ń tẹ̀lé, COMMIT sì ń pa apá náà dé.

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.55.0.0/24 -o ens3 -j MASQUERADE
COMMIT

Àkójọ àti ojú-ìsopọ̀ tí ó wà lókè jẹ́ ibi ìdúró fún àwọn iye rẹ; ìgbékalẹ̀ ni apá tí ó yẹ kí a dà. Tí fáìlì bá ti ní apá *nat, fi òfin náà kún inú apá yẹn dípò ṣíṣí ẹlẹ́ẹ̀kejì, nítorí ìlànà náà retí COMMIT kan fún gbogbo tábìlì, àwọn apá méjì fún tábìlì kan sì jẹ́ àtúnṣe tí ó ń dúró fún ìṣẹ̀lẹ̀. Pa àwọn ìtumọ̀ ẹ̀wọ̀n ti ìpínlẹ̀ mọ́ bí wọ́n ti wà, pẹ̀lú àwọn tí olùpèsè fi kún fún ìsopọ̀ tirẹ̀. Ìwé-ìtọ́sọ́nà ètò UFW ṣàlàyé àwọn fáìlì before, user àti after pẹ̀lú ìbéèrè COMMIT tí ó bá mu.

Tí fáìlì bá jáde ní òfìfo, má ṣe kún in láti inú ẹ̀kọ́ kan. Jẹ́rìí i pé àkójọ èyí tí ó ní, àti ìlànà tí ó ń ṣiṣẹ́ gan-an, nítorí fáìlì òfìfo tí ó wà pẹ́ kì í fi hàn pé kérẹ́nẹ́ẹ̀lì kò ní òfin, àkójọ òfin tí a gbé wọlé kì í sì fi hàn pé ìtúnṣiṣẹ́ tó kàn yóò ní fáìlì pípé láti kà. Kọ́kọ́ mú ìpìlẹ̀ tí a ṣe àtìlẹ́yìn fún padà, lẹ́yìn náà tún fi àwọn ìyípadà ojú-ìwé náà kún orí rẹ̀.

Dán olùdíje wò láìfi í ṣiṣẹ́

Irinṣẹ́ ìmúpadà lè ṣàyẹ̀wò àti kọ́ àkójọ òfin láìfi í ṣiṣẹ́, èyí sì ni ìdánwò tí ó pọ̀ jù tí ó wà. Ṣe é lórí ẹ̀dà tí a dáàbò bò dípò fáìlì tí ó ń ṣiṣẹ́, kí o sì ka ọ̀rọ̀ àṣìṣe dípò ipò ìjáde nìkan. Ìkùnà ṣíṣàyẹ̀wò ń dárúkọ líìnì àti ní ọ̀pọ̀ ìgbà tábìlì kan, èyí tí ó pọ̀ ju ohun tí ìtúnṣiṣẹ́ tí ó kùnà yóò sọ fún ọ.

sudo cp /etc/ufw/before.rules /root/before.rules.bak
sudo iptables-restore --test < /root/before.rules.bak
echo "exit: 0"

Pípéye ìdánwò yẹn fi hàn pé a ń ṣàyẹ̀wò àkọsílẹ̀ náà àti pé kò sí ohun mìíràn. Kò fi hàn pé olùdíje náà ṣì ní gbogbo ẹ̀wọ̀n tí UFW gbára lé, pé ó ń gba àwọn orísun tí o ní lọ́kàn nìkan, tàbí pé ìṣàkóso jíjìnnà ṣì lè dé. Àwọn wọ̀nyí jẹ́ àyẹ̀wò lọ́tọ̀, èyí tí ó gbẹ̀yìn sì yẹ fún ìpàdé kejì tí a ṣí kí o tó bẹ̀rẹ̀.

Yan irinṣẹ́ tí ó bá backend tí a fi sórí ẹ̀rọ àti ẹbí àdírẹ́sì mu. Ẹ̀rọ tí ń ṣiṣẹ́ backend nft nípasẹ̀ ìpele ìbámu nílò àṣẹ tí ó bá mu, àwọn òfin IPv6 sì ń gbé nínú fáìlì mìíràn pátápátá.

Ya ìfiránṣẹ́, NAT àti ìlànà àbáwọlé sọ́tọ̀

Ìtumọ̀ orísun ń yanjú ìṣòro àdírẹ́sì, kò sì fi ohunkóhun fún. Ìfiránṣẹ́ jẹ́ àṣẹ lọ́tọ̀ tí sysctl àti tábìlì àyọ̀jáde ń ṣàkóso, ìyẹn sì ni ohun tí àwọn ènìyàn ń gbàgbé nígbà tí ọ̀nà abẹ́lẹ̀ ń tọ́ ọ̀nà ṣùgbọ́n kò gbé ìrínàjò kọjá. Ìlànà àbáwọlé jẹ́ ìpinnu kẹta nípa irú orísun tí ó lè dé irú iṣẹ́ wo, kò sì sí òfin NAT tí ó sọ ọ́. Pípín àwọn mẹ́ta yìí sọ́tọ̀ ni ó jẹ́ kí àìṣeéṣe di ohun tí a lè dán wò dípò àmì àìdánilójú kan ṣoṣo.

sysctl net.ipv4.ip_forward
sudo iptables -t nat -S POSTROUTING
sudo iptables -S FORWARD

Ka àwọn ìjáde mẹ́ta yẹn papọ̀ dípò ọ̀kọ̀ọ̀kan. Òfin masquerade tí a pa ìfiránṣẹ́ rẹ̀ ń dá oníbàárà tí ó so mọ́ra ṣùgbọ́n tí kò dé ibikíbi, èyí tí ó dà bí àṣìṣe ọ̀nà láti ẹ̀gbẹ́ oníbàárà, ó sì ń rán àwọn ènìyàn sí fáìlì tí kò tọ́. Tábìlì àyọ̀jáde tún jẹ́ ibi tí accept tí ó gbòòrò jù ń fi ara pa mọ́, nítorí náà yẹ ìlànà àkọ́kọ́ rẹ̀ wò nígbà tí o wà níbẹ̀.

Jẹ́rìí ìtúnṣiṣẹ́, ìkọ̀ àti pípàdánù VPN

Àwọn àkíyèsí mẹ́ta ń dá ìdánwò ìtẹ́wọ́gbà pípé: ìtúnṣiṣẹ́ ń ṣàṣeyọrí, iṣẹ́ oníbàárà tí a gbà láyè ń ṣiṣẹ́, àti ìbéèrè tí ó yẹ kí a kọ̀ yóò kọ̀ gan-an. Ẹ̀kẹta ni a ń fò ó, òun sì ni ẹ̀rí kan ṣoṣo pé ìlànà náà ń ṣe ohunkóhun.

sudo ufw reload
sudo ufw status verbose
sudo iptables -t nat -L POSTROUTING -n -v

Lẹ́yìn náà dán àìṣeéṣe tí o ṣe àpẹẹrẹ fún wò. Sọ ọ̀nà abẹ́lẹ̀ náà kù, kí o sì wo ohun tí ẹ̀rọ náà ń ṣe, nítorí ìlànà tí ó ń ṣiṣẹ́ nígbà tí VPN wà lórí nìkan jẹ́ ìlànà tí ó ní ìgbẹ́kẹ̀lé tí a kò sọ. Lẹ́yìn náà tún ṣiṣẹ́ rẹ̀ lẹ́ẹ̀kan sí i láti fi hàn pé fáìlì náà, kì í ṣe ipò ìṣiṣẹ́ tí ó kù, ni ó ń mú èsì tí ó ń ṣiṣẹ́ jáde.

NAT ti IPv4 kò sọ ohunkóhun nípa IPv6, nítorí náà sọ ìbojú tí a ní lọ́kàn fún àwọn ẹbí méjèèjì nínú àkọsílẹ̀ kan náà pẹ̀lú òfin náà. Èròjà ni ìlànà tí a ń ṣàkóso tí ó bá ara wọn mu, àpá tí ó ṣàánú ṣàyẹ̀wò kò sì jẹ́ ẹ̀rí rẹ̀.

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