nftables: set inn VPN-tillatingsregelen før drop-handtaket
I nftables plasserer insert og add ein regel på kvar si side av eit handtak. Finn drop, vel sida, og kontroller deretter fila før regelsettet blir endra.
Plasser ein tillatingsregel på feil stad, og han oppfører seg som om det ikkje fanst nokon tillatingsregel. I nftables avgjer valet mellom insert og add kva side av ein referert regel den nye setninga landar på, og eit handtak namngjev regelen i det levande regelsettet framfor radnummeret. Tek du feil av plasseringa, når pakken drop først.
Samanlikninga nedanfor brukar éin fast peer og éi ytre lyttarutveksling. Ho er medvite smal; å byta ut ein heil kjede er ei anna endring med ein annan risikoprofil.
To plasseringar, to ulike utfall
insert plasserer ein regel før den refererte regelen. add plasserer han etter. Viss den refererte regelen er det terminale droppet for flyten, gir dei to kommandoane motsette resultat sjølv om regelteksten er identisk.
Å utelate ei plassering har si eiga standardåtferd, som er nok ei grunn til ikkje å kopiere ein kommando frå eit forum utan å lese kva han er forankra i. Forankringa er heile avgjerda. Skriv ned den tiltenkte sida før du skriv kommandoen. insert og add skil seg med eitt ord i fila.
Plasseringa er relativ til ein regel i ei bestemd kjede. Å flytte den same setninga til ei anna kjede eller ein annan hook-prioritet endrar kva pakkar han ser, sjølv når syntaksen til regelen ser rett ut.
Eit handtak identifiserer ein regel, ikkje eit linjenummer
Eit handtak som 42 er ein identifikator i den gjeldande tilstanden til regelsettet. Det er ikkje den førtiandre regelen, og det er ikkje stabilt på tvers av vertar, gjenoppbyggingar eller ein behandlar som lastar konfigurasjonen sin på nytt.
Finn kjedja og det faktiske terminale droppet før du vel forankringa. Stadfest deretter handtaket på den regelen i same opplistinga som viser droppet, slik at nummeret og regelen blir lesne saman. Eit handtak lese frå ei gammal opplisting kan alt høyra til ein annan regel. Les det på nytt i økta som skal bruke endringa.
iptables --version
nft -a list ruleset
iptables-versjonen rapporterer kva backend som blir brukt. Eit iptables-nft-regelsett og ein uavhengig administrert innebygd tabell kan eksistere side om side, så ei opplisting frå éin frontend er ikkje automatisk det fullstendige filtreringsbiletet. Kontroller begge visingane før du vel ei kjede.
Finn kjedja og regelen som faktisk droppar
Les input-hooken, prioriteten til kjedja og regelen som avviser denne lyttarflyten. Ein inet-tabell kan bera begge adressefamiliane, men ein einaste regel kan framleis berre matche IPv4.
Ta éin godkjend peer, med 198.51.100.25 frå dokumentasjonsområdet som døme. Ei gjennomgått innebygd fil kan plassere ei ytre tillating før handtak 42:
insert rule inet filter input handle 42 iifname "eth0" ip saddr 198.51.100.25 udp dport { 500, 4500 } counter accept
Byt ut familien, tabellen, kjedja, handtaket, inngangsgrensesnittet og peeren etter inspeksjon. Dømet brukar handtak-plasseringsforma som er dokumentert for nft 1.0.9, og ho høyrer i ei inndatafil; sitat av krøllparentesar er ei eiga sak når kommandoen blir skriven interaktivt.
Hald konfigurasjonseigaren tydeleg. Ein behandlar som byggjer opp reglane sine på nytt kan skrive over ei endring i køyretid, og eit oppstartsskript som hardkodar eit utdatert handtak vil anten feile eller feste seg til feil regel.
Tillating er avgrensa, eit drop er terminalt
Ein tillatingsdom avsluttar evalueringa på den noverande vegen sin, men ei seinare brukbar grunnkjede kan framleis droppe pakken. Ein dropdom er terminal. Derfor er ein aukande tillatingsteljar ikkje prov på at flyten lukkast.
Undersøk alle relevante hook-prioritetar i staden for éi kjede isolert. Ein pakke kan passere eit input-filter og likevel bli avvist av hooken til ein annan tabell ved ein annan prioritet. List opp kvar grunnkjede som kan sjå flyten.
Den regelen dekkjer berre utvekslinga med den ytre lyttaren. Transportinnkapsla ESP, innebygd ESP, IPv6-peerar og den dekrypterte trafikken inne i tunnelen treng alle eigne retningslinjer. Det er ikkje ein fullstendig nettstads-VPN-brannmur.
Kontroller fila, og stadfest deretter det levande resultatet
Køyr ein syntaks- og transaksjonskontroll på den gjennomgåtte fila før du brukar ho. Kontrollmodus rapporterer om nft kan parse og klargjere endringa; han brukar ho ikkje og beviser ikkje at ein annan hook vil tillate pakken. Fila blir verande eit framlegg til eigaren brukar ho:
nft -c -f reviewed-vpn-rule.nft
Bruk ho gjennom den kontrollerte prosessen til eigaren og behald gjenopprettingstilgang. Viss regelen er feil, kan droppet du prøvde å kome føre òg kutte vegen du brukar for å rette han.
Etter endringa, observer eit nytt tillate peer-forsøk og kontroller at kjelder utanfor den godkjende peeren framleis blir avviste. Flytt den varige regelen inn i den behandlaren som eig regelsettet, fordi handtak i køyretid lokaliserer gjeldande objekt i staden for å identifisere dei på tvers av oppstartar.