CentOS 7 防火墙(iptables)配置总结
1. 禁止指定IP访问除22端口外的所有端口
使用firewalld
# 启动并设置firewalld开机启动
systemctl start firewalld
systemctl enable firewalld
# 允许指定IP访问22端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept'
# 拒绝该IP访问所有其他端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject'
# 重新加载防火墙使规则生效
firewall-cmd --reload
# 验证规则
firewall-cmd --list-rich-rules
使用iptables
# 允许指定IP访问22端口
iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT
# 拒绝该IP访问所有其他端口
iptables -A INPUT -s 192.168.1.100 -j DROP
# 保存规则
service iptables save
# 或
iptables-save > /etc/sysconfig/iptables
2. 备份iptables配置
# 备份IPv4规则
iptables-save > /etc/sysconfig/iptables_backup_$(date +%Y%m%d)
# 备份IPv6规则
ip6tables-save > /etc/sysconfig/ip6tables_backup_$(date +%Y%m%d)
# 恢复配置
iptables-restore < /etc/sysconfig/iptables_backup_20250909
3. 删除iptables规则
# 查看规则及序号
iptables -L INPUT --line-numbers
# 通过序号删除
iptables -D INPUT [规则序号]
# 或通过完整规则匹配删除
iptables -D INPUT -s 192.168.1.100 -j DROP
# 保存修改
service iptables save
4. 放通ping(ICMP请求)
# 允许所有IP的ping请求
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
# 只允许特定IP的ping请求
iptables -A INPUT -s 192.168.1.100 -p icmp --icmp-type echo-request -j ACCEPT
# 允许本机回应ping
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
# 保存规则
service iptables save
5. 命令详解:iptables -A INPUT -s 192.168.1.100 -p icmp --icmp-type echo-request -j ACCEPT
iptables:Linux防火墙配置工具
-A INPUT:向INPUT链(处理进入本机的流量)追加一条规则
-s 192.168.1.100:指定源IP地址为192.168.1.100
-p icmp:指定协议为ICMP(互联网控制消息协议)
--icmp-type echo-request:指定ICMP类型为echo-request(即ping请求)
-j ACCEPT:匹配规则后执行ACCEPT动作(允许通过)
评论一下?