Gateway gbangba kan ti ń ṣiṣẹ́ WireGuard lórí UDP 51820, SSH lórí 22 àti ètò kan tí ó gbọdọ̀ wà ní àárín internet. Òfin tí ó ń fani mọ́ra ń gbé gbogbo ibùdó kọjá sí peer, ó sì sọ pé ó ti parí. Lórí gateway WireGuard, irú òfin bẹ́ẹ̀ lè gba ìrìnàjò tunnel fúnra rẹ̀, yóò sì tì ọ́ kúrò nínú ẹ̀rọ tí ó ń parí rẹ̀. Ìtẹ̀jáde jẹ́ ìpinnu ìtọ́sọ́nà pẹ̀lú ìyàtọ̀ fún ìpele ìṣàkóso, kì í ṣe ìlà DNAT kan ṣoṣo.

Ẹnu-ọ̀nà gbangba tàbí ẹnu-ọ̀nà tunnel: yan ọ̀kan

Ìtẹ̀jáde iṣẹ́ ń dá ibi ìwọlé tuntun sí internet. Kò dà bí fífún peer ní ẹ̀tọ́ VPN, nítorí pé àlejò kì í wọ tunnel, gateway sì di ojú gbangba ti backend. Ìyàtọ̀ yẹn ni ó ń pinnu àwọn olùgbọ́ òfin àti ìwé-ẹ̀rí rẹ̀.

Àwọn ojú-ìwé ìṣàkóso kì í sábà bá ibi yẹn mu. Ojú-ìwé alákóso tí àwọn oníbàárà VPN tí a fọwọ́ sí ń dé ń pa ojú-ìkọlù mọ́ inú tunnel, ó sì ń yẹra fún fífi fọ́ọ̀mù ìwọlé hàn sí àyẹ̀wò àìlẹ́tọ̀ọ́. Àwọn ibi ìparí ètò gbangba ṣì nílò ìwé-ẹ̀rí TLS tiwọn, ìjẹ́rìí àti ààlà ìyára; ìgbésẹ̀ WireGuard tí a fi àṣírí bo kò dáàbò bo apá àlejò dé gateway.

Bí iṣẹ́ náà bá gbọdọ̀ jẹ́ ti gbangba ní tòótọ́, kọ orúkọ host, ìwé-ẹ̀rí tí ó bo ó àti àwọn ibiti àlejò tí ó yẹ kí ó dé. Àwọn òtítọ́ mẹ́ta yẹn ni yóò pinnu ìrísí òfin àti ìlànà àyọ̀ lẹ́yìn náà. Ohunkóhun tí ó wà ní ìta wọn jẹ́ ìmúgbòòrò ààyè lórí olùgbọ́ gbangba.

Ibùdó kan wọlé, backend kan jáde

Lo ibùdó gbangba kan àti iṣẹ́ backend kan. Nínú àpẹẹrẹ yìí eth0 ń gbé àdírẹ́sì gbangba 198.51.100.20, àdírẹ́sì tunnel gateway jẹ́ 10.200.0.1, peer sì ń ṣiṣẹ́ ètò náà lórí 10.200.0.7. TCP 9443 gbangba ni a ń yí sí TCP 8443 ti peer:

iptables -t nat -A PREROUTING -i eth0 -d 198.51.100.20 -p tcp --dport 9443 -j DNAT --to-destination 10.200.0.7:8443
iptables -t nat -A POSTROUTING -o wg0 -d 10.200.0.7 -p tcp --dport 8443 -m conntrack --ctorigdst 198.51.100.20 --ctorigdstport 9443 -j SNAT --to-source 10.200.0.1

Òfin SNAT bá backend tí a túmọ̀ àti ibi gbangba àkọ́kọ́ mu, nítorí náà ìsopọ̀ mìíràn sí iṣẹ́ backend yẹn wà ní ìta àwòrán yìí. Ó tún fi àdírẹ́sì àlejò pamọ́ fún peer, ìyẹn sì ni ìpààrọ̀ tí ó ń sọ ìpadàbọ̀ ọ̀nà tí ó dáàbò bo orísun di àpẹẹrẹ ọ̀tọ̀. Ìtọ́kasí àwọn ìmúgbòòrò iptables ń ṣàlàyé àwọn àfojúsùn méjèèjì àti àwọn àṣàyàn ìbámu wọn.

