Fauzi Syahrul R
Fauzi Syahrul R Seorang pembelajar yang menekuni bidang Elektronika dan Cloud Computing

Cara Mengamankan Server menggunakan SSH Two-Factor Authentication (2FA) pada CentOS


Cara Mengamankan Server menggunakan SSH Two-Factor Authentication (2FA) pada CentOS

Penggunaan SSH Two-Factor Authentication (2FA) dapat anda gunakan sebagai solusi meningkatan keamanan atas akses SSH anda. Hal tersebut dikarenakan dengan 2FA anda perlu melakukan verifikasi 2 langkah yakni menggunakan password/public key server dan juga memasukkan kode yang diinformasikan melalui authenticator. Kode yang dikirimkan bersifat time based one time password dengan algoritma TOTP berstandar IETF sehingga kode akan berbeda setiap waktunya.

Pada kali ini penulis akan menjelaskan cara menerapkan penggunaan SSH Two-Factor Authentication (2FA) pada server CentOS

Persiapan

  • Server CentOS 7
  • Handphone (Diinstall Aplikasi Autentikator)

Penyelesaian

Instalalasi dan Konfigurasi Google Authenticator

Silakan dapat login ke server CentOS anda dan jalankan command berikut untuk melakukan penginstallan qreencode yang berfungsi sebagat QR Code generator

1
2
$ sudo yum install -y epel-release
$ sudo yum install -y google-authenticator qrencode qrencode-libs

Selanjutnya jalankan command google-authenticator untuk membuat secret key baru pada directory ~/.ssh/

1
$ google-authenticator -s ~/.ssh/google_authenticator

Ketika muncul pertanyaan “Do you want authentication tokens to be time-based?” bisa dijawab “y”

Setelah itu QR code akan tergenerate, anda dapat melakukan scan menggunakkan aplikasi TOTP seperti Google authenticator yang dapat diinstall melalui Google Play Store atau Apple App Store.

Panduan lengkap seputar penggunaan google authenticator dapat dilihat pada laman berikut https://support.google.com/accounts/answer/1066447

Lakukan juga penyimpanan key berikut apabila terjadi kasus data pada handphone terhapus dan perlu dilakukannya setup kembali.

Selanjutnya anda dapat menjawab pertanyaan lanjutan sisanya dengan menjawab “y” seperti berikut:

Konfigurasi SSH Daemon

Pada kali ini kita akan melakukan konfigurasi dari sisi SSH Daemon. Konfigurasi dapat dilakukan dan disesuaikan apabila server anda apakah menggunakan Password atau Public Key sebagai autentikasinya. Silakan dapat menggunakan editor pada file sshd_config :

1
$ sudo vi /etc/ssh/sshd_config

Lakukan enable pada ChallengeResponseAuthentication dan UsePam seperti berikut:

[Opsional] Apabila anda ingin melakukan allow pada root untuk menggunakan 2FA silakan dapat melakukan enable pada PermitRootLogin seperti berikut:

# Public Key Authentication with 2FA

Apabila anda menggunakan SSH Key untuk login ke server silakan dapat melakukan penambahan line berikut pada file sshd_config seperti berikut :

1
$ sudo vi /etc/ssh/sshd_config

Selanjutnya lakukan konfigurasi PAM rule dan tambahkan line berikut :

1
$ sudo vi /etc/pam.d/sshd
1
2
3
#two-factor authentication via Google Authenticator
auth     required     pam_google_authenticator.so secret=${HOME}/.ssh/google_authenticator

Dan juga lakukan comment pada line berikut (Dapat ditambah #) :

1
auth substack password-auth

Sehingga akan tampak seperti ini

Simpan lalu restart service SSH daemon untuk melakukan perubahan:

1
$ sudo systemctl restart sshd

# Password Authentication with 2FA

Apabila anda menggunakan password untuk login ke server silakan dapat melakukan lakukan konfigurasi PAM rule dan tambahkan line berikut

1
$ sudo vi /etc/pam.d/sshd
1
2
#two-factor authentication via Google Authenticator
auth     required     pam_google_authenticator.so secret=${HOME}/.ssh/google_authenticator

Sehingga akan tampak seperti ini

Simpan lalu restart service SSH daemon untuk melakukan perubahan:

1
$ sudo systemctl restart sshd

Berikut tampilan apabila anda mengakses SSH kembali (contoh menggunakan Public Key Authentication)

Cara Disable SSH Two Factor Authentication

Pergi ke file pada saat melakukan konfigurasi PAM rule :

1
$ sudo vi /etc/pam.d/sshd

Lakukan comment pada line berikut (Dapat ditambah #) :

1
auth     required     pam_google_authenticator.so secret=${HOME}/.ssh/google_authenticator

Selanjutnya apabila sebelumnya anda menambahkan line berikut pada file sshd_config

1
AuthenticationMethods publickey,keyboard-interactive

Silakan dapat dihapus kalimat keyboard-interactive menjadi seperti berikut:

1
AuthenticationMethods publickey

Simpan lalu restart service SSH daemon untuk melakukan perubahan:

1
$ sudo systemctl restart sshd

Mengubah Secret Key Authenticator

Apabila anda ingin mengubah secret key anda dapat menjalankan command google-authenticator kembali untuk membuat secret key baru pada directory file ~/.ssh/google_authenticator.

1
$ google-authenticator -s ~/.ssh/google_authenticator

Selesai anda telah menerapkan penggunaan SSH Two-Factor Authentication (2FA) pada server CentOS.

comments powered by Disqus