Linux - Netzwerk und Serveradminstration Firewall: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(15 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 18: Zeile 18:
 
| '''CPU''' || 4 Kerne || -
 
| '''CPU''' || 4 Kerne || -
 
|-
 
|-
| '''1. NIC''' || WAN || NAT / Bridge (Extern)
+
| '''1. NIC''' || WAN || Bridge br0
 
|-
 
|-
| '''2. NIC''' || LAN || Internes Netzwerk (Client-Netz)
+
| '''2. NIC''' || DMZ || Internes Netzwerk (Client-Netz)
 
|-
 
|-
| '''3. NIC''' || DMZ || Internes Netzwerk (Demilitarized Zone)
+
| '''3. NIC''' || LAN || Internes Netzwerk (Demilitarized Zone)
 
|-
 
|-
| '''4. NIC''' || SERVERS || Internes Netzwerk (Server-Netz)
+
| '''4. NIC''' || SERVER || Internes Netzwerk (Server-Netz)
 
|}
 
|}
  
Zeile 48: Zeile 48:
 
  address 192.168.Y.2XX/24
 
  address 192.168.Y.2XX/24
 
  gateway 192.168.Y.254
 
  gateway 192.168.Y.254
 +
dns-nameservers 192.168.Y.88
 +
dns-search it2XX.int
 
  post-up ip route add 10.88.0.0/16 via 192.168.Y.88
 
  post-up ip route add 10.88.0.0/16 via 192.168.Y.88
  
Zeile 62: Zeile 64:
  
  
#SERVERS
+
#SERVER
 
auto enp0s10
 
auto enp0s10
 
iface enp0s10 inet static
 
iface enp0s10 inet static
Zeile 79: Zeile 81:
 
ff02::2 ip6-allrouters
 
ff02::2 ip6-allrouters
 
</pre>
 
</pre>
=Resolver=
+
=Reboot=
*cat /etc/resolv.conf
+
*systemctl reboot
search it2XX.int
+
 
nameserver 192.168.Y.88
+
=SSH Keys hinterlegen=
 +
*[[SSH Keys hinterlegen fw]]
 +
 
 
=NAT mit nftables=
 
=NAT mit nftables=
 
;Datei erstellen, alles was drin ist kann raus
 
;Datei erstellen, alles was drin ist kann raus
Zeile 95: Zeile 99:
  
 
# Alte Regeln löschen (flush)
 
# Alte Regeln löschen (flush)
flush table ip nat
+
flush ruleset
  
 
# NAT-Tabelle erstellen/verwenden
 
# NAT-Tabelle erstellen/verwenden
Zeile 114: Zeile 118:
 
         ip saddr $LAN oif enp0s3 masquerade
 
         ip saddr $LAN oif enp0s3 masquerade
 
          
 
          
         # SERVERS nach außen - Masquerade
+
         # SERVER nach außen - Masquerade
 
         ip saddr $SERVER oif enp0s3 masquerade
 
         ip saddr $SERVER oif enp0s3 masquerade
 
     }
 
     }
Zeile 121: Zeile 125:
 
;Firewall aktivieren
 
;Firewall aktivieren
 
*systemctl enable nftables --now
 
*systemctl enable nftables --now
 +
;Kontrolle
 +
*nft list ruleset
  
 
=Forward=
 
=Forward=
Zeile 128: Zeile 134:
 
=Reboot=
 
=Reboot=
 
*systemctl reboot
 
*systemctl reboot
 +
=Allgemeine Tests=
 +
;Kontrolle der IPs
 +
*ip a s
 +
;Kontrolle der Routen
 +
*ip r s
 +
;Kontrolle Nameserver
 +
*cat /etc/resolv.conf
 +
;Kontrolle NFTables
 +
*nft list ruleset
 +
;Kontrolle IPFORWARD
 +
*cat /proc/sys/net/ipv4/ip_forward
 +
=Konnektivitäts Test=
 +
Wir brauchen 2 Terminals
 +
;1 Terminal
 +
*tcpdump -ni enp0s3 icmp
 +
;2 Terminal
 +
*ping -c 1 1.1.1.1
 +
*ping -c 1 -I 10.88.213.1 1.1.1.1
 +
*ping -c 1 -I 10.88.213.1 192.168.7.201
 +
*ping -c 1 -I 10.88.213.1 10.88.201.1
 +
*ping -c 1 -I 172.26.213.1 10.88.201.1
 +
*ping -c 1 -I 10.213.1.1 10.88.201.1

Aktuelle Version vom 15. April 2026, 10:12 Uhr

Firewall

Routing und Masquerading

  • Damit die Firewall als Internet-Router fungieren kann, muss die Quell-IP der Pakete umgeschrieben werden
  • Dazu müssen Firewall-Regeln unter [nftables Masquerade|nftables]] erstellt werden, das machen wir weiter unten.

Wir klonen das debian-template

Folgendes stellen wir ein

Attribut Wert Netzwerk / Typ
Name fw -
RAM 4 GB -
CPU 4 Kerne -
1. NIC WAN Bridge br0
2. NIC DMZ Internes Netzwerk (Client-Netz)
3. NIC LAN Internes Netzwerk (Demilitarized Zone)
4. NIC SERVER Internes Netzwerk (Server-Netz)

Erklärung

  • XX = Platznummer
  • Y = Klassensaal

Hostname

  • hostnamectl set-hostname fw.it2XX.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.Y.2XX/24
 gateway 192.168.Y.254
 dns-nameservers 192.168.Y.88 
 dns-search it2XX.int
 post-up ip route add 10.88.0.0/16 via 192.168.Y.88


#DMZ
auto enp0s8
iface enp0s8 inet static
 address 10.88.2XX.1/24

#LAN
auto enp0s9
iface enp0s9 inet static
 address 172.26.2XX.1/24


#SERVER
auto enp0s10
iface enp0s10 inet static
 address 10.2XX.1.1/24

Hosts

  • cat /etc/hosts
127.0.0.1        localhost
127.0.1.1        fw.it2XX.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

Reboot

  • systemctl reboot

SSH Keys hinterlegen

NAT mit nftables

Datei erstellen, alles was drin ist kann raus
  • cat /etc/nftables.conf
#!/usr/sbin/nft -f

# Variablen
define LAN = 172.26.2XX.0/24
define SERVER = 10.2XX.1.0/24
define DMZ = 10.88.2XX.0/24

# Alte Regeln löschen (flush)
flush ruleset

# NAT-Tabelle erstellen/verwenden
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
        
        # SERVER nach außen - Masquerade
        ip saddr $SERVER oif enp0s3 masquerade
    }
}
Firewall aktivieren
  • systemctl enable nftables --now
Kontrolle
  • nft list ruleset

Forward

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

Reboot

  • systemctl reboot

Allgemeine Tests

Kontrolle der IPs
  • ip a s
Kontrolle der Routen
  • ip r s
Kontrolle Nameserver
  • cat /etc/resolv.conf
Kontrolle NFTables
  • nft list ruleset
Kontrolle IPFORWARD
  • cat /proc/sys/net/ipv4/ip_forward

Konnektivitäts Test

Wir brauchen 2 Terminals

1 Terminal
  • tcpdump -ni enp0s3 icmp
2 Terminal
  • ping -c 1 1.1.1.1
  • ping -c 1 -I 10.88.213.1 1.1.1.1
  • ping -c 1 -I 10.88.213.1 192.168.7.201
  • ping -c 1 -I 10.88.213.1 10.88.201.1
  • ping -c 1 -I 172.26.213.1 10.88.201.1
  • ping -c 1 -I 10.213.1.1 10.88.201.1