Òfin méjì ọ̀tọ̀ọ̀tọ̀ ni ó ń pinnu bóyá ọ̀nà VPN yóò la odi iná kọjá: ibudo tí aṣẹ́ràn máa ń pè àti ìlànà tí ń gbé ẹrù náà. Ṣí ti àkọ́kọ́ nìkan, ọ̀nà náà yóò gba ìjẹ́rìí, ṣùgbọ́n lẹ́yìn náà kò ní dáta kankan lọ. Ìwọ̀nba jùlọ ni ibudo TCP kan pẹ̀lú GRE fún PPTP, ibudo UDP méjì pẹ̀lú ESP fún L2TP/IPsec àti IKEv2, àti ibudo kan fún SSTP, OpenVPN àti WireGuard. Ìtọ́sọ́nà, àtẹ̀lé ìpò àti NAT ni ó ń pinnu ìyókù.

Bẹ̀rẹ̀ láti ibudo tí aṣẹ́ràn ń pè

Ìdí kọ̀ọ̀kan ní ibi ìwọlé kan tí aṣẹ́ràn kọ́kọ́ ń bá sọ̀rọ̀, ibi ìwọlé yẹn gan an ni òfin ìyọ̀ǹda rẹ gbọ́dọ̀ dárúkọ. Àwọn aṣẹ́ràn PPTP máa ń so mọ́ TCP 1723. L2TP/IPsec bẹ̀rẹ̀ IKE lórí UDP 500, ó sì ń lọ sí UDP 4500 nígbà tí a bá ń lo ọ̀nà NAT, nígbà tí férémù L2TP fúnra rẹ̀ wà lórí UDP 1701 nínú ọ̀nà náà. SSTP fi TLS bo ìpàdé náà lórí TCP 443, IKEv2 ń ṣe ìjíròrò lórí UDP 500 àti 4500, OpenVPN máa ń lo UDP 1194 ní àkọ́kọ́ ṣùgbọ́n a sábà máa ń gbé e lọ sí TCP 443, WireGuard sì ń gbọ́ lórí UDP 51820.

FamilyRule to add on the gatewayTypical mistake
WireGuardUDP port from ListenPort, for the peer addressAssuming 51820 when the config says otherwise
OpenVPNThe configured UDP or TCP port, often 443Opening 1194 after the server moved
SSTPTCP 443 limited to the gateway IPAllowing 443 to any destination
IKEv2UDP 500 and UDP 4500, plus ESPAllowing only 500 and losing NAT-T
L2TP/IPsecUDP 500, 4500, ESP, and 1701 inside the tunnelExposing 1701 to the internet
PPTPTCP 1723 and IP protocol 47Writing a rule for TCP 47

Wo àwọn nọ́mbà wọ̀nyí gẹ́gẹ́ bí iye àkọ́kọ́ kì í ṣe àwọn ẹ̀yà tí ó dúró ṣinṣin. Fíṣí WireGuard máa ń lo ibudo gbígbọ́ èyíkéyìí tí ìṣètò rẹ̀ polongo, server OpenVPN sì lè jókòó lórí ibudo èyíkéyìí tí alábòójútó ti yàn. Ka ìṣètò server náà kí o tó kọ òfin náà, nítorí odi iná tí a ṣí fún 1194 kò ṣe ohunkóhun fún server tí a ti gbé lọ sí 443.

Ọ̀wọ̀n kẹta ni ibi tí ọ̀pọ̀lọpọ̀ àwọn tikẹ́ẹ̀tì ìyípadà ti ń lọ́nà àṣìṣe. Òfin náà wà, ṣùgbọ́n ó ń tọ́ka sí ibi tí kò tọ́, ìtọ́sọ́nà tí kò tọ́ tàbí gbígbé tí kò tọ́.

GRE àti ESP ni nọ́mbà ìlànà, kì í ṣe ibudo

