Fi iṣẹ́ kan sórí kọ̀mpútà abẹ́rẹ́ ẹ̀yìn CGNAT, darí kọ̀mpútà yẹn sí VPS nípasẹ̀ VPN, kò sì sí ẹnikẹ́ni níta tí yóò dé ọ̀dọ̀ rẹ̀. O fi òfin NAT ìdílé kún VPS, ìwọ sì gba ohun tí ó burú ju ìdákẹ́jẹ́ lọ: àwọn ìsopọ̀ ń ṣí, lẹ́yìn náà wọ́n dúró. Ìdáhùn kò sọnù, ó ń jáde nípasẹ̀ ọ̀nà àìdábọ̀ tirẹ̀ alára, tí ó túmọ̀ sí pé sáfà kò rí i rárá. Ṣe àwọn àyẹ̀wò márùn-ún wọ̀nyí lẹ́sẹẹsẹ kí o sì dúró ní èyí tí kò dúró.

Jẹ́rìí pé sáfà yóò gbé jáde rárá

Sàmì sí àpótí yìí kí o tó kọ ìtúmọ̀ kan. Òfin DNAT fún pákẹ́tì tí kẹ́nẹ́lì kọ̀ láti gbé jáde ni olùtúpalẹ̀ òfin gbà, lẹ́yìn náà ọ̀nà ìgbéjáde sọ ọ́ nù, èyí tí ó ń dá àkókò ìdúró tí ó dàbí ìṣòro odi iná.

sysctl net.ipv4.ip_forward
sysctl -w net.ipv4.ip_forward=1

Ṣíṣe é nínú kẹ́nẹ́lì tí ń ṣiṣẹ́ kì í ṣe bákan náà pẹ̀lú ṣíṣe é kọjá àtúnbẹ̀rẹ̀. Kọ net.ipv4.ip_forward=1 sínú fáìlì lábẹ́ /etc/sysctl.d/, ṣe sysctl --system, lẹ́yìn náà kà iye náà padà dípò gbígbẹ́kẹ̀lé pé a gbé fáìlì náà. Kọ́ńtẹ́nà tí ń ṣàkóso ààyè orúkọ nẹ́tíwọ́kì tirẹ̀ nílò iye kan náà nínú ààyè yẹn, kì í ṣe lórí agbàlejò nìkan.

Bí kíkà padà kò bá yí padà kúrò ní òdo, dúró níbí. Kò sí ohun tí yóò ṣiṣẹ́ ní ìsàlẹ̀.

Fi àdírẹ́sì ìhà náà múlẹ̀ kí òfin kankan tó tọ́ka sí i

Àdúkọ̀ náà ń pín àwọn àdírẹ́sì ní ìlànà ìsopọ̀, nítorí náà òfin tí a kọ fún iyáwó ojú-ọjọ́ yìí lè tọ́ka sí ẹlòmíràn ní ìdákẹ́jẹ́ ní ọ̀sẹ̀ tó ń bọ̀. So àdírẹ́sì náà mọ́ ìdánimọ̀ ìwé-ẹ̀rí dípò ìlànà ìdé.

client-config-dir /etc/openvpn/ccd
ifconfig-push 10.77.0.14 10.77.0.13

Pẹpẹ yẹn ni òpin ẹlẹ́rìín àti òpin alábàákẹ́gbẹ́ ti ìhà orí-ọ̀nà, sáfà sì so mọ́ orúkọ gbogbogbò ti ìwé-ẹ̀rí. Nínú ìṣètò nẹ́tíwọ́kì abẹ́lẹ̀ a máa ka iye kejì gẹ́gẹ́ bí àbojú àwẹ̀ nẹ́tíwọ́kì, nítorí náà kọ ẹ̀dá tí ó bá ìṣètò tí a ń lò mu. Lẹ́yìn náà tú ìsopọ̀ ẹlẹ́rìín padà kí o sì ka àdírẹ́sì lórí ẹlẹ́rìín náà fúnra rẹ̀, nítorí ojú sáfà lórí àdúkọ̀ kì í ṣe ẹ̀rí ohun tí ẹlẹ́rìín ṣètò.

Bí àdírẹ́sì bá yí padà lẹ́yìn àtúnsopọ̀, dúró. Òfin NAT tí ń tẹ̀le àfojúsùn tí ń rìn yóò kùnà lẹ́ẹ̀kọ̀ọ̀kan, kò sì ní kọ́ ọ ní nkankan.

Túmọ̀ sí ẹ̀gbẹ́ méjèèjì

Ìtúmọ̀ ìdílé ń fi pákẹ́tì tí ń wọlé ránṣẹ́ sí ẹlẹ́rìín. Ìtúmọ̀ orísun ni ó mú ẹlẹ́rìín dáhùn sáfà dípò olùránṣẹ́ àkọ́kọ́, ìyẹn sì ni òfin tí àwọn ènìyàn ń fi sílẹ̀.

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 29443 -j DNAT --to-destination 10.77.0.14:29443
iptables -t nat -A POSTROUTING -d 10.77.0.14 -p tcp --dport 29443 -j SNAT --to-source 10.77.0.13

