[Unit] Description=MYP Firewall Configuration Service Documentation=https://github.com/MYP-Druckerverwaltung After=firewalld.service Wants=firewalld.service Requires=firewalld.service [Service] Type=oneshot RemainAfterExit=yes User=root Group=root # Firewall-Konfiguration für MYP Backend ExecStart=/bin/bash -c '\ # Warte bis firewalld vollständig gestartet ist \ sleep 5; \ \ # Zone definieren (falls nicht vorhanden) \ firewall-cmd --permanent --new-zone=myp-backend 2>/dev/null || true; \ \ # Erweiterte Netzwerk-Quellen definieren (nur IPv4) \ firewall-cmd --permanent --zone=myp-backend --add-source=192.168.0.0/16; \ firewall-cmd --permanent --zone=myp-backend --add-source=127.0.0.1/32; \ \ # Lokaler Hostname "raspberrypi" hinzufügen \ LOCAL_HOSTNAME="raspberrypi"; \ LOCAL_IP=$(getent hosts "$LOCAL_HOSTNAME" | awk "{print \$1}" | grep -E "^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$" | head -1 2>/dev/null || true); \ if [ -n "$LOCAL_IP" ]; then \ firewall-cmd --permanent --zone=myp-backend --add-source="$LOCAL_IP/32" 2>/dev/null || true; \ logger "MYP Firewall: Lokaler Hostname $LOCAL_HOSTNAME hinzugefügt: $LOCAL_IP"; \ else \ logger "MYP Firewall: Lokaler Hostname $LOCAL_HOSTNAME nicht auflösbar"; \ fi; \ \ # Frontend-Server m040tbaraspi001 hinzufügen (falls auflösbar) \ FRONTEND_IP=$(getent hosts "m040tbaraspi001" | awk "{print \$1}" | grep -E "^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$" | head -1 2>/dev/null || true); \ if [ -n "$FRONTEND_IP" ]; then \ firewall-cmd --permanent --zone=myp-backend --add-source="$FRONTEND_IP/32" 2>/dev/null || true; \ logger "MYP Firewall: Frontend-Server m040tbaraspi001 hinzugefügt: $FRONTEND_IP"; \ else \ # Versuche auch mit FQDN \ FRONTEND_FQDN_IP=$(getent hosts "m040tbaraspi001.de040.corpintra.net" | awk "{print \$1}" | grep -E "^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$" | head -1 2>/dev/null || true); \ if [ -n "$FRONTEND_FQDN_IP" ]; then \ firewall-cmd --permanent --zone=myp-backend --add-source="$FRONTEND_FQDN_IP/32" 2>/dev/null || true; \ logger "MYP Firewall: Frontend-Server m040tbaraspi001.de040.corpintra.net hinzugefügt: $FRONTEND_FQDN_IP"; \ else \ logger "MYP Firewall: Frontend-Server m040tbaraspi001 nicht auflösbar"; \ fi; \ fi; \ \ # HTTPS für API & Kiosk \ firewall-cmd --permanent --zone=myp-backend --add-port=443/tcp; \ \ # SSH für Wartung \ firewall-cmd --permanent --zone=myp-backend --add-service=ssh; \ \ # RDP für Remote-Desktop \ firewall-cmd --permanent --zone=myp-backend --add-port=3389/tcp; \ \ # IPv6 in firewalld deaktivieren \ firewall-cmd --permanent --set-target=DROP --zone=public --family=ipv6 2>/dev/null || true; \ firewall-cmd --permanent --set-target=DROP --zone=myp-backend --family=ipv6 2>/dev/null || true; \ \ # Default-Zone setzen \ firewall-cmd --set-default-zone=myp-backend; \ \ # Änderungen übernehmen \ firewall-cmd --reload; \ \ # Status loggen \ logger "MYP Firewall: Konfiguration erfolgreich angewendet (IPv6 deaktiviert, Frontend-Server m040tbaraspi001)"; \ firewall-cmd --list-all-zones | logger -t "MYP-Firewall"; \ ' # Umgebungsvariablen Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin # Logging StandardOutput=journal StandardError=journal SyslogIdentifier=myp-firewall # Sicherheitseinstellungen NoNewPrivileges=true PrivateTmp=true ProtectSystem=false ProtectHome=true [Install] WantedBy=multi-user.target