Mencegah Serangan Brute Force
- on 11.07.07
- Linux
- Digg
- Del.icio.us
Sebuah mesin yang terkoneksi langsung dengan inet pasti akan merasakan yang namanya serangan “brute forceâ€. Biasanya target brute force adalah port SSH. Aplikasi brute force akan mengirim kombinasi userid dan password secara random ke mesin target.
Di mesin Linux, atifitas gambling yang dilakukan aplikasi brute force akan terbaca di log system Linux, biasanya ada di /var/log/messages. Jalankan perintah :
root@aceslack:~# tail -f /var/log/messages
untuk membaca file log secara realtime. Contoh log mesin yang kena brute force bisa dilihat di sini.
Banyak cara untuk mecegah mesin Linux tembus serangan brute force :
- Edit file /etc/hosts.allow dan /etc/hosts.deny
- Edit file /etc/ssh/sshd_config
- Pasang aplikasi pengamanan tambahan
- Download paket sshdfilter-1.5.5.tar.gz dari link ini.
root@aceslack:~# wget http://www.csc.liv.ac.uk/~greg/sshdfilter-1.5.5.tar.gz
- Ekstrak sshdfilter-1.5.5.tar.gz.
- Masuk ke direktori sshdfilter.
- Ga ada salahnya untuk baca file INSTALL.
- Buat file konfigurasi sshdfilter.
- Edit file konfigurasi.
- Bikin rule firewall.
- Save rule firewall.
- Autorun rule firewall.
- Copy file sshdfilter.pl.
- Copy file man.
- Edit file startup sshd.
- Restart service sshd.
- Cek service.
- Selesai, mesin telah dijaga ketat oleh SSHDFILTER.
Format yang digunakan oleh kedua file ini adalah sebagai berikut :![]()
NAMA_SERVICE:IP_ADDRESS_ATAU_HOST
Untuk menolak semua service dari host manapun, tambahkan rule berikut pada file /etc/hosts.deny :
ALL:ALL
Untuk mengijinkan service sshd dari ip 192.168.1.10, tambahkan rule berikut pada file /etc/hosts.allow :
sshd:192.168.1.10
Merubah default port ssh 22 menjadi 8881. Hati-hati dengan penggunaan port, jangan sampai bentrok dengan port yang digunakan oleh service lain. Daftar port yang diatur oleh IANA bisa dilihat di sini.
Port 8881
Memaksa agar sshd berjalan di versi 2.
Protocol 2
Bila mesin yang diamankan memiliki beberapa NIC dan akses ssh hanya diijinkan dari NIC yang memiliki IP 192.168.1.1.
ListenAddress 192.168.1.1
Membatasi waktu login selama 1 menit. Bila dalam 1 menit tidak melakukan login maka service ssh akan terputus.
LoginGraceTime 1m
Tidak mengijinkan login dengan user root.
PermitRootLogin no
Membatasi sebanyak 3 kali gagal login, setelah 3 kali gagal login maka service ssh akan terputus.
MaxAuthTries 3
Hanya mengijinkan login dengan user 1ndONEsia.
AllowUsers 1ndONEsia
root@aceslack:~# tar -zxvf sshdfilter-1.5.5.tar.gz
root@aceslack:~# cd sshdfilter-1.5.5
root@aceslack:~# more INSTALL
File konfigurasi sshdfilter adalah gabungan dari file etc/sshdfilterrc dengan salah satu file yang ada di dalam direktori patterns. Di dalam direktori patterns ada beberapa file, mana yang harus dipilih???
Sesuai dengan apa yang ditulis di file INSTALL :
rh7390 - RedHat 7.3, RedHat 9.0, Fedora Core 2.0 or CentOS 4.3
rhFC30 - RedHat Fedora Core 3.0, Fedora Core 4.0, Red Hat Enterprise Linux ES release 4, or CentOS 3.x
deb31 - Debian 3.1 (sarge) or Debian (sid, but see README.debian)
su10rc1 - SuSe 10.0 RC 1, Gentoo and Slackware
dbear - Dropbear, a light weight sshd daemon
maka pemilihan file yang ada di direktori patterns disesuaikan dengan distro yang digunakan. Saat ini aku pake Slackware, so aku pilih file su10rc1.partconf. Gabungkan file etc/sshdfilterrc dengan patterns/su10rc1.partconf menjadi sebuah file /etc/sshdfilterrc :
root@aceslack:~# cat etc/sshdfilterrc patterns/su10rc1.partconf > /etc/sshdfilterrc
Edit konfigurasi sshdfilter di file /etc/sshdfilterrc sesuai dengan kebutuhan.
Buat chain baru dengan nama SSHD :
root@aceslack:~# iptables -N SSHD
Menambah rule untuk menangani setiap ada request ke port 22 :
root@aceslack:~# iptables -I INPUT -p tcp -m tcp --dport 22 -j SSHD
Menambah rule baru di baris terbawah untuk mengijinkan setiap request ke port 22 dari blok ip 192.168.1.0/24 :
root@aceslack:~# iptables -A INPUT -p tcp -m tcp -s 192.168.1.0/24 --dport 22 -j ACCEPT
Save rule-rule yang dibuat disebuah file. Misalkan rule-rule firewall-nya disimpan di /etc/wall_aceslack :
root@aceslack:~# iptables-save > /etc/wall_aceslack
Agar secara otomatis rule-rule tadi dijalankan saat booting, tambahkan perintah berikut di dalam file /etc/rc.d/rc.local :
iptables-restore < /etc/wall_aceslack
Copy file sshdfilter.pl, dan simpan dengan nama file sshdfilter di direktori /usr/sbin :
root@aceslack:~# cp source/sshdfilter.pl /usr/sbin/sshdfilter
root@aceslack:~# cp man/sshdfilter.1 /usr/share/man/man1
root@aceslack:~# cp man/sshdfilterrc.5 /usr/share/man/man5
dengan begitu, saat diketikkan perintah :
root@aceslack:~# cp man sshdfilter
maka akan ditampilkan manual dari sshdfilter yang sangat membantu bila kita tersesat ![]()
Script startup sshd pada Slackware ada di file rc.sshd. Edit file tersebut, ubah lokasi path file script sshd menjadi lokasi path file script sshdfilter.
...CUT... fi /usr/sbin/sshd } ...CUT...
ubah menjadi
...CUT... fi /usr/sbin/sshdfilter } ...CUT...
dengan begitu, selanjutnya script rc.sshd tidak lagi menjalankan /usr/sbin/sshd, namun script tersebut akan menjalankan /usr/sbin/sshdfilter.
Dengan me-restart service sshd maka script rc.sshd yang baru akan di-load :
root@aceslack:~# /etc/rc.d/rc.sshd restart
Cek apakah service sshdfilter-nya sudah berjalan :
root@aceslack:~# pstree | grep ssh |-sshdfilter-+-sshd | `-sshdfilter
Banyak aplikasi pengamanan yang dapat digunakan untuk mengamankan service ssh, salah satunya adalah SSHDFILTER.
Thanks to : firewaxx [http://forum.linux.or.id]
Leave a Reply