Tips Block Koneksi Berdasarkan Kata/String Menggunakan IPTABLES

Posted by

Berbicara spam pada email server memang tidak ada habisnya. Jika saya perhatikan pada log, banyak email spam yang coba masuk dan berasal dari berbagai negara. Salah satu negara yang banyak mengirimkan spam berasal dari Taiwan. Salah satu IP yang berasal dari Taiwan adalah Hinet. Iya Hinet. Tentu sudah tidak asing lagi dengan IP yang berasal dari Hinet ini. Bisa dibilang hampir setiap hari banyak koneksi yang berasal dari Hinet ini. Jika diperhatikan, memang Hinet ini memiliki segmen IP yang banyak dan berbeda beda.

Untuk menangkal IP yang berasal dari Hinet ini, biasanya saya lakukan block terhadap satu atau beberapa segmen IP. Tapi cara ini tidak efektif dikarenakan banyaknya IP yang berasal dari Hinet ini dan selalu berganti-ganti. Memang hampir semua koneksi yang berasal dari sana sukses ditangkap oleh RBL Barracuda, ZenSpamhaus maupun CBL Abuseat. Namun tetap saja IP yang ditrap oleh Barracuda ini itu-itu juga IP nya. Agar tidak cape untuk melakukan block terhadap beberapa segmen IP milik Hinet yang jumlahnya begitu banyak, kita dapat lakukan block berdasarkan kata/string. Blocking terhadap string/nama ini dapat dilakukan oleh IPTABLES. Perintahnya pun simple dan hanya butuh 2 kali perintah saja. Yaitu DROP INPUT dan DROP OUTPUT. Berikut adalah contoh perintahnya :
[code lang=’bash’]
iptables -A INPUT -m string –string “hinet” –algo bm -j DROP
iptables -A OUTPUT -m string –string “hinet” –algo bm -j DROP
[/code]
Perintah diatas akan menyaring setiap koneksi yang masuk. Apabila koneksi yang masuk berasal dari Hinet (kata/string hinet ini diambil dari informasi PTR Records yang biasanya bersifat dynamic. Berikut adalah contohnya :  helo=<114-32-252-3.HINET-IP.hinet.net>), maka koneksi tersebut akan di DROP. Jika hendak melakukan drop koneksi untuk IP yang berasal dari negara lain misalnya .cn, .vn, .tw, .in atau yang lainnya silakan lakukan kembali perintah diatas tersebut dengan mengganti kata hinet menjadi kata yang lain.

Untuk memudahkan penambahan rule pada IPTABLES, buat saja sebuah script seperti berikut :
[code lang=’bash’]
cd /srv/
vi iptables-string.sh
[/code]
Isi dengan baris berikut :

#!/bin/bash
# How to Use
# sh iptables-string.sh nama/string
# Example
# sh iptables-string.sh hinet

iptables -A INPUT -m string --string "$1" --algo bm -j DROP
iptables -A OUTPUT -m string --string "$1" --algo bm -j DROP

Simpan dan berikan hak akses eksekusi
[code lang=’bash’]
chmod +x iptables-string.sh
[/code]
Coba jalankan script tersebut untuk melakukan blocking terhadap nama/string yang ingin diblock. Misalnya blocking nama/string dengan ektension .cn
[code lang=’bash’]
sh iptables-string.sh .cn
[/code]
Coba cek rule IPTABLES apakah sudah bertambah dengan perintah iptables -L. Agar rule yang sudah ada disimpan, dapat menggunakan perintah iptables-save dan untuk restore dapat menjalankan perintah iptables-restore. Silakan pelajari perintah-perintah tersebut dari manual IPTABLES

Silakan dicoba dan semoga bermanfaat 😀

Source : http://www.webhostingtalk.com/

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.