FIN INIT
This commit is contained in:
91
systemd/myp-firewall.service
Normal file
91
systemd/myp-firewall.service
Normal file
@@ -0,0 +1,91 @@
|
||||
[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
|
||||
Reference in New Issue
Block a user