Nftables Firewall Basis Konfiguration: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 61: Zeile 61:
 
  flush ruleset
 
  flush ruleset
 
  define local_tcp_ports = { 22 }
 
  define local_tcp_ports = { 22 }
  '''define save_interfaces = { enp0s8, enp0s9, enp0s10 }'''
+
  define save_interfaces = { enp0s8, enp0s9, enp0s10 }  
 
  table inet filter {
 
  table inet filter {
 
         chain input {
 
         chain input {
Zeile 68: Zeile 68:
 
                 ct state new iif "lo" accept
 
                 ct state new iif "lo" accept
 
                 ct state new tcp dport $local_tcp_ports accept
 
                 ct state new tcp dport $local_tcp_ports accept
                 '''ct state new iif $save_interfaces accept'''
+
                 ct state new iif $save_interfaces accept
 
         }
 
         }
 
   
 
   
Zeile 74: Zeile 74:
 
                 type filter hook forward priority filter; policy drop;
 
                 type filter hook forward priority filter; policy drop;
 
                 ct state established,related accept
 
                 ct state established,related accept
                 '''ct state new iif $save_interfaces accept'''
+
                 ct state new iif $save_interfaces accept
 
                 }
 
                 }
 
         chain output {
 
         chain output {

Version vom 28. Februar 2023, 16:26 Uhr

Die Basis Konfiguration

  • Die Basiskonfiguration besagt das von der Firewall nach aussen alles erlaubt ist.
  • Wir schalten hier auch noch den 22 Zugang frei.
#!/usr/sbin/nft -f
flush ruleset
define local_tcp_ports = { 22 }
define save_interfaces = { enp0s8, enp0s9, enp0s10 }

table inet filter {
       chain input {
               type filter hook input priority filter; policy drop;
               ct state established,related accept
               ct state new iif "lo" accept
               ct state new tcp dport $local_tcp_ports accept
       }

       chain forward {
               type filter hook forward priority filter; policy drop;
                 ct state established,related accept
       }
       chain output {
               type filter hook output priority filter; policy drop;
               ct state established,related accept
               ct state new accept
       }

}

Weiter gehts

  • Wir schalten die lokalen Netze gegenseitig frei.
  • So wie auch den Zugriff auf unsere Firewall
  • In der Praxis sollte man das genau überlegen.
  • Für unsere Übung ist das aber ok.
#!/usr/sbin/nft -f
flush ruleset
define local_tcp_ports = { 22 }
define save_interfaces = { enp0s8, enp0s9, enp0s10 } 
table inet filter {
       chain input {
               type filter hook input priority filter; policy drop;
               ct state established,related accept
               ct state new iif "lo" accept
               ct state new tcp dport $local_tcp_ports accept
               ct state new iif $save_interfaces accept
       }

       chain forward {
               type filter hook forward priority filter; policy drop;
               ct state established,related accept
               ct state new iif $save_interfaces accept
               }
       chain output {
               type filter hook output priority filter; policy drop;
               ct state established,related accept
               ct state new accept
       }
 
}

Das Logging

  • Kurz vor dem erreichen der Default Policy wird geloggt
#!/usr/sbin/nft -f
flush ruleset
define local_tcp_ports = { 22 }
define save_interfaces = { enp0s8, enp0s9, enp0s10 } 
table inet filter {
       chain input {
               type filter hook input priority filter; policy drop;
               ct state established,related accept
               ct state new iif "lo" accept
               ct state new tcp dport $local_tcp_ports accept
               ct state new iif $save_interfaces accept
       }

       chain forward {
               type filter hook forward priority filter; policy drop;
               ct state established,related accept
               ct state new iif $save_interfaces accept
               }
       chain output {
               type filter hook output priority filter; policy drop;
               ct state established,related accept
               ct state new accept
       }
 
}