CentOS 中firewalld 与 iptables
centos7/8中firewall-cmd代替了iptables,换回来使用以下命令:
yum install iptables-services #安装iptables
systemctl stop firewalld.service #停止firewalld
systemctl mask firewalld.service #禁止自动和手动启动firewalld
systemctl start iptables.service #启动iptables
systemctl start ip6tables.service #启动ip6tables
systemctl enable iptables.service #设置iptables自启动
systemctl enable ip6tables.service #设置ip6tables自启动
创建规则
过滤源地址范围:
iptables -A INPUT -m iprange --src-range 192.168.1.2-192.168.1.7 -j DROP
过滤目标地址范围:
iptables -A INPUT -m iprange --dst-range 192.168.1.2-192.168.1.7 -j DROP
禁止所有对80端口的访问:
iptables -I INPUT -p tcp --dport 80 -j DROP
允许指定地址段对80端口的访问:
iptables -I INPUT -s 111.111.0.0/16 -p tcp --dport 80 -j ACCEPT
允许指定地址范围对80端口的访问:
iptables -I INPUT -m iprange --src-range 10.41.8.200-10.41.8.220 -p tcp --dport 80 -j ACCEPT
保存并重启iptables服务:
service iptables save
service iptables restart
service iptables status
参数详解
1. iptables -I 和 iptables -A 区别:
防火墙由上往下匹配,-A 会将后执行的策略添加到已有策略后,而-I 则会插入到已有策略的前(既成为第一条策略)。
显示规则,标记行号
iptables -nL --line-number
删除规则,指定行号
iptables -D INPUT 3
更改规则,指定行号
将第三条规则改为ACCEPT:
iptables -R INPUT 3 -j ACCEPT