Alábàáṣiṣẹ́ náà gba àdírẹ́ẹ̀sì, sẹ́fà ń dáhùn ping, ṣùgbọ́n ojú-ìwé kọ̀ọ̀kan ṣì ń dópin àkókò. Ọ̀pọ̀ ènìyàn bẹ̀rẹ̀ sí ṣàtúnṣe prófáìlì alábàáṣiṣẹ́ níbi yìí, èyí tí ó sábà jẹ́ ìṣekùṣe asán: ní kété tí tọ́nẹ́lì bá gòkè, sẹ́fà gbọ́dọ̀ hu ìwà bí olùdarí ọ̀nà. Àwọn ipò mẹ́ta gbọ́dọ̀ wà lẹ́sẹ̀ẹ̀kan ṣáájú kí pákẹ́tì tó jáde kí ìdáhùn sì padà, àmì àìsàn náà sì jẹ́ ọ̀kan náà èwo ni ó bá sọnù.

Ìdí tí tọ́nẹ́lì tí ń ṣiṣẹ́ kò ní ọ̀nà jáde

Kọ́kọ́rọ́ gbọ́dọ̀ gbé àwọn pákẹ́tì jáde láàárín àwọn ìsopọ̀, èyí tí ó pa ní àìlẹ́sẹ̀ ní ọ̀pọ̀ ìpín Linux. Àwọn ìrìn àjò gbọ́dọ̀ jẹ́ ìtúmọ̀ sí àdírẹ́ẹ̀sì tí ayé òde lè dáhùn, àyàfi tí olùdarí ọ̀nà gbogbo lókè bá ti mọ ọ̀nà ìpadà sí àwọn ẹ̀ka tọ́nẹ́lì. Ọ̀nà gbígbé jáde ti odi iná gbọ́dọ̀ gba ìrìn àjò ní ọ̀nà méjèèjì, pẹ̀lú àwọn ìdáhùn.

Ọ̀kọ̀ọ̀kan wọ̀nyí ni a lè tún ṣe lọ́tọ̀ọ̀tọ̀, ìdẹkùn sì ni ìyẹn. Mímú gbígbé jáde ṣiṣẹ́ láìsí òfin ìtúmọ̀ ń jẹ́ kí àwọn pákẹ́tì jáde pẹ̀lú orísun àdáni àti láìsí ọ̀nà ìpadà. Fífi ìtúmọ̀ kún láìsí òfin gbígbé jáde ń jẹ́ kí kọ́kọ́rọ́ ju pákẹ́tì náà nù ní ìgbésẹ̀ kan lẹ́yìn.

Nítorí náà dán ìpele mẹ́ta wò dípò alábàáṣiṣẹ́, kí o sì yí ọ̀kan padà lẹ́ẹ̀kan kí àbájáde lè ní ìtumọ̀.

Gbígbé jáde jẹ́ ìyípadà kọ́kọ́rọ́ tí o gbọ́dọ̀ mú dúró ṣinṣin

Yẹ iye tí ó wà báyìí wò kí o tó yí i padà, lẹ́yìn náà gbé e kalẹ̀ kí o sì jẹ́rìí pé ìyípadà náà ti wúlò.

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

Àṣẹ àkọ́kọ́ ń sọ iye tí ó wà báyìí, èkejì ń gbé e kalẹ̀ nígbà ṣíṣe, ẹ̀kẹta sì ń fi hàn pé kíkọ náà ṣiṣẹ́. Iye àkókò ṣíṣe máa ń pòórá ní ìgbà ìtúnbẹ̀rẹ̀ tí ń bọ̀, ìdí nìyẹn tí ìpàdé tí ń ṣiṣẹ́ lè já ní àkókò ìtọ́jú láìsí ìyípadà ìṣètò kankan.

