Iptable adalah alat administrasi untuk penyaringan paket IPv4 dan NAT. Iptables digunakan untuk mengatur, memelihara, dan memeriksa tabel aturan filter paket IPv4 di kernel Linux. Beberapa tabel yang berbeda dapat didefinisikan. Setiap tabel berisi sejumlah rantai bawaan dan mungkin juga berisi rantai yang ditentukan pengguna. Setiap rantai adalah daftar aturan yang dapat mencocokkan satu set paket. Setiap aturan menentukan apa yang harus dilakukan dengan paket yang cocok. Ini disebut `target', yang mungkin merupakan lompatan ke rantai yang ditentukan pengguna dalam tabel yang sama.
Aturan firewall menentukan kriteria untuk paket dan target. Jika paket tidak cocok, aturan berikutnya dalam rantai diperiksa; jika cocok, maka aturan berikutnya ditentukan oleh nilai target, yang dapat berupa nama rantai yang ditentukan pengguna atau salah satu nilai khusus ACCEPT, DROP, QUEUE, atau RETURN.
- TERIMA artinya membiarkan paket lewat.
- DROP artinya menjatuhkan paket ke lantai
- ANTRIAN berarti meneruskan paket ke ruang pengguna
- RETURN berarti berhenti melintasi rantai ini dan melanjutkan pada aturan berikutnya di rantai sebelumnya.
Ada total 4 rantai:
- MASUKKAN - Rantai default digunakan untuk paket yang ditujukan ke sistem. Gunakan ini untuk membuka atau menutup port masuk dan alamat ip/subnet
- OUTPUT - Rantai default digunakan ketika paket dihasilkan dari sistem. Gunakan ini buka atau tutup port keluar dan alamat ip/subnet
- MAJU - Rantai default digunakan ketika paket dikirim melalui antarmuka lain. Biasanya digunakan saat Anda mengatur Linux sebagai router
- RH-Firewall-1-INPUT - Ini adalah rantai kustom yang ditentukan pengguna. Ini digunakan oleh rantai INPUT, OUTPUT dan FORWARD.
Instalasi Iptables
Kita dapat menginstal iptables melalui perintah berikut.
[root@vpn ~]# yum install iptables -y
Periksa versi iptable :
[root@vpn ~]# iptables --version
iptables v1.3.5
Periksa status iptables :
[root@vpn ~]# service iptables status
Mulai iptables :
[root@vpn ~]# service iptables start
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Untuk mengatur iptables mulai saat boot :
[root@vpn ~]# chkconfig iptables on
File konfigurasi default CentOS adalah /etc/sysconfig/iptables. Ini adalah skrip sistem yang mengaktifkan firewall dengan membaca file ini
Aturan Iptable
1) Setel ulang semua aturan (F) dan rantai (X), diperlukan jika aturan iptables sudah ditentukan
#iptables -t filter -F
#iptables -t filter -X
2) Menampilkan Status firewall
#iptables -L -n -v
3) Memblokir paket null
#iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
4) Tolak serangan SYN -FLOOD
#iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
5) Tolak Paket pengintaian
#iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
6) Menambahkan antarmuka localhost ke filter firewall
#iptables -A INPUT -i lo -j ACCEPT
7) Izinkan lalu lintas server web
#iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
8) Izinkan pengguna menggunakan server SMTP
#iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
9) Izinkan pengguna membaca email di server mereka
izinkan lalu lintas POP3
#iptables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 995 -j ACCEPT
izinkan lalu lintas POP3
#iptables -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
10) Izinkan lalu lintas ssh
#iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
izinkan lalu lintas ke port SSH jika berasal dari satu sumber
#iptables -A INPUT -p tcp -s YOUR_IP_ADDRESS -m tcp --dport 22 -j ACCEPT
11) Izinkan koneksi keluar yang dibuat untuk menerima balasan dari server
#iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
12) Memblokir alamat IP
#iptables -A INPUT -s IP_ADDRESS -j DROP
13) Blokir Port untuk Alamat IP tertentu
#iptables -A INPUT -p tcp -s IP_ADDRESS --dport PORT -j DROP
14) Buka port untuk Alamat IP Tertentu
#iptables -A INPUT -p tcp -s IP_ADDRESS --dport PORT -j ACCEPT
15) Izinkan Printer untuk Alamat IP Tertentu
#iptables -A INPUT -s IP_ADDRESS -p udp -m udp --dport 631 -j ACCEPT
16) Buka DNS
#iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
17) Buka MYSQL Port
#iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
18) Buka Rentang Port (mis:7000-7100 )
#iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 7000:7100 -j ACCEPT
Setelah mengatur semua aturan, Anda perlu menyimpan aturan dan memulai ulang iptables
#service iptables save
#service iptables restart