Thursday, October 17, 2013

Mengamankan SSH dengan Google Authenticator pada Ubuntu Server

Wihartoyo     Thursday, October 17, 2013    

Seringkali kita terpaksa harus membuka port ssh server ke public untuk memudahkan kita melakukan perawatan terhadap server kita tersebut. Mengubah port ssh mungkin yang paling pertama dilakukan untuk meningkatkan pengamanan.  Kemudian menggunakan VPN dengan self-signed SSL ditambahkan untuk meningkatkan pengamanannya.  Namun, menggunakan token authentication sebagai adaptasi dari Challenge Response authentication untuk menambah perimeter pengamanan mestinya bisa memperkuat pengamanan koneksi ssh.  Karena, ini menyangkut investasi.  Dan beberapa entity mungkin masih sangat sensitif dengan hantu "investasi baru".  Dan mungkin cenderung mengabaikannya.  Ini, tentunya menjadi tantangan sendiri bagi para admin.  Bagaimana bisa memudahkan sekaligus mengamankan tugasnya tanpa harus berhadapan dengan hantu investasi ini.

Perkembangan teknologi membuat proses pengamanan harus semakin kuat, namun disisi lain banyak tersedia alat pengamanan yang semakin terjangkau.  Terima kasih kepada Google yang telah menyediakan Google Authenticator secara free di Playstore (maaf, saya bukan pengguna blekberi ataupun ifon/ped jadi saya singgung marketnya). Dan pam lib nya secara free pula.  Dan di sini, saya akan menyajikan sedikit saja yang saya tahu tentang install google authenticator untuk mengamankan authentikasi ssh kita di Ubuntu Server (sekali lagi, saya memang lebih suka menggunakan Ubuntu, karena dia menyediakan servernya untuk yang free.  Dan bukan tes ped bagi versi komersil).

Pertama, kita install dulu google authenticator pam lib nya dengan cara yang cukup mudah sebagai berikut:



mastoyo@jagoan-neon:~$ sudo apt-get install libpam-google-authenticator
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
libpam-google-authenticator
0 upgraded, 1 newly installed, 0 to remove and 15 not upgraded.
Need to get 25.1 kB of archives.
After this operation, 104 kB of additional disk space will be used.
Get:1 http://ubuntu.pesat.net.id/archive/ precise/universe libpam-google-authenticator i386 20110413.68230188bdc7-1.1 [25.1 kB]
Fetched 25.1 kB in 0s (205 kB/s)
Selecting previously unselected package libpam-google-authenticator.
(Reading database ... 604771 files and directories currently installed.)
Unpacking libpam-google-authenticator (from .../libpam-google-authenticator_20110413.68230188bdc7-1.1_i386.deb) ...
Processing triggers for man-db ...
Setting up libpam-google-authenticator (20110413.68230188bdc7-1.1) ...


Nah, kalo sudah, kita bisa lanjutkan dengan merubah configurasi pam nya.
Make gambar aja ya!

mastoyo@jagoan-neon:~$ sudo nano /etc/pam.d/sshd[enter]



Setelah kita edit konfigurasi pam untuk ssh, kemudian kita edit konfigurasi ssh untuk bisa menjalankan Challenge Response authentication dengan menjalankan (make gambar juga nih):


mastoyo@jagoan-neon:~$ sudo nano /etc/ssh/sshd_config[enter]



Rubah "no" menjadi "yes"!
Setelah itu, kita generate "secrets" dari google authenticatornya dengan menjalankan binary dari google authenticator.

mastoyo@jagoan-neon:~$ google-authenticator[enter]
https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/mastoyo@jagoan-neon%3Fsecret%3DP4UYV.....YA.GC
<snip>

Your new secret key is: P4UYV.....YA.GC
Your verification code is 190141
Your emergency scratch codes are:
56...993
5043...5
6...5689
2027...1
4..22.12

Do you want me to update your "~/.google_authenticator" file (y/n) y [ jawab dengan y]
<snip>


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 [ jawab dengan y]

By default, tokens are good for 30 seconds and 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. If you experience problems with poor
time synchronization, you can increase the window from its default
size of 1:30min to about 4min. Do you want to do so (y/n) y [ jawab dengan 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 3 login attempts every 30s.
Do you want to enable rate-limiting (y/n) y [ jawab dengan y]


Setelah semua dijalankan kemudian tambahkah account google authenticator pada aplikasi google authenticator di gadget android  kita dengan cara melakukan scanning barcode yang digenerate saat meng-generate secrets dari google authenticator di server.


Atau dengan mengcopy url yang terbentuk pertama kali sesaat setelah menekan [enter] ketika menggenerate secrets dan paste ke browser untuk menampilkan ulang QR codenya.  Atau mungkin dengan memasukkan secret secara manual ke dalam aplikasi Google Authenticator pada gadget android kita.

Terakhir, kita restart ssh service kita dengan
mastoyo@jagoan-neon:~$ sudo service ssh restart[enter]
ssh stop/waiting
ssh start/running, process 17303
mastoyo@jagoan-neon:~$
Kemudian kita bisa test dengan jalanin ini:
mastoyo@jagoan-neon:~$ ssh localhost
Password:
Verification code:
Welcome to Ubuntu 12.04.2 LTS (GNU/Linux 3.2.0-44-generic-pae i686)

* Documentation: https://help.ubuntu.com/

15 packages can be updated.
0 updates are security updates.

Last login: Fri Oct 18 07:33:35 2013 from localhost
mastoyo@jagoan-neon:~$

SUDAH!

,

Recommended