Láìsí òfin kejì ẹlẹ́rìín ń dáhùn nípasẹ̀ ọ̀nà òkè ISP rẹ̀, nítorí náà alábàákẹ́gbẹ́ tí ó jìnnà rí àdírẹ́sì orísun tí kò tíì bá sọ̀rọ̀, nígbà tí sáfà kò ní àkọsílẹ̀ ìtọ́pinpin kankan fún ìdáhùn. Olùwòye lóde rí ìfọwọ́sowọ́pọ̀ tí ó parí ìdajì, ìyẹn sì ni àmì tí ń rán àwọn ènìyàn lọ wá àṣìṣe odi iná tí kò sí.

Ka àwọn òfin méjèèjì padà pẹ̀lú iptables -t nat -S kí o sì jẹ́rìí pé orúkọ ojú-ìwé ni èyí tí ó gbé àdírẹ́sì gbogbogbò. Lórí agbàlejò tí ó ti ń ṣe àyọ̀ pẹ̀lú nftables, kọ ìtúmọ̀ náà sínú ẹ̀wọ̀n NAT ti nftables ti ẹbí àdírẹ́sì tí ó bá mu dípò dídàpọ̀ irinṣẹ́.

Jẹ́ kí tábìlì àyọ̀ kọjá

Àwọn tábìlì NAT ń kọ orí-ìwé padà; wọn kò fún ní àṣẹ. Pẹ̀lú ìlànà DROP àìdábọ̀, ṣíṣàn tí a gbé jáde nílò ìtẹ́wọ́gbà tirẹ̀, pẹ̀lú ìtọ́sọ́nà ìpadà tí ọ̀pọ̀ ìlànà ti bo pẹ̀lú òfin established,related.

iptables -A FORWARD -i eth0 -o tun0 -p tcp --dport 29443 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Ṣàyẹ̀wò ìlànà ẹ̀wọ̀n FORWARD kí o tó fi nkankan kún, nítorí ìlànà DROP tí ó tètè dé ni ó pinnu bóyá a ó tọ́ka sí òfin rẹ rárá. Lórí agbàlejò tí àyọ̀ rẹ̀ ń gbé nínú nftables, fi òfin tí ó dọ́gba kún ìkọ̀kọ̀ forward ti tábìlì inet kí o sì jẹ́rìí pé ẹ̀wọ̀n ìpìlẹ̀ rí ìrìnàjò tí a gbé jáde gan-an, kì í ṣe ìwọlé àdúgbò nìkan. Bí olùkà pákẹ́tì lórí òfin tuntun bá dúró ní òdo nígbà tí àwọn olùkà NAT ń gòkè, a ń sọ pákẹ́tì nù kí òfin rẹ tó dé. Ìyẹn ni àmì láti ka ìlànà àwọn ẹ̀wọ̀n, kì í ṣe láti fi ẹ̀dà kejì ti òfin kan náà kún.

Fi hàn láti nẹ́tíwọ́kì lóde

Dánwò láti nẹ́tíwọ́kì tí kò ní ìbáṣepọ̀. Ìwádìí láti ẹ̀rọ mìíràn nínú LAN kan náà lè kọjá nípasẹ̀ àtìlẹ́yìn hairpin NAT, kò sì ní ṣe ọ̀nà tí ẹlẹ́rìín jìnnà ń lò rárá, nítorí náà èsì àwọ̀ ewé níbẹ̀ ń fi ohun tí kò tọ́ hàn.

tcpdump -ni any port 29443
conntrack -L | grep 29443

Ṣe ìdánimọ̀ gbígba lórí sáfà àti lórí ẹlẹ́rìín ní àkókò kan náà. Gbígba lórí sáfà fi hàn bóyá pákẹ́tì tí a túmọ̀ ń jáde sí ìhà; gbígba lórí ẹlẹ́rìín fi hàn bóyá ìbéèrè ń dé àti ibi tí a tọ́ka ìdáhùn sí. Àkọsílẹ̀ ìtúmọ̀ nínú conntrack -L jẹ́rìí pé òfin bá mu, àìsí rẹ̀ sì jẹ́rìí pé pákẹ́tì kò tíì dé ẹ̀wọ̀n NAT rárá.

Àwọn olùṣàyẹ̀wò ibudo jẹ́ ẹ̀rí aláìlágbára. Wọ́n ń sọ ibudo náà ní títì dé ìgbà tí ohun-èlò bá so mọ́ra tí ó sì ń gbọ́, nítorí náà lo ìsopọ̀ gidi sí iṣẹ́ gidi. Nígbà tí ó bá ṣiṣẹ́ nígbẹ̀yìn, pa ìfarahàn mọ́ ibudo kan náà: gbígbé SSH tàbí pánẹ́ẹ̀lì ìṣàkóso jáde nítorí pé òfin àkọ́kọ́ dàbí àìrọ̀rùn jẹ́ ìpinnu tí ó tóbi ju ṣíṣe àtẹ̀jáde iṣẹ́ lọ.

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