nftables: voeg die VPN-toelaatreël voor die drop-handvatsel in
In nftables plaas insert en add ’n reël aan weerskante van ’n handvatsel. Vind die drop, kies die kant en kontroleer dan die lêer voordat die reëlstel verander.
Plaas ’n toelaatreël op die verkeerde plek en dit gedra hom soos geen toelaatreël nie. In nftables bepaal die keuse tussen insert en add aan watter kant van ’n verwysde reël die nuwe stelling beland, en ’n handvatsel benoem die reël in die lewende reëlstel eerder as sy rynommer. Kry die plasing verkeerd en die pakkie bereik eerste die drop.
Die vergelyking hieronder gebruik een vaste eweknie en een buitenste luisteraar-uitruiling. Dit is doelbewus smal; die vervanging van ’n hele ketting is ’n ander verandering met ’n ander risikoprofiel.
Twee plasings, twee verskillende uitkomste
insert plaas ’n reël voor die verwysde reël. add plaas dit daarna. As die verwysde reël die terminale drop vir die vloei is, lewer daardie twee opdragte teenoorgestelde resultate, selfs al is die reëlteks identies.
Die weglaat van ’n ligging het sy eie verstekgedrag, wat nog ’n rede is om nie ’n opdrag van ’n forum af te kopieer sonder om te lees waaraan dit geanker is nie. Die anker is die hele besluit. Skryf die beoogde kant neer voordat jy die opdrag tik. Insert en add is een woord uitmekaar in die lêer.
Die plasing is relatief tot ’n reël in ’n spesifieke ketting. Om dieselfde stelling na ’n ander ketting of ’n ander hook-prioriteit te skuif, verander watter pakkies dit sien, selfs wanneer die reëlsintaks korrek lyk.
’n Handvatsel identifiseer ’n reël, nie ’n reëlnommer nie
’n Handvatsel soos 42 is ’n identifiseerder in die huidige reëlsteltoestand. Dit is nie die twee-en-veertigste reël nie, en dit is nie stabiel oor gashere, herbouings of ’n bestuurder wat sy konfigurasie herlaai nie.
Lokaliseer die ketting en die werklike terminale drop voordat jy die anker kies. Bevestig dan die handvatsel op daardie reël in dieselfde lys wat die drop wys, sodat die nommer en die reël saam gelees word. ’n Handvatsel wat uit ’n ou lys gelees is, kan reeds aan ’n ander reël behoort. Lees dit weer in die sessie wat die verandering gaan toepas.
iptables --version
nft -a list ruleset
Die iptables-weergawe rapporteer watter backend in gebruik is. ’n iptables-nft-reëlstel en ’n onafhanklik bestuurde inheemse tabel kan saam bestaan, so ’n lys van een frontend is nie outomaties die volledige filterprentjie nie. Kontroleer albei aansigte voordat jy ’n ketting kies.
Vind die ketting en die reël wat werklik drop
Lees die input-hook, die kettingprioriteit en die reël wat hierdie luisteraar-vloei verwerp. ’n inet-tabel kan albei adresfamilies dra, maar ’n individuele reël kan steeds net IPv4 pas.
Neem een goedgekeurde eweknie, met 198.51.100.25 uit die dokumentasie-reeks as voorbeeld. ’n Hersiene inheemse lêer kan ’n buitenste toelating voor handvatsel 42 plaas:
insert rule inet filter input handle 42 iifname "eth0" ip saddr 198.51.100.25 udp dport { 500, 4500 } counter accept
Vervang die familie, tabel, ketting, handvatsel, inkomende koppelvlak en eweknie na inspeksie. Die voorbeeld gebruik die handvatsel-liggingvorm wat vir nft 1.0.9 gedokumenteer is, en dit hoort in ’n invoerlêer; hakie-aanhaling is ’n aparte kwessie wanneer die opdrag interaktief getik word.
Hou die konfigurasie-eienaar duidelik. ’n Bestuurder wat sy reëls herbou, kan ’n looptyd-wysiging oorskryf, en ’n selflaaiskrip wat ’n verouderde handvatsel hardkodeer, sal óf misluk óf aan die verkeerde reël heg.
Aanvaarding is beperk, ’n drop is terminaal
’n Aanvaarding-uitspraak beëindig evaluering in sy huidige pad, maar ’n later toepaslike basisketting kan die pakkie steeds drop. ’n Drop-uitspraak is terminaal. Daarom is ’n stygende aanvaarding-teller nie bewys dat die vloei geslaag het nie.
Inspekteer alle relevante hook-prioriteite eerder as een ketting in isolasie. ’n Pakkie kan ’n input-filter slaag en steeds deur ’n ander tabel se hook by ’n ander prioriteit verwerp word. Lys elke basisketting wat die vloei kan sien.
Daardie reël dek net die buitenste luisteraar-uitruiling. Transport-gekapsuleerde ESP, inheemse ESP, IPv6-eweknieë en die ontslote verkeer binne die tonnel het almal hul eie beleid nodig. Dit is nie ’n volledige werf-VPN-firewall nie.
Kontroleer die lêer en verifieer dan die lewende resultaat
Voer ’n sintaks- en transaksiekontrole op die hersiene lêer uit voordat jy dit toepas. Kontrolemodus rapporteer of nft die verandering kan ontleed en voorberei; dit pas dit nie toe nie en bewys nie dat ’n ander hook die pakkie sal toelaat nie. Die lêer bly ’n voorstel totdat die eienaar dit toepas:
nft -c -f reviewed-vpn-rule.nft
Pas toe deur die eienaar se beheerde proses en behou hersteltoegang. As die reël verkeerd is, kan die drop wat jy wou voorafgaan ook die pad sny wat jy gebruik om dit reg te maak.
Na die verandering, waarneem ’n nuwe toegelate eweknie-poging en kontroleer dat bronne buite die goedgekeurde eweknie steeds geweier word. Skuif die duursame reël na watter bestuurder ook al die reëlstel besit, want looptyd-handvatsels lokaliseer huidige objekte eerder as om hulle oor selflaai heen te identifiseer.