Ìbéèrè náà máa ń jẹ́ ẹ̀yà ti gbólóhùn kan náà: pa VPN mọ́ fún ìwò ojú-ìwé, ṣùgbọ́n jẹ́ kí SSH tàbí iṣẹ́ àdàkọ ààbò lo ìsopọ̀ déédéé. Ìmọ̀ràn tí ń kósùn nípa èyí, láti tẹ ibudo náà síwájú pẹ̀lú àwọn òfin NAT ti iptables, kò ṣe bẹ́ẹ̀. Òfin NAT ń tún àwọn àdírẹ́sì àti ibudo kọ nínú ìṣàn kan; kò yan fáàbù tí pákẹ́ẹ̀tì ń gbà jáde rárá. Ìpinnu yẹn jẹ́ ti wíwá ọ̀nà, wíwá ọ̀nà sì nílò ìrànlọ́wọ́ láti rí ibudo.

Kí ni ìdí tí ọ̀nà lasan kò fi lè bá ibudo mu

Linux ń yan ọ̀nà nípa wíwa àdírẹ́sì ibi-àfojúsùn nínú tábìlì kan, lẹ́yìn tí a bá ṣe àwọn tábìlì olùdíje ní àlẹ̀mọ́ pẹ̀lú àwọn òfin ìlànà. Àwọn òfin yẹn lè bá àmì firewall, àdírẹ́sì orísun, fáàbù tí ń wọlé tàbí UID mu. Ìkọ̀wé ọ̀nà fúnra rẹ̀ kò ní pápá ibudo, nítorí a yan ọ̀nà kí orí-ọ̀rọ̀ gbígbé kí ó tó di pàtàkì.

iproute2 àti àwọn kérènẹ́lì ti ìsinsìnyí ń gbòòrò yíyan òfin: ipproto, sport àti dport ni a gbà, nítorí náà ip rule add ipproto tcp dport 22 table 100 ń fi èrò hàn ní ìlà kan. Ṣe ip rule add help lórí ẹ̀rọ gidi láti rí i bóyá kíkọ́ rẹ ṣe àkójọ dport. Bó bá ṣe bẹ́ẹ̀, o ti parí pẹ̀lú àṣẹ kan; bí kò bá ṣe bẹ́ẹ̀, ọ̀nà àmì tí ó wà nísàlẹ̀ ni ó dọ́gba.

Bí ó ti wù kó rí, òfin náà kì í ṣe ju atọ́ka lọ. Tábìlì 100 ṣì nílò ọ̀nà, ìyẹn sì ni apá tí àwọn ènìyàn ń gbàgbé.

Ẹ̀ka mẹ́ta, tàbí ọ̀kan

Ọ̀nà òde-òní ni òfin kan ṣoṣo tí ó wà lókè pẹ̀lú ọ̀nà kan nínú tábìlì mìíràn. Ọ̀nà ìgbà láé ni ó ń fi netfilter kún àárín: sami àmì sí pákẹ́ẹ̀tì, lẹ́yìn náà bá àmì mu nínú òfin kan. Àwọn méjèèjì parí ní wíwá kan náà; wọ́n yàtọ̀ ní ibi tí a ti ka ibudo.

Ọ̀nà àmì wà nítorí netfilter rí orí-ọ̀rọ̀ gbígbé, kóòdù ìtọ́sọ́nà kò sì rí i ní ìtàn. Ìyẹn ni gbogbo ẹ̀rọ náà, ó sì ṣàlàyé ìdí tí ọ̀nà àbájáde fi jẹ́ ẹ̀ka mẹ́ta tí ń ṣiṣẹ́ pọ̀ dípò àṣẹ ọlọ́gbọ́n kan.

Ẹ̀ka mẹ́ta ní tẹ̀lẹ̀tẹ̀lẹ̀

Lákọ̀ọ́kọ́, sami àmì sí àwọn ìṣàn tí o fẹ́ yí padà, nínú ẹ̀wọ̀n tí ń ṣiṣẹ́ ní àkókò tó pẹ́ tó kí àmì lè wà kí ìpinnu ọ̀nà tó dé:

nft add table inet vpnexempt
nft 'add chain inet vpnexempt out { type route hook output priority mangle; }'
nft add rule inet vpnexempt out tcp dport 22 meta mark set 0x1

Ní èkejì, fi àwọn pákẹ́ẹ̀tì tí a sami àmì ránṣẹ́ sí tábìlì ọ̀tọ̀ọ̀tọ̀:

ip rule add fwmark 0x1/0x1 table 100

Ní ẹ̀kẹta, fún tábìlì yẹn ní ọ̀nà àìdábọ̀ nípasẹ̀ ìsopọ̀ ojú-ara. Àwọn àdírẹ́sì jẹ́ àpẹẹrẹ; fi tìrẹ sí:

ip route add default via 192.168.1.1 dev wlan0 table 100

