Dari awal dulu kenal ipchains trus ganti jadi iptables. Belum sempet mainan sampe ngeh banget, eh sekarang sudah ada firewalld. Karena kebanyakan berkutat dengan distro Centos 7 yang defaultnya menggunakan firewalld, akhirnya mau ndak mau ya harus ngeh juga walaupun sedikit-sedikit. Sebelumnya saya pernah posting soal iptables untuk Asterisk di sini. Jadi saya coba ndak jauh-jauh mengingat perintah berikut ini untuk server-server VoIP saya. Yang biasanya saya lakukan sebagai berikut:
Mengaktifkan firewalld agar secara default up setelah reboot atau start.
# systemctl enable firewalld # systemctl start firewalld
Mengganti port ssh dari 22 ke 8022 (soalnya kalo ndak begitu, selalu diprobe dari mana-mana):
# firewall-cmd --permanent --zone=public --add-port=8022/tcp # firewall-cmd --permanent --zone=public --remove-service=ssh
Lalu menambahkan port-port penting untuk produksi:
# firewall-cmd --permanent --zone=public --add-service={http,https} # firewall-cmd --permanent --zone=public --add-port={5060,5061,7000,7001,8000,8443,11000}/tcp # firewall-cmd --permanent --zone=public --add-port={5060,5061,7000,7001,8000,8443,11000}/udp # firewall-cmd --permanent --zone=public --add-port=16384-32784/udp
Lalu menambahkan blok ip address yang diperbolehkan untuk mengakses service ke server:
# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="1.2.3.4" accept' # firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="6.7.8.0/24" accept'
Optional, kita bisa menambahkan blocking ICMP. Pertama, kita bisa lihat list tipe ICMP:
# firewall-cmd --get-icmptypes address-unreachable bad-header communication-prohibited destination-unreachable echo-reply echo-request fragmentation-needed host-precedence-violation host-prohibited host-redirect host-unknown host-unreachable ip-header-bad neighbour-advertisement neighbour-solicitation network-prohibited network-redirect network-unknown network-unreachable no-route packet-too-big parameter-problem port-unreachable precedence-cutoff protocol-unreachable redirect required-option-missing router-advertisement router-solicitation source-quench source-route-failed time-exceeded timestamp-reply timestamp-request tos-host-redirect tos-host-unreachable tos-network-redirect tos-network-unreachable ttl-zero-during-reassembly ttl-zero-during-transit unknown-header-type unknown-option
dari list di atas misal kita akan melakukan block echo-reply:
# firewall-cmd --permanent --zone=public --add-icmp-block=echo-reply
Jika dirasa sudah cukup, reload rule di atas dengan perintah:
# firewall-cmd --reload
Dari contoh di atas, sudah keliatan polanya kan? Jika masih belum juga, url berikut ini bisa membantu menjelaskan cara kerja firewalld dengan lebih jelas.
Selamat mencoba!