IpTables adalah salah satu aplikasi linux, yang berfungsi untuk firewall. Kegunaanya untuk memfiltering semua data yang melewatinya. Dengan aplikasi ini, kita bisa memblokir data yang masuk, atau mengijinkan data yang keluar. Selain IpTables, juga bisa menggunakan shorewall.
Seperti namanya, firewall atau tembok api yang melindungi jaringan lokal dari jaringan luar atau Internet. Untuk mencegah ulah para cracker yang ingin meretas ke suatu sistem jaringan. Firewall ada yang berbentuk piranti lunak (software). Dan ada juga yang berbentuk piranti keras, yang sudah di implementasikan kedalam sistemnya. Router juga termasuk dalam firewall.
Alur Paket Data
membahas prinsip dasar firewall iptables, mengelola akses internet berdasarkan alamat IP,port aplikasi dan MAC address. Firewall IPTables packet filtering memiliki tiga aturan (policy), yaitu:
• INPUT
Mengatur paket data yang memasuki firewall dari arah intranet maupun internet. kita bisa mengelolakomputer mana saja yang bisa mengakses firewall. misal: hanya komputer IP 192.168.1.100 yang bisa SSHke firewall dan yang lain tidak boleh.
• OUTPUT
Mengatur paket data yang keluar dari firewall ke arah intranet maupun internet. Biasanya output tidak diset,karena bisa membatasi kemampuan firewall itu sendiri.
• FORWARD
Mengatur paket data yang melintasi firewall dari arah internet ke intranet maupun sebaliknya. Policy forward paling banyak dipakai saat ini untuk mengatur koneksi internet berdasarkan port, mac address dan alamat IP Selain aturan (policy) firewall iptables juga mempunyai parameter yang disebut dengan TARGET, yaitu status yang menentukkan koneksi di iptables diizinkan lewat atau tidak. TARGET ada tiga macam yaitu:
a. ACCEPT
Akses diterima dan diizinkan melewati firewall
b.REJECT
Akses ditolak, koneksi dari komputer klien yang melewati firewall langsung terputus, biasanya terdapatpesan “Connection Refused”. Target Reject tidak menghabiskan bandwidth internet karena akses langsung ditolak, hal ini berbeda dengan DROP.
c.DROP
Akses diterima tetapi paket data langsung dibuang oleh kernel, sehingga pengguna tidak mengetahui kalau koneksinya dibatasi oleh firewall, pengguna melihat seakan – akan server yang dihubungi mengalami permasalahan teknis. Pada koneksi internet yang sibuk dengan trafik tinggi Target Drop sebaiknya jangan digunakan.
1. a. Memblok paket yang datang dari sebuah IP
# iptables -I INPUT -s 192.168.0.149 -j REJECT
Peritah di atas digunakan untuk memblok paket dari IP 192.168.0.149. Ada 2 opsi yang digunakan sebenarnya yaitu DROP dan REJECT. Perbedaan dari keduanya adalah kalau REJECT, perintah ini akan memblok paket namun akan memberitahukan bahwa paket tersebut ditolak. Sedangkan kalau DROP, perintah ini akan memblok paket namun tidak diberitahu apakah paket tersebut
b. Memblok paket yang keluar dari sebuah IP
iptables -A OUTPUT -p tcp -d 192.168.10.2 -j DROP
2.Menutup Port
# iptables -A INPUT -p tcp --dport 22 -j REJECT
Perintah di atas memblok port 22 yang biasa digunakan untuk ssh
# iptables -A INPUT -p tcp -i eth0 --dport 23 -j REJECT
Perintah di atas memblok port 22 yang biasa digunakan untuk telnet
# iptables -I INPUT -s 192.168.0.250 -p tcp --dport 23 -j REJECT
Perintah di atas untuk memblok service telnet dari IP 192.168.0.250
3. Membuat Dropped Log file.
iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "PORT 80 DROP: " --log-level 7
iptables -A INPUT -p tcp --destination-port 80 -j DROP
4. Menghapus iptables
# iptables -D INPUT 3
Menghapus iptables pada tabel input di baris ke 3
# iptables -F
Menghapus seluruh iptables
# iptables -F FORWARD
Contoh
iptables
- Untuk menambah daftar
#iptables –t filter -A FORWARD -s 192.168.56.100/32
-j DROP
#iptables -A FORWARD -s 192.168.56.100/32 -j DROP
- Untuk melihat daftar
#iptables -nL
- Untuk menghapus daftar
#iptables -D FORWARD -s 192.168.56.100/32 -j DROP
- Untuk menghapus semua daftar
#iptables -F
- Untuk menyimpan iptables
#iptables-save
- Untuk mendrop service ssh
#iptables -A FORWARD -p tcp --dport 22 -j DROP
- Untuk mendrop icmp (ping) -> semuanya
#iptables -A FORWARD -p icmp -j DROP
- Drop icmp dari jaringan 192.168.56.0
#iptables -A FORWARD -s 192.168.56.0/24 -p icmp -j DROP
- Drop semuanya kecuali dari IP tertentu
#iptables -A FORWARD -s ! 192.168.56.100 -p icmp -j DROP
- Drop ke port 80 (http)
#iptables -A FORWARD -p tcp --dport 80 -j DROP