Raspberry Pi absichern

image

SSH Server absichern

Viele haben ihren RaspberryPi oder Linux Server direkt am Netz hängen und haben einen Zugriff von außen zur Vernwartung via SSH aktiv.

Die Standard Konfiguration von SSH ist zwar bereits nicht schlecht, aber wenn man sicher gehen will, sollte man einige Einstellungen anpassen.

So sollte der SSH Server Port geändert, die Loginzeit verkürzt und der Root Login verboten werden. Desweiteren sollte man den Login ausschließlich via YubiKey authentifizierung aktivieren. Auf diese einstellungen werde ich nun nacheinander eingehen.

Der Server Port:

Den Server Port könnt ihr in der Konfigurationsdatei /etc/ssh/sshd_config ändern. Hier ein Auszug:

image

Root Login deaktivieren und Login Zeit verkürzen:

Der Root Login wird deaktiviert, damit man sich nicht mehr mit dem sehr privilegierten Nutzer anmelden kann.

Die Login Zeit wird verkürzt um BruteForce angriffen etwas herr zu werden. (Achtung, auch Ihr müsst euch nun schneller anmelden.)

image

Die Login zeit wird hierbei als LoginGraceTime und einen Wert angegeben. In meinem Beispiel sind das 15 Sekunden. Das heißt, ihr habt exakt 15 Sekunden zeit euch anzumelden, ehe der Server die Verbindung einfach trennt.

Anmeldung via YubiKey:

Am sichersten wird es jedoch, wenn zusätzlich der Login ausschließlich via YubiKey aktiviert wird. So kann sich nur einloggen, wer das Passwort weiß und den HardwareKey hat. Es handelt sich also um eine "Zwei-Faktor-Authentifizierung".

Dazu braucht ihr einen Yubikey. Den bekommt ihr hier: YubiKey 4

Dann müsst ihr euch bei Yubico einen API Key und eine ID erzeugen.

Nun kommen wir zur Konfiguration:

Das Yubikey Library instalieren:

apt-get update && apt-get install libpam-yubico

SSH Server einstellungen anpassen:

Die Datei mcedit /etc/ssh/sshd_config öffnen und folgende Einstellung prüfen oder entsprechend anpassen.

  • PasswordAuthentication muss aktiviert sein

PasswordAuthentication yes

  • Danach mit service ssh restart den SSH Server neustarten

PAM Einstellungen setzen:

  • Diese Datei mit einem editor öffnen

mcedit /etc/pam.d/sshd

  • Dann diese Zeile einfügen und speichern:

auth required pam_yubico.so mode=client id=XXXXX key=XXXXXXXXXXXXXXXXXXXXX

  • Auch diese Datei hier muss angepasst werden:

mcedit /etc/pam.d/common-auth

  • Die Zeile "auth [success=1 default=ignore] pam_unix.so nullok_secure" sollte danach so aussehen:

auth [success=1 default=ignore] pam_unix.so try_first_pass nullok_secure

Nutzer mit Yubikey verknüpfen:

  • Im Home Verzeichnis des Benutzers den Ordner ".yubico" und die Datei "authorized_yubikeys" erstellen.

mkdir ~/.yubico && mcedit ~/.yubico/authorized_yubikeys

  • In dieser Datei müsst ihr euren Benutzername und eure Yubico ID eintragen.

user:xxxxxxxxxxxx

Einrichtung abgeschlossen:

Die Anmeldung via YubiKey ist vollständig abgeschlossen. Nun könnt ihr euch damit einloggen.

Loggt euch ganz regulär mit ssh user@server -pXXXX ein.

Nun werdet ihr aufgefordert euer Passwort einzugeben und danach den Knopf auf eurem gesteckten YubiKey zu drücken. Danach seid ihr regulär eingeloggt.