Nftables Linux - Security und Firewall Labor: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 22: Zeile 22:
 
* Sowohl dynamische als auch statische WAN IPs können damit Zugriff auf das Internet gewähren
 
* Sowohl dynamische als auch statische WAN IPs können damit Zugriff auf das Internet gewähren
 
* '''vim ''/etc/nftables.conf'' '''
 
* '''vim ''/etc/nftables.conf'' '''
#!/usr/sbin/nft -f
+
<pre>
flush ruleset
+
#!/usr/sbin/nft -f
+
flush ruleset
    chain postrouting {
+
 
        type nat hook postrouting priority 100; policy accept;
+
table inet nat {
        oif ''"name_des_wan_interfaces"'' '''masquerade'''
+
    chain postrouting {
    }
+
        type nat hook postrouting priority 100; policy accept;
}
+
        oif "name_des_wan_interfaces" masquerade
 +
    }
 +
}
 +
</pre>
 +
 
  
 
'''Merksatz'''
 
'''Merksatz'''
Zeile 39: Zeile 43:
  
 
==Unser erstes NAT==
 
==Unser erstes NAT==
#!/usr/sbin/nft -f
+
<pre>
flush ruleset
+
#!/usr/sbin/nft -f
define wandev = enp0s3
+
 
define wanip = 192.168.HS.1xx
+
flush ruleset
define lan = 172.17.1xx.0/24
+
 
define server = 172.16.1xx.0/24
+
define wandev = enp0s3
define mgmt = 172.18.1xx.0/24
+
define wanip = 192.168.HS.1xx
 +
define lan = 172.17.1xx.0/24
 +
define server = 172.16.1xx.0/24
 +
define mgmt = 172.18.1xx.0/24
 +
 
 +
table inet nat {
 +
    chain postrouting {
 +
        type nat hook postrouting priority 100; policy accept;
 +
 
 +
        oif $wandev ip saddr $lan snat to $wanip
 +
        oif $wandev ip saddr $server snat to $wanip
 +
        oif $wandev ip saddr $mgmt snat to $wanip
 +
    }
 +
}
 +
</pre>
  
    chain postrouting {
+
==Kontrolle==
        type nat hook postrouting priority 100; policy accept;
+
*nft list ruleset
        oif $wandev ip saddr $lan snat ip to $wanip
 
        oif $wandev ip saddr $server snat ip to $wanip
 
        oif $wandev ip saddr $mgmt snat ip to $wanip
 
    }
 
}
 
  
 
= Links =
 
= Links =
 
* https://wiki.gentoo.org/wiki/Nftables/Examples
 
* https://wiki.gentoo.org/wiki/Nftables/Examples

Aktuelle Version vom 15. April 2025, 04:40 Uhr

Routing Firewall

  • Eine einfache Firewall, die Pakete aus dem LAN ins WAN weiterleitet
  • Pakete aus dem WAN von etablierten Verbindungen sollen ins LAN geleitet werden

Routing aktivieren

  • sysctl -w net.ipv4.ip_forward=1
  • falls das rebootfähig sein soll, muss die Datei /etc/sysctl.conf bearbeitet werden
  • vim /etc/sysctl.conf
...
net.ipv4.ip_forward = 1
...
  • sysctl -p

Einfaches NAT

  • Quell IP Adressen aus dem LAN sollen auf die WAN IP geändert werden
  • Am einfachsten ist dafür das "Masquerading";
  • Sowohl dynamische als auch statische WAN IPs können damit Zugriff auf das Internet gewähren
  • vim /etc/nftables.conf
#!/usr/sbin/nft -f
flush ruleset

table inet nat {
    chain postrouting {
        type nat hook postrouting priority 100; policy accept;
        oif "name_des_wan_interfaces" masquerade
    }
}


Merksatz

  • DNAT früh, weil das Ziel schon geändert sein muss, bevor geroutet wird.
  • SNAT spät, weil erst klar sein muss, welches Interface das Paket verlässt.
Enablen
  • systemctl enable --now nftables

Unser erstes NAT

#!/usr/sbin/nft -f

flush ruleset

define wandev = enp0s3
define wanip = 192.168.HS.1xx
define lan = 172.17.1xx.0/24
define server = 172.16.1xx.0/24
define mgmt = 172.18.1xx.0/24

table inet nat {
    chain postrouting {
        type nat hook postrouting priority 100; policy accept;

        oif $wandev ip saddr $lan snat to $wanip
        oif $wandev ip saddr $server snat to $wanip
        oif $wandev ip saddr $mgmt snat to $wanip
    }
}

Kontrolle

  • nft list ruleset

Links