Datei- und Verzeichnisrechte sind ein entscheidender Faktor für die Sicherheit von Webservern. Unsichere Berechtigungen können Angreifern ermöglichen, auf sensible Dateien zuzugreifen, Inhalte zu manipulieren oder Schadcode einzuschleusen. In diesem Leitfaden erfahren Einsteiger, IT-Studierende und Junior Network Engineers, wie Webserver-Dateien und -Verzeichnisse sicher konfiguriert werden, welche Rechte empfohlen werden und wie diese mit Linux-CLI-Befehlen umgesetzt werden.
Grundlagen von Linux-Dateiberechtigungen
Jede Datei und jedes Verzeichnis unter Linux besitzt drei Berechtigungsklassen:
- Owner (Besitzer): Benutzer, dem die Datei gehört
- Group (Gruppe): Gruppe von Benutzern, die Zugriff auf die Datei haben
- Others (Andere): Alle anderen Benutzer
Jede Klasse hat drei Berechtigungen:
- r: Lesen
- w: Schreiben
- x: Ausführen
Dateiberechtigungen prüfen
ls -l /var/www/html
# Beispielausgabe:
# -rw-r--r-- 1 www-data www-data 1024 Mär 7 10:00 index.html
Empfohlene Berechtigungen für Webserver
Die empfohlenen Rechte verhindern, dass andere Benutzer ungewollt Dateien ändern oder ausführen können.
- Verzeichnisse:
755– Owner kann lesen, schreiben, ausführen; Gruppe und Andere können lesen und ausführen - Dateien:
644– Owner kann lesen und schreiben; Gruppe und Andere nur lesen - Besitzer: Webserver-Benutzer, z. B.
www-dataoderapache
Berechtigungen setzen
Verzeichnisse
sudo find /var/www/html -type d -exec chmod 755 {} ;
Dateien
sudo find /var/www/html -type f -exec chmod 644 {} ;
Besitzer und Gruppe anpassen
sudo chown -R www-data:www-data /var/www/html
Besondere Dateien absichern
Sensible Konfigurationsdateien oder Skripte sollten restriktivere Rechte haben.
sudo chmod 600 /var/www/html/config.php
sudo chown www-data:www-data /var/www/html/config.php
Verzeichnisschutz mit .htaccess
Apache-Webserver erlauben zusätzlichen Schutz über .htaccess:
# Zugriff nur von interner IP erlauben
Order deny,allow
Deny from all
Allow from 192.168.1.0/24
Nginx Zugriffsschutz
location /admin {
allow 192.168.1.0/24;
deny all;
}
SetUID, SetGID und Sticky Bit
Diese Sonderrechte werden nur in besonderen Szenarien benötigt:
- SetUID: Datei läuft mit Rechten des Besitzers
- SetGID: Datei läuft mit Gruppenrechten des Besitzers
- Sticky Bit: Nur Besitzer oder root kann Datei in einem Verzeichnis löschen
Logs und temporäre Dateien absichern
Logdateien und temporäre Verzeichnisse sollten nur vom Webserver les- und beschreibbar sein.
sudo chmod 640 /var/log/nginx/*.log
sudo chown www-data:adm /var/log/nginx/*.log
Netzwerk und Subnetze berücksichtigen
Für IP-basierte Zugriffskontrollen ist eine saubere Subnetzplanung notwendig.
IPv4 Subnetz
<math>
Server-IP = 192.168.120.10/24
Subnetzadresse = 192.168.120.10 & 255.255.255.0 = 192.168.120.0
Broadcastadresse = 192.168.120.0 | ~255.255.255.0 = 192.168.120.255
</math>
IPv6 Subnetz
<math>
Server-IP = 2001:db8:abcd:120::10/64
Subnetzadresse = 2001:db8:abcd:120:: & ffff:ffff:ffff:ffff:: = 2001:db8:abcd:120::0
Broadcastadresse = 2001:db8:abcd:120:ffff:ffff:ffff:ffff
</math>
Best Practices
- Verzeichnisse: 755, Dateien: 644
- Besitzer: Webserver-Benutzer (www-data oder apache)
- Sensible Dateien: 600, nur vom Webserver lesbar
- SetUID/SetGID nur bei Bedarf setzen
- Sticky Bit für gemeinsam genutzte Verzeichnisse (z. B. /tmp)
- Logdateien sichern, nur Webserver und Admin zugreifen lassen
- Regelmäßige Überprüfung der Berechtigungen mit
find /var/www/html -perm - Netzwerk-Restriktionen für Adminbereiche
- Backups erstellen und testen
- Verwendung von Security-Modulen wie
mod_securityfür Apache
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.











