Otentikasi SSH Dua Faktor hanya pada alamat eksternal

11

Saya memiliki server Ubuntu dengan IP pribadi, internal, IP dan publik. Saya ingin mengatur otentikasi dua faktor untuk SSH hanya di sisi publik. Apakah ini mungkin? Saya berencana menggunakan Google Authenticator, tetapi saya juga terbuka untuk ide-ide alternatif.

Brett F.
sumber
Untuk informasi, lihat juga unix.stackexchange.com/questions/388384/…
FarO

Jawaban:

15

Ya, Anda bisa melakukan ini dengan pam_access.so. Resep ini diambil dari wiki untuk Google Authenticator :

Resep PAM yang berguna adalah memungkinkan melewatkan otentikasi dua faktor ketika koneksi berasal dari sumber tertentu. Ini sudah didukung oleh PAM. Sebagai contoh, modul pam_access dapat digunakan untuk memeriksa sumber terhadap subnet lokal:

# 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

Dalam hal ini, akses-local.conf terlihat seperti:

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

Dengan demikian upaya masuk dari 10.0.0.0/24 tidak akan memerlukan otentikasi dua faktor.

Michael Hampton
sumber
1
Itulah tepatnya yang saya cari. Tidak yakin mengapa saya tidak melihatnya sebelumnya. Terima kasih!
Brett F.
4
Michael Hampton Terima kasih untuk contohnya, tetapi itu tidak berhasil untuk saya karena saya terus mendapatkan izin Permission ditolak (keyboard-interaktif). Saya mengetahuinya karena saya menggunakan AuthenticationMethods publickey,keyboard-interactivedi saya /etc/ssh/sshd_config. Jadi saya mengubah yang berikut ini untuk memperbaikinya:auth [success=done default=ignore] pam_access.so accessfile=/etc/security/access-local.conf auth optional pam_google_authenticator.so nullok
Jeremy Laird
@JeremyLaird baris-baris itu berwarna hijau .. di mana baris baru?
shadowbq