Puteți alege să marcați pachetele pentru a fi acceptate ca siguranță în următoarele lanțuri ale aceluiași cârlig.
fiecare regulă de acceptare ar trebui să marcheze pachetul
Regulile care fac o acceptare explicită ar trebui să marcheze pachetul chiar înainte de a-l accepta. Orice aparitie a:
... Accept
trebuie inlocuit cu:
... meta marca set 0xf00 accept
Valoarea nu este importantă atâta timp cât nu este 0 dacă nu există alt rol pentru marcaj.
fiecare lanț ar trebui să accepte un pachet marcat, deoarece acesta este siguranța
folosind această regulă la începutul lanțului:
meta marca != 0 accept
Asta e ideea generală. Adaptări și excepții pot fi făcute în continuare dacă are mai mult sens.
Iată setul de reguli revizuit după această abordare. Marca este acceptată după ct ... picătură nevalidă
regulă care este o regulă importantă care nu ar trebui să fie ocolită (și ar fi putut fi făcută într-un lanț anterior o dată pentru totdeauna, deoarece este o regulă de eliminare). Dacă este mai jos, intrarea este ultimul lanț din filtrul / cârligul de intrare, nu este cu adevărat necesar pentru a marca pachetele acceptate, dar nu strica să faceți acest lucru.
/etc/nftables.conf:
:
set de reguli de culoare
tabel inet filter {
counter input_ssh {}
setați my_admin_ipv4 {
tastați ipv4_addr
interval de steaguri
tejghea
elemente = {
10.0.0.0/8,
172.16.0.0/12,
192.168.0.0/16
}
}
intrare în lanț {
tip filtru cârlig intrare filtru prioritar; scăderea politicii;
iifname lo meta mark set 0x1 accept comment "Permite traficul loopback";
stare ct stabilită, marcaj meta asociat set 0x1 accept comentariul „Permite conexiuni stabilite/relative”;
ct state invalid drop comment "Refuză conexiuni invalide";
meta marca != 0 accept
# SSH
tcp dport ssh ip saddr @my_admin_ipv4 nume contor input_ssh meta mark set 0x1 accept comentariul „Permiteți SSH IPv4 de la administrator”;
}
lanț înainte {
tip filtru cârlig înainte prioritate 0; scăderea politicii;
}
ieșire în lanț {
tip filtru cârlig ieșire prioritate 0; acceptarea politicii;
}
include „/etc/nft/*.conf”
}
/etc/nft/http.conf
(inlocuit counter_nginx
cu counter_http
). The meta marca != 0 accept
O regulă probabil că nu este necesară aici, deoarece s-ar putea să nu mai existe vreun alt lanț înainte, dar nu strica să o ai.
counter input_http {}
lanț http {
tip filtru cârlig intrare filtru prioritate - 1; acceptarea politicii;
meta marca != 0 accept
# HTTP #
tcp dport {80,443} nume contor input_http meta mark set 0x2 accept comentariul „Permite HTTP”;
}
Această metodă folosește mărci, așa că va fi mai greu de integrat cu alte reguli de firewall care deja foloseau mărci în alte scopuri. Este încă posibil prin rezervarea câtorva biți din marcaj cu operații pe biți.