Absichern Von Drupal- und Serverinstallation
am 11.02.2012 - 11:44 Uhr in
Hallo Zusammen!
Ich wollte mal schauen, wie weit ich mit der Absicherung des Webservers gehen kann, damit darauf Drupal noch läuft. Bisher sieht es gut aus.
Folgende Dinge wurden getestet.
Auf dem Server laufen einige vHosts, weshalb auch versucht wurde diese voneinander zu trennen.
Getrennte Verzeichnisstruktur
Um die Webspaces voneinander abzukapseln wurden die TMP-Pfade ins User-Home verlegt und die Zugriffe mittels open_basedir auf das User-Verzeichnis beschränkt.
mod_ruid2
Da auf dem Server mehrere getrennte Systeme laufen, habe ich den Apache-Prozess mittels mod_ruid2 für den vHost auf den entsprechenden Webspace-Besitzer (Systemuser) geändert. So lassen sich die Dateirechte auch gut einschränken.
zusätzlich wurde auch RDocumentChroot getestet, was aber bereits bei der Drupal-Installation Probleme mit sich bringt. Scheinbar muss Drupal hier auf einige Pakete (PEAR?) zurückgreifen, welche nur außerhalb des Homeverzeichnisses liegen. Da RDocumentChroot scheinbar nicht mit open_basedir kompatibel ist, wurde dieses für den Test wieder deaktiviert.
Dateiberechtigungen
Um unerwünschte Änderungen an dem Drupal-Core zu vermeiden, wurden einige Änderungen an den Dateiberechtigungen vorgenommen. Auch weil immer wieder gerne z.B. die index.php böswillig modifiziert wird.
- Besitzer & Gruppe auf Drupalbenutzer geändert
- Schreibrechte für alle Dateien und Verzeichnisse wurden entzogen. Auch dem Besitzer!
Notwendige Ausnahmen: files- (z.B. für Uploads und (temporär für Updates und Installationen) das modules-Verzeichnis
Passwort vergessen Seite sperren
Bei einer reinen Gästeseite mit lediglich einem Admin-Account, kann man den Zugriff mittels htaccess auf die eigene IP (falls eine feste IP vorhanden ist) beschränken oder eben den Zugriff auf /user/password komplett verbieten. Bei Bedarf kann man den Schutz ja wieder entfernen und selbst zugreifen...
Auf diese Idee kam ich aufgrund von entsprechenden Aufrufen im Log, welche sicherlich nicht von mir stammten. ;)
Gewähltes Drupal User-PW
Der Account heißt nicht admin oder administrator und das Passwort wurde mit einer Zeichenlänge von 60 Zeichen zufällig generiert (Login bequem über einen Passwort-Safe).
disable_functions
Der für mich kritischste Punkt war das deaktivieren einiger PHP-Funktionalitäten , um die Sicherheit der Serverumgebung weiter zu erhöhen. Leider weiß ich aktuell noch nicht, welche dieser Funktionen Drupal evtl. doch benötigen würde...
Hat da jemand mehr Erfahrung oder Informationen?
Testweise habe ich folgende deaktiviert und Drupal scheint(!) einwandfrei zu funktionieren.
disable_functions = phpinfo, popen, pclose, dl, system, mail, shell_exec, exec, escapeshellarg, escapeshellcmd, passthru, proc_close, proc_open, proc_get_status, proc_nice, proc_open, proc_terminate, chown, disk_free_space, disk_total_space, diskfreespace, fileinode, max_execution_time, set_time_limit, highlight_file, show_source
Scheinbar passt das auch in Verbindung mit einem SMF-Forum und Piwik.
Habt ihr eine Idee, was man noch problemlos mittels disable_functions deaktivieren könnte oder wie man die Sicherheit weiter erhöhen kann?
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 3 Tagen 4 Stunden
vor 3 Tagen 7 Stunden
vor 3 Tagen 7 Stunden
vor 3 Tagen 7 Stunden
vor 4 Tagen 4 Stunden
vor 4 Tagen 6 Stunden
vor 5 Tagen 3 Stunden
vor 5 Tagen 20 Stunden
vor 5 Tagen 21 Stunden
vor 6 Tagen 34 Minuten