Two Factor Authentication (2FA) Menggunakan Google Authenticator pada Remote Server SSH

Two factor authentication-amico

Autentikasi  adalah proses validasi atau pembuktian terhadap identitas atau kredensial yang hendak memasuki sebuah sistem atau layanan yang penting. Autentikasi ini dilakukan untuk membuktikan bahwa pengguna yang hendak login benar-benar pemilik akun yang sah. Secara tidak sadar sebenarnya kita sudah sering menerapkan proses autentikasi ini. Salah satu contoh proses autentikasi ini biasanya dilakukan dengan berbagai cara, misalnya seperti menggunakan password dan username pengguna. Data yang perlu dimasukan ketika autentikasi biasanya hanya diketahui oleh pengguna atau bersifat pribadi. Sehingga apabila pada proses autentikasi terjadi ketidakcocokan maka autentikasi tidak akan berhasil. Salah satu contoh nyata autentikasi yaitu Google, mereka hanya akan memberikan akses masuk apabila password-nya sudah benar dan sinkron. Autentikasi tentu tidak hanya ada satu jenis saja, berkembangnya teknologi membuat lebih banyak inovasi proses autentikasi.

Memasang Google PAM (Pluggable Authentication Module)

PAM atau dapat dijabarkan sebagai Pluggable Authenticaion Modul adalah sebuah infrastruktur otentifikasi yang menggunakan sistem Linux untuk mengidentifikasi seorang user. Dikarenakan Google membuat sebuah aplikasi OATH-TOTP, mereka juga harus membuat OAM yang menghasilkan TOTPs dan harus komplatibel dengan semua aplikasi OATH-TOTP lainya, seperti Google Authenticator itu sendiri atau sering disebut Authy.

Untuk melakukan pemasangan Google PAM langkah pertama yang kita lakukan adalah dengan menambahkan EPEL repository ke dalam repository server dikarenakan Rocky Linux merupakan distribusi enterprise. Kita dapat menggunakan command berikut.

				
					dnf install epel-release
				
			
				
					Last metadata expiration check: 1:02:02 ago on Wed 24 Apr 2024 07:44:58 AM UTC.
Dependencies resolved.
==============================================================================================================================================================================================================================
 Package                                                          Architecture                                   Version                                                 Repository                                      Size
==============================================================================================================================================================================================================================
Installing:
 epel-release                                                     noarch                                         9-7.el9                                                 extras                                          19 k
Installing dependencies:
 python3-dateutil                                                 noarch                                         1:2.8.1-7.el9                                           baseos                                         287 k
 python3-dnf-plugins-core                                         noarch                                         4.3.0-11.el9_3                                          baseos                                         246 k
 python3-six                                                      noarch                                         1.15.0-9.el9                                            baseos                                          36 k
 python3-systemd                                                  x86_64                                         234-18.el9                                              baseos                                          83 k
Installing weak dependencies:
 dnf-plugins-core                                                 noarch                                         4.3.0-11.el9_3                                          baseos                                          37 k

Transaction Summary
==============================================================================================================================================================================================================================
Install  6 Packages

Total download size: 708 k
Installed size: 2.1 M
Is this ok [y/N]: y

				
			

Setelah menambahkan repository EPEL kita lanjutkan dengan memasang Google Authenticator melalui command sebagai berikut.

				
					dnf install google-authenticator
				
			
				
					Extra Packages for Enterprise Linux 9 - x86_64                                                                                                                                                6.0 MB/s |  21 MB     00:03    
Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64                                                                                                                          1.1 kB/s | 2.5 kB     00:02    
Dependencies resolved.
==============================================================================================================================================================================================================================
 Package                                                        Architecture                                     Version                                                 Repository                                      Size
==============================================================================================================================================================================================================================
Installing:
 google-authenticator                                           x86_64                                           1.09-5.el9                                              epel                                            55 k

Transaction Summary
==============================================================================================================================================================================================================================
Install  1 Package

Total download size: 55 k
Installed size: 119 k
Is this ok [y/N]: y

				
			

Untuk mempermudah dalam proses penyelarasan kode otentifikasi anda ke device mobile anda dapat menginstall QR Encoder ke dalam server anda. Anda dapat menggunakan command sebagai berikut.

				
					dnf install qrencode
				
			
				
					Last metadata expiration check: 0:22:13 ago on Sat 27 Apr 2024 01:39:57 AM UTC.
Dependencies resolved.
============================================================================================================
 Package                     Architecture         Version                        Repository            Size
============================================================================================================
Installing:
 qrencode                    x86_64               4.1.1-1.el9                    epel                  25 k
Installing dependencies:
 libpng                      x86_64               2:1.6.37-12.el9                baseos               116 k
 qrencode-libs               x86_64               4.1.1-1.el9                    epel                  61 k

Transaction Summary
============================================================================================================
Install  3 Packages

Total download size: 202 k
Installed size: 434 k
Is this ok [y/N]: y

				
			

Setelah selesai memasang Google Autheticator dan QR Encoder selanjutnya anda dapat menginstall aplikasi Google Autheticator di mobile device anda atau menggunakan add-on pada browser untuk. Jika sudah maka kita dapat memanggil Google Authenticator pada server kita dengan command sebagai berikut.

				
					google-authenticator
				
			

Lalu akan muncul peringatan seperti di atas, anda dapat memasukan key di atas atau melalukan scan pada barcode yang muncul. Lalu masukan code yang muncul pada aplikasi Google Authenticator atau add-on yang anda install pada browser anda. Setelah itu anda akan ditampilkan emergency codes anda, harap simpan emergency code anda. Selanjut anda dapat melihat langkah langkah dibawah.

				
					Your emergency scratch codes are:
  21169793
  28357583
  26391583
  59309281
  79786629

Do you want me to update your "/root/.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) n
				
			
				
					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
				
			

Setelah menyelesaikan tahap instalasi langkah selanjutnya adalah mengatur agar saat login menggunakan SSH dapat menggunakan Google Authenticator. Pertama anda dapat masuk ke dalam pengaturan SSH dan ubah setting yang terdapat seperti berikut.

				
					nano /etc/ssh/sshd_config
				
			
				
					KbdInteractiveAuthentication yes
				
			

Selanjutnya masuk kedalam pengaturan SSH yang lain dan ubah pengaturan sesuai command berikut, dan ubah pengaturan yang ada di dalam sebagai berikut.

				
					nano /etc/ssh/sshd_config.d/50-redhat.conf
				
			
				
					ChallengeResponseAuthentication yes
				
			

Langkah terakhir adalah mengatur PAM untuk dapat menjalankan Two Factor Authentication (2FA) dengan cara anda masuk ke dalam setting PAM dengan command sebagai berikut.

				
					nano /etc/pam.d/sshd
				
			

Lalu tambahkan pengaturan berikut pada baris pertama kemudian simpan pengaturan tersebut.

				
					auth required pam_google_authenticator.so
				
			

Setelah melakukan langkah-langkah di atas selanjutnya anda dapat melakukan pengetasan dengan mencoba login ke dalam server anda melalui SSH.

Leave a Reply

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