Archiv für Server Sicherheit

Die PHP.ini – PHP gegen Angriffe absichern

Die wichtigsten Sicherheitseinstellungen in der php.ini

  • allow_url_fopen – Diese Einstellung legt fest, dass PHP-Skripte nur lokale Dateien des Servers einbinden können. Verbietet man dies, wird es einem Angreifer erschwert seinen Schadcode aus dem Internet nachzuladen. Manchmal benötigt man dies allerdings, etwa um NewsFeeds von externen Servern zu laden. Empfohlene Einstellung: OFF
  • allow_url_include – Ähnlich wie allow_url_fopen, allerdings betrifft diese Einstellung nicht das öffnen von Dateien, sondern das inkludieren (include(), require()) von Dateien.
    Empfohlene Einstellung: OFF (erst ab PHP 5.2.0 verfügbar!)
  • disable_functions – Hier kann man eine, durch Komma separierte, Liste mit PHP-Funktionen eintragen deren Benutzung gesperrt sein soll. Wenn man sie nicht unbedingt benötigt, sollten hier alle Funktionen eingetragen werden, die einen serverweiten Zugriff gestatten. Manche Funktionen, wie etwa exec(), sind vergleichbar mit einem Generalschlüssel für den Server.
    Empfohlene Einstellung: escapeshellcmd, exec, ini_restore, passthru, popen, proc_nice, proc_open, shell_exec, system
  • display_errors – Im produktiven Einsatz sollten PHP-Fehlermeldungen nicht angezeigt werden. Fehlermeldungen sind nicht nur lästig und hinterlassen einen unprofessionellen Eindruck beim Kunden sondern, und das ist viel wichtiger, geben Fehlermeldungen jedem Angreifer wichtige Informationen über die Struktur und den Aufbau unserer Scripts.
    Empfohlene Einstellung: OFF
  • open_basedir – Legt ein Verzeichnis fest, in dem wir mit PHP arbeiten können. Auf diese Art kann man verhindern, dass ein manipuliertes Script Zugriff auf gewisse Ordner oder ganze Bereiche auf unserem Server erhält.
    Empfohlene Einstellung: Root Verzeichnis der Internetpräsenz
  • register_globals – Ist diese Einstellung aktiv, werden Variablen aus GET und POST global verfügbar gemacht und überschreiben damit ggfs. andere Variablen mit dem selben Name. Ist diese Einstellung deaktiviert, muss auf Eingaben von aussen explizit mit $_GET, $_POST, $_SESSION zugegriffen werden. Empfohlene Einstellung: OFF

  • safe_mode – Ist der Safe_Mode aktiviert, werden u.a. Berechtigungs-Prüfungen durchgeführt, ob die gewünschte Aktion von einem User durchführbar ist. Empfohlene Einstellung: ON

rkhunter installieren und benutzen

Diese Anleitung behandelt die Installation und Verwendung vom Rootkit-Scannern rkhunter unter Linux.

Diese Anleitung setzt voraus, dass man zumindest theoretisch weiß, was Rootkits sind.

http://de.wikipedia.org/wiki/Rootkit
Heimliche Hintertüren – Rootkits aufspüren und beseitigen

1. Laden Sie die aktuelle Version von rkhunter herunter.

cd /tmp && wget http://ovh.dl.sourceforge.net/sourceforge/rkhunter/rkhunter-1.3.2.tar.gz

2. Entpacken der Archivdatei

tar -xzf rkhunter-1.3.2.tar.gz

3. Installieren

/installer.sh -layout /usr/local –install

4. Starten

cd /usr/local/bin
./rkhunter –check

Wenn beim Scan Warnungen ausgegeben werden, sollte man ihnen auf den Grund gehen und selber entscheiden, ob es sich um einen echten Einbruch handelt. Bei unverständlichen “Warnings” hilft oft Suchen im Internet weiter.

Die Signaturen von rkhunter lassen sich per

./rkhunter --update

aktualisieren.

5. Täglicher Scan Report per Mail

Im folgenden Schritt legen wir ein Script in /etc/cron.daily/ mit dem Namen rkhunter.sh an

pico /etc/cron.daily/rkhunter.sh

und füllen es mit nachstehenden Zeilen.

 
add the following replacing your email address:
 
#!/bin/bash
(
/usr/local/bin/rkhunter --versioncheck
/usr/local/bin/rkhunter --update
/usr/local/bin/rkhunter -c --cronjob 2>&1 | mail -s "Daily Rkhunter Scan Report" ihre_email@domain.com
)
chmod +x /etc/cron.daily/rkhunter.sh

macht das Script rkhunter.sh ausführbar.