Absichern eines Linux Servers

Aus Qloc Wiki
Wechseln zu: Navigation, Suche

Hier finden Sie wichtige Grundlagen zur Absicherung eines Debian/Ubuntu Systems. Außer den hier aufgelisteten Tipps gibt es eine Reihe von weiteren Sicherheitsmaßnahmen, die Angriffe erschweren.
Generell gilt für alle öffentlich erreichbare Systeme, dass nur notwendige Dienste von außen erreichbar sein sollten. Dienste wie z.B. Webserver oder MySQL Server sollten bei Nichtverwendung entweder mit Hilfe von IPTables Regeln nicht erreichbar oder ganz deaktiviert werden.

Sichere Kennwörter verwenden

Ändern Sie regelmäßig Ihre Kennwörter und beachten Sie folgende Punkte:

  • Kleinbuchstaben (a-z)
  • Großbuchstaben (A-Z)
  • Ziffern (0-9)
  • mindestens 12 Zeichen lang
  • keine Wörter enthalten
  • das selbe Passwort nicht für mehrere Dienste nutzen
  • Passwörter nicht an Dritte weitergeben

SSH Port ändern

Eine Großzahl an Loginattacken auf SSH erfolgt auf den Standardport 22. Eine einfache und effektive Methode ist es, den SSH Port zu ändern.

  • Öffnen Sie dazu die SSH Konfiguration mit einem beliebigen Editor:
nano /etc/ssh/sshd_config
  • Ändern Sie den SSH Port von Port 22 auf einen Port, der nicht nicht durch einen anderen Dienst belegt wird.
Port 22        #z.B. Port 8335

Mit dem folgenden Befehl erhalten Sie eine Liste mit allen momentan verwendeten Ports und ausgeführten Diensten:

more /etc/services
  • Starten Sie den SSH Dienst nach dem Ändern des Ports mit dem folgenden Befehl neu:
/etc/init.d/ssh restart

oder

service ssh restart

Einrichten von SSH-Schlüsseln

Um die Verbindung via SSH noch sicherer zu gestalten, kann man die sogenannten SSH-Schlüssel verwenden. Damit eine Verbindung aufgebaut werden kann müssen der vom Benutzer bereitgestellte Schlüssel bei der Verbindung und der auf dem Server liegende Schlüssel als Schlüsselpaar zusammengehören.

  • Melden Sie sich zunächst mit dem zu sichernden Benutzer auf Ihrem Linux Server an.
  • Laden Sie sich das Programm PuTTYgen herunter.
  • Klicken Sie auf Generate um ein SSH-Schlüsselpaar zu erstellen, hierfür sind die Standardeinstellungen genügend. Zum Generieren bewegen Sie Ihre Maus über das freie Feld.


Pic01.png


  • Nach erfolgreichem Generieren des SSH-Schlüsselpaares speichern Sie den Privatekey auf Ihrem Rechner ab und verwahren Sie diesen sicher, da Sie sich nur mit diesem auf Ihren Server aufschalten können.
  • Optional
    • ... können Sie einen Kommentar hinzufügen
    • ... können Sie ein Passwort hinzufügen (empfohlen)


Pic02.png


  • Anschließend verbinden Sie sich mit Ihrem Linux Server und betreten das Home-Verzeichnis des jeweiligen Benutzers
cd /home/<user>

oder

cd /root (nur root-Benutzer)
  • Legen Sie nun das Verzeichnis .ssh an und erstellen in diesem eine Datei mit dem Namen authorized_keys
mkdir .ssh && nano .ssh/authorized_keys
  • Kopieren Sie nun den Publickey aus PuTTYgen in Ihre Zwischenablage und fügen diesen in die Datei ein.
  • Mit STRG + O und STRG + X können Sie die Datei speichern und schließen.
  • Nun müssen noch die Dateiberechtigungen angepasst werden.
chown -R <user>:<gruppe> .ssh
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
  • In der Datei /etc/ssh/sshd_config sollten wichtige Einstellungen vorgenommen werden.
....
PasswordAuthentication [no/yes]            # Authentifizierung mit einem Passwort
PermitRootLogin [no/yes/without-password]    # Authentifizierung mit dem root-Benutzer
...
  • PasswordAuthentication:
    • no: Die Authentifizierung mit einem Passwort ist für alle Benutzer untersagt
    • yes: Die Authentifizierung mit einem Passwort ist für alle Benutzer erlaubt
  • PermitRootLogin :
    • no: Die Authentifizierung mit dem root-Benutzer nicht erlaubt
    • yes: Die Authentifizierung mit dem root-Benutzer ist mit einem Passwort und einem Key erlaubt
    • without-password: Die Authentifizierung mit dem root-Benutzer ist nur mit einem SSH-Key erlaubt (empfohlen)
  • Abschließend starten Sie den ssh-Dienst neu
service ssh restart


  • Sie haben nun erfolgreich SSH-Keys auf Ihrem Server eingerichtet. Damit Sie sich nun mit Ihrem Server verbinden können, müssen Sie den Privatekey in PuTTY einbinden.

Hierzu wählen Sie ihre Verbindung und klicken auf Connection > SSH > Auth. Unter Private key file for authentification geben Sie den Dateipfad an. Wechseln Sie zurück auf den Menüpunkt Session und speichern Sie Ihre Verbindung.

Nur die benötigten Ports offen lassen

Es sollten nur die Ports von außen erreichbar sein, die benötigt werden. Andernfalls bieten diese offene Tore für Angreifer. Auf den folgenden Webseiten finden Sie weitere Informationen:

Seien Sie bei der Konfiguration vorsichtig, damit Sie sich nicht aussperren!

Brute Force Attacken verhindern

Mit dem Paket fail2ban können Sie Ihren Server vor sogenannten Bruteforce Attacken schützen. Dabei wird die IP Adresse des Angreifers für eine festgelegte Zeit gesperrt. Mit den folgenden Befehlen installieren und konfigurieren Sie fail2ban:

  • Installieren Sie das Paket
apt-get install fail2ban
  • Öffnen Sie die Konfiguration von fail2ban mit einem beliebigen Editor
nano /etc/fail2ban/jail.conf
  • Setzen Sie lokale IP Adresse Ihres Servers, die Zeit wie lange eine IP geblockt werden soll und die Anzahl der Versuche, nach denen geblockt werden soll:
ignoreip = 127.0.0.1
bantime  = 3600
maxretry = 3
  • Definieren Sie nun die erforderlichen Parameter um den SSH Dienst zu überwachen:
enabled = true
port    = ssh
filter  = sshd
logpath  = /var/log/auth.log
maxretry = 4

Hinweis: Sollten Sie den SSH Port geändert haben, ändern Sie bitte die folgende Zeile:

port    = <SSH Port> (z.B. 8335)


  • Starten Sie zum Abschluss den Dienst fail2ban neu:
/etc/init.d/fail2ban restart

oder

service fail2ban restart

Sicherheitsupdates installieren

Es werden für die Distributionen regelmäßig neue Sicherheits- und Kernelupdates veröffentlicht. Sie sollten regelmäßig auf neue Updates prüfen. Dies können Sie mit dem folgenden Befehl durchführen:

apt-get update           # Paketquellen aktualisieren
apt-get upgrade -y       # Paketupdates herunterladen und installieren
apt-get dist-upgrade -y  # Distributions-Aktualisierungen herunterladen und installieren

Damit die aktuellen Sicherheitsupdates automatisch installiert werden empfiehlt es sich, das Paket "cron-apt" zu installieren.
Weitere Informationen dazu finden die unter diesem Link.