Die PHP-Sicherheit ist ein zentraler Aspekt für stabile und geschützte Webserver. Funktionen wie disable_functions und open_basedir erlauben es, riskante PHP-Funktionen zu deaktivieren und den Zugriff auf bestimmte Verzeichnisse einzuschränken. Zusätzlich sollten sichere Default-Einstellungen in php.ini gesetzt werden, um Angriffsflächen zu minimieren. In diesem Leitfaden erfahren Einsteiger, IT-Studierende und Junior Network Engineers, wie PHP sicher konfiguriert wird.
disable_functions: gefährliche Funktionen deaktivieren
PHP bietet mächtige Funktionen, die in unkontrollierten Umgebungen ein Sicherheitsrisiko darstellen. Mit disable_functions können diese Funktionen global deaktiviert werden.
Empfohlene Funktionen zum Deaktivieren
exec,shell_exec,system,passthru– Ausführung von Shell-Befehlenpopen,proc_open– Prozesssteuerungpcntl_exec– Prozesskontrolleeval– dynamische Codeausführungcreate_function– dynamische Funktionsdefinition
; /etc/php/7.4/fpm/php.ini
disable_functions = exec,shell_exec,system,passthru,popen,proc_open,pcntl_exec,eval,create_function
open_basedir: Verzeichniszugriffe einschränken
Mit open_basedir kann der PHP-Prozess auf bestimmte Verzeichnisse beschränkt werden. Damit wird verhindert, dass Skripte auf sensible Systemverzeichnisse zugreifen.
Beispiel: Webroot einschränken
; /etc/php/7.4/fpm/pool.d/www.conf
php_admin_value[open_basedir] = /var/www/meineseite:/tmp
Alle PHP-Skripte können nur auf /var/www/meineseite und temporäre Dateien in /tmp zugreifen.
Sichere Defaults in php.ini
Bestimmte PHP-Einstellungen tragen wesentlich zur Sicherheit bei.
Empfohlene Einstellungen
expose_php = Off– PHP-Versionsinformationen nicht offenlegendisplay_errors = Off– Fehlermeldungen nicht an Besucher ausgebenlog_errors = On– Fehler intern protokollierensession.cookie_httponly = On– Session-Cookies vor JavaScript schützensession.cookie_secure = On– Nur über HTTPS übertragenallow_url_fopen = Off– Remote-Dateien nicht automatisch öffnenallow_url_include = Off– Remote-Includes verhindern
; /etc/php/7.4/fpm/php.ini
expose_php = Off
display_errors = Off
log_errors = On
session.cookie_httponly = On
session.cookie_secure = On
allow_url_fopen = Off
allow_url_include = Off
PHP-FPM Pool Isolation
Jeder Webanwendung sollte ein eigener PHP-FPM Pool zugeordnet werden, um Benutzerrechte und Ressourcen zu isolieren.
[meineseite]
user = www-data
group = www-data
listen = /run/php/php7.4-fpm-meineseite.sock
php_admin_value[open_basedir] = /var/www/meineseite:/tmp
php_admin_value[disable_functions] = exec,shell_exec,system,passthru,popen,proc_open,pcntl_exec,eval,create_function
Logs überwachen
Fehler- und Access-Logs helfen, Sicherheitsprobleme frühzeitig zu erkennen.
tail -f /var/log/php7.4-fpm.log
tail -f /var/log/nginx/meineseite_error.log
Netzwerk- und Subnetzplanung
IP-Restriktionen für Admin-Bereiche oder FPM Pools benötigen saubere Subnetzplanung.
IPv4 Subnetz
<math>
Server-IP = 192.168.190.10/24
Subnetzadresse = 192.168.190.10 & 255.255.255.0 = 192.168.190.0
Broadcastadresse = 192.168.190.0 | ~255.255.255.0 = 192.168.190.255
</math>
IPv6 Subnetz
<math>
Server-IP = 2001:db8:abcd:190::10/64
Subnetzadresse = 2001:db8:abcd:190:: & ffff:ffff:ffff:ffff:: = 2001:db8:abcd:190::0
Broadcastadresse = 2001:db8:abcd:190:ffff:ffff:ffff:ffff
</math>
Best Practices
- Riskante Funktionen global mit
disable_functionssperren - open_basedir pro Pool oder Website setzen
- Display Errors deaktivieren, Logging aktivieren
- Session-Cookies sicher mit
httponlyundsecuresetzen - Remote File Include Optionen deaktivieren
- Separate PHP-FPM Pools für unterschiedliche Anwendungen nutzen
- Regelmäßige Updates der PHP-Versionen und Module
- Fehler- und Access-Logs regelmäßig prüfen
- Backups der Konfigurationen erstellen
- Netzwerkrestriktionen für Adminbereiche planen
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