GRE àti ESP kò ní ibudo rárá, nítorí náà fọ́ọ̀mù odi iná tí ó kàn ń gba nọ́mbà ibudo kò lè ṣàpèjúwe wọ́n. GRE ni ìlànà IP 47, ESP ni ìlànà IP 50, a máa ń fi pápá ìlànà inú orí IP ṣe àfiwéwéra wọ́n. Òfin tí a kọ gẹ́gẹ́ bí ibudo TCP 47 kò bá ohunkóhun mu, ọ̀nà yẹn ni ètò PPTP fi ń dàbí ẹni pé ó tọ́ tí ó sì ń sọ gbogbo pákẹ́ẹ̀tì nù lẹ́yìn ìfọwọ́sowọ́pọ̀.

Àwọn rúta ilé ń fi èyí pamọ́ sẹ́yìn àpótí yíyan ọ̀nà tí ń fi òfin ìlànà sínú ẹ̀rọ àti, fún GRE, olùrànlọ́wọ́ NAT tí ó pọn dandan láti ya àwọn ìṣàn náà. Lórí odi iná gidi, ìwọ fúnra rẹ ni ó ń fi ìlànà kún un: gba ìlànà IP 47 láàyè sí server PPTP, gba ìlànà IP 50 láàyè sí ibùdó IPsec. Níbi tí ẹ̀rọ kò bá pèsè pápá ìlànà, ìkóra ni ọ̀nà àbáyọ, ìdí nìyẹn tí IKEv2 fi lè padà sí UDP 4500 àti ìdí tí OpenVPN àti WireGuard kò fi pàdé ìṣòro yìí rárá.

Yẹ̀wò ohun tí òfin náà ń bá mu gan an kí o tó dá aṣẹ́ràn náà lẹ́bi. Olùka pákẹ́ẹ̀tì tí ó dúró ní òdo lórí ibùdó sọ pé òfin náà kò tíì ṣiṣẹ́ rárá, ìgbà yòówù tí a tún fi sínú ẹ̀rọ ní ẹ̀gbẹ́ aṣẹ́ràn kò ní yí i padà.

Ìtọ́sọ́nà, ìpò àti NAT ń yí ìdáhùn padà

Aṣẹ́ràn tí ń pè jáde àti ibùdó tí ń gbọ́ wọlé jẹ́ àwọn àìní ọ̀tọ̀ọ̀tọ̀, ìlà ibudo kan náà sì lè tọ́ ní ìtọ́sọ́nà kan tí yóò sì tọ̀nà ní ti kejì. Odi iná tí ó ń tẹ̀lé ìpò ń tọpinpin ìṣàn UDP lórí 500 àti 4500, ó sì ń jẹ́ kí àwọn ìdáhùn padà láìsí òfin kejì. ESP àti GRE kò gbé ibudo, nítorí náà ohun-èlò NAT kò ní ohun tí yóò dì í mú, ó sì nílò olùrànlọ́wọ́ tàbí ìkóra láti tẹ̀lé ìpàdé náà.

Ọ̀nà NAT ni apá tí a máa ń gbàgbé. IKEv2 bẹ̀rẹ̀ lórí UDP 500, ó dá ohun-èlò NAT mọ̀, ó sì tẹ̀síwájú lórí UDP 4500, nítorí náà ìlànà tí ó kàn gba 500 yóò fún ni ní ọ̀nà tí yóò dúró lẹ́yìn tí ó ti ṣeé ṣe, yóò sì parọ́rọ́. L2TP/IPsec náà ṣe irú ìgbésẹ̀ kan. Bí gbígbà rẹ kò bá fi ìpààrọ̀ àkọ́kọ́ hàn tí kò sì fi ìrìnàjò tí ń lọ lọ́wọ́ hàn, wá òfin tí ó dúró ní 500.

Kọ ìtọ́sọ́nà pẹ̀lú gbogbo òfin. «Gba UDP 4500 láàyè» kò sọ ohunkóhun títí o fi sọ ibi tí ó ti bẹ̀rẹ̀ àti ibi tí ó ń lọ, òfin tí ó tọ́ fún aṣẹ́ràn tí ń rìnrìn-àjò sábà máa ń tọ̀nà fún ẹlẹgbẹ́ ojú-òpó sí ojú-òpó.

