Debian Server absichern

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Debian Server absichern

      In diesem Beitrag möchte ich einige Möglichkeiten zeigen um den eigenen Debian Server abzusichern.
      Dabei ist es gleich, ob es sich um einen vServer oder einen dedizierter Rootserver handelt.

      SSH Login absichern
      Es empfiehlt sich bei Servern den Root-Login zu verbieten. Dies hat den einfach Hintergrund, dass die meisten potenziellen Eindringlinge zuerst den Root Benutzer für einen Login versuchen werden.
      Außerdem hat der Root Benutzer alle Berechtigungen auf dem Server. D.h. sobald ein Eindringling Zugang zum Root Account hat, hat er die volle Kontrolle über den Server.

      Um das zu ändern empfiehlt es sich den Root-Login zu verbieten und sich mit einem anderen Benutzer per SSH einzuloggen.

      Dies tut man in folgenden Schritten:
      1. Einen neuen Benutzer anlegen, der sich nachher per SSH einloggen soll:
        adduser SSHBenutzer
        Anstelle von "SSHBenutzer" kann ein beliebiger Name verwendet werden. Als zusätzliche Sicherheit empfiehlt es sich aber einen Namen zu nutzen, der nicht zu leicht zu erraten ist.
        Namen wie "Benutzer", "User" oder der eigene Vorname sind dabei sicherheitstechnische No-Go's
      2. In der Datei /etc/ssh/sshd_config die Zeile
        PermitRootLogin yes
        auf
        PermitRootLogin no
        abändern.
      3. Den SSH Dienst neustarten:
        service ssh restart
      4. Nun ist der SSH Login über den Root Benutzer deaktiviert. Du kannst dich aber nun mit dem in Schritt 1 erstellten Benutzer einloggen und anschließend mit dem Befehlt
        su root
        unter Eingabe des Root-Passworts zum Root Benutzer wechseln.
      SSH Port ändern

      Um den SSH Port zu ändern muss ebenfalls eine Einstellung in der Datei /etc/ssh/sshd_config verändert werden.
      Die dafür verantwortliche Zeile lautet:
      Port 22

      Dort kann der Port von 22 auf einen beliebigen anderen Port geändert werden. Allerdings sollte darauf geachtet werden, dass der Port nicht von einem anderen Dienst belegt wird.
      Um zu prüfen, ob ein Port derzeit benutzt wird kann der folgende Befehl verwendet werden:
      netstat -an | grep ":<Port> .* LISTEN"

      Nun wird je nach Angabe von <Port> entweder eine Ausgabe erscheinen, oder es kommt keine Ausgabe.
      Wenn keine Ausgabe zurückkommt wird der Port momentan von keinem Prozess genutzt.

      Nach dem ändern des Ports in der Datei muss der SSH Dienst natürlich noch neugestartet werden. Dies geht mit
      service ssh restart

      Nun ist der Port geändert.

      SSH Bruteforce verhindern (Fail2Ban)

      Fail2Ban ist ein Dienst der nach einer definierten Anzahl von fehlgeschlagenen Login Versuchen die IP Adresse des Einloggers für eine bestimmte Zahl blockiert.
      Damit können recht einfach sogenannte Bruteforce Attacken verhindert werden.

      Was ist eine Bruteforce Attacke?
      Spoiler anzeigen
      Eine Bruteforce Attack probiert in einem Schema verschiedenste Passwort Kombinationen aus. Bei einem Angriff wird dies mit Hilfe von Skripts und mehreren Servern/Computern probiert. Dabei können mehrere Kombinationen pro Sekunde ausprobiert werden.


      Der Dienst Fail2Ban lässt sich mit folgendem Befehl installieren:
      apt-get install fail2ban

      Nun kann man noch einige Einstellungen tätigen.
      Die Konfigurationsdateien von Fail2Ban liegen in dem Verzeichnis /etc/fail2ban/
      Dort befindet sich eine jail.conf und eine jail.local Datei. Die jail.conf sollte aber nicht bearbeitet werden, da diese bei einem Update überschrieben wird.
      Zur Konfigurierung nutzt man die jail.local Datei.

      Wenn man mit der Konfiguration fertig ist, lässt sich der Dienst einfach mit
      service fail2ban restart
      neustarten.

      Ein etwas ausführlichere Anleitung dazu kann hier gefunden werden: forum.necror.de/index.php?thre…egen-bruteforce-schützen/

      E-Mail bei SSH Login senden

      Um immer Bescheid zu wissen, wenn sich ein Benutzer per SSH einloggt, kann recht simpel eine E-Mail Benachrichtigung eingerichtet werden.

      Man erstellt dazu ein Skript. Beispielsweise die Datei /opt/ssh-mail-notification.sh

      In diese Datei fügt man folgenden Inhalt ein:

      Shell-Script: /opt/ssh-mail-notification.sh

      1. #!/bin/bash
      2. echo "SSH-Login auf $(hostname) am $(date +%Y-%m-%d) um $(date +%H:%M)"
      3. echo "SSH-Benutzer: $USER"
      4. echo
      5. finger
      Man kann die Nachricht natürlich nach Belieben anpassen.

      Nun muss man noch einstellen, dass die Mails auch beim Login automatisch versendet werden.
      Dazu trägt man in der Datei /etc/profile folgende Zeile ein:
      /opt/ssh-mail-notification.sh | mailx -s "SS- Login auf HOSTNAME" deineEmail@Adresse.de

      Abschließend müssen noch die Dateiberechtigungen gesetzt werden:
      chmod 755 /opt/ssh-mail-notification.sh



      System auf Rootkits prüfen (rkhunter)

      Das Tool rkhunter prüft ein System auf die bekanntesten Rootkits und verdächtige Dateien.

      Installieren kann man rkhunter mit:
      apt-get install rkhunter

      Nachfolgend kann eine Überprüfung mit folgendem Befehl ausgeführt werden:
      rkhunter -c

      In der Konfigurationsdatei /etc/rkhunter.conf kann zudem noch eine E-Mail Adresse angegeben werden, die bei Warnungen benachrichtigt wird.
      MAIL-ON-WARNING="deineEmail@Adresse.de"

      Nun kann man das Prüfen durch rkhunter auch in einen Cronjob implementieren - bei Warnungen wird die E-Mail automatisch gesendet.
      Auf den Cronjob möchte ich an dieser Stelle nicht weiter eingehen, allerdings hier der Befehl um einen Crontab zu öffnen:
      crontab -e

      Ich hoffe ich konnte mit dieser Anleitung dem Ein oder Anderen weiterhelfen und für ein klein wenig mehr Sicherheit im Netz sorgen. ;)
    • Niklas schrieb:

      E-Mail bei SSH Login senden

      Um immer Bescheid zu wissen, wenn sich ein Benutzer per SSH einloggt, kann recht simpel eine E-Mail Benachrichtigung eingerichtet werden.

      Man erstellt dazu ein Skript. Beispielsweise die Datei /opt/ssh-mail-notification.sh

      In diese Datei fügt man folgenden Inhalt ein:


      Shell-Script

      1. #!/bin/bash
      2. echo "SSH-Login auf $(hostname) am $(date +%Y-%m-%d) um $(date +%H:%M)"
      3. echo "SSH-Benutzer: $USER"
      4. echo
      5. finger
      Man kann die Nachricht natürlich nach Belieben anpassen.


      Nun muss man noch einstellen, dass die Mails auch beim Login automatisch versendet werden.
      Dazu trägt man in der Datei /etc/profile folgende Zeile ein:
      /opt/ssh-mail-notification.sh | mailx -s "SS- Login auf HOSTNAME" deineEmail@Adresse.de


      Abschließend müssen noch die Dateiberechtigungen gesetzt werden:
      chmod 755 /opt/ssh-mail-notification.sh
      Das ganze funktioniert bei mir leider nicht ganz. Ich habe meines Wissens alles richtig gemacht. Woran könnte es liegen?





      Niklas schrieb:

      System auf Rootkits prüfen (rkhunter)

      Das Tool rkhunter prüft ein System auf die bekanntesten Rootkits und verdächtige Dateien.

      Installieren kann man rkhunter mit:
      apt-get install rkhunter

      Nachfolgend kann eine Überprüfung mit folgendem Befehl ausgeführt werden:
      rkhunter -c

      In der Konfigurationsdatei /etc/rkhunter.conf kann zudem noch eine E-Mail Adresse angegeben werden, die bei Warnungen benachrichtigt wird.
      MAIL-ON-WARNING="deineEmail@Adresse.de"

      Nun kann man das Prüfen durch rkhunter auch in einen Cronjob implementieren - bei Warnungen wird die E-Mail automatisch gesendet.
      Auf den Cronjob möchte ich an dieser Stelle nicht weiter eingehen, allerdings hier der Befehl um einen Crontab zu öffnen:
      crontab -e
      Dort kommt bei mir immer folgender Fehler: Invalid SCRIPTWHITELIST configuration option: Non-existent pathname: /usr/bin/lwp-request
      Copyright © 2017 - 2020 Musiker15
      Dieser Inhalt darf nicht genutzt oder ohne meine Zustimmung abgeändert werden!

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Musiker15 ()

    • Hey Musiker15,

      Musiker15 schrieb:

      Das ganze funktioniert bei mir leider nicht ganz. Ich habe meines Wissens alles richtig gemacht. Woran könnte es liegen?
      Das kann ich ohne genauere Informationen leider nicht beantworten.

      Bekommst du eine E-Mail, wenn du folgenden Befehl ausführst:

      Shell-Script

      1. root@CT1:/root# mail -s Betreff <E-Mail-Adresse>
      2. Nachricht
      3. .
      4. Cc:

      Vielleicht wird die eingehende E-Mail auch von deinem E-Mail Provider geblockt, da die Mails von Shell direkt gesendet werden.


      Musiker15 schrieb:

      Dort kommt bei mir immer folgender Fehler: Invalid SCRIPTWHITELIST configuration option: Non-existent pathname: /usr/bin/lwp-request
      Du kannst dann einfach in der rkhunter Config die folgende Zeile auskommentieren:
      SCRIPTWHITELIST=/usr/bin/lwp-request

      Mit besten Grüßen
      Niklas