Nftables Masquerade: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Linkai.zhang (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(17 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} counter accept comment "accept all connections related to connections made by us"
}
        iif lo accept comment "accept loopback"
</pre>
        iif != lo ip daddr 127.0.0.1/8 counter drop comment "drop connections to loopback not coming from loopback"
 
        ip protocol icmp counter accept comment "accept all ICMP types"
 
        tcp dport 22 counter accept comment "accept SSH"
'''Merksatz'''
        counter comment "count dropped packets"
 
    }
*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.
    chain forward {
 
        type filter hook forward priority 0; policy drop;
;Enablen
        counter comment "count dropped packets"
* '''systemctl enable --now nftables'''
    }
 
    chain output {
        type filter hook output priority 0; policy accept;
    }
}


= 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