Skip to main content

Mengamankan SSH dengan Google Authenticator pada Ubuntu Server

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!

Popular posts from this blog

Tentang Ultraman; Pahlawan Jepang Yang Mendunia, Salah Satu Teman Masa Kecil

Google Doodle Ultraman Pagi ini, ada kejutan yang bikin saya tersenyum. Google Doodle, hari ini temanya adalah ulang tahun Eiji Tsuburaya  sang pereka tokoh Ultraman atau dalam lidah Jepang disebut Urotoraman, tayang pertama pada 7 Juli 1966 di TBS (Tokyo Broadcasting System).  Urotoraman atau Ultraman adalah Tokusatsu  atau SciFi, seorang pahlawan super yang berukuran rasaksa. Bila beberapa halaman wiki mengatakan bahwa ide pahlawan super berukuran raksasa adalah ide aseli Tsuburaya, bagi saya itu bukan aseli. Mungkin di Jepun sono, ide aseli. Namun di Indonesia raya nan kaya dan tercinta ini, itu bukan ide aseli.  Banyak tokoh pewayangan kita seperti Yudistira, Puntadewa, bahkan yang paing fenomenal adalah Prabu Kreshna yang mampu melakukan tiwikrama , alias berubah menjadi raksasa.  Meskipun itu terjadi ketika yang melakukan sedang murka.  Jadi Ultraman adalah bentuk Tiwikrama dari pahlawan Jepang.  Meskipun begitu dan di luar semua i...

Bagaimana Menginstall Snort dengan Barnyard2 dan Snorby

Mas....! Apa? Nuwun sewu, Mas! Saya udah coba install Snort dan Suricata. Tapi bingung... Bingung gimana? Bingung nginstallnya. Sampeyan nginstallnya di mana? Sampeyan gimana? Ya di kantor, Mas! Masa di rumah.  Di rumah komputer kan cuma 1 doang. He he....! Maksud saya, nginstallnya di komputer apa, OS nya apa? Di PC, OS-nya linux Linux apa? Ubuntu, Mas! Hmm... Ubuntu? Sampeyan nginstallnya make apt-get install apa compile dari source-nya? Make apt-get install, Mas! sudo apt-get install snort snort-mysql Emang kenapa, Mas? Gak apa, Cuma biasanya saya nginstallnya langsung dari source. Gimana caranya? Begini, unduh dulu source terakhir yang stabil dari http://www.snort.org/snort-downloads/ Kemudian copykan ke mesin linux yang bakal kita install snort.  Jangan cuma download source snortnya thok.  Download juga library DAQ (Data Aqcuisition Library).  Karena snort juga butuh ini kalo mau mengenable-kan semua fitur snort. Jangan lupa juga download barny...

Log Management Dengan Graylog2, MongoDB, Elasticsearch, Kibana (2)

Bagian 2 dari 3 tulisan Pada bagian ini diuraikan konfigurasi input dan ekstraktor serta menghubungkan Suricata ke Graylog2 Melanjutkan tulisan sebelumnya Log Management Dengan Graylog2, MongoDB, Elasticsearch, Kibana (1), pada tulisan ini akna sedikit menguraikan tentang beberapa konfigurasi dan pemanfaatannya.  Tentunya masih menggunakan Graylog2. Input. Konfiguras Input sangat penting mengingat ini adalah item konfigurasi yang memungkinkan Graylog2 untuk membuka port menangkap kiriman log. Ada beberapa jenis input.  Namun untuk sementara kita hanya menggunakan “Syslog TCP”  dan “Syslog UDP”.  Dan karena input nanti akan berhubungan dengan extractors, maka sebaiknya input dibuat spesifik untuk mesin log yang spesifik juga.  Misalkan kita akan menangkap log dari Suricata, kita buatkan 1 input khusus dengan protocol UDP misalnya, dan listening pada port 6160 misalkan. Langkah pembuatan input Untuk membuat input, setelah kita bisa memasuki interface Graylog2, ...