Dengan meningkatnya jumlah pelanggaran dan penyusupan kata sandi, kami membutuhkan lapisan keamanan sebanyak mungkin.
Salah satu cara untuk mencapai keamanan tambahan adalah dengan menambahkan lapisan otentikasi tambahan. Otentikasi multi-faktor (MFA) adalah metode yang memerlukan lebih dari satu kredensial untuk membuktikan identitas Anda.
Apa itu MFA?
Biasanya, saat Anda masuk ke akun atau perangkat, Anda akan dimintai nama pengguna dan kata sandi. Saat Anda memasukkan SSH ke mesin Linux, Anda mungkin akan dimintai pasangan kunci SSH. Otentikasi multi-faktor mengharuskan pengguna untuk memberikan lebih dari satu informasi untuk mengautentikasi dengan sukses ke akun atau host Linux. Informasi tambahan mungkin berupa sandi satu kali (OTP) yang dikirimkan ke ponsel Anda melalui SMS atau kredensial dari aplikasi seperti Google Authenticator, Twilio Authy, atau FreeOTP.
Pluggable Authentication Modules (PAM) adalah mekanisme otentikasi yang digunakan di Linux. Dalam artikel ini, kami menggunakan modul Google PAM untuk mengaktifkan MFA sehingga pengguna dapat masuk menggunakan kode sandi satu kali (TOTP) berbasis waktu.
Menerapkan modul Google Authentication
Pertama, instal modul Google Authentication di mesin Linux. Untuk melakukannya, buka jendela Terminal dan jalankan perintah berikut:
# sudo dnf install google-authenticator -y
Selanjutnya, konfigurasikan google-authenticator
untuk menghasilkan kode OTP. Jalankan perintah berikut untuk memulai proses konfigurasi:
# google-authenticator
Alat ini menanyakan serangkaian pertanyaan. Untuk sebagian besar pertanyaan ini, jawab ya (y ), kecuali jika Anda membutuhkan sesuatu selain default.
Do you want authentication tokens to be time-based (y/n) y

Ini menghasilkan kode QR di layar, kunci rahasia, dan kode pemulihan. Menggunakan aplikasi authenticator seperti Google Authenticator di smartphone, pindai kode QR yang dihasilkan dari perintah di atas. Jawab sisa pertanyaan untuk menyelesaikan proses.
Do you want me to update your "/home/user/.google_authenticator" file? (y/n) y
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
By default, a new token is generated every 30 seconds by the mobile app. 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. This allows for a time skew of up to 30 seconds between authentication server and client. If you experience problems with poor time synchronization, you can increase the window from its default size of 3 permitted codes (one previous code, the current code, the next code) to 17 permitted codes (the 8 previous codes, the current code, and the 8 next codes). This will permit for a time skew of up to 4 minutes between client and server.
Do you want to do so? (y/n) y
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 three login attempts every 30s.
Do you want to enable rate-limiting? (y/n) y
Konfigurasikan SSH untuk meminta kode OTP
Edit beberapa file konfigurasi SSH untuk meminta kode OTP sebagai autentikasi faktor kedua.
Menggunakan editor teks favorit Anda, buka /etc/pam.d/sshd
untuk mengedit:
# sudo vi /etc/pam.d/sshd
Tambahkan baris konfigurasi berikut:
auth required pam_google_authenticator.so nullok
Baris konfigurasi ini memungkinkan PAM untuk menggunakan modul PAM Google Authenticator, yang kita instal di langkah sebelumnya.
Dengan nullok
entri di telepon, SSH tidak akan memerlukan kode OTP untuk pengguna di mesin yang tidak dikonfigurasi untuk MFA. Hapus sepenuhnya opsi ini untuk memaksa setiap pengguna menggunakan MFA di sistem ini.
Selanjutnya, beri komentar pada baris berikut untuk menonaktifkan otentikasi kata sandi untuk login:
#auth substack password-auth
Simpan dan tutup file.
Pada langkah berikutnya, ubah konfigurasi SSH untuk menampilkan perintah kode OTP setelah otentikasi pasangan kunci SSH berhasil.
Menggunakan editor teks favorit Anda, buka /etc/ssh/sshd_config
untuk mengedit:
# sudo vi /etc/ssh/sshd_config
Temukan dan beri komentar pada baris ChallengeResponseAuthentication no dan tambahkan baris konfigurasi baru ChallengeResponseAuthentication yes . Baris ini memungkinkan SSH meminta Respons Tantangan . Dalam kasus kami, responsnya adalah kode OTP setelah otentikasi berbasis kunci SSH berhasil. Ini dia barisnya:
#ChallengeResponseAuthentication no
ChallengeResponseAuthentication yes
Terakhir, beri tahu SSH untuk meminta keduanya kunci SSH dan kode verifikasi untuk mengautentikasi kami. SSH memeriksa pasangan kunci SSH (publickey ) lalu kode OTP (keyboard-interactive ). Di bagian bawah file, tambahkan:
AuthenticationMethods publickey,keyboard-interactive
Untuk mengaktifkan pasangan kunci SSH dan otentikasi OTP hanya untuk pengguna tertentu, tambahkan sesuatu seperti ini sebagai gantinya:
Match user <username>
AuthenticationMethods publickey,keyboard-interactive
Simpan file dan keluar. Mulai ulang layanan SSH agar perubahan diterapkan:
# sudo systemctl restart sshd
Uji konfigurasi
Mari kita uji pengaturan kita. Buka jendela Terminal, dan SSH ke host Linux. Anda akan dimintai kode OTP dari aplikasi authenticator.
Untuk dimintai sandi bersama pasangan kunci SSH dan kode OTP, lalu buka /etc/pam.d/ssd
file untuk diedit dan batalkan komentar pada baris ini:
auth substack password-auth
Selanjutnya, buka /etc/ssh/sshd_config
file untuk diedit dan tambahkan satu metode otentikasi lagi:
AuthenticationMethods publickey,password publickay,keyboard-interactive
Jangan lupa untuk memulai ulang SSH setelah melakukan perubahan ini.
Menutup
Dengan MFA, kami menambahkan lapisan otentikasi lain, membuat sistem kami lebih aman. Selain otentikasi berbasis nama pengguna dan sandi tradisional, kami menggunakan metode yang lebih aman seperti pasangan kunci SSH dan TOTP (Google Authenticator) untuk masuk ke sistem. Dengan menerapkan langkah-langkah ini, kami meningkatkan keamanan sistem dan membuat perangkat Linux lebih sulit untuk dibobol.
[ Ingin mempelajari lebih lanjut tentang keamanan? Lihat daftar periksa keamanan dan kepatuhan TI. ]