sshd auf Debian absichern

Um unter Debian den Secure-Shell-Daemon (sshd) etwas abzusichern verwende ich folgende Einstellungen in der Konfigurationsdatei /etc/ssh/sshd_config:

Protocol 2

Nur die aktuelle Protokollversion von ssh verwenden.

AllowUsers julian

Nur die aufgelisteten Benutzer dürfen sich via ssh am System anmelden.

LoginGraceTime 60

Die Zeit, welche zur Verfügung steht, um sich via ssh mit Benutzername und Passwort am System anzumelden. Nach Ablauf wird die Verbindung vom Server getrennt und der Sub-Prozess beendet. Dieser Benötigt ja schließlich auch Ressourcen. Zu klein sollte er aber dennoch nicht sein, da es ja eine schlechte Verbindung geben kann, beziehungsweise der Server unter Last stehen könnte und deshalb etwas träge reagiert.

MaxAuthTries 3

Nach 3 fehlerhaften Login versuchen wird die Verbindung von der Serverseite getrennt.

StrictModes yes

Es ist für die Gesamtsicherheit rund um sshd wichtig, dass einige bestimmte Dateien die benötigten bzw. nur die notwendigsten Rechte besitzen. Beispielsweise könnten lasche Dateirechte bei essenziellen Dateien wie der authorized_keys die Sicherheitsmechanismen aushebeln.

MaxStartups 2:30:8

Limitiert die Anzahl der Verbindungen auf den sshd. Diese Option ist sehr nützlich, aber etwas schwer zu verstehen. Ab der 2. Verbindung (= 1. Wert) wird mit einer Wahrscheinlichkeit von 30% (2. Wert) die Verbindung abgelehnt. Die Wahrscheinlichkeit, dass eine Verbindung beendet wird, steigt linear an, bis bei 8 offenen Verbindungen (3. Wert) jeder weitere Verbindungsversuch zu 100% abgelehnt wird.
Diese Werte gelten nur für nicht angemeldete User. Sobald jemand angemeldet ist wird er nicht mehr in dieser Rechnung berücksichtigt. Ich habe diesen Wert sehr restriktiv eingestellt, da ich der Einzige bin der sich mit meinem (privaten) Server via ssh verbindet. Auf Servern wo sich mehrer Leute anmelden, müsste man den Wert entsprechen erhöhen. Beispielsweise 10:30:50

PermitRootLogin no

Darf sich der root Benutzer via ssh anmelden? Nein! Man sollte immer einen normalen Benutzer zum anmelden und arbeiten auf einem System verwenden.

Port 22

Von dem Ändern des ssh-Ports halte ich nicht viel. Für die Anfänger-Generation von Script-Kiddies mag dies vielleicht ausreichen. Richtige Angreifer werden aber sowieso mit einem Portscan beginnen und finden dadurch auch den veränderten ssh Port sofort raus. Da bei der Menge an Servern, welche ich beruflichen und privaten betreuen muss, dies doch recht kompliziert wäre bleibe ich bei dem Standart Port 22. Ein richtig konfiguriertes System ist deutlich besser, als mit Tricks zu arbeiten!

Dies sind nicht die einzigen Möglichkeiten um einen (ssh-)Server abzusichern. Weitere werden bestimmt noch in anderen Artikeln von mir behandelt/vorgestellt.