Wichtige Info

Die Inhalte, die du hier siehst stelle ich dir ohne Werbeanzeigen und ohne Tracking deiner Daten zur Verfügung. Trotzdem muss ich die Server bezahlen sowie Zeit in Recherche, Umsetzung sowie Mail Support stecken.
Um dies leisten zu können, verlinke ich in einigen Artikeln auf die Plattform Amazon. Alle diese Links nennen sich Afiliate Links. Wenn du dir mit diesem Link etwas kaufst, dann erhalte ich eine kleine Provision. Dies ändert jedoch NICHT den Preis, den du bezahlst!
Falls du mich also unterstützen möchtest, kannst du auf den Link zum Produkt klicken und hilfst mir dabei, dieses Hobby weiter zu betreiben.
Da ich Keine Werbung schalte und keine Spenden sammle, ist dies die einzige Möglichkeit, meine Systeme und mich zu finanzieren. Ich hoffe du kannst das verstehen :)



Debian MFA für Benutzer


Einleitung

Dieser Beitrag soll kurz und bündig beschreiben, wie man sowohl für SSH, als auch für alle anderen priviligierenden Authentifizierungsprozesse MFA auf Debian Systemen aktiviert.

Dies hilft zum einen den Server vor externen Angriffen zu schützen, aber gleichzeitig auch bei Multi-User Systemen intern die Übernahme von Accounts zu erschweren.

Hauptteil

User vorbereiten

In diesem Beispiel, wird ein Tokenbasierter zweiter Faktor verwendet, dafür wird die Google Libary für TOTP verwendet.
Dazu installieren wir:

sudo apt install -y libpam-google-authenticator

Sobald installiert, wiederholen wir den folgenden Schritt für ALLE User, die MFA verwenden sollen, sodass später weiterhin die Anmeldung möglich ist.

google-authenticator

oder für andere User:

sudo -u <<user>> google-authenticator

Jetzt wird ein QR Code gezeigt, der mit einer entsprechenden App gescannt werden muss.
Der angezeigte Code wird dann eingegeben, die Recovery Codes gesichert und alle Fragen werden dann mit einem "y" bestätigt.

System konfigurieren

Als nächstes muss jetzt dafür gesorgt werden, dass das System den entsprechenden Token auch abfragt. Das machen wir für SSH wie folgt:

SSH konfigurieren

In der Datei /etc/ssh/sshd_config folgendes eingetragen:

KbdInteractiveAuthentication yes
UsePAM yes
ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactive

Common Auth für alles andere...

In der Datei /etc/pam.d/common-auth wird die Authentifizierungslogik für alle Dienste definiert (an sich auch SSH...) - hier wird unter dem Eintrag

auth requisite pam_deny.so

folgendes eingetragen:

# google mfa
auth required pam_google_authenticator.so

Zuletzt wird jetzt der SSH Service neugestartet

sudo service ssh restart

und der Zugang wird in einem parallel geöffneten Terminal gestestet.


Back…