Berikut ini akan membuat Google 2FA wajib untuk semua pengguna
kecuali pengguna yang termasuk dalam grup sudo dan admin
(artinya jika pengguna dari grup sudo atau admin tidak memiliki 2FA yang dikonfigurasikan, itu akan mengautentikasi dirinya berdasarkan kunci publik mereka):
Mengajukan: /etc/pam.d/sshd
auth required pam_google_authenticator.so nullok
auth optional pam_succeed_if.so user ingroup sudo
auth optional pam_succeed_if.so user ingroup admin
Mengajukan: /etc/ssh/sshd_config
AuthenticationMethods publickey,keyboard-interactive
UsePAM yes
ChallengeResponseAuthentication yes
Hasil:
| Belongs to sudo or | Has 2FA Already Setup | Authentication Result
| admin group | in ~/.google_authenticator |
----------+----------------------+-----------------------------+------------------------
User A | NO | NO | DENIED LOGIN UNTIL 2FA IS SETUP
User B | YES | NO | CAN LOGIN (PRIVATE/PUBLIC KEY USED)
User C | NO | YES | CAN LOGIN (PRIVATE/PUBLIC KEY AND 2FA USED)
User D | YES | YES | CAN LOGIN (PRIVATE/PUBLIC KEY AND 2FA USED)
Menurut Dokumentasi README.md Google Authenticator :
nullok
PAM membutuhkan setidaknya satu jawaban SUKSES dari sebuah modul, dan nullok menyebabkan modul ini mengatakan IGNORE. Ini berarti bahwa jika opsi ini digunakan setidaknya satu modul lain harus mengatakan SUKSES. Salah satu cara untuk melakukan ini adalah menambahkan auth diperlukan pam_permit.so ke akhir konfigurasi PAM.
Ini membuat penggunaan di nullok
sini aman.