nftables: futni rregullën e lejimit të VPN përpara dorezës së drop
Në nftables, insert dhe add vendosin një rregull në anët e kundërta të një doreze. Gjeni drop-in, zgjidhni anën, pastaj kontrolloni skedarin përpara se grupi i rregullave të ndryshojë.
Vendosni një rregull lejimi në vendin e gabuar dhe ai sillet sikur të mos kishte fare rregull. Në nftables zgjedhja midis insert dhe add përcakton se në cilën anë të një rregulli të referuar do të ulet deklarata e re, dhe doreza emërton rregullin në grupin aktiv të rregullave, jo numrin e rreshtit të tij. Nëse vendosja është e gabuar, paketa arrin së pari te drop-i.
Krahasimi më poshtë përdor një palë fikse dhe një shkëmbim dëgjuesi të jashtëm. Është qëllimisht i ngushtë; zëvendësimi i një zinxhiri të tërë është një ndryshim tjetër me një profil tjetër rreziku.
Dy vendosje, dy rezultate të ndryshme
insert vendos një rregull përpara rregullit të referuar. add e vendos pas tij. Nëse rregulli i referuar është drop-i përfundimtar për rrjedhën, këto dy komanda japin rezultate të kundërta edhe kur teksti i rregullit është identik.
Heqja e një vendndodhjeje ka sjelljen e vet të parazgjedhur, që është një arsye tjetër për të mos kopjuar një komandë nga një forum pa lexuar se ku është ankoruar. Ankori është i gjithë vendimi. Shkruani anën e synuar përpara se të shkruani komandën. insert dhe add ndryshojnë me një fjalë në skedar.
Vendosja është relative me një rregull në një zinxhir të caktuar. Zhvendosja e së njëjtës deklaratë në një zinxhir tjetër ose në një përparësi tjetër hook ndryshon cilat paketa sheh, edhe kur sintaksa e rregullit duket e saktë.
Doreza identifikon një rregull, jo një numër rreshti
Një dorezë si 42 është një identifikues në gjendjen aktuale të grupit të rregullave. Nuk është rregulli dyzet e dy, dhe nuk është i qëndrueshëm midis host-eve, rindërtimeve ose një menaxheri që ringarkon konfigurimin e tij.
Gjeni zinxhirin dhe drop-in përfundimtar aktual përpara se të zgjidhni ankorin. Pastaj konfirmoni dorezën në atë rregull në të njëjtën listë që tregon drop-in, në mënyrë që numri dhe rregulli të lexohen së bashku. Një dorezë e lexuar nga një listë e vjetër mund t'i përkasë tashmë një rregulli tjetër. Rilexojeni në sesionin që do të zbatojë ndryshimin.
iptables --version
nft -a list ruleset
Versioni i iptables raporton cili backend përdoret. Një grup rregullash iptables-nft dhe një tabelë amtare e administruar në mënyrë të pavarur mund të bashkëjetojnë, kështu që një listë nga një frontend i vetëm nuk është automatikisht pamja e plotë e filtrimit. Kontrolloni të dyja pamjet përpara se të zgjidhni një zinxhir.
Gjeni zinxhirin dhe rregullin që bën vërtet drop
Lexoni hook-un e hyrjes, përparësinë e zinxhirit dhe rregullin që refuzon këtë rrjedhë dëgjuesi. Një tabelë inet mund të mbajë të dyja familjet e adresave, por një rregull individual mund të përputhet ende vetëm me IPv4.
Merrni një palë të miratuar, duke përdorur si shembull 198.51.100.25 nga diapazoni i dokumentacionit. Një skedar amtar i shqyrtuar mund të vendosë një lejim të jashtëm përpara dorezës 42:
insert rule inet filter input handle 42 iifname "eth0" ip saddr 198.51.100.25 udp dport { 500, 4500 } counter accept
Pas inspektimit zëvendësoni familjen, tabelën, zinxhirin, dorezën, ndërfaqen hyrëse dhe palën. Shembulli përdor formën e vendosjes sipas dorezës të dokumentuar për nft 1.0.9, dhe ajo i takon një skedari hyrjeje; citimi i kllapave kaçurrela është çështje më vete kur komanda shkruhet në mënyrë interaktive.
Mbajeni të qartë pronarin e konfigurimit. Një menaxher që rindërton rregullat e tij mund të mbishkruajë një ndryshim në kohë ekzekutimi, dhe një skript nisjeje që kodifikon fort një dorezë të vjetruar ose do të dështojë ose do të lidhet me rregullin e gabuar.
Lejimi është i kufizuar, drop-i është përfundimtar
Një vendim lejimi e përfundon vlerësimin në rrugën e tij aktuale, por një zinxhir bazë i zbatueshëm më vonë mund ta hedhë ende paketën. Një vendim drop-i është përfundimtar. Prandaj një numërues lejimesh në rritje nuk është provë se rrjedha pati sukses.
Inspektoni të gjitha përparësitë përkatëse të hook në vend të një zinxhiri të izoluar. Një paketë mund të kalojë një filtër hyrjeje dhe gjithsesi të refuzohet nga hook-u i një tabele tjetër në një përparësi tjetër. Listoni çdo zinxhir bazë që mund ta shohë rrjedhën.
Ai rregull mbulon vetëm shkëmbimin e dëgjuesit të jashtëm. ESP i inkapsuluar në transport, ESP amtar, palët IPv6 dhe trafiku i dekriptuar brenda tunelit kanë të gjithë nevojë për politikat e tyre. Nuk është një firewall i plotë VPN i faqes.
Kontrolloni skedarin, pastaj verifikoni rezultatin aktiv
Përpara se ta zbatoni, ekzekutoni një kontroll sintakse dhe transaksioni në skedarin e shqyrtuar. Mënyra e kontrollit raporton nëse nft mund ta analizojë dhe përgatisë ndryshimin; nuk e zbaton dhe nuk provon se një hook tjetër do ta lejojë paketën. Skedari mbetet një propozim derisa pronari ta zbatojë:
nft -c -f reviewed-vpn-rule.nft
Zbatojeni përmes procesit të kontrolluar të pronarit dhe ruani aksesin e rikuperimit. Nëse rregulli është i gabuar, drop-i që po përpiqeshit të parakaloni mund të presë edhe rrugën që përdorni për ta rregulluar.
Pas ndryshimit, vëzhgoni një provë të re të një pale të lejuar dhe kontrolloni që burimet jashtë palës së miratuar refuzohen ende. Zhvendosni rregullin e qëndrueshëm te menaxheri që zotëron grupin e rregullave, sepse dorezat në kohë ekzekutimi lokalizojnë objektet aktuale në vend që t'i identifikojnë ato midis nisjeve.