Rocky fw: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(40 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
+
*[[Rocky fw firewalld]]
= Die Firewall =
+
*[[Rocky fw nftables]]
 
+
*[[Rocky fw firewalld mit return]]
== Ziel ==
 
Die Firewall trennt drei Netzbereiche voneinander: das Schulungsnetz (WAN), die DMZ und das interne LAN. Sie übernimmt gleichzeitig die Aufgaben eines Routers, eines DHCP-Servers für das LAN und kontrolliert den gesamten Netzverkehr zwischen den Zonen.
 
 
 
== Netzplan ==
 
 
 
{| class="wikitable"
 
! Interface !! Zone !! Netz !! IP Firewall
 
|-
 
| enp0s3 || external || 192.168.HS.0/24 (Schulungsnetz) || 192.168.HS.2XX
 
|-
 
| enp0s8 || dmz || 10.88.2XX.0/24 || 10.88.2XX.1
 
|-
 
| enp0s9 || internal || 172.26.2XX.0/24 || 172.26.2XX.1
 
|}
 
 
 
=== Feste IP-Adressen ===
 
 
 
{| class="wikitable"
 
! System !! Netz !! IP !! Dienste
 
|-
 
| fw.itXX.int || WAN/DMZ/LAN || siehe oben || firewalld, Kea DHCP
 
|-
 
| ns.itXX.int || DMZ || 10.88.2XX.2 || BIND9 (DNS)
 
|-
 
| http.itXX.int || DMZ || 10.88.2XX.3 || Apache
 
|-
 
| ldap.itXX.int || LAN || 172.26.2XX.2 || OpenLDAP
 
|-
 
| client.itXX.int || LAN || per DHCP || Ansible Control Node
 
|}
 
 
 
== Dienste auf der Firewall ==
 
 
 
;firewalld: Zonenverwaltung, Paketfilterung, Masquerading
 
;Kea DHCP4: IP-Vergabe für das LAN (172.26.2XX.0/24)
 
 
 
== Regelwerk ==
 
 
 
{| class="wikitable"
 
! Von !! Nach !! Erlaubt !! Gesperrt
 
|-
 
| LAN || WAN || alles (Masquerading) || —
 
|-
 
| DMZ || WAN || alles (Masquerading) || —
 
|-
 
| WAN || DMZ || TCP/80, TCP/443 (http), UDP/53 TCP/53 (ns) || alles andere
 
|-
 
| WAN || LAN || — || alles
 
|-
 
| LAN || DMZ || TCP/80, UDP/53 TCP/53 || alles andere
 
|-
 
| DMZ || LAN || TCP/636 (LDAPS) || alles andere
 
|-
 
| LAN || LAN || alles || —
 
|}
 
 
 
;Begründung DMZ → LAN TCP/636: Die DMZ-Server (ns, http) authentifizieren sich über SSSD gegen den LDAP-Server im LAN. Dafür muss LDAPS (Port 636) aus der DMZ ins LAN erlaubt sein. Alle anderen Verbindungen von der DMZ ins LAN sind gesperrt – ein kompromittierter DMZ-Server soll keinen freien Zugriff auf das interne Netz bekommen.
 
 
 
= Umsetzung =
 
 
 
== Netzwerkkonfiguration ==
 
 
 
=== enp0s3 (WAN) ===
 
* nmcli con mod enp0s3 ipv4.addresses 192.168.HS.2XX/24
 
* nmcli con mod enp0s3 ipv4.gateway 192.168.HS.1
 
* nmcli con mod enp0s3 ipv4.dns 192.168.HS.1
 
* nmcli con mod enp0s3 ipv4.method manual
 
* nmcli con up enp0s3
 
 
 
=== enp0s8 (DMZ) ===
 
* nmcli con mod enp0s8 ipv4.addresses 10.88.2XX.1/24
 
* nmcli con mod enp0s8 ipv4.method manual
 
* nmcli con up enp0s8
 
 
 
=== enp0s9 (LAN) ===
 
* nmcli con mod enp0s9 ipv4.addresses 172.26.2XX.1/24
 
* nmcli con mod enp0s9 ipv4.method manual
 
* nmcli con up enp0s9
 
 
 
=== IP-Forwarding aktivieren ===
 
;Damit die Firewall Pakete zwischen den Interfaces weiterleitet
 
* echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-forwarding.conf
 
* sysctl -p /etc/sysctl.d/99-forwarding.conf
 
 
 
== firewalld ==
 
 
 
=== Installation und Start ===
 
* dnf install -y firewalld
 
* systemctl enable --now firewalld
 
 
 
=== Interfaces den Zonen zuweisen ===
 
* firewall-cmd --permanent --zone=external --change-interface=enp0s3
 
* firewall-cmd --permanent --zone=dmz --change-interface=enp0s8
 
* firewall-cmd --permanent --zone=internal --change-interface=enp0s9
 
 
 
=== Masquerading ===
 
;LAN und DMZ kommen hinter der externen IP raus
 
* firewall-cmd --permanent --zone=external --add-masquerade
 
* firewall-cmd --permanent --zone=dmz --add-masquerade
 
 
 
=== WAN → DMZ: DNS und HTTP freigeben ===
 
* firewall-cmd --permanent --zone=dmz --add-service=dns
 
* firewall-cmd --permanent --zone=dmz --add-service=http
 
* firewall-cmd --permanent --zone=dmz --add-service=https
 
 
 
=== LAN → DMZ: DNS und HTTP freigeben ===
 
* firewall-cmd --permanent --zone=internal --add-service=dns
 
* firewall-cmd --permanent --zone=internal --add-service=http
 
* firewall-cmd --permanent --zone=internal --add-service=https
 
 
 
=== DMZ → LAN: nur LDAPS ===
 
;Rich Rule: erlaubt LDAPS aus der DMZ ins LAN
 
* firewall-cmd --permanent --zone=internal --add-rich-rule='rule family="ipv4" source address="10.88.2XX.0/24" service name="ldaps" accept'
 
 
 
=== WAN → LAN: alles sperren ===
 
;Die internal-Zone hat per default kein accept von external – keine weitere Regel nötig
 
 
 
=== Konfiguration laden ===
 
* firewall-cmd --reload
 
 
 
=== Kontrolle ===
 
* firewall-cmd --list-all --zone=external
 
* firewall-cmd --list-all --zone=dmz
 
* firewall-cmd --list-all --zone=internal
 
 
 
== Kea DHCP4 für das LAN ==
 
 
 
=== Installation ===
 
* dnf install -y kea
 
 
 
=== Konfiguration ===
 
* vim /etc/kea/kea-dhcp4.conf
 
<pre>
 
{
 
  "Dhcp4": {
 
    "interfaces-config": {
 
      "interfaces": [ "enp0s9" ]
 
    },
 
    "lease-database": {
 
      "type": "memfile",
 
      "persist": true,
 
      "name": "/var/lib/kea/kea-leases4.csv"
 
    },
 
    "valid-lifetime": 3600,
 
    "subnet4": [
 
      {
 
        "subnet": "172.26.2XX.0/24",
 
        "pools": [ { "pool": "172.26.2XX.100 - 172.26.2XX.200" } ],
 
        "option-data": [
 
          { "name": "routers", "data": "172.26.2XX.1" },
 
          { "name": "domain-name-servers", "data": "10.88.2XX.2" },
 
          { "name": "domain-name", "data": "itXX.int" }
 
        ]
 
      }
 
    ]
 
  }
 
}
 
</pre>
 
 
 
=== Start ===
 
* systemctl enable --now kea-dhcp4
 
 
 
=== Kontrolle ===
 
* systemctl status kea-dhcp4
 
* cat /var/lib/kea/kea-leases4.csv
 

Aktuelle Version vom 7. Juli 2026, 03:45 Uhr