Zwei-Faktor-SSH-Authentifizierung nur für externe Adresse

11

Ich habe einen Ubuntu-Server mit einer privaten, internen, IP- und einer öffentlich zugänglichen IP. Ich möchte die Zwei-Faktor-Authentifizierung für SSH nur auf der öffentlichen Seite einrichten. Ist das möglich? Ich hatte vor, Google Authenticator zu verwenden, bin aber auch offen für alternative Ideen.

Brett F.
quelle
Weitere Informationen finden Sie auch unter unix.stackexchange.com/questions/388384/…
FarO

Antworten:

15

Ja, das kannst du machen pam_access.so. Dieses Rezept wurde aus dem Wiki für den Google Authenticator übernommen :

Ein nützliches PAM-Rezept besteht darin, das Überspringen der Zwei-Faktor-Authentifizierung zu ermöglichen, wenn die Verbindung aus bestimmten Quellen stammt. Dies wird bereits von PAM unterstützt. Mit dem Modul pam_access kann beispielsweise die Quelle mit lokalen Subnetzen verglichen werden:

# skip one-time password if logging in from the local network
auth [success=1 default=ignore] pam_access.so accessfile=/etc/security/access-local.conf
auth       required     pam_google_authenticator.so

In diesem Fall sieht access-local.conf folgendermaßen aus:

# only allow from local IP range
+ : ALL : 10.0.0.0/24
+ : ALL : LOCAL
- : ALL : ALL

Anmeldeversuche ab 10.0.0.0/24 erfordern daher keine Zwei-Faktor-Authentifizierung.

Michael Hampton
quelle
1
Genau das habe ich gesucht. Ich bin mir nicht sicher, warum ich es nicht früher gesehen habe. Vielen Dank!
Brett F.
4
Michael Hampton Vielen Dank für das Beispiel, aber das hat bei mir nicht funktioniert, da mir immer wieder der Fehler Berechtigung verweigert wurde (tastaturinteraktiv). Ich habe es herausgefunden, weil ich es AuthenticationMethods publickey,keyboard-interactivein meinem verwendet habe /etc/ssh/sshd_config. Also habe ich Folgendes geändert, um das Problem zu beheben:auth [success=done default=ignore] pam_access.so accessfile=/etc/security/access-local.conf auth optional pam_google_authenticator.so nullok
Jeremy Laird
@JeremyLaird diese Zeilen sind munged .. wo sind die Zeilenumbrüche?
Shadowbq