Tipps und Tricks zur Absicherung des Rootservers – Teil 10

Überblick

Im letzten Teil der 10-teiligen Artikelserie möchte ich noch etwas auf das Thema Sicherheit am Rootserver eingehen. Ein Server der im öffentlichen Netz steht ist natürlich immer Angriffen ausgesetzt. Genau darum sollte man immer sehr auf die Sicherheit am Server achten, hierzu ist es sinnvoll, dass man bestimmte Konfigurationen vornimmt um es einem potentiellen Angreifer so schwer wie möglich zu machen. Eine wichtige Sicherheitsmaßnahme ist, dass man alles Hinweise auf verwendete Versionen entfernt.

PHP Version nicht anzeigen

Die Konfigurationsdatei für php ist die php.ini. Dort sollte man einstellen, das die verwendete Version nicht mitgesendet wird. Dazu editiert man die Zeile expose_php und stellt den Schalter dabei auf Off.

expose_php = Off

Apache Version nicht anzeigen

Selbes gilt natürlich auch für die verwendete Apache Version. Auch dort sollte man im jeweilen Virtual Host (vhosts) die Option ServerSignature auf off stellen.

ServerSignature Off

phpmyadmin Namen ändern

Sofern man seine Datenbank mit dem grafischen Tool phpmyadmin bearbeitet, lautet der Zugriff auf das Webinterface: IP-Adresse\phpmyadmin. Der Name phpmyadmin ist allerdings öffentlich bekannt, so das es ein leichtes ist den Zugriff darauf zu versuchen. Besser ist es, wenn man anstatt phpmyadmin einen anderen Alias verwendet. Die nötige Änderung hierfür nimmt man im Verzeichnis: /etc/phpmyadmin/apache.conf vor. Um phpmyadmin noch besser zu schützen, könnte man auch ein selbst-signiertes Zertifikat verwenden.

SSH Port ändern und Zertifikat verwenden

Der SSH Dienst ist wohl der, der am meisten verwendeter wird, wenn es um den Zugriff auf den Server geht und natürlich dessen Konfiguration. Umso wichtiger ist es, dass man diesen sehr gut absichert. Neben dem Programm Fail2ban, was weiter unter erläutert wird, sollte man auch noch weitere Sicherheitsmaßnahmen in Betracht ziehen. Dazu gehört u.a. dass man dem Root keinen Zugriff gestattet, den Standardport ändern und ein Zertifikat verwendet. Die Einstellungen für das Root Login und dem Port werden in der Datei /etc/ssh/sshd_config vorgenommen.

Benachrichtigung für das SSH Login einrichten

Wer sich wann per SSH am Server eingeloggt hat, kann man sich auch per Email mitteilen lassen. Hierfür erstellt man das folgenden Bash Script (name:ssh-login.sh) und speichert es z.B. im Verzeichnis /opt ab.

#!/bin/bash
echo " SSH-Login auf $(hostname) am $(date +%Y-%m-%d) um $(date +%H:%M)"
echo "User: $USER"
echo
finger

Anschließend muss man in der /etc/profile die folgende Zeile eintragen, welche für den Versand der Email verantwortlich ist.

/opt/ssh-login.sh | mailx -s "SSH Login auf SERVER-HOSTNAME" meine-emailadresse@beispiel.de

Das Script muss natürlich auch die entsprechenden Rechte besitzen, damit es auch ausgeführt werden kann. Ich habe die Rechte dabei auf 755 gesetzt.

Apticron für regelmäßige Sicherheitsupdate aktivieren

Ein Rootserver sollte natürlich regelmäßig mit Sicherheitsupdates versorgt werden. Um sich nicht manuell ständig darum kümmern zu müssen, gibt es das Debian Security Team, die das Tool apticron zur Verfügung stellen. Sofern man das Paket installiert, wird man nun regelmäßig per Mail über neue zu Verfügung stehende Updates informiert. Hierzu muss man natürlich in der /etc/apticron/apticron.conf seine Email Adresse eintragen. Das Programm liefert auch Auskunft darüber wie wichtig diese Updates sind.

Fail2ban einrichten

Mit Fail2ban kann man seinen Server hinsichtlich Brute Force Attacken absichern. Fail2ban kann dabei für viele verschiedene Dienste verwendet werden. Zunächst installiert man das Tool über:

sudo apt-get install fail2ban

Nach der Installation findet man die folgende Datei: /etc/fail2ban/jail.conf. Als erstes kopiert man diese und ändert dabei den Namen auf jail.local. Jetzt kann man diese bearbeiten und z.B angeben wie lange eine  IP-Adresse nach einer bestimmten Anzahl an fehlgeschlagenen Anmeldeversuchen gesperrt werden soll. Sofern man Änderungen vornimmt, muss man natürlich den Dienst auch wieder neu starten.

/etc/init.d/fail2ban restart

Nicht benötigte Dienste abschalten

Alles was nicht unmittelbar für den Betrieb benötigt wird, sollte deaktiviert werden. Darunter fällt u.a. z.B. der vsftpd Dienst oder auch phpmyadmin. Man sollte den Grundsatz bedenken:

Je mehr läuft umso mehr Angriffsfläche bietet mein Server.

wp-login.php per Apache absicheren

Die Login Seite von WordPress ist natürlich die wichtigste Seite überhaupt. Aus diesem Grund sollte sir auch gut geschützt werden. Sinnvoll ist es auf jeden Fall, dass man den Zugriff darauf so sicher wie möglich gestaltet. Im Apache gibt es die Möglichkeit Verzeichnisse speziell zu schützen, so dass sie nur nach erfolgreicher Authentifizierung geöffnet werden können. Die Konfiguration erfolgt dabei in den einzelnen vhosts.

<Directory "var/www/webseite.de/wp-login.php"
AuthType Basic
AuthuserFile /var/www-zugang/passwords.pwd
AuthName webseite.de
Require user chef
AllowOverride Fileinfo
</Directory>

In dem obigen Beispiel wird also zum öffnen der Datei wp-login.php der Benutzer chef benötigt. Sein Passwort liegt dabei in der Datei passwords.pwd. Bevor jemand das Login File zu Gesicht bekommt, muss er sich erst am Apache Server Authentifizieren. Dies stellt auf jeden Fall einen weiteren Zugriffsschutz dar. Übrigens kann man so eine Absicherung auch über die httaccess Datei vornehmen.

Fazit

Wie ersichtlich gibt es doch einige Konfigurationen, auf welche man acht geben sollte um den Rootserver sicherer zu machen. Gerade die einfachen Dinge wie z.B. das Verbergen der Versionen wird doch immer leicht vergessen. Solltet ihr noch Ideen haben, welche hier eurer Meinung unbedingt dazu gehören, so gebt mir doch einfach bescheid und ich nehme diese in den Artikel mit auf.

562685b005074275ac39740f4349849a
Der Blogbetreiber und Autor: Markus Elsberger

Über den Autor

Mein Name ist Markus Elsberger und ich beschäftige mich mit der Administration von Windows und Linux Systemen sowie mit diversen Themen bzgl. Netzwerktechnik. In meiner Lehrtätigkeit erstelle ich verschiedene Szenarien und teste auch verschiedene Konfigurationen, welche ich in diesem Blog festhalten möchte.


Kostenlose Befehlsreferenzen und E-Books
(Netzwerkanalyse, Benutzerverwaltung, Festplattenkonfiguration, u. v. m.)


Nach oben scrollen
×