Yí ìgbésẹ̀ kẹta kọjá, pákẹ́ẹ̀tì tí a sami àmì kò ní rí ọ̀nà nínú tábìlì 100, nítorí náà yóò kùnà. Àmì náà dà bí ẹni pé òfin náà ti ba nẹ́tíwọ́kì jẹ́, nígbà tí ó kúkú yọ ọ̀nà kan ṣoṣo tí ó kù fún pákẹ́ẹ̀tì náà.

Kí ni ó ń jẹ́ kí ó máa ṣiṣẹ́ lẹ́yìn pákẹ́ẹ̀tì àkọ́kọ́

Àwọn àmì kan àwọn pákẹ́ẹ̀tì tí ń jáde. Ìdáhùn wá lórí fáàbù ojú-ara pẹ̀lú àdírẹ́sì tí ìsopọ̀ náà fúnni, tábìlì pàtàkì sì lè ṣì fẹ́ ihò náà fún ibi-àfojúsùn yẹn. Ọ̀nà méjì ń dá ọ̀nà ìdáhùn dúró lọ́wọ́: òfin kan tí ó dá lórí orísun fún àdírẹ́sì ìsopọ̀, àti connection tracking tí ó ń pa ìpinnu mọ́ fún gbogbo ìgbésí ayé ìṣàn náà. Pípa àmì mọ́ nínú conntrack àti mímú u padà ní ìdáhùn ni ọ̀nà déédéé láti jẹ́ kí ìyọkúró tí ó ní ipò dúró ṣinṣin.

Àlẹ̀mọ́ ọ̀nà yípadà ni apànìyàn ẹlẹ́ẹ̀mí kejì. Bí kérènẹ́lì bá fi táná-táná ṣàyẹ̀wò ọ̀nà ìpadàbọ̀, ìdáhùn sì wá lórí fáàbù tí tábìlì pàtàkì kò ní yàn, a gbé pákẹ́ẹ̀tì nù láìsí ìfiránṣẹ́. rp_filter àwọn iye àìdábọ̀ yàtọ̀ gbogbo ìpín àti bóyá a ń gbé fáàbù náà lọ, nítorí náà ka iye tí ń ṣiṣẹ́ dípò kí o ro pé ó ti kú.

Má ṣe sami àmì sí gbígbé ti ihò fúnra rẹ̀. Ihò WireGuard tàbí UDP OpenVPN kì í ṣe TCP 22, nítorí náà ìlànà tí ó wà lókè jẹ́ ààbò, ṣùgbọ́n ìyọkúró tí a kọ gẹ́gẹ́ bí ohun gbogbo yàtọ̀ sí ibi-àfojúsùn ihò lè mú àwọn pákẹ́ẹ̀tì tí a fi àṣírí pamọ́ àti ba ihò náà jẹ́ ní ọ̀nà tí ó dà bí ìyípo ìtọ́sọ́nà.

Ṣàyẹ̀wò dípò kí o ro

Bèèrè lọ́wọ́ kérènẹ́lì ọ̀nà tí yóò gbà, fún ibi-àfojúsùn àti fún ibudo, lẹ́yìn náà ṣe gbígbé gidi:

ip route get 203.0.113.10
ip rule show
nft list ruleset

Bí àmì bá wà ṣùgbọ́n àwọn kọ́nkà kò yí padà rárá, òfin náà kò bá mu. Àwọn kọ́nkà ni ìyàtọ̀ láàrin ìṣètò tí o kọ àti ìlànà tí kérènẹ́lì ń lò.

Nígbà tí èyí jẹ́ irinṣẹ́ tí kò tọ́

Àwọn ìyọkúró tí ó dá lórí ibudo jẹ́ aláìlera ní àsìkò. Àwọn iṣẹ́ ń yi ibudo padà, HTTP/3 ń wá gẹ́gẹ́ bí UDP 443, ohun-èlò kan sì lè ṣí àwọn ìṣàn mélòókan tí oríṣi wọn yàtọ̀. Bí ìbéèrè gidi bá ni pé ohun-èlò yìí lo ìsopọ̀ déédéé, ẹ̀ka ìtọ́sọ́nà ni ibi tí kò tọ́; orúkọ àyè nẹ́tíwọ́kì tàbí proxy fún ohun-èlò kọ̀ọ̀kan bá mu dáadáa.

Bí ìbéèrè bá ni pé nẹ́tíwọ́kì kékeré yìí lo ìsopọ̀ déédéé, yí gbogbo àwọn àmì kọjá kí o sì fi ọ̀nà pàtó kan kún. Ó rọrùn jù, a rí i nínú tábìlì kan, ẹni tí ó kàn sì lè ṣàyẹ̀wò rẹ̀ láìka àkójọ òfin.

Kọ ẹni tí ó jẹ́ ìbéèrè nínú àwọn mẹ́ta tí o ní ní ti gidi kí o tó fọwọ́ kan firewall. Ẹ̀rọ tí ó wà lókè jẹ́ pípé, pípé tí a lò sí ẹ̀ka tí kò tọ́ kì í ṣe ju ìdáná dúró pẹ́ lọ.

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