Firwall 5105: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(21 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:
 
*TN = 200 + Platznummer
 
*TN = 200 + Platznummer
 
*HS = Klassensaal
 
*HS = Klassensaal
 +
== Netzkonfiguration Firewall ==
 +
 +
{{fw-maschine
 +
| ip  = 192.168.Y.2XX
 +
| cidr = 24
 +
| gw  = 192.168.Y.254
 +
| ns  = 192.168.Y.88
 +
| fqdn = fw.it2XX.int
 +
| dom  = it2XX.int
 +
}}
  
 
=Hostname=
 
=Hostname=
;Grundkonfiguration
+
=Danach passen wir die fw an=
*debian-setup.sh -f fw.it213.int -a 192.168.HS.TN/24 -g 192.168.HS.254. -n 1.1.1.1
+
Folgendes stellen wir ein
*reboot
+
{| class="wikitable"
 +
! 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)
 +
|}
 
;Weitere Interfaces
 
;Weitere Interfaces
 
*cat /etc/network/interfaces
 
*cat /etc/network/interfaces
 
<pre>
 
<pre>
 +
#LOOPBACK
 
auto lo
 
auto lo
 
iface lo inet loopback
 
iface lo inet loopback
  
 +
#WAN
 
auto enp0s3
 
auto enp0s3
 
iface enp0s3 inet static
 
iface enp0s3 inet static
 
  address 192.168.HS.TN/24
 
  address 192.168.HS.TN/24
 
  gateway 192.168.HS.254
 
  gateway 192.168.HS.254
 +
dns-nameservers 192.168.HS.88
 +
dns-search it2XX.int
 
  post-up ip route add 10.88.0.0/16 via 192.168.HS.88
 
  post-up ip route add 10.88.0.0/16 via 192.168.HS.88
  
 +
#DMZ
 
auto enp0s8
 
auto enp0s8
 
iface enp0s8 inet static
 
iface enp0s8 inet static
  address 172.26.TN.1/24
+
  address 10.88.2XX.1/24
  
 +
#LAN
 
auto enp0s9
 
auto enp0s9
 
iface enp0s9 inet static
 
iface enp0s9 inet static
  address 10.88.TN.1
+
  address 172.26.2XX.1/24
 
</pre>
 
</pre>
  
Zeile 36: Zeile 66:
 
define LAN = 172.26.TN.0/24
 
define LAN = 172.26.TN.0/24
 
define DMZ = 10.88.TN.0/24
 
define DMZ = 10.88.TN.0/24
 +
define KIT = 192.168.HS.0/24
  
 
# Alte Regeln löschen (flush)
 
# Alte Regeln löschen (flush)
Zeile 46: Zeile 77:
 
          
 
          
 
         # DMZ nach 192.168.HS.0/24 - kein NAT (RETURN)
 
         # DMZ nach 192.168.HS.0/24 - kein NAT (RETURN)
         ip saddr $DMZ ip daddr 192.168.HS.0/24 return
+
         ip saddr $DMZ ip daddr $KIT return
 
          
 
          
 
         # DMZ nach 10.88.0.0/16 - kein NAT (RETURN)
 
         # DMZ nach 10.88.0.0/16 - kein NAT (RETURN)
Zeile 73: Zeile 104:
 
*echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-ip-forward.conf
 
*echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-ip-forward.conf
 
*sudo sysctl -p /etc/sysctl.d/99-ip-forward.conf
 
*sudo sysctl -p /etc/sysctl.d/99-ip-forward.conf
=Resolver=
 
*cat /etc/resolv.conf
 
search it213.int
 
nameserver 192.168.9.88
 
 
=Reboot=
 
=Reboot=
 
*sudo systemctl reboot
 
*sudo systemctl reboot
 +
=Tests=
 +
;Läuft die Firewall?
 +
*nft list ruleset
 +
;Stimmen die IPs?
 +
*ip addr show
 +
;Stimmt das Routing?
 +
*ip route show
 +
;Ist IPFORWARD eingestellt?
 +
*sysctl net.ipv4.ip_forward
 +
=Erweiterte Test mit ping und tcpdump=
 +
;Wir installieren terminator auf dem HOST
 +
*sudo dnf install -y terminator
 +
;termintor öffnen
 +
*Anwendungen -> Systemwerkzeuge -> Terminator
 +
*Rechte Maustaste -> Horizontal Teilen
 +
;Mit meinen Terminals auf die Firewall gehen und jeweils zu root machen
 +
