Menggantikan FirewallD ke IPTables di CentOS 7

Pada dasarnya FirewallD menggunakan IPTables juga namun yang tidak terbiasa seperti penulis ini, kurang familiar terhadap command -nya.

Install IPTables…

[root@localhost ~]# yum install system-config-firewall system-config-firewall-tui iptables-services

kemudian matikan FirewallD dan jangan lupa auto-run saat booting…

[root@localhost ~]# systemctl stop firewalld && systemctl disable firewalld

sebelum mengaktifkan IPTables, melakukan config dasar rules -nya, ini contoh untuk server DNS, edit file /etc/sysconfig/iptables, karena ini contoh yang hanya membuka port SSH, DNS dan SNMP, rubah sesuaikan keperluannya…

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m multiport -p tcp --dports 22,53 -j ACCEPT
-A INPUT -m state --state NEW -m multiport -p udp --dports 53,161 -j ACCEPT
-A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
-A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
-A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
-A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP
-A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP
-A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP
-A INPUT -p tcp --tcp-flags ALL FIN -j DROP
-A INPUT -p tcp --tcp-flags ALL NONE -j DROP
-A INPUT -p tcp --tcp-flags ALL PSH,FIN -j DROP
-A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j DROP
-A INPUT -p tcp --syn --dport 113 -j REJECT --reject-with tcp-reset
-A INPUT -p tcp -m tcp --dport 139 -j DROP
-A INPUT -s 255.255.255.255/32 -j DROP
-A INPUT -s 10.0.0.0/8 -j DROP
-A INPUT -s 172.16.0.0/12 -j DROP
-A INPUT -s 192.168.0.0/16 -j DROP
-A INPUT -s 169.254.0.0/16 -j DROP
-A INPUT -s 224.0.0.0/4 -j DROP
-A INPUT -d 224.0.0.0/4 -j DROP
-A INPUT -s 240.0.0.0/5 -j DROP
-A INPUT -d 240.0.0.0/5 -j DROP
-A INPUT -d 0.0.0.0/8 -j DROP
-A INPUT -d 239.255.255.0/24 -j DROP
-A INPUT -p icmp -m icmp --icmp-type address-mask-request -j DROP
-A INPUT -p icmp -m icmp --icmp-type timestamp-request -j DROP
-A INPUT -m state --state INVALID -j DROP
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

terakhir mengaktifkan IPTables dan akan selalu auto-run saat booting pertama kali

[root@localhost ~]# systemctl start iptables && systemctl enable iptables

untuk mengecek rules IPTables yang berjalan…

[root@localhost ~]# iptales -t filter -L