Cara Setup SSH + 2FA (Google Authenticator) di Linux Server

Untuk meningkatkan keamanan server, penggunaan password atau SSH key saja kadang masih belum cukup. Salah satu cara terbaik untuk menambah lapisan keamanan adalah dengan Two-Factor Authentication (2FA) menggunakan Google Authenticator.

Dengan 2FA, selain memasukkan password atau SSH key, user juga harus memasukkan kode OTP (One Time Password) dari aplikasi authenticator.

Kenapa Harus Pakai 2FA?

Keuntungan menggunakan 2FA:

  • Mencegah brute force attack
  • Melindungi meskipun password bocor
  • Menambah lapisan keamanan login SSH
  • Cocok untuk server production

1. Install Google Authenticator PAM Module

Di server Linux, kita akan menggunakan module PAM untuk 2FA.

Ubuntu / Debian:

sudo apt install libpam-google-authenticator -y

CentOS / AlmaLinux:

sudo dnf install google-authenticator -y

2. Setup Google Authenticator untuk User

Jalankan perintah berikut di server:

google-authenticator

Nanti akan muncul beberapa pertanyaan:

Jawaban yang direkomendasikan:

  • Make tokens time-based? → yes
  • Update .google_authenticator file? → yes
  • Disallow multiple uses? → yes
  • Increase security? → yes
  • Enable rate-limiting? → yes

Setelah itu akan muncul:

  • QR Code
  • Secret key

Scan QR Code menggunakan aplikasi seperti Google Authenticator atau Microsoft Authenticator.

3. Konfigurasi PAM SSH

Edit file berikut:

sudo nano /etc/pam.d/sshd

Tambahkan baris ini:

auth required pam_google_authenticator.so

4. Konfigurasi SSH

Edit file SSH:

sudo nano /etc/ssh/sshd_config

Tambahkan atau ubah konfigurasi berikut:

ChallengeResponseAuthentication yes
UsePAM yes

Untuk keamanan maksimal (SSH key + OTP):

AuthenticationMethods publickey,keyboard-interactive

Artinya:

  • Login harus menggunakan SSH key
  • Ditambah kode OTP dari authenticator

5. Restart SSH Service

sudo systemctl restart ssh

6. Test Login SSH

Coba login ke server:

ssh user@server-ip

Alur login:

  1. Login menggunakan SSH key atau password
  2. Diminta kode OTP
  3. Masukkan kode dari aplikasi authenticator

Jika berhasil login, berarti konfigurasi sudah sukses.

7. Backup Secret Key (PENTING ⚠️)

Simpan secret key atau QR code di tempat yang aman.

Jika perangkat authenticator hilang dan tidak ada backup, maka akses ke server bisa terkunci.

8. Tips Keamanan Tambahan

  • Gunakan bersama Fail2Ban
  • Disable password login
  • Batasi akses SSH menggunakan firewall
  • Gunakan bastion host

Kesimpulan

Dengan menambahkan 2FA pada SSH, keamanan server meningkat secara signifikan.

Layer keamanan menjadi:

SSH Key / Password + OTP (2FA)

Sehingga walaupun attacker mengetahui credential, akses tetap tidak bisa dilakukan tanpa OTP.

Leave a Reply

Your email address will not be published. Required fields are marked *