Datei- und Verzeichnisrechte: Secure Permissions für Webserver

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-data oder apache

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_security fü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.

Related Articles