feat: add PHP ini management system and update infrastructure configs

- Add PHP ini management classes (Access, IniDirective, IniKey, PhpIni)
- Update deployment configurations (Wireguard, Traefik, Monitoring)
- Add DNS stack and Ansible role
- Add deployment debugging playbooks
- Update framework components (FilePath, RedisConnectionPool)
- Update .gitignore and documentation
This commit is contained in:
2025-11-02 15:29:41 +01:00
parent e628d30fa0
commit edcf509a4f
29 changed files with 926 additions and 39 deletions

View File

@@ -12,7 +12,9 @@ Dieses Dokument beschreibt die geplante Sicherheitshärtung für Backend-Dienste
**Aktueller Zustand:**
- ✅ WireGuard VPN ist installiert und funktionsfähig
-Backend-Dienste sind öffentlich über Traefik erreichbar
-Traefik-Dashboard ist jetzt VPN-only (nur über WireGuard erreichbar)
- ✅ Grafana ist VPN-only (nur über WireGuard erreichbar)
- ✅ Andere Backend-Dienste sind noch öffentlich über Traefik erreichbar
- ✅ VPN-Zugriff funktioniert parallel
**Zielzustand:**
@@ -38,11 +40,19 @@ Folgende Dienste sollen später nur noch über VPN erreichbar sein:
- Aktuell: `https://portainer.michaelschiemer.de` (öffentlich)
- Zukünftig: Nur `https://10.8.0.1:9443` über VPN
## Aktueller Test: Grafana nur per VPN
## Aktuell implementiert: VPN-only Services
- Realisiert über Traefik-IP-Whitelist (`grafana-vpn-only` Middleware)
- Whitelist-Wert: `MONITORING_VPN_IP_WHITELIST` in `deployment/stacks/monitoring/.env` (Ansible default `monitoring_vpn_ip_whitelist`)
- Ziel: Erst Grafana absichern, später Prometheus/Portainer nachziehen
### Traefik-Dashboard
- ✅ Realisiert über Traefik-IP-Whitelist (`vpn-only` Middleware)
- ✅ Zusätzlich durch BasicAuth geschützt
- ✅ Whitelist umfasst standardmäßig ausschließlich das WireGuard-Netz `10.8.0.0/24`
- ✅ Öffentlicher Zugriff ist blockiert (403 Forbidden)
### Grafana
- ✅ Realisiert über Traefik-IP-Whitelist (`grafana-vpn-only` Middleware)
- ✅ Whitelist umfasst standardmäßig ausschließlich das WireGuard-Netz `10.8.0.0/24`
- ✅ Anpassung via Ansible-Extra-Var `monitoring_vpn_ip_whitelist_ranges` möglich (falls weitere Netze freigeschaltet werden sollen)
- ✅ CoreDNS-Override aktiv, damit `grafana.michaelschiemer.de` im VPN auf `10.8.0.1` zeigt
### Rollout-Schritte
1. Neue Stacks auf den Server syncen: \
@@ -55,6 +65,8 @@ Folgende Dienste sollen später nur noch über VPN erreichbar sein:
- Ohne VPN (öffentliche IP): `curl -I https://grafana.michaelschiemer.de``403 Forbidden`
- Mit WireGuard (`10.8.0.x` Client): Grafana im Browser laden, Login funktioniert
- Optional: Traefik-Logs prüfen (`docker compose -f ~/deployment/stacks/traefik/docker-compose.yml logs -f traefik`) für geblockte IPs
- DNS-Check im VPN: `dig grafana.michaelschiemer.de @10.8.0.1``10.8.0.1`
- WireGuard-Client bekommt automatisch `DNS = 10.8.0.1`, solange `wireguard_dns_servers` nicht überschrieben wird (ansonsten manuell auf internen Resolver setzen)
---