Mú kí ó dúró ṣinṣin nínú fáìlì kan lábẹ́ /etc/sysctl.d/, lẹ́yìn náà lo fáìlì yẹn dípò ìtúnbẹ̀rẹ̀ láti mọ̀. Ní FreeBSD ìbámu rẹ̀ ni net.inet.ip.forwarding, pẹ̀lú gateway_enable=YES nínú rc.conf fún ìdúró ṣinṣin. Ẹ̀rọ tí ń sọ pé gbígbé jáde ti pa yóò ṣàlàyé gbogbo ẹ̀ka ìròyìn «àwọn pákẹ́tì ń wá, kò sì sí ohun tí ń padà». Yẹ ìṣètò náà wò lẹ́yìn gbogbo ìgbésẹ̀ ìmúdọ̀tun pẹ̀lú, nítorí kọ́kọ́rọ́ tí a tún kọ́ tàbí àwòrán ẹ̀rọ tí a rọ́pò lè tún un ṣètò láìsí sísọ fún ẹnikẹ́ni.

Yan masquerade tàbí àdírẹ́ẹ̀sì ìtúmọ̀ kan tí ó dúró

Pẹ̀lú àdírẹ́ẹ̀sì òde tí ń yí padà, masquerading ni ọ̀nà tí ó tọ́ tí ó rọrùn jùlọ. Pe àwọn ẹ̀ka tọ́nẹ́lì ní orísun àti ìsopọ̀ òde ní ọ̀nà jáde.

iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -o eth0 -j MASQUERADE

Pẹ̀lú àdírẹ́ẹ̀sì gbogbogbò tí ó dúró, ìtúmọ̀ orísun sí àdírẹ́ẹ̀sì kan náà yẹn ni a lè sọ tẹ́lẹ̀ dáadáa, ó sì rọrùn láti ṣàyẹ̀wò.

iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -j SNAT --to-source 198.51.100.10

Ọ̀nà kejì ń gbé ìdẹkùn ìtọ́jú: àdírẹ́ẹ̀sì tí a kọ mọ́lẹ̀ tí yóò yí padà lẹ́yìn náà ń jẹ́ kí tọ́nẹ́lì ṣiṣẹ́ nígbà tí àǹfààní íńtánẹ́ẹ̀tì yóò dá ṣá. Bóyá lo masquerade tàbí ṣàtúnṣe òfin náà ní gbogbo ìgbà tí olùpèsè bá gbé ọ lọ. Ìsopọ̀ náà pẹ̀lú ṣe pàtàkì, nítorí olùdarí ọ̀nà tí ń pín tọ́nẹ́lì òkè rẹ̀ fún ara rẹ̀ gbọ́dọ̀ túmọ̀ jáde nípasẹ̀ tọ́nẹ́lì yẹn kì í ṣe WAN ti ara.

Tábìlì àyọ̀ jẹ́ ẹnubodè kẹta

Gbígbé jáde àti ìtúmọ̀ lè jẹ́ ọ̀tọ̀ọ̀tọ̀ tí ó tọ́ nígbà tí pákẹ́tì yóò kú nínú tábìlì àyọ̀. ufw jẹ́ ẹlẹ́bi lójoojúmọ́: ètò gbígbé jáde rẹ̀ ń wá bí DROP, ìṣètò ìyókù sì lè dàbí ẹni pé ó tọ̀nà pátápátá nígbà tí ìṣètò kan náà yẹn ń pa ìrìn àjò. Gbígbé e sókè kì í ṣe àpótí àmì, ìpinnu ààbò mọ̀ọ́mọ̀ ni.

iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o tun0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Òfin àkọ́kọ́ ń gba ìrìn àjò tuntun láti inú tọ́nẹ́lì sí òde, èkejì ń gba àwọn ìdáhùn nìkan láti padà. Dín méjèèjì kù sí ẹ̀ka tọ́nẹ́lì àti ibi tí a pète, nítorí àṣẹ gbogbogbò lórí ìsopọ̀ tọ́nẹ́lì yóò sọ VPN di ibi jáde tí ó ṣí sílẹ̀ fún ẹnikẹ́ni tí ó lè jẹ́rìí ara rẹ̀.

