Nftables Masquerade: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(14 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
= Einfache Routing Firewall =
+
[[Kategorie:Nftables]]
 
+
[[Kategorie:Linux]]
 +
= Routing Firewall =
 
* Eine einfache Firewall, die Pakete aus dem LAN ins WAN weiterleitet
 
* Eine einfache Firewall, die Pakete aus dem LAN ins WAN weiterleitet
 
* Pakete aus dem WAN von etablierten Verbindungen sollen ins LAN geleitet werden
 
* Pakete aus dem WAN von etablierten Verbindungen sollen ins LAN geleitet werden
Zeile 6: Zeile 7:
 
== Routing aktivieren ==
 
== Routing aktivieren ==
  
* '''sysctl -w net.ipv4.ip_forward = 1'''
+
* '''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 ==
 
== Einfaches NAT ==
 
 
* Quell IP Adressen aus dem LAN sollen auf die WAN IP geändert werden
 
* Quell IP Adressen aus dem LAN sollen auf die WAN IP geändert werden
* Am einfachsten ist dafür das "Masquerading"
+
* Am einfachsten ist dafür das "Masquerading";
 
* 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
* Wenn sicher eine statische IP hat, ist SNAT ein wenig schneller
+
* '''vim ''/etc/nftables.conf'' '''
* '''vim /etc/nftables.conf'''
+
<pre>
 +
#!/usr/sbin/nft -f
 +
flush ruleset
  
flush ruleset
+
table inet nat {
+
    chain postrouting {
table ip filter {
+
        type nat hook postrouting priority 100; policy accept;
    chain input {
+
        oif "name_des_wan_interfaces" masquerade
        type filter hook input priority 0; policy drop;
+
    }
        ct state {established, related} accept
+
}
        iif lo accept
+
</pre>
        iif != lo ip daddr 127.0.0.1/8 drop
+
 
        ip protocol icmp accept
+
 
        tcp dport 22 accept
+
'''Merksatz'''
    }
+
 
+
*DNAT '''früh''', weil das Ziel schon geändert sein muss, bevor geroutet wird.
    chain forward {
+
*SNAT '''spät''', weil erst klar sein muss, '''welches Interface''' das Paket verlässt.
        type filter hook forward priority 0; policy drop;
+
 
    }
+
;Enablen
 
+
* '''systemctl enable --now nftables'''
    chain output {
 
        type filter hook output priority 0; policy accept;
 
    }
 
 
}
 
 
table ip nat {
 
    chain prerouting {
 
        type nat hook prerouting priority 0; policy accept;
 
    }
 
 
    chain postrouting {
 
        type nat hook postrouting priority 100; policy accept;
 
        oif ''"enp0s3"'' masquerade
 
    }
 
}
 
  
 
= Links =
 
= Links =
 
 
* https://wiki.gentoo.org/wiki/Nftables/Examples
 
* https://wiki.gentoo.org/wiki/Nftables/Examples

Aktuelle Version vom 15. April 2025, 04:45 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

Links