Yẹ̀wò gbogbo ọ̀nà pẹ̀lú gbígbà

Ṣe gbígbà náà lórí ibùdó, kì í ṣe lórí aṣẹ́ràn: aṣẹ́ràn kàn ń kọ ohun tí ó dé. Àwọn àlẹ̀mọ́ wọ̀nyí ń bo àwọn ìdí tí ó wà lókè, wọ́n sì ń fi hàn ìpele wo ni ó ṣẹ́kù:

sudo tcpdump -ni any tcp port 1723
sudo tcpdump -ni any udp port 500 or udp port 4500
sudo tcpdump -ni any proto gre
sudo tcpdump -ni any proto 50

Ka àbájáde gẹ́gẹ́ bí ìtẹ̀lélẹ̀. Nígbà tí ìjíròrò bá farahàn tí ìlànà ẹrù kò farahàn, jíjá ni ó ń ṣẹlẹ̀ níbìkan láàárín aṣẹ́ràn àti ibùdó. Nígbà tí àwọn méjèèjì bá farahàn tí ojú-ìwé ṣì ń kùnà, odi iná kò sí ní afura mọ́; wo ìtọ́sọ́nà, DNS tàbí àdàkọ àdírẹ́sì tí a fún aṣẹ́ràn náà.

Lórí ẹ̀rọ tí kò ní tcpdump, ẹ̀rí kan náà ń wá láti olùka fíṣí àti òfin. Báìtì ń wọlé ṣùgbọ́n kò jáde lórí fíṣí ọ̀nà náà — èyí ń tọ́ka sí ọ̀nà ìpadàbọ̀, kì í ṣe òfin ìyọ̀ǹda àkọ́kọ́.

Fi àkójọ òfin sílẹ̀ tí o lè gbèjà

SSTP lórí TCP 443 kò ṣeé yà sọ́tọ̀ kúrò nínú HTTPS lasan fún àlẹ̀mọ́ tí ó dá lórí ibudo, ìdí nìyẹn nígbà tí nẹ́tíwọ́kì kàn ń gba ìrìnàjò wẹ́ẹ̀bù láàyè. Ìdí kan náà ni òfin 443 fi gbọ́dọ̀ dárúkọ ibùdó gẹ́gẹ́ bí ibi àfojúsùn dípò gbogbo íńtánẹ́ẹ̀tì. Pa àwọn òfin àkókò tí ó jẹ́ láti-ohunkóhun-sí-ohunkóhun rẹ́ ní kété tí ọ̀nà náà bá ṣiṣẹ́. Kọ òfin wo ni ó bá mu, nọ́mbà ìlànà níbi tí ó bá wà, àti ìtọ́sọ́nà, kí ẹni tí ó kàn lè bẹ̀rẹ̀ láti ẹ̀rí.

Àwọn ibùdó kùrukùru ojú-òpó-sí-ojú-òpó ń jẹ́ kí yíyan hàn kedere: prófáìlì tí a gbà sóde máa ń lo SSTP lórí 443 tàbí IKEv2 lórí 500 àti 4500, o sì gbọ́dọ̀ ṣí èyí tí prófáìlì náà yàn gan an nìkan. PPTP kò tọ́ sí àyọkùrò GRE lórí nẹ́tíwọ́kì òde òní, nítorí àwọn olùpèsè fọ́nù máa ń sọ ìlànà 47 nù láìka odi iná rẹ. Kí o tó pa tikẹ́ẹ̀tì náà, jẹ́rìí sí i pé òfin náà bá ibudo inú ìṣètò server mu, pé pápá ìlànà ti wà níbi tí ìdí náà nílò rẹ̀, àti pé ibi àfojúsùn ni ibùdó kì í ṣe àdírẹ́sì èyíkéyìí.

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