Tuesday, March 26, 2013

Konfigurasi Iptables Firewall di Linux Debian

,
Firewall
Firewall atau Tembok Api, berfungsi untuk memfilter semua paket yang lewat pada dirinya, baik dari jaringan Lokal ataupun Internet. Aplikasi server yang satu ini sangatlah penting, untuk melindungi jaringan local kita dari serangan luar. Aplikasi firewall yang terkenal pada linux adalah IpTables, selain itu ada juga Shorewall.

Mengenal iptables

Pada distribusi linux yang baru, iptables secara default dudah terinstall.
Pastikan kernel dari sistem linux yang digunakan adalah kernel 2.4 ke atas
dengan iptables(netfilter) aktif. Menjalankan iptables dengan user root.
perintah untuk berpindah ke user root:

# su -

Setelah menjadi root, panggil iptables dengan perintah:
# iptables
atau

#/sbin/iptables
jika iptables sudah aktif akan muncul:
# iptables
—-
—-
untuk mengetahu parameter apa saja yang digunakan di dalam iptables,
gunakan perintah:
# iptables -h
—-
—-
atau menggunakan # man iptables

Membangun firewall
catatan: perintah-perintah dilinux bersifat case sensitif oleh sebab itu perhatikan
pemakain huruf kecil maupun besar.

1. Reset Firewall

Rule yang perlu dibuat adalah mengosongkan semua jalur firewall dengan melakukan flushing.
# iptables -F INPUT
# iptables -F OUTPUT
# iptables -F FORWARD
# iptables -nvL (utk mengecek kondisi rule dari firewall)

2. Membatasi semua akses kecuali yang diperbolehkan.

memblokir(DROP) jalur INPUT
# iptables -P INPUT DROP
untuk mengetes lakukan pinging firewall sebelum dan sesudah perintah dieksekusi.

3. Membuka akses kelayanan DNS

membuka akses berbasis UDP, yaitu DNS server pada port 53.
# iptables -A INPUT -p UDP -s 0/0 –dport 53 -j ACCEPT
perintah diatas berarti, tambahkan atau append (-A) pada chain INPUT, paket yang berjenis
UDP (-p UDP) dengan alamat source sembarang (-s 0/0) dan destination port adalah 53 (–dport 53),
kemudian perkenankan paket tersebut(-j ACCEPT).

4. Membatasi akses dari sebuah alamat

membatasi akses dari sebuah nomor IP
# iptables -I INPUT -s $BAD_IP/32 -j DROP
perintah diatas berarti, kita ingin menyisipkan perintah di input chain, jika source address
berasal dari $BAD_IP(tanda”/32″menyatakan bahwa dia berupa satu host), maka dia langsung di-DROP.
$BAD_IP tersebut dapat kita gantikan dengan nomor IP.
# iptables -A INPUT -s 192.168.4.12 -j DROP
ini berarti alamat IP 192.168.4.12 tidak bisa mengakses firewall, dan jika sebaliknya
komputer yang menjalankan iptables tidak dapat berkomunikasi dengan pemilik IP 192.168.4.12
maka chain yg digunakan adalah OUTPUT dan parameter -s diganti dengan -d(destination) atau tujuan.
# iptables _A OUTPUT -d 192.168.4.12 -j DROP

5. Membatasi akses dari sejumlah alamat

# iptables -I INPUT -s $BAD_NET/25 -j LOG
# iptables -I INPUT -s $BAD_NET/25 -j DRop

6. Memperbolehkan akses ke web server

web server berada pada port 80
# iptables -A INPUT -P TCP -s 0/0 -dport 80 -j ACCEPT

7. Memperbolehkan akses ke layanan TCP yang lebih kompleks

rule yang dibuat: membatasi akses ke server HTTP (port 80) dan FTP (port 21) serta stateful,
yaitu mencatat state paket yang established, related.
# iptables -A goodtcp -p TCP –syn -j ACCEPT
# iptables -A goodtcp -p TCP -m state –state ESTABLISHED, RELATED, -j ACCEPTED
# iptables -A goodtcp -p TCP -j DROP

# iptables -A tcpsrv -p TCP -s 0/0 –dport 80 -j goodtcp
# iptables -A tcpsrv -p TCP -s 0/0 –dport 21 -j goodtcp

a# iptables -A INPUT -p tcp –syn -destination-port 80 -j ACCEPT
b# iptables -A INPUT -p tcp –syn -s 192.168.4.12 –destination-port 22 -j ACCEPT
c# iptables -A INPUT -p tcp –syn -j DROP
a? mengijinkan komputer lain mengakses port 80 (web server)
b? mengijinkan pemilik IP 192.168.4.12 mengakses port 22 (SSH)
c? menutup semua akses lain selain akses dengan paket yg sesuai dengan aturan sebelumnya.

dRop paket yang tcp yang NEW tapi tidak membuat SYN flag
# iptables -A INPUT -p TCP ! –syn -m state –state NEW -j DROP
# iptables -A INPUT -p TCP -j tcpsrv
d# iptables -A INPUT -p TCP –destination-port telnet -i eth0 -j DROP
d? menutup koneksi telnet pada jaringan internet(-i eth0), tidak pada LAN(eth1).

*untuk melihat aturan yang sudah ada pada chain, gunakan parameter -L;
# iptables -L
parameter -R untuk mengganti sebuah aturan dengan aturan yang baru.
parameter -D untuk menghapus sebuah aturan.
parameter -F untuk menghapus seluruh aturan pada chain.


2 comments: