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.
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