Nftables (Linux): Unterschied zwischen den Versionen

Aus Tutorials
Zur Navigation springen Zur Suche springen
Zeile 66: Zeile 66:


table inet filter {
table inet filter {
  set internal_networks_ip4 {
    type ipv4_addr
    flags interval
    auto-merge
    elements = { 10.2.0.0/24, 10.0.0.0/24 }
  }
   chain input {
   chain input {
     type filter hook input priority 0;  
     type filter hook input priority 0;  
Zeile 81: Zeile 88:
     icmp type echo-request accept
     icmp type echo-request accept


     # open tcp ports: sshd (22), httpd (80)
     # open sshd (22) for internal networks only
     tcp dport {ssh, http} accept
    tcp dport { ssh } ip saddr @internal_networks_ip4 accept comment "accept SSH from internal networks"
 
    # open tcp ports: httpd (80)
     tcp dport { http } accept
 
    # open udp ports: domain (53)
    udp dport { domain } accept
   }
   }



Version vom 15. Februar 2020, 15:03 Uhr

Noch in Bearbeitung


Installation

sudo apt-get install -y nftables

Service

sudo systemctl enable nftables.service

Konfiguration

Pre-Konfiguration

sudo vi /etc/nftables.conf
#!/usr/sbin/nft -f

flush ruleset

table inet filter {
   chain input {
      type filter hook input priority 0; policy accept;
   }

   chain forward {
      type filter hook forward priority 0; policy accept;
   }

   chain output {
      type filter hook output priority 0; policy accept;
   }
}
table inet filter
Legt eine Tabelle mit dem Namen filter für die Familiy inet an.
Mit der Familie inet lassen sich Regeln für IPv4 und IPv6 auf einmal definieren.
type filter hook input priority 0;
type legt fest, welche Art von Kette gebildet werden soll. Mögliche Werte sind filter, route oder nat.
hook legt fest, in welcher Phase sich die Pakete während der Bearbeitung befinden. Mögliche Werte sind prerouting, input, forward, output oder postrouting.
priority legt die Reihenfolge der Ketten fest bzw. legt sie zwischen Netfilter-Operationen.
policy accept;
Legt als Standard-Regel alle Pakete durch.

Links

https://wiki.nftables.org/wiki-nftables/index.php/Quick_reference-nftables_in_10_minutes

Server-Firewall

#!/usr/sbin/nft -f

flush ruleset

table inet filter {
  set internal_networks_ip4 {
    type ipv4_addr
    flags interval
    auto-merge
    elements = { 10.2.0.0/24, 10.0.0.0/24 }
  }

  chain input {
    type filter hook input priority 0; 

    # default input chain policy drops everything
    policy drop;

    # established/related connections
    ct state established,related accept

    # loopback interface
    iifname lo accept

    # icmp
    icmp type echo-request accept

    # open sshd (22) for internal networks only
    tcp dport { ssh } ip saddr @internal_networks_ip4 accept comment "accept SSH from internal networks"

    # open tcp ports: httpd (80)
    tcp dport { http } accept

    # open udp ports: domain (53)
    udp dport { domain } accept
  }

  chain forward {
    type filter hook forward priority 0;
  }

  chain output {
    type filter hook output priority 0;
  }
}

Links

https://wiki.debian.org/nftables

http://manpages.ubuntu.com/manpages/cosmic/man8/nft.8.html


Zurück zu Ubuntu