Cara setup iptables Firewall di CentOS 6

By | August 8, 2015

Panduan cara setup konfigurasi iptables (firewall) di CentOS 6, pertama-tama tentukan layanan dan port yang digunakan di server

Saya berasumsi bahwa server ini hanya bagi hosting situs, dan tak berlaku sekiranya akan digunakan selaku router atau menyediakan layanan lain misalnya IRC dll.

Di sini, kita membutuhkan layanan berikut:

  • HTTP (TCP di port 80)
  • HTTPS (TCP di port 443)
  • SMTP (TCP di port 25, 465)
  • IMAP (TCP di port 143, 993)
  • POP3 (TCP di port 110, 995)
  • SSH (TCP di port 22)
  • NTP (UDP di port 123)
  • DNS (TCP dan UDP di port 53)
  • ping (ICMP)

iptables memenej lalu lintas dengan daftar rule/aturan. Ketika paket jaringan yang dikirim ke server, iptables akan memeriksa mereka menggunakan setiap rule secara berurutan dan mengambil tindakan yang sesuai. Jikalau rule terpenuhi, rule lain akan diabaikan. Jikalau tak ada rule terpenuhi, iptables akan menggunakan kebijakan default.

Segala trafik dapat dikategorikan selaku INPUT, OUTPUT, dan FORWARD.

Trafik INPUT dapat berupa normal atau berbahaya, mesti diizinkan selektif.

Trafik OUTPUT biasanya dianggap aman dan mesti diizinkan.

Trafik FORWARD tak bermanfaat dan mesti diblokir.

Sekarang ini, mari kita mengkonfigurasi aturan iptables sesuai dengan keperluan kita. Segala command berikut mesti dieksekusi dari terminal SSH Sahabat selaku root.

Periksa aturan yang terdapat:

iptables -L -n

Reset rules yang terdapat

iptables -F; iptables -X; iptables -Z

Catatan, sekiranya ada kesalahan konfigurasi di aturan iptables, dapat jadi akses Sahabat diblokir dari server (blockouts). Bagi antsipasi tambahkan aturan berikut, jangan lupa diganti dengan IP publik Sahabat, misal 1.2.3.4 atau 1.2.3.0/24

iptables -A INPUT -s Tempat tinggal-IP-Sahabat -p tcp --dport 22 -j ACCEPT

Biarkan seluruh trafik loopback (lo) dan drop seluruh traffic ke 127.0.0.0/8 selain lo:

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -d 127.0.0.0/8 -j REJECT

Memblokir serangan yang umum

iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

Izinkan seluruh established koneksi inbound:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Izinkan koneksi HTTP and HTTPS inbound traffic:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Izinkan user menggunakan SMTP Server

iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT

Izinkan user membaca email lewat jalur POP3 server

iptables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 995 -j ACCEPT

Izinkan user menggunakan protokol IMAP

iptables -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT

Izinkan koneksi SSH:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Izinkan koneksi NTP

iptables -A INPUT -p udp --dport 123 -j ACCEPT

Izinkan kueri DNS

iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT

Izinkan Ping

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

Dan yang terakhir mengatur kebijakan default

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

Menyimpan konfigurasi iptables

Setiap perubahan/konfigurasi yang dikerjakan di atas telah berhasil merancang efek, tetapi tak/belum permanen. Jikalau kita tak menyimpan konfigurasi tersebut ke hard disk, konfigurasi itu akan hilang setelah aplikasi reboot.

Simpan konfigurasi iptables dengan command berikut:

service iptables save

Konfigurasi akan disimpan pada file /etc/sysconfig/iptables. Sahabat dapat meninjau atau memodifikasi aturan dengan mengedit file itu.

Solusi apabila terblokir

Jikalau Sahabat diblokir dari server Sahabat karena kesalahan konfigurasi, Sahabat masih dapat memperoleh kembali akses Sahabat dengan beberapa solusi berikut ini.

Solusi pertama-tama

Jikalau Sahabat belum menyimpan hasil modifikasi konfigurasi iptables, Sahabat dapat me-restart server dari panel VPS, karenanya iptables akan kembali seperti semula.

Solusi kedua

Jikalau Sahabat telah menyimpan konfigurasi iptables, Sahabat dapat login server lewat panel VPS kemudian login menggunakan konsol, dan masukan command iptables -F bagi mereset seluruh aturan iptables.

Solusi ketiga

Hubungi tim support provider hosting Sahabat.


Sumber https://idnetter.com