SSH nur mit Zertifikate / Schlüssel

Eines der Kernprobleme im Internet sind Hackversuche mittels Skripte, die selbst von unerfahrenen Kiddis ausgeführt werden können.

Mit einem deratigen Skript ist es kein Problem eine Linux-Box aufzumachen und über SSH Zugriff auf einen Server zu bekommen. Oft reicht einfacher User-Zugriff aus um an Informationen zu kommen, der Datenverlust zur Folge haben kann. Hier sind beispielsweise Passwörter zu nennen, welche in die Config-Dateien von Webseiten gespeichert sind. Mit diesen Passwörter hat man i.d.R. Schreibzugriff auf die MySQL Datenbank und kann sich anschließend auch Rootzugriff beschaffen.

Um diese Problematik zu umgehen sollte man den normalen Loginzugang auf eine Linux-Box abschalten und durch Zertifikatsauthentifizierung ersetzen.

Zunächst erzeugen wir die Zertifikate:

Anmelden an die Linux – Box. Wenn Sie sich mit dem root – Account angemeldet haben und für einen anderen Benutzer die Zertifikate erzeugen möchten, welchen Sie den Benutzer mittels folgenden Befehls:

su Benutzername

Danach in den Home – Ordner des Benutzer wechseln.

cd ~

Jetzt musst zunächst der Ordner für die Zertifikate erzeugt werden.

mkdir .ssh
cd .ssh

Somit sollte folgender Ordner existieren /home/Benutzername/.ssh

Jetzt die Schlüssel erzeugen. Hierzu folgenden Befehl aufrufen:

ssh-keygen

Dieser Befehl erzeugt die Dateien id_rsa und id_rsa.pub. Sie müssen kein Kennwort für die Schlüssel eingeben.

Anschließend führen Sie folgenden Befehl aus

cat id_rsa.pub > authorized_keys

aus.

Die Datei authorized_keys wird beim Login ausgelesen. Stimmt der öffentliche Schlüssel mit dem beim Login „vorgezeigten“ privaten Schlüssel zusammen wird der Login akzeptiert.

Laden Sie sich die id_rsa vom Rechner herunter und öffnen diese mit puttygen.exe und speichern den private key als ppk-Datei ab.

Um jetzt ein Login zu testen, öffnen Sie sich Putty und verbinden sich als entsprechender Benutzer benutzer@linux-box und mit Hilfe des Schlüssels mit der Linux-Box. Im Allgemeinen sollte der Zugang sosofrt funktionieren. Wenn nicht, dann sind ggf. folgende Schritte noch auszuführen:

Öffnen Sie die Datei /etc/ssh/sshd_config mit Schreibzugriff.

Bitte kommentieren Sie folgende Zeilen aus, bzw. bearbeiten diese, dass sie wie folgt in der Datei erscheinen.

RSAAuthentication yes
PubkeyAuthentication yes

Anschließend den ssh-Daemon mittels neustarten.

/etc/init.d/sshd restart

Jetzt sollte ein Login möglich sein. Wenn dies funktioniert, dann muss die herkömmlich PAM-Login deaktiviert werden. Dies geschiet mit folgenen Einträgen in der /etc/ssh/sshd_config

PasswordAuthentication no
ChallengeResponseAuthentication no

Anschließend wieder den Daemon mit /etc/init.d/sshd restart neu starten und versuchen mit Putty ein Login mit Benutzernamen und Passwort durchzuführen. Alternativ sollte die Autentifizierung mittels den Schlüsseln natürlich funktionieren. Während der Tests rate ich immer einen Zugriff zur Linux-Box offen zu halten. Durch den Neustart des sshd wird diese Verbindung nicht getrennt und man kann rumexperimientieren, bis alles so läuft wie man es sich vorstellt.

 

admin has written 158 articles