SSH-Shell mit 2FA absichern

  • Ich zeige euch wie man einen SSH-Zugang auf einem Server mit einer einfachen 2-Faktor-Authentifizierung (Im Text 2FA) noch verschärfen kann.


    Ich habe als Referenz mein Ubuntu 18.04 Server benutzt. Diese Anleitung sollte auch auf Debian funktionieren und abwärtskompatibel sein.



    1. Vorbereitungen
    2. Installation
    3. 2FA für Benutzer einrichten
    4. 2FA für login einschalten





    1. Vorbereitungen:


    - Wir benötigen einen SSH-Zugriff mit sudo Rechten auf den zu sichernden Server
    - Wir benötigen eine Authentification App auf unserem Smartphone für QR Code wie Google Authentificator oder Authy (Ich empfehle Authy)



    2. Installation:


    Die Installation ist einfach. Wir benötigen das Google PAM Modul. Dieses kann für Authy und Google-Authentificator benutzt werden.


    Das Modul installieren wir mit folgendem Befehl:


    Code
    sudo apt-get install libpam-google-authenticator


    Wenn die Installation erfolgreich abgeschlossen ist, können wir die 2FA für die Benutzer aktivieren.



    3. 2FA für Benutzer einrichten:


    Dieser Schritt muss in der Bash vom Benutzer ausgeführt werden, damit die PAM-Authentification für diesen Benutzer aktiviert ist. Anschliessend führen wir folgenden Befehl aus:


    Code
    google-authenticator


    Wir werden nun gefragt, ob wir einen zeitbasierten Token oder einen statischen Token wollen. Wir benutzen den time-based, und bestätigen mit y:



    Code
    Do you want authentication tokens to be time-based (y/n) y


    Nun sehen wir folgende Informationen:


    QR-Code: Diesen QR-Code müssen wir mit unserer 2FA-App (Authy) abscannen, um die Synchronisation zu aktivieren.
    Secret Key: Diesen Key kann man alternativ in der Auth-App eintragen, wenn man keine QR-Codes benutzen will/kann.
    Verfication Code: der Erste sechsstellige Code der generiert wurde.
    Emergency-scratch-codes: auch bekannt als Back-up Codes. Sie werden benötigt um bei Verlust der App (defektes Smartphone usw) die 2FA wieder zu aktivieren. Sicher aufbewahren!



    Nachdem wir auf unserem Smartphone die PAM für den Benutzer eingerichtet haben, müssen wir noch weitere Fragen beantworten.


    Hier wird nachgefragt, ob wir unser .google_authentificator file ersetzen bzw. erstellen wollen. Wir bestätigen mit y.


    Code
    Do you want me to update your "~/.google_authenticator" file (y/n) y



    Die folgenden Fragen müssen nach eigenem Ermessen beantwortet werden. Ich habe mich für den Standard entschieden.


    Code
    Do you want to disallow multiple uses of the same authentication
    token? This restricts you to one login about every 30s, but it increases
    your chances to notice or even prevent man-in-the-middle attacks (y/n) y


    Code
    By default, tokens are good for 30 seconds and in order to compensate for
    possible time-skew between the client and the server, we allow an extra
    token before and after the current time. If you experience problems with poor
    time synchronization, you can increase the window from its default
    size of 1:30min to about 4min. Do you want to do so (y/n) n


    Code
    If the computer that you are logging into isn't hardened against brute-force
    login attempts, you can enable rate-limiting for the authentication module.
    By default, this limits attackers to no more than 3 login attempts every 30s.
    Do you want to enable rate-limiting (y/n) y




    4. 2FA für login einschalten:



    :!: Beim SSH-Deamon muss die PAM aktiviert werden, sonst kann man sich nicht mehr in der Shell einlogen :!:



    Um die PAM-Abfrage zu aktiviern öffnen wir das File

    Code
    /etc/pam.d/common-auth

    und fügen am Ende folgende Zeile hinzu:


    Code
    auth required pam_google_authenticator.so nullok


    Zum Beispiel:




    Anschliessend aktiviern wir bei dem ssh-deamon noch die PAM-Authentifikation. Dazu öffnen wir die

    Code
    /etc/ssh/sshd_config

    und ändern folgende Zeile von No zu Yes:


    Code
    ChallengeResponseAuthentication yes


    Jetzt den ssh deamon neu starten mit

    Code
    service sshd restart




    Beim nächsten Login sollte nach dem eingeben des Passworts die 2FA-Abfrage kommen.





    Visit original Website: https://www.digitalocean.com/c…ntication-on-ubuntu-18-04

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!