Cara setup iptables Firewall di CentOS 6

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

Saya berasumsi bahwa server ini hanya untuk hosting website, dan tidak berlaku jika akan digunakan sebagai router atau menyediakan layanan lain misalnya IRC dll.

Di sini, kita membutuhkan layanan berikut:

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

iptables mengontrol 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. Jika rule terpenuhi, rule lain akan diabaikan. Jika tidak ada rule terpenuhi, iptables akan menggunakan kebijakan default.

Semua trafik dapat dikategorikan sebagai INPUT, OUTPUT, dan FORWARD.

Trafik INPUT dapat berupa normal atau berbahaya, harus diizinkan selektif.
Trafik OUTPUT biasanya dianggap aman dan harus diizinkan.
Trafik FORWARD tidak berguna dan harus diblokir.

Sekarang, mari kita mengkonfigurasi aturan iptables sesuai dengan kebutuhan kita. Semua perintah berikut harus dieksekusi dari terminal SSH Anda sebagai root.

Periksa aturan yang ada:

iptables -L -n

Reset rules yang ada

iptables -F; iptables -X; iptables -Z

Catatan, jika ada kesalahan konfigurasi pada aturan iptables, bisa jadi akses Anda diblokir dari server (blockouts). Untuk antsipasi tambahkan aturan berikut, jangan lupa diganti dengan IP publik Anda, misal 1.2.3.4 atau 1.2.3.0/24

iptables -A INPUT -s Alamat-IP-Anda -p tcp --dport 22 -j ACCEPT

Biarkan semua trafik loopback (lo) dan drop semua 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 semua 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 melalui 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 dibuat di atas telah berhasil membuat efek, tetapi tidak/belum permanen. Jika kita tidak menyimpan konfigurasi tersebut ke hard disk, konfigurasi itu akan hilang setelah sistem reboot.

Simpan konfigurasi iptables dengan perintah berikut:

service iptables save

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

Solusi apabila terblokir

Jika Anda diblokir dari server Anda karena kesalahan konfigurasi, Anda masih bisa mendapatkan kembali akses Anda dengan beberapa solusi berikut ini.

Solusi pertama

Jika Anda belum menyimpan hasil modifikasi konfigurasi iptables, Anda dapat me-restart server dari panel VPS, maka iptables akan kembali seperti semula.

Solusi kedua

Jika Anda telah menyimpan konfigurasi iptables, Anda bisa login server melalui panel VPS kemudian login menggunakan konsol, dan masukan command iptables -F untuk mereset semua aturan iptables.

Solusi ketiga

Hubungi tim support provider hosting Anda.

One thought on “Cara setup iptables Firewall di CentOS 6

  1. herbal

    Cool blog!Is your theme custom made or did you download
    it from somewhere? A theme like yours with a few
    simple adjustements would really make my blog jump out.
    Please let me know where you got your theme. Thank you

Add a comment