Gbígbé kọjá ṣì nílò láti tan, àti ẹ̀wọ̀n àyọ̀ nílò ìyọ̀ǹda fún ibi àti ibùdó tí a túmọ̀ pẹ̀lú àwọn ìdáhùn tí a ti fi lélẹ̀. Ẹ̀wọ̀n FORWARD ń rí ibi tí a túmọ̀ lẹ́yìn DNAT, nítorí náà òfin tí a kọ sí àdírẹ́sì gbangba kò bá pákẹ́tí tí a gbé kọjá mu. Kọ ìyọ̀ǹda sí tuple backend, kì í ṣe ti gbangba.

Peer gbọdọ̀ gba ìsopọ̀ iṣẹ́ láti àdírẹ́sì tunnel gateway, kí ó sì rán ìdáhùn padà nípasẹ̀ tunnel. AllowedIPs rẹ̀ gbọdọ̀ fọwọ́ sí orísun tí ó ń rí gan-an, tí ó jẹ́ àdírẹ́sì tunnel gateway lábẹ́ ìtúmọ̀ orísun, àti àkọsílẹ̀ 0.0.0.0/0 gbòòrò lórí gbogbo peer kò pọn dandan fún àpẹẹrẹ yìí. Ohun tí ó ń já àwọn ìrìnàjò ìpadàbọ̀ ni peer tí àkọsílẹ̀ rẹ̀ ṣí àdírẹ́sì yẹn kù, tàbí àpẹẹrẹ tí ó dáàbò bo orísun tí ó ń gbé àdírẹ́sì àlejò fúnra rẹ̀ kọjá, nítorí náà yẹ orísun tí peer ń rí gan-an wò, kì í ṣe èyí tí ó wà nínú òfin rẹ.

Pa àwọn olùgbọ́ gateway fúnra rẹ̀ mọ́ kúrò nínú òfin

Ìtúmọ̀ ibi ń ṣẹlẹ̀ kí ẹ̀rọ tó pinnu pé pákẹ́tí jẹ́ ti ibilẹ̀, nítorí náà UDP 51820 lè parí ní ọ̀dọ̀ peer dípò ọ̀dọ̀ ìlànà tí ó ń pa gbogbo ìsopọ̀ peer mọ́. Òfin ń gbé wọlé láṣeyọrí, tunnel sì kú, ìyẹn jẹ́ ìkùnà tí ó ṣòro láti kà láti ẹ̀gbẹ́ peer.

SSH, àwọn aṣojú àbójútó àti gbogbo iṣẹ́ mìíràn lórí gateway ní ìfarahàn kanna. Òfin tí ó ń gbé ohun gbogbo kọjá kò yà ìpele ìṣàkóso sọ́tọ̀ kúrò nínú ètò tí a tẹ̀ jáde, àti ìgbà ìtúnbẹ̀rẹ̀ àkọ́kọ́ lẹ́yìn ìyípadà ni ìgbà tí ìtìkúrò yóò hàn gbangba. Òfin tí ó bo ohun gbogbo kì í kìlọ̀ nípa iṣẹ́ tí ó ń gbà ní ìdákẹ́jẹ́. Ìwọ yóò rí i nígbà tí ìsopọ̀ tó kàn yóò kùnà.

Bí gbígbé kọjá gbòòrò bá pọn dandan ní tòótọ́, pa àwọn ibùdó ìṣàkóso mọ́ ṣáájú òfin tí ó bo ohun gbogbo tàbí lo àdírẹ́sì gbangba ọ̀tọ̀ fún ìtẹ̀jáde. Àṣàyàn kejì mọ́ gaara nítorí àdírẹ́sì ìṣàkóso ń pa ìlànà tirẹ̀ mọ́, ṣùgbọ́n olùpèsè gbọdọ̀ pèsè àdírẹ́sì yẹn; fífi àkọsílẹ̀ DNS kún kò pín ọ̀kan.

Gbígbé kọjá gbòòrò TCP àti UDP kì í ṣe gbogbo ìlànà ìbáraẹnisọ̀rọ̀. ICMP, IPv6, ìdáhùn MTU ọ̀nà àti ìrìnàjò ìta VPN nílò ìlànà tiwọn, àti òfin tí ó bo TCP àti UDP ń fi àwọn ọ̀ràn yẹn lé ẹ̀wọ̀n àkọ́kọ́.

Yan àpẹẹrẹ kí o tó kọ àwọn òfin

Àwọn ìrísí mẹ́rin bo ọ̀pọ̀lọpọ̀ ìtẹ̀jáde gateway, àṣàyàn sì dá lórí iye iṣẹ́ tí o ń ṣàkóso àti iye ewu ìpele ìṣàkóso tí o lè faradà. Tábìlì tí ó wà ní ìsàlẹ̀ ń tò wọ́n láti èyí tí ó tóóró jùlọ sí èyí tí ó gbòòrò jùlọ.

ModelWhat it protectsCostUse when
Narrow port forwardEvery other listener, including the VPNOne rule per serviceFew services, stable ports
Catch-all with reserved portsPorts named in the exception listRule order becomes criticalMany services and disciplined review
Separate public addressControl address fully isolatedProvider must supply the addressHigh-value publication
VPN-only accessNo public entry at allVisitors need the tunnelAdmin interfaces and internal tools

Bẹ̀rẹ̀ pẹ̀lú àpẹẹrẹ tóóró náà bí o tilẹ̀ ń retí iṣẹ́ púpọ̀ sí i lẹ́yìn. Òun ni ó rọrùn jùlọ láti ṣàyẹ̀wò, àti yíyí àkójọ òfin tóóró padà sí òfin kan tí a ti ṣàyẹ̀wò tí ó bo ohun gbogbo rọrùn ju wíwa pé olùgbọ́ wo ni òfin gbòòrò gbá mú. Àpẹẹrẹ yówù tí o yàn, pa àwọn òfin mọ́ lọ́dọ̀ ẹni tí ó ni firewall. Fífi àwọn ìlà iptables sí ẹ̀gbẹ́ ìṣètò UFW tàbí nftables tí ó tún ń ṣàkóso àwọn ẹ̀wọ̀n kan náà ń mú ìlànà jáde tí ó ń yípadà ní ìbámu pẹ̀lú ìtòlẹ́sẹẹsẹ ìbẹ̀rẹ̀.

Fi ìtẹ̀jáde àti ọ̀nà ìṣàkóso méjèèjì hàn

Dán wò láti ọ̀dọ̀ oníbàárà ìta tí a fọwọ́ sí pẹ̀lú orúkọ host tí a fọwọ́ sí àti ìwé-ẹ̀rí tí ó wúlò fún un. Jẹ́rìí backend tí ó dáhùn, kí o sì wò bí àwọn ibùdó gbangba tí kò ní í ṣe pẹ̀lú rẹ̀ ṣì ń kọ̀. Àyẹ̀wò ìwé-ẹ̀rí tí a ti pa kò jẹ́ àyẹ̀wò HTTPS tí ó yege, àti ìsopọ̀ tí ó dé backend tí kò tọ́ burú ju èyí tí ó kùnà.

Lẹ́yìn náà, jẹ́rìí gateway fúnra rẹ̀: so peer WireGuard pọ̀, ṣí ìpàdé SSH kí o sì jẹ́rìí pé àbójútó ṣì ń ròyìn. Iṣẹ́ tí a tẹ̀ jáde lè ṣiṣẹ́ nígbà tí ìpele ìṣàkóso ti bàjẹ́, nítorí náà àwọn àyẹ̀wò méjèèjì gbọdọ̀ wà nínú fèrèsé ìyípadà kan náà. Tún bẹ̀rẹ̀ lẹ́ẹ̀kan láti fi hàn pé a tún gbé àwọn òfin kalẹ̀ ní ìtòlẹ́sẹẹsẹ tí a retí, lẹ́yìn náà yọ ìtẹ̀jáde kúrò kí o sì jẹ́rìí pé yíyọkúrò bá àfikún mu gan-an. Ọ̀pọ̀ àfikún ìbẹ̀rẹ̀ pẹ̀lú yíyọkúrò tí kò pé ni bí àyẹ̀wò ìgbà díẹ̀ ṣe di ṣíṣí títí láé.

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