Linux - Netzwerk und Serveradminstration Firewall: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „= Firewall = {{#drawio:5102-firewall-01}} * Die Firewall wird ist zugleich der Router in das Übungsnetzwerk * Hardwareanpassungen: ** 4 GB RAM ** 4 CPUs ** 4…“)
 
 
(12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= Firewall =
 
= Firewall =
 
{{#drawio:5102-firewall-01}}
 
{{#drawio:5102-firewall-01}}
* Die Firewall wird ist zugleich der Router in das Übungsnetzwerk
 
* Hardwareanpassungen:
 
** 4 GB RAM
 
** 4 CPUs
 
** 4 Netzwerkkarten
 
* Für den Anfang müssen wir das [[Debian Netzwerkkonfiguration|Netzwerk konfigurieren]]
 
 
= Fernzugriff per [[:Kategorie:SSH|SSH]] =
 
* Jeder Host soll über das [[SSH-Protokoll]] administrierbar sein
 
* hinterlegen Sie den öffentlichen Schlüssel für die Nutzer ''kit'' und ''root'' auf der Firewall
 
* Der SSH-Server sollte nach Sicherstellung des Zugriffs über autorisierte SSH-Schlüssel keine Passwort-Authentifizierung mehr zulassen: [[SSH-Server Hardening]]
 
* Am Ende sollte jeder Host über '''ssh ''user''@''ip.oder.host.name'' ''' erreichbar sein
 
 
= Client Konfiguration =
 
* [[Client Anpassen der Virtuellen Maschinen Netzwerk und Serveradministration]]
 
  
 
= Routing und Masquerading =
 
= Routing und Masquerading =
 
{{#drawio:5102-masquerade}}
 
{{#drawio:5102-masquerade}}
 
* Damit die Firewall als Internet-Router fungieren kann, muss die Quell-IP der Pakete umgeschrieben werden
 
* Damit die Firewall als Internet-Router fungieren kann, muss die Quell-IP der Pakete umgeschrieben werden
* Dazu müssen Firewall-Regeln unter [[iptables]] oder [[nftables Masquerade|nftables]] erstellt werden
+
* Dazu müssen Firewall-Regeln unter [nftables Masquerade|nftables]] erstellt werden, das machen wir weiter unten.
==Firewall Umsetzung==
+
 
*[[Firewall-Nat-Linux - Netzwerk und Serveradministration]]
+
=Wir klonen das debian-template=
 +
Folgendes stellen wir ein
 +
{| class="wikitable"
 +
! Attribut !! Wert !! Netzwerk / Typ
 +
|-
 +
| '''Name''' || fw || -
 +
|-
 +
| '''RAM''' || 4 GB || -
 +
|-
 +
| '''CPU''' || 4 Kerne || -
 +
|-
 +
| '''1. NIC''' || WAN || NAT / Bridge (Extern)
 +
|-
 +
| '''2. NIC''' || LAN || Internes Netzwerk (Client-Netz)
 +
|-
 +
| '''3. NIC''' || DMZ || Internes Netzwerk (Demilitarized Zone)
 +
|-
 +
| '''4. NIC''' || SERVERS || Internes Netzwerk (Server-Netz)
 +
|}
 +
 
 +
=Erklärung=
 +
*XX = Platznummer
 +
*Y = Klassensaal
 +
=Hostname=
 +
*hostnamectl set-hostname fw.it2XX.int
 +
 
 +
=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
 +
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
 +
 
 +
 
 +
#SERVERS
 +
auto enp0s10
 +
iface enp0s10 inet static
 +
address 10.2XX.1.1/24
 +
</pre>
 +
 
 +
=Hosts=
 +
*cat /etc/hosts
 +
<pre>
 +
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
 +
</pre>
 +
=Resolver=
 +
*cat /etc/resolv.conf
 +
search it2XX.int
 +
nameserver 192.168.Y.88
 +
=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
 +
 
 +
# 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
 +
       
 +
        # SERVERS nach außen - Masquerade
 +
        ip saddr $SERVER oif enp0s3 masquerade
 +
    }
 +
}
 +
</pre>
 +
;Firewall aktivieren
 +
*systemctl enable nftables --now
 +
 
 +
=Forward=
 +
*echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-ipforward.conf
 +
*sysctl -p /etc/sysctl.d/99-ipforward.conf
 +
 
 +
=Reboot=
 +
*systemctl reboot

Aktuelle Version vom 7. April 2026, 10:14 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 NAT / Bridge (Extern)
2. NIC LAN Internes Netzwerk (Client-Netz)
3. NIC DMZ Internes Netzwerk (Demilitarized Zone)
4. NIC SERVERS 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
 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


#SERVERS
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

Resolver

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

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
        
        # SERVERS nach außen - Masquerade
        ip saddr $SERVER oif enp0s3 masquerade
    }
}
Firewall aktivieren
  • systemctl enable nftables --now

Forward

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

Reboot

  • systemctl reboot