GNU/Linux >> Belajar Linux >  >> Linux

Menyiapkan otentikasi multi-faktor pada sistem Linux

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. ]


Linux
  1. Keamanan sysadmin:8 kontrol penguncian Linux

  2. 13 tutorial keamanan Linux

  3. Menginstal dan mengatur Grafana di linux

  1. Linux Massal/Administrasi Jarak Jauh?

  2. Aktifkan layanan di Linux

  3. Mengatur variabel lingkungan Linux

  1. Pengantar ruang swap pada sistem Linux

  2. 10 momen yang membentuk sejarah Linux

  3. 4 alat untuk membangun sistem Linux tertanam