20 July 2013

Iptables - Drop all allow some Vs. Allow all drop some

Hiyaa... Ketemu lagi di blog Tutorial Linux Ubuntu Berbahasa Indonesia. Kali ini kita berbicara tentang security, berbicara tentang security sudah tentu ini berkaitan dengan firewall. Pada linux atau unix, ada beberapa metode untuk memasang firewall. Sebagian ada yang memakai iptables, sebagian lagi menggunakan ufw. Saya sendiri lebih familiar dengan iptables. Seorang administrator tentunya tidak mau kan server-nya dijebol oleh pihak-pihak yang tidak bertanggung jawab. Jika hal itu terjadi rasanya langit telah runtuh tepat diatas kepala.

Dalam hal keamanan linux mempunyai keunggulan jauh lebih baik daripada windows. Seperti kita tau bahwa Linux/Unix selain mempunyai tingkat keamanan yang tinggi, juga mempunyai umur yang lebih panjang daripada windows.

Artikel ini akan membahas bagaimana caranya mencegah hal itu terjadi, saya akan menjelaskan beberapa cara menggunakan iptables sebagai firewall kita. Ada beberapa metode yang bisa kita gunakan, "Drop all allow some" atau "Allow all drop some"

Metode pertama, "Drop all allow some" artinya menutup semua port dan membuka sebagian seperti Web Service, DNS Service, SSH untuk Network Local, dan Mail Service.

Metode kedua, "Allow all drop some" artinya membuka semua port dan menutup sebagian port seperti SSH, FTP, dan beberapa port lain yang rawan jadi sasaran hacker.
Selanjutnya akan kita praktekan kedua metode tadi.

[ Drop all allow some ]


Skenario :
Kita mempunyai Server Linux yang memiliki IP Address 10.1.1.1/24. hanya melayani Web Service, dan DNS. Pada server ini kita akan menutup semua port kecuali port yang digunakan oleh kedua service tadi.
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -i lo -j ACCEPT
iptables -A INPUT -s 10.1.1.0/24 -d 10.1.1.1 -j -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -s 10.1.1.1 -d 10.1.1.0/24 -p tcp --sport 22 -j ACCEPT
iptables -A INPUT -d 10.1.1.1 -i eth0 -p tcp -m tcp --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -s 10.1.1.1 -o eth0 -p tcp -m tcp --sport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT -d 10.1.1.1 -i eth0 -p udp -m udp --dport 53 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -s 10.1.1.1 -o eth0 -p udp -m udp --sport 53 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

[ Allow all drop some ]


Skenario :
Kita mempunyai Server Linux yang memiliki IP Address 10.1.1.1/24. Server ini cukup sibuk untuk memainkan peran-nya. Ada banyak service yang sangat crucial yang tidak mungkin kita tutup. Pada kasus ini kita akan menutup port SSH, FTP, dan PING. Maka kurang lebih kita akan mengkonfigurasi iptables seperti ini :
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -p OUTPUT ACCEPT
iptables -A INPUT -d 10.1.1.1 -p tcp --dport 22 -j DROP
iptables -A INPUT -d 10.1.1.1 -p tcp --dport 21 -j DROP
iptables -A INPUT -d 10.1.1.1 -p tcp --icmp -j DROP

Kurang lebih seperti itu perbedaan antara kedua metode yang saya jelaskan. Tentunya semua kembali lagi pada kebutuhan masing-masing, sehingga rules yang tadi saya buat bisa anda sesuaikan sendiri sesuai kebutuhan.
Semoga bermanfaat :)

No comments:

Post a Comment