Firewall-NAT-Linux-nftables - Netzwerk und Serveradminsitration

Aus Xinux Wiki
Version vom 20. Oktober 2025, 08:04 Uhr von Maximilian.pottgiesser (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Kategorie:Firewall Kategorie:nftables = Erklärung = * XX = Platznummer * Y = Klassensaal = Hostname = * hostnamectl set-hostname fw.it1XX.int = I…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen


Erklärung

  • XX = Platznummer
  • Y = Klassensaal

Hostname

  • hostnamectl set-hostname fw.it1XX.int

Interfaces

  • cat /etc/network/interfaces
source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#WAN
auto enp0s3
iface enp0s3 inet static
 address 192.168.9.1XX/24
 gateway 192.168.9.254
 post-up ip route add 10.88.0.0/16 via 192.168.Y.88
 post-up /usr/local/sbin/nat.sh

#LAN
auto enp0s8
iface enp0s8 inet static
 address 172.16.1XX.1/24

#DMZ
auto enp0s9
iface enp0s9 inet static
 address 10.88.1XX.1/24

#SERVERS
auto enp0s10
iface enp0s10 inet static
 address 10.1XX.1.1/24

Hosts

  • cat /etc/hosts
127.0.0.1       localhost
127.0.1.1       fw.it1XX.int fw

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Resolver

  • cat /etc/resolv.conf
search it1XX.int
nameserver 192.168.Y.88

NAT mit nftables

  • cat /usr/local/sbin/nat.sh
#!/usr/sbin/nft -f

# Variablen
define LAN = 172.16.1XX.0/24
define SERVERS = 10.1XX.1.0/24
define DMZ = 10.88.1XX.0/24

# Nat Regeln flushen
flush table ip nat

# Nat Regeln setzen
table ip nat {
    chain postrouting {
        type nat hook postrouting priority 100; policy accept;
        
        # DMZ nach 192.168.Y.0/24 - kein NAT (RETURN)
        ip saddr $DMZ ip daddr 192.168.Y.0/24 return
        
        # DMZ nach 10.88.0.0/16 - kein NAT (RETURN)
        ip saddr $DMZ ip daddr 10.88.0.0/16 return
        
        # DMZ nach außen (enp0s3) - Masquerade
        ip saddr $DMZ oif enp0s3 masquerade
        
        # LAN nach außen - Masquerade
        ip saddr $LAN oif enp0s3 masquerade
        
        # SERVERS nach außen - Masquerade
        ip saddr $SERVERS oif enp0s3 masquerade
    }
}
  • chmod +x /usr/local/sbin/nat.sh

Forward

  • echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
  • sysctl -p

Reboot

  • systemctl reboot