Zuia Masafa Moja ya Marudio kwa Kila Bwawa la Wateja la VPN
Kanuni moja ya nftables inaweza kukataa kiambishi cha marudio kwa bwawa la VPN lililokubaliwa bila kugusa trafiki ya lango yenyewe. Linganisha hook na nafasi.
Kanuni moja inaweza kuweka bwawa la VPN lililokubaliwa mbali na masafa ya marudio bila kuvuruga kitu kingine chochote lango linalofanya. Kanuni yenyewe ni fupi; sehemu zinazoamua ikiwa itafanya kazi ni hook inamoishi na nafasi yake kwenye mnyororo. Ukikosea hizi mbili, unapata firewall inayoonekana sahihi na inayofanya kazi bila uthabiti. Anza na kile pakiti inachofanya kanuni inapokiona.
Kanuni inalinganisha nini hasa
Kanuni inalinganisha vitu vitatu kwa wakati mmoja: kiolesura cha kuingia, kiambishi cha chanzo na kiambishi cha marudio. Vyote vitatu lazima viwe kweli kabla drop itumike, na ndivyo inavyoifanya kuwa nyembamba. Kuisoma kama usemi mmoja ni rahisi kuliko kama sera tatu tofauti.
Ulinganisho wa kiolesura ndio unaotofautisha trafiki ya wateja inayopitishwa na miunganisho ya lango yenyewe. Bila hiyo, kanuni inayotaja bwawa la chanzo pekee pia ingeathiri pakiti ambazo lango lenyewe huzalisha kutoka anwani hiyo, ikiwa hilo huwahi kutokea. Kiambishi cha chanzo kinahakikisha sera inabaki kwa wateja walioruhusiwa, na kiambishi cha marudio kwa masafa moja. Soma kanuni kama makutano na si kama orodha.
Andika thamani tatu kabla ya kuhariri chochote: jina la kiolesura cha handaki, bwawa ambalo seva inagawa, na kiambishi unachokusudia kukataa. Kosa la uchapishaji kwenye yoyote yake hutoa kanuni inayochanganuliwa safi na hailindi chochote. Weka thamani hizo tatu kwenye rekodi ya mabadiliko kando ya kanuni.
Hook huamua kanuni inamhusu nani
Mnyororo wa netfilter umeshikamana na hook, na hook huamua ni pakiti gani mnyororo unaziona. Hook ya forward huona trafiki inayopitishwa kupitia lango, na hiyo ndiyo trafiki ya mteja kwenda marudio. Kila kitu kingine kwenye mnyororo kimeelekezwa kwa hadhira nyingine.
Hook ya input huona trafiki inayoelekezwa kwa lango lenyewe, kwa hivyo kanuni iliyowekwa hapo husimamia ufikiaji wa huduma zake na si upitishaji. Hook ya output huona trafiki ambayo lango lenyewe huzalisha, ambayo ni kinyume cha kile sera ya bwawa la wateja inahitaji. Majina ya mnyororo ni lebo za kiholela zilizochaguliwa na aliyeandika seti ya kanuni, kwa hivyo usikisie hook kutoka kwenye jina. Angalia mahali mnyororo umeunganishwa kabla ya kudhani unaweza kulinganisha nini.
| Hook | Traffic it sees | Right for this policy |
|---|---|---|
| input | Addressed to the gateway | No, that is the host's own services |
| forward | Routed through the gateway | Yes, for client-to-destination traffic |
| output | Generated by the gateway | No, that is the opposite direction |
Kusoma muunganisho ni ukaguzi wa mstari mmoja unaozuia kanuni kuanguka kwenye mnyororo ambao hauoni pakiti kamwe.
Weka kanuni kabla ya accept pana
Kanuni hutathminiwa kwa mpangilio, na uamuzi wa kwanza hushinda. Accept pana mapema kwenye mnyororo humaliza utathmini kwa pakiti inazolinganisha, kwa hivyo drop iliyoongezwa baadaye haikimbii kamwe kwa hizo. Kanuni hiyo ya mpangilio ndiyo sababu yote kwa nini kanuni inayoonekana sahihi inaweza kuwa bila athari.
Ingiza kanuni kabla ya accept badala ya kuiongeza mwishoni. Ikiwa mnyororo tayari una accept ya jumla kwa kiolesura cha handaki, kanuni mpya lazima itangulie hiyo, vinginevyo ni pambo tu. Angalia mpangilio unaotokana na si faili uliyohariri, kwa sababu seti ya kanuni iliyokusanywa kutoka faili kadhaa inaweza isilingane na yoyote yao. Kisha thibitisha kwa pakiti ya jaribio kutoka kwenye bwawa.
sudo nft list chain inet filter forward
sudo nft insert rule inet filter forward iifname "tun0" ip saddr 10.90.0.0/24 ip daddr 198.51.100.0/24 drop
sudo nft -c -f /etc/nftables.conf
Amri ya tatu huchanganua faili bila kuitumia, ambayo hukamata makosa ya sintaksia kabla ya kuwa kizuizi. Itumie kwa mpango wa kurudi nyuma, kwa sababu kanuni isiyo sahihi kwenye mnyororo wa forward inaweza kukata handaki unalofanyia kazi.
Mitiririko iliyopo haijali kanuni yako mpya
Kipengele cha conntrack kilichoundwa kabla kanuni haijakuwepo kinaendelea kulingana na accept ya awali. Ndiyo sababu drop mpya wakati mwingine huonekana kufanya kazi kwa miunganisho mipya na haifanyi chochote kwa ile inayojaribiwa.
Soma ulinganisho wa hali juu ya mnyororo. Ikiwa unakubali trafiki ya established na related kabla ya kanuni yako, kila mtiririko unaoendelea unaendelea kutiririka hadi ufungwe. Kwa kawaida hiyo ndiyo tabia unayotaka kwa kanuni ya dharura, na inachanganya unapotarajia kukatwa mara moja. Amua ni athari gani unayotaka kabla ya kupeleka. Jaribio linalotumia muunganisho wazi tena litakuambia hadithi isiyo sahihi.
sudo conntrack -L -s 10.90.0.14 -d 198.51.100.20
sudo nft list ruleset | grep -n -A3 'ct state'
Amri ya kwanza inaonyesha ikiwa mtiririko upo, na ya pili inaonyesha ikiwa kanuni ya hali ya awali inaendelea kuukubali. Zote mbili ni za kusoma tu na salama kukimbia wakati wa tukio.
Kanuni hii si nini
Kanuni si orodha nyeusi ya vikoa, sera ya IPv6 wala kizuizi kwa akaunti moja ya programu.
Kila moja ya haya inahitaji utaratibu wake. Uzuiaji wa kikoa lazima utatue majina, jambo ambalo kichujio cha pakiti halifanyi. Trafiki ya IPv6 inahitaji ulinganisho wake, kwa sababu usemi wa ip hausemi chochote kuhusu pakiti za ip6. Kizuizi cha kiwango cha programu ni cha huduma au proksi iliyothibitishwa, si cha ulinganisho wa kiambishi. Kutenganisha mahitaji hayo ndiko kunakozuia kanuni moja nyembamba kuombwa kufanya kazi nne.
Mkataba ambao kanuni hii inatoa ni sahihi: trafiki kutoka bwawa lililokubaliwa kwenda kiambishi kimoja cha marudio inakataliwa, huku trafiki isiyohusiana ya lango ikiendelea na sera yake iliyopo. Andika sentensi hiyo kando ya kanuni, na mtu anayefuata atajua ilikuwa ya nini.