Instalasi Aplikasi Denyhosts untuk Melindungi Akses SSH
Salah satu masalah utama jika akses SSH server dibuka untuk keperluan remote adalah adanya user lain (cracker, hacker) yang coba-coba mendapatkan akses masuk kedalam sistem. Hal ini bisa diantisipasi dengan berbagai macam cara, misalnya dengan mengubah port default SSH, tidak membolehkan akses root secara remote, hanya membolehkan host tertentu untuk akses dan lain-lain.
Contoh berikut adalah log cracker yang ingin mencoba masuk kedalam sistem :
Sep 6 23:44:33 myhostname sshd[22483]: Invalid user operator from 119.6.62.xxx
Sep 6 23:44:37 myhostname sshd[22488]: Invalid user operator from 119.6.62.xxx
Sep 6 23:44:43 myhostname sshd[22494]: Invalid user operator from 119.6.62.xxx
Sep 6 23:44:46 myhostname sshd[22499]: Invalid user operator from 119.6.62.xxx
Sep 6 23:44:48 myhostname sshd[22504]: Invalid user operator from 119.6.62.xxx
Sep 6 23:44:51 myhostname sshd[22509]: Invalid user operator from 119.6.62.xxx
Sep 6 23:44:54 myhostname sshd[22514]: Invalid user oracle from 119.6.62.xxx
Sep 6 23:44:56 myhostname sshd[22519]: Invalid user oracle from 119.6.62.xxx
Sep 6 23:44:59 myhostname sshd[22524]: Invalid user oracle from 119.6.62.xxx
Sep 6 23:45:02 myhostname sshd[22530]: Invalid user oracle from 119.6.62.xxx
Sep 6 23:45:05 myhostname sshd[22689]: Invalid user oracle from 119.6.62.xxx
Sep 6 23:45:07 myhostname sshd[22773]: Invalid user oracle from 119.6.62.xxx
Sep 6 23:45:10 myhostname sshd[22904]: Invalid user oracle from 119.6.62.xxx
Sep 6 23:45:13 myhostname sshd[22954]: Invalid user oracle from 119.6.62.xxx
Sep 6 23:45:15 myhostname sshd[22962]: Invalid user oracle from 119.6.62.xxx
Seperti bisa dilihat pada log diatas, pengakses mencoba dictionary attack menggunakan berbagai nama user untuk mencoba akses. Meski akses tersebut gagal dilakukan, server tetap terbebani karena terpaksa melayani request yang masuk.
Salah satu cara yang bisa ditempuh untuk melindungi akses SSH adalah dengan menggunakan aplikasi denyhosts. Aplikasi denyhosts melindungi ssh dengan cara memasukkan IP pengakses kedalam daftar blacklist jika beberapa kali salah memasukkan password.
Proses instalasi dan apliksinya sangat mudah. Berikut adalah proses instalasi pada openSUSE 11.3 :
- Buka [http://software.opensuse.org/search openSUSE Build Service]. Cari aplikasi denyhosts. Sesuaikan versi openSUSE yang digunakan. Jika tidak ada aplikasi untuk versi openSUSE yang digunakan, silakan ambil paket untuk versi yang berdekatan, misalnya SLES 11 SP1 bisa menggunakan package untuk SLES 11 atau untuk openSUSE 11.1, 11.2 atau untuk openSUSE 11.3.
- Install menggunakan one-click-install
- Review file konfigurasi /etc/denyhosts.conf. Pada distro openSUSE, denyhosts secara default akan menganalisa file log /var/log/messages, namun mungkin saja kita perlu mengubah nama file log untuk dianalisa, misalnya jika menggunakan aplikasi Zimbra, denyhosts bisa diperintahkan untuk mengakses file log /var/log/zimbra.log. Check juga mengenai jumlah maksimum kesalahan pemasukan password dan pilihan lain yang tersedia.
- Jika konfigurasi sudah sesuai, jalankan denyhosts dengan perintah :[code language=’cpp’]
service denyhosts start
service denyhosts status[/code]
- Jika menginginkan agar denyhosts otomatis berjalan saat booting, aktifkan service denyhosts dengan perintah :[code language=’cpp’]
chkconfig denyhosts on
[/code]
- File log denyhosts bisa ditemukan di /var/log/denyhosts. Jika ada pengakses yang diblaclist karena memenuhi syarat (misalnya gagal memasukkan password sebanyak 5X), denyhosts akan memasukkan IP pengakses kedalam file /etc/hosts.deny
Berikut adalah contoh saat denyhosts memblacklist salah satu IP :
Sep 06 23:50:24 – denyhosts : INFO restricted: set([])
Sep 06 23:50:24 – denyhosts : INFO Processing log file (/var/log/zimbra.log) from offset (0)
Sep 06 23:50:25 – denyhosts : INFO new denied hosts: [‘119.6.62.xxx’]
Dan berikut isi file /etc/hosts.deny setelah IP diblacklist :
myhostname:~ # cat /etc/hosts.deny
# /etc/hosts.deny
# See ‘man tcpd’ and ‘man 5 hosts_access’ as well as /etc/hosts.allow
# for a detailed description.http-rman : ALL EXCEPT LOCAL
ALL: 119.6.62.xxx
Denyhosts, aplikasi simple namun bermanfaat 🙂
alternatif lainnya bisa gunakan fail2ban. action-nya bisa gunakan iptables.
1. coba port knocking. Setelah beberapa port di probe, baru start SSH daemonnya
2. coba login tanpa username, tapi pakai public key exchange
sekedar share, kl saya karena selalu di indonesia maka hanya saya allowed IP indonesia untuk bisa akses SSH mengunakan iptables dan hasilnya cukup signifikan tdak ada lagi error invalid user di secure log (saya pakai centos)
dinama bisa daftar biar bisa buka server untuk jualan ssh kayanya bisnis ini menarik gai dan dipastikan tempat ane pasti banyak karena di wilayah mahasiswa tau kan mahasiswa inginnya yang murah hehehe