Nftables
Z Wiki UnArt Slavičín
Jednoduchý firewall brány do internetu:
#!/usr/sbin/nft -f # rozhraní přistupující do internetu define wan = ens5f0 # rozhrani přístupující do lokální sítě define lan = ens5f1 # vymažeme původní pravidla flush ruleset # tabulka pro filtrování provozu table inet filter { # omezení příchozího provozu NA bránu chain input { type filter hook input priority 0 ct state established,related counter accept "Povolení navázaných spojení z conntracku" icmp type echo-request counter accept comment "Povolení pingu na bránu" tcp dport ssh counter accept comment "Povolení SSH na bránu" iifname $wan counter drop comment "Zakázání přístupu na bránu z internetu" counter comment "Povolení přístupu na bránu z lokální sítě" policy accept } # omezení provozu PŘES bránu chain forward { type filter hook forward priority 0 ct state established,related counter accept comment "Povolení navázaných spojení z conntracku" iifname lo counter accept comemnt "Povolení všeho na loopback rozhraní" oifname $wan counter accept comment "Povolení vše do internetu" counter comment "Ostatní provoz blokovat" policy drop } } # tabulka pro NAT table ip nat { # mapování NATu ve formátu vnitřní IP : veřejná IP map snat_map { type ipv4_addr : ipv4_addr flags interval elements = { 10.143.122.200 : 5.104.17.160 } } # SNAT chain postrouting { type nat hook postrouting priority 0 oifname $wan counter snat ip saddr map @snat_map comment "Vnitřní IP adresy z mapy snat_map sNATujeme za jim přidělené veřejné IP adresy" oifname $wan counter masquerade comment "Ostatní vnitřní IP adresy zaNATujeme za veřejnou IP adresu brány" } }