*Terminal1 -> wird zum mitschneiden genutzt
 +
*Terminal2 -> für ping genutzt
 +
==Erster Test==
 +
;Terminal1
 +
*tcpdump -ni enp0s3 icmp
 +
;Terminal2
 +
*ping -c 1 1.1.1.1
 +
==Zweiter Test==
 +
;Terminal1
 +
*tcpdump -ni enp0s3 icmp
 +
;Terminal2
 +
*ping -c 1 -I 10.88.2XX.1 google.de
 +
Erkenntnis Source IP wird umgeschrieben
 +
 +
==Dritte Test==
 +
;Terminal1
 +
*tcpdump -ni enp0s3 icmp
 +
;Terminal2
 +
*ping -I 10.88.2XX.1 10.88.201.1
 +
Erkenntnis Source IP wird nicht umgeschrieben
 +
==Vierte Test==
 +
;Terminal1
 +
*tcpdump -ni enp0s3 icmp
 +
;Terminal2
 +
*ping -I 10.88.2XX.1 192.168.HS.88
 +
Erkenntnis Source IP wird nicht umgeschrieben
 +
==Fünfter Test==
 +
;Terminal1
 +
*tcpdump -ni enp0s3 icmp
 +
;Terminal2
 +
*ping -I 172.26.2XX.1 192.168.HS.88
 +
Erkenntnis Source IP wird  umgeschrieben

Aktuelle Version vom 2. Juni 2026, 07:58 Uhr

Erklärung

  • TN = 200 + Platznummer
  • HS = Klassensaal

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

Hostname

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)
Weitere Interfaces
  • cat /etc/network/interfaces
#LOOPBACK
auto lo
iface lo inet loopback

#WAN
auto enp0s3
iface enp0s3 inet static
 address 192.168.HS.TN/24
 gateway 192.168.HS.254
 dns-nameservers 192.168.HS.88
 dns-search it2XX.int
 post-up ip route add 10.88.0.0/16 via 192.168.HS.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

NAT mit nftables

  • cat /etc/nftables.conf
#!/usr/sbin/nft -f

# Variablen
define LAN = 172.26.TN.0/24
define DMZ = 10.88.TN.0/24
define KIT = 192.168.HS.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.HS.0/24 - 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 enp0s3 masquerade
        
        # LAN nach außen - Masquerade
        ip saddr $LAN oif enp0s3 masquerade
        
    }
}

Tests

Manuelles aktivieren
  • nft -f /etc/nftables.conf
Anzeigen
  • nft list ruleset
Löschen
  • nft flush ruleset

Aktivieren

  • systemctl enable nftables.service

Forward

  • echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-ip-forward.conf
  • sudo sysctl -p /etc/sysctl.d/99-ip-forward.conf

Reboot

  • sudo systemctl reboot

Tests

Läuft die Firewall?
  • nft list ruleset
Stimmen die IPs?
  • ip addr show
Stimmt das Routing?
  • ip route show
Ist IPFORWARD eingestellt?
  • sysctl net.ipv4.ip_forward

Erweiterte Test mit ping und tcpdump

Wir installieren terminator auf dem HOST
  • sudo dnf install -y terminator
termintor öffnen
  • Anwendungen -> Systemwerkzeuge -> Terminator
  • Rechte Maustaste -> Horizontal Teilen
Mit meinen Terminals auf die Firewall gehen und jeweils zu root machen
  • Terminal1 -> wird zum mitschneiden genutzt
  • Terminal2 -> für ping genutzt

Erster Test

Terminal1
  • tcpdump -ni enp0s3 icmp
Terminal2
  • ping -c 1 1.1.1.1

Zweiter Test

Terminal1
  • tcpdump -ni enp0s3 icmp
Terminal2
  • ping -c 1 -I 10.88.2XX.1 google.de

Erkenntnis Source IP wird umgeschrieben

Dritte Test

Terminal1
  • tcpdump -ni enp0s3 icmp
Terminal2
  • ping -I 10.88.2XX.1 10.88.201.1

Erkenntnis Source IP wird nicht umgeschrieben

Vierte Test

Terminal1
  • tcpdump -ni enp0s3 icmp
Terminal2
  • ping -I 10.88.2XX.1 192.168.HS.88

Erkenntnis Source IP wird nicht umgeschrieben

Fünfter Test

Terminal1
  • tcpdump -ni enp0s3 icmp
Terminal2
  • ping -I 172.26.2XX.1 192.168.HS.88

Erkenntnis Source IP wird umgeschrieben