Router Firewall - Vertiefung UNIX-/Linux Netzwerke: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 1: | Zeile 1: | ||
| − | == | + | = Firewall = |
| − | + | = Routing und Masquerading = | |
| − | * | + | {{#drawio:5102-masquerade}} |
| − | + | * 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. | |
| − | |||
| − | |||
| − | |||
| − | * | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| + | === Netzkonfiguration Firewall === | ||
| − | + | {| class="wikitable" style="background-color: #f2f2f2;" | |
| − | + | ! Parameter !! Wert !! Erläuterung | |
| − | + | |- | |
| − | + | | '''Netzwerk (NIC)''' || br0 || bridge | |
| + | |- | ||
| + | | '''IP''' || 192.168.Y.2XX || Statische IP | ||
| + | |- | ||
| + | | '''CIDR''' || 24 || Classless Inter-Domain Routing Präfixlänge | ||
| + | |- | ||
| + | | '''GW''' || 192.168.Y.254 || GATEWAY | ||
| + | |- | ||
| + | | '''NS''' || 192.168.Y.88 || Resolver | ||
| + | |- | ||
| + | | '''FQDN''' || fw.it2XX.int || Fully Qualified Domain Name | ||
| + | |- | ||
| + | | '''SHORT''' || fw || Short Name | ||
| + | |- | ||
| + | | '''DOM''' || it2XX.int|| Domain Name | ||
| + | |} | ||
| + | ;Anpassen des Templates | ||
| + | *[[Anpassen des Debian Templates]] | ||
| + | oder | ||
| + | ;Mit Skript | ||
| + | *debian-setup.sh -f fw.it2XX.int -a 192.168.Y.2XX/24 -g 192.168.Y.254 -n 192.168.Y.88 | ||
| + | =Erklärung= | ||
| + | *XX = Platznummer | ||
| + | *Y = Klassensaal | ||
| − | == | + | ==Halt== |
| − | * | + | *systemctl halt |
| − | |||
| − | = | + | =Danach passen wir die fw an= |
| − | cat /etc/ | + | Folgendes stellen wir ein |
| − | + | {| class="wikitable" | |
| − | search | + | ! 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) | ||
| + | |} | ||
| + | |||
| + | =Auf unserem Host eine kleine Anpassung= | ||
| + | ;Als kit user | ||
| + | *nano ~/.ssh/config | ||
| + | Host fw | ||
| + | HostName 192.168.Y.2XX | ||
| + | User kit | ||
| + | ;Danach könnt ihr euch so einloggen | ||
| + | *ssh fw | ||
| + | |||
| + | =Interfaces= | ||
| + | *cat /etc/network/interfaces | ||
| + | <pre> | ||
| + | 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 | ||
| + | </pre> | ||
| + | |||
| + | =Reboot= | ||
| + | *ifup -va | ||
| + | oder | ||
| + | *systemctl reboot | ||
| + | |||
| + | =SSH Keys hinterlegen= | ||
| + | *[[SSH Keys hinterlegen fw]] | ||
| + | |||
| + | =NAT mit nftables= | ||
| + | ;Datei erstellen, alles was drin ist kann raus | ||
| + | *cat /etc/nftables.conf | ||
| + | <pre> | ||
| + | #!/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 | ||
| + | define KIT = 192.168.Y.0/24 | ||
| + | define WANDEV = enp0s3 | ||
| + | |||
| + | |||
| + | # Alte Regeln löschen (flush) | ||
| + | flush ruleset | ||
| + | </pre> | ||
| + | {{vorlage:nat1}} | ||
| + | |||
| + | ;Firewall aktivieren | ||
| + | *systemctl enable nftables --now | ||
| + | ;Kontrolle | ||
| + | *nft list ruleset | ||
| + | |||
| + | =Alternatives Laden= | ||
| + | *nft -f /etc/nftables.conf | ||
| + | =Löschen der Regeln= | ||
| + | *nft flush 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 | ||
| + | oder | ||
| + | *sysctl net.ipv4.ip_forward | ||
Version vom 9. Mai 2026, 11:26 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.
Netzkonfiguration Firewall
| Parameter | Wert | Erläuterung |
|---|---|---|
| Netzwerk (NIC) | br0 | bridge |
| IP | 192.168.Y.2XX | Statische IP |
| CIDR | 24 | Classless Inter-Domain Routing Präfixlänge |
| GW | 192.168.Y.254 | GATEWAY |
| NS | 192.168.Y.88 | Resolver |
| FQDN | fw.it2XX.int | Fully Qualified Domain Name |
| SHORT | fw | Short Name |
| DOM | it2XX.int | Domain Name |
- Anpassen des Templates
oder
- Mit Skript
- debian-setup.sh -f fw.it2XX.int -a 192.168.Y.2XX/24 -g 192.168.Y.254 -n 192.168.Y.88
Erklärung
- XX = Platznummer
- Y = Klassensaal
Halt
- systemctl halt
Danach passen wir die fw an
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) |
Auf unserem Host eine kleine Anpassung
- Als kit user
- nano ~/.ssh/config
Host fw HostName 192.168.Y.2XX User kit
- Danach könnt ihr euch so einloggen
- ssh fw
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
Reboot
- ifup -va
oder
- 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 define KIT = 192.168.Y.0/24 define WANDEV = enp0s3 # 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 $KIT - kein NAT (RETURN)
ip saddr $DMZ ip daddr $KIT 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 $WANDEV masquerade
# LAN nach außen - Masquerade
ip saddr $LAN oif $WANDEV masquerade
# SERVER nach außen - Masquerade
ip saddr $SERVER oif $WANDEV masquerade
}
}
- Firewall aktivieren
- systemctl enable nftables --now
- Kontrolle
- nft list ruleset
Alternatives Laden
- nft -f /etc/nftables.conf
Löschen der Regeln
- nft flush 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
oder
- sysctl net.ipv4.ip_forward