Tọ́nẹ́lì tí a fi afárá so nílò ìdáhùn mìíràn. Àdírẹ́ẹ̀sì jẹ́ ti afárá, kì í ṣe ti ebute ti ara, nítorí náà sísọ ìsopọ̀ di ẹrú yóò yọ àdírẹ́ẹ̀sì tí ó ní tẹ́lẹ̀ kúrò, agbàlejò yóò sì dàbí ẹni tí a kò lè dé ọ̀dọ̀ rẹ̀ títí afárá fúnra rẹ̀ yóò fi gba ọ̀kan, èyí tí dhclient br0 lè pèsè. Ìkùnà yẹn dàbí ìṣòro VPN ṣùgbọ́n ìṣòro ìpele kejì ni. Yẹ àdírẹ́ẹ̀sì afárá fúnra rẹ̀ wò kí o tó fi ọwọ́ kàn odi iná, nítorí ìyípadà àyọ̀ kò lè tún agbàlejò tí kò ní àdírẹ́ẹ̀sì láti fi ránṣẹ́ ṣe.

Ibi tí a yẹ̀ wò nígbà tí ojú-ìwé kò gbé wá rárá

Ping àdírẹ́ẹ̀sì tọ́nẹ́lì sẹ́fà láti fi hàn pé tọ́nẹ́lì wà. Lẹ́yìn náà ṣe traceroute láti alábàáṣiṣẹ́ sí àdírẹ́ẹ̀sì gbogbogbò kí o sì kà ibi tí ó dúró sí: ní sẹ́fà pákẹ́tì ń dé ṣùgbọ́n a kò gbé e jáde tàbí túmọ̀ rẹ̀; ní òde sẹ́fà ìṣòro wà lókè, kò sì sí ní ọwọ́ rẹ.

ping -c 3 10.9.0.1
traceroute -n 198.51.100.10

Àṣẹ àkọ́kọ́ fi hàn pé tọ́nẹ́lì ń gbé ìrìn àjò dé sẹ́fà fúnra rẹ̀, èkejì sì fi hàn bí pákẹ́tì ṣe ń lọ jìnà tó sí òde. Ojú tí ó parí ní àdírẹ́ẹ̀sì tọ́nẹ́lì ń tọ́ka sí gbígbé jáde tàbí ìtúmọ̀ lórí sẹ́fà, nígbà tí ojú tí ó dúró lẹ́yìn ìgbésẹ̀ kan ń tọ́ka sí olùpèsè tàbí ọ̀nà ìpadà olùdarí ọ̀nà òkè.

Lórí sẹ́fà, ṣọ́ ìsopọ̀ òde nígbà tí alábàáṣiṣẹ́ ń gbé ojú-ìwé wá. Ìrìn àjò tí ń jáde pẹ̀lú àdírẹ́ẹ̀sì orísun àdáni túmọ̀ sí pé ìtúmọ̀ kò sí, àìsí ìdáhùn rárá sì túmọ̀ sí pé ọ̀nà gbígbé jáde tàbí ọ̀nà ìpadà òkè ń ju ú nù.

Bí àwọn alábàáṣiṣẹ́ tí ó jìnnà bá tún ní láti dé àwọn agbàlejò nínú LAN sẹ́fà, rántí pé LAN nílò ọ̀nà ìpadà sí ẹ̀ka tọ́nẹ́lì. Ìyẹn ni ìdàpọ̀ ọ̀nà kì í ṣe ìtúmọ̀, ìgbésẹ̀ tí a sábà gbàgbé jùlọ sì ni ìyẹn lẹ́yìn tí ọ̀nà íńtánẹ́ẹ̀tì bá wúlò níkẹyìn.

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