Aktifkan Otentikasi 2-Faktor SSH di Ubuntu 18.04

Selamat datang di panduan kami tentang cara mengaktifkan otentikasi SSH 2-Factor pada sistem Ubuntu 18.04.

Dalam keadaan normal, kami biasanya masuk ke sistem jarak jauh dengan SSH menggunakan kombinasi nama user dan password normal atau kunci publik. Untuk menambahkan lapisan keamanan lain sehingga Anda perlu memverifikasi siapa yang Anda beri tahu sistem Anda, Anda perlu mengonfigurasi (2FA), subset otentikasi multi-faktor. Dalam panduan ini, kita akan menggunakan Google Authenticator di Ubuntu 18.04 untuk mengaktifkan 2FA. Tanpa banyak teori, mari kita mulai.two-factor authentication

Aktifkan Otentikasi 2-Faktor SSH di Ubuntu 18.04

Untuk mengaktifkan SSH 2FA pada sistem Ubuntu 18.04, lakukan sebagai berikut;

Instal PAM Google Authenticator

Google Authenticator adalah Modul Otentikasi Pluggable untuk sistem Linux yang menghasilkan One-Time Password (TOTP) berbasis waktu yang digunakan untuk otentikasi. Modul ini tersedia di repositori default Ubuntu dan dapat dengan mudah diinstal dengan menjalankan perintah di bawah ini;

apt install libpam-google-authenticator

Hasilkan TOTP untuk user

Untuk mengaktifkan 2FA untuk user, Anda perlu membuat TOTP untuk masing-masing user yang Anda perlukan untuk mengaktifkan 2FA dengan menjalankan perintah;

google-authenticator

google-authenticatorperintah akan meminta beberapa informasi yang diperlukan untuk memungkinkan 2FA untuk user.

Prompt pertama akan meminta Anda untuk memilih apakah akan menghasilkan token autentikasi berbasis waktu. Ada dua jenis token autentikasi untuk PAM autentikator Google; sequential-based tokensdan time-based tokens. Sementara token berbasis sekuensial memberikan kode yang meningkat dari yang spesifik setelah setiap useran, token berbasis waktu akan terus berubah secara acak setiap saat. Oleh karena itu, ketik y dan tekan Enter untuk menghasilkan token berbasis waktu.

Do you want authentication tokens to be time-based (y/n) y

Ini menghasilkan kode QR besar bersama dengan kunci rahasia, kode verifikasi, dan kode pemulihan darurat.

Lanjutkan untuk mengonfigurasi Google Authenticator dengan memperbarui file konfigurasi,.google_authenticator.

Do you want me to update your "/home/amos/.google_authenticator" file? (y/n) y

Nonaktifkan beberapa useran token otentikasi yang sama untuk mencegah MITMA

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

Atur token agar segera kedaluwarsa setelah digunakan untuk mencegah serangan replay.

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

Aktifkan pembatasan kecepatan untuk mencegah serangan brute force. Ini memungkinkan sejumlah upaya login setelah Anda diblokir.

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 3 login attempts every 30s. Do you want to enable rate-limiting? (y/n) y

Untuk membuat cadangan rahasia Anda, copy.google_authenticatoefile dan simpan di tempat yang aman.

Aktifkan SSH 2FA di Ubuntu 18.04

Untuk mengaktifkan SSH 2FA, Anda perlu mengkonfigurasi SSH sebagai berikut;

Edit /etc/pam.d/sshddan tambahkan baris,  auth required pam_google_authenticator.so, di akhir file.

vim /etc/pam.d/sshd
auth required pam_google_authenticator.so

Jika Anda perlu membuat 2FA opsional sehingga mereka yang tidak memiliki token TOTP dapat masuk dengan password atau kunci SSH mereka, Anda dapat menambahkan kata kunci nullokpada baris yang sama seperti di;

auth required pam_google_authenticator.so nullok

Aktifkan password tantangan-tanggapan di SSH dengan mengedit file konfigurasi SSH dan menyetel nilainya ChallengeResponseAuthentication noke yes.

vim /etc/ssh/sshd_config
ChallengeResponseAuthentication yes

Mulai ulang daemon SSH

systemctl restart sshd

Dengan asumsi Anda telah menginstal Aplikasi Google Authenticator di ponsel Anda, Anda perlu menambahkan kunci rahasia yang dibuat untuk membuatnya berfungsi. Untuk menyederhanakan ini, buka tautan kode QR yang dihasilkan di browser untuk mengakses kode QR yang cukup besar.

  • Buka APLIKASI Google-authenticator Anda dan klik BEGIN tombol.
  • Klik Scan a barcode untuk memindai kode batang di browser Anda.
  • Klik ADD ACCOUNT untuk menambahkan akun Anda.

Ini dia, buka sesi ssh baru dan login sebagai user yang 2FA-nya diaktifkan.

Selamat. Anda telah berhasil melalui semua langkah yang diperlukan untuk mengaktifkan SSH 2-Factor Authentication di Ubuntu 18.04. Menikmati.