Linux - Netzwerk und Serveradminstration Firewall Debian: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(43 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 7: Zeile 7:
=== Netzkonfiguration Firewall ===
=== Netzkonfiguration Firewall ===


{| class="wikitable" style="background-color: #f2f2f2;"
{{fw-maschine
! Parameter !! Wert !! Erläuterung
| ip  = 192.168.Y.2XX
|-
| cidr = 24
| '''Netzwerk (NIC)''' || br0 || bridge
| gw  = 192.168.Y.254
|-
| ns  = 192.168.Y.88
| '''IP''' || 192.168.Y.2XX || Statische IP
| fqdn = fw.it2XX.int
|-
| dom  = it2XX.int
| '''CIDR''' || 24 || Classless Inter-Domain Routing Präfixlänge
}}
|-
 
| '''GW''' || 192.168.Y.254 || GATEWAY
=Erklärung=
|-
*XX = Platznummer
| '''NS''' || 192.168.Y.88 || Resolver
*Y = Klassensaal
|-
| '''FQDN''' || fw.it2XX.int || Fully Qualified Domain Name
|-
| '''SHORT''' || nfw || 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


==Reboot==
==Halt==
*systemctl reboot
*systemctl halt


=Danach passen wir die fw an=
=Danach passen wir die fw an=
Zeile 48: Zeile 36:
| '''1. NIC''' || WAN || Bridge br0
| '''1. NIC''' || WAN || Bridge br0
|-
|-
| '''2. NIC''' || DMZ || Internes Netzwerk (Client-Netz)
| '''2. NIC''' || DMZ || Internes Netzwerk (Demilitarized Zone)  
|-
|-
| '''3. NIC''' || LAN || Internes Netzwerk (Demilitarized Zone)
| '''3. NIC''' || LAN || Internes Netzwerk (Client-Netz)
|-
|-
| '''4. NIC''' || SERVER || Internes Netzwerk (Server-Netz)
| '''4. NIC''' || SERVER || Internes Netzwerk (Server-Netz)
|}
|}


=Erklärung=
=Auf unserem Host eine kleine Anpassung=
*XX = Platznummer
;Schlüssel anlegen
*Y = Klassensaal
*[[ssh Schlüsselpaar erzeugen]]
;Als kit user
*nano ~/.ssh/config
Host fw
  HostName <FIREWALLIP>
  User kit
;Erst Schlüssel übertragen
*ssh-copy-id fw
;Danach könnt ihr euch so einloggen (Passphrase eingeben - jeden Tag einmal)
*ssh fw
=Interfaces=
=Interfaces=
*cat /etc/network/interfaces
{{network-interfaces-fw
<pre>
| ip  = 192.168.Y.2XX
source /etc/network/interfaces.d/*
| cidr = 24
 
| gw  = 192.168.Y.254
# The loopback network interface
| ns  = 192.168.Y.88
auto lo
| dom = it2XX.int
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=
=Reboot=
*ifup -va
oder
*systemctl reboot
*systemctl reboot
=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
*cat /etc/nftables.conf
{{nftabels-var1
<pre>
| kit = 192.168.X.0/24
#!/usr/sbin/nft -f
}}
 
# Alte Regeln löschen (flush)
# Variablen
flush ruleset
define LAN = 172.26.2XX.0/24
{{vorlage:nat2}}
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
    }
}
</pre>
;Firewall aktivieren
;Firewall aktivieren
*systemctl enable nftables --now
*systemctl enable nftables --now
;Kontrolle
;Kontrolle
*nft list ruleset
*nft list ruleset
=Alternatives Laden=
*nft -f /etc/nftables.conf
=Löschen der Regeln=
*nft flush ruleset


=Forward=
=Forward=
;Für Restart markieren
*echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-ipforward.conf
*echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-ipforward.conf
;Aktiveren
*sysctl -p /etc/sysctl.d/99-ipforward.conf
*sysctl -p /etc/sysctl.d/99-ipforward.conf
;Kontrolle
*sysctl net.ipv4.ip_forward


=Reboot=
=Reboot=
Zeile 159: Zeile 109:
;Kontrolle IPFORWARD
;Kontrolle IPFORWARD
*cat /proc/sys/net/ipv4/ip_forward
*cat /proc/sys/net/ipv4/ip_forward
oder
*sysctl net.ipv4.ip_forward
=Konnektivitäts Test Firewall=
*[[Konnektivitäts Test Firewall]]

Aktuelle Version vom 22. September 2026, 13:58 Uhr

Firewall

Routing und Masquerading

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

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 (Demilitarized Zone)
3. NIC LAN Internes Netzwerk (Client-Netz)
4. NIC SERVER Internes Netzwerk (Server-Netz)

Auf unserem Host eine kleine Anpassung

Schlüssel anlegen
Als kit user
  • nano ~/.ssh/config
Host fw
 HostName <FIREWALLIP>
 User kit
Erst Schlüssel übertragen
  • ssh-copy-id fw
Danach könnt ihr euch so einloggen (Passphrase eingeben - jeden Tag einmal)
  • ssh fw

Interfaces

  • vi /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

NAT mit nftables

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

# Variablen
define WANIP = <WANIP der Firewall>
define LAN = 172.26.2XX.0/24
define MGMT = 172.27.2XX.0/24
define SERVER = 10.2XX.1.0/24
define DMZ = 10.88.2XX.0/24
define KIT = 192.168.X.0/24
define WANDEV = enp0s3
# Alte Regeln löschen (flush)
flush ruleset
 table inet nat {
  chain postrouting {
   type nat hook postrouting priority 100; policy accept;
        ip saddr $DMZ ip daddr $KIT return
        ip saddr $DMZ ip daddr 10.88.0.0/16 return
        ip saddr $DMZ oif $WANDEV snat to $WANIP
        ip saddr $LAN oif $WANDEV snat to $WANIP
        ip saddr $SERVER oif $WANDEV snat to $WANIP
        ip saddr $MGMT oif $WANDEV snat to $WANIP
     }
  }
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

Für Restart markieren
  • echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-ipforward.conf
Aktiveren
  • sysctl -p /etc/sysctl.d/99-ipforward.conf
Kontrolle
  • sysctl net.ipv4.ip_forward

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

Konnektivitäts Test Firewall