Konfigurasi IPTABLES di linux

Konfigurasi IPTABLES di linux

Iptables adalah firewall sederhana yang secara default telah terpasang di semua distro linux populer saat ini. Melalui iptables kita dapat memanage paket-paket yang masuk, keluar, ataupun paket yang  diteruskan.

 

Artikel kali ini hanya akan membahas bagaimana membuat konfigurasi firewall dengan iptables VPS linux Centos 7. Tutorial ini tidak terlalu lengkap karena hanya akan membahas bagaimana membuka port yang kita butuhkan saja, seperti port 22 (SSH), port 80 (HTTP), port 443 (HTTPS) dan kemudian menutup semua port yang tidak kita butuhkan.

 

Catatan: Artikel ini hanya akan membahas konfigurasi iptables di linux untuk IPV4. karena IPV6 sendiri dikelola secara terpisah menggunakan ip6tables vd

 

Sistem Operasi dan versi Iptables.

  • Sistem Operasi: CentOS Linux release 7.5.1804
  • Software: iptables v1.4.21

 

Persyaratan.

  • Akses root pada VPS Centos

 

Instalasi.

Secara default iptables memang sudah terpasang pada Sistem Opearasi Centos, jika belum kalian dapat menjalankan perintah berikut ini.

yum -y install iptables iptables-services

Jika sudah di install dengan benar, seharus nya kita bisa menggunakan perintah iptables untuk query versinya:

iptables --version
output: iptables v1.4.21

Untuk dapat menjalan iptables saat boot / restart, jalankan perintah berikut.

systemctl start iptables
systemctl enable iptables

 

Tentukan Port yang akan dibuka

  • Port 22 (SSH)
  • Port 80 (HTTP)
  • Port 443 (HTTPS)

 

Blokir beberapa serangan yang paling umum terjadi

Kita dapat menambahkan aturan sederhana untuk menolak / memblokir beberapa serangan yang paling umum terjadi seperti, script-kiddies, Syn-flood, null packets dan lain-lain.

iptables -A INVALID -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
iptables -A INVALID -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
iptables -A INVALID -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
iptables -A INVALID -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INVALID -p tcp -m tcp --tcp-flags FIN,RST FIN,RST -j DROP
iptables -A INVALID -p tcp -m tcp --tcp-flags FIN,ACK FIN -j DROP
iptables -A INVALID -p tcp -m tcp --tcp-flags PSH,ACK PSH -j DROP
iptables -A INVALID -p tcp -m tcp --tcp-flags ACK,URG URG -j DROP

 

ijinkan Sesi Sambungan Yang Terbentuk

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

 

Buka port untuk layanan yang telah kita tentukan tadi

Pastikan kita mengijinkan traffict yang masuk dari localhost atau loopback

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

Kemudian kita akan mengijinkan semua koneksi yang keluar dan memblokir semua traffict yang masuk

iptables -P OUTPUT ACCEPT
iptables -P INPUT DROP

 

Simpan Konfiguasi

sejauh ini iptables telah di konfigurasi dengan benar, namun semua yang kita kerjakan tersebut akan hilang jika vps kita restart / reboot tanpa menyimpan konfigurasi. Untuk itu kita bisa menggunakan perintah iptables-save untuk menyimpan konfigurasi iptables.

iptables-save > /etc/sysconfig/iptables

Cukup sekian turorial bagaimana cara Konfigurasi IPTABLES di linux.

About the Author