在Linux系统中,防火墙是保护系统安全的核心组件,修改防火墙规则需要谨慎操作,以下详细指南涵盖主流工具(iptables、firewalld、UFW),操作前请注意:
- 重要备份:执行
iptables-save > /backup/iptables.rules
或firewall-cmd --runtime-to-permanent
- 权限要求:所有命令需
root
权限(使用sudo
) - 测试验证:修改后务必测试连通性
使用 iptables(传统工具,通用所有发行版)
核心概念:规则链(INPUT/OUTPUT/FORWARD)
# 允许特定端口(示例:开放80端口) iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允许IP访问(示例:允许192.168.1.10访问SSH) iptables -A INPUT -p tcp -s 192.168.1.10 --dport 22 -j ACCEPT # 拒绝所有其他入站流量(必须最后执行!) iptables -A INPUT -j DROP # 删除规则(先列出带编号规则) iptables -L --line-numbers iptables -D INPUT 3 # 删除INPUT链第3条规则 # 保存规则(依发行版选择) service iptables save # RHEL/CentOS 6 iptables-save > /etc/iptables/rules.v4 # Debian/Ubuntu
使用 firewalld(RHEL/CentOS/Fedora 默认)
核心概念:区域(zone)与服务(service)
# 查看活动区域 firewall-cmd --get-active-zones # 开放端口(示例:永久开放443端口) firewall-cmd --permanent --add-port=443/tcp # 添加服务(示例:允许HTTP服务) firewall-cmd --permanent --add-service=http # 允许IP(示例:允许192.168.1.0/24访问DNS) firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="dns" accept' # 移除规则(将 --add 替换为 --remove) firewall-cmd --permanent --remove-port=8080/tcp # 重载配置(不中断连接) firewall-cmd --reload
使用 UFW(Ubuntu/Debian 简化工具)
# 启用防火墙 ufw enable # 允许服务(示例:SSH与Nginx) ufw allow ssh ufw allow 'Nginx Full' # 开放80/443 # 允许端口范围(示例:UDP 5000-5010) ufw allow 5000:5010/udp # 拒绝IP(示例:屏蔽203.0.113.5) ufw deny from 203.0.113.5 # 删除规则(先列出编号) ufw status numbered ufw delete 2 # 删除第2条规则
关键安全建议
- 最小化开放:仅暴露必要端口(如Web服务器只需80/443)
- 默认拒绝策略:设置
ufw default deny
或iptables -P INPUT DROP
- 日志监控:添加日志规则
iptables -A INPUT -j LOG --log-prefix "IPTABLES-DENIED: "
- 防锁定:
- 先允许当前SSH连接:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- 测试后再应用新规则
- 先允许当前SSH连接:
测试与故障排查
- 检查端口状态:
nc -zv 你的IP 端口
或telnet 你的IP 端口
- 查看防火墙日志:
- iptables:
dmesg | grep iptables
- firewalld:
journalctl -u firewalld
- iptables:
- 临时禁用(紧急恢复):
iptables -F # 清空规则 systemctl stop firewalld # 停止firewalld ufw disable # 禁用UFW
引用说明:
- iptables 官方文档:https://www.netfilter.org/documentation/
- firewalld 配置指南:https://firewalld.org/documentation/
- UFW 手册页:
man ufw
(或访问 https://help.ubuntu.com/community/UFW) 基于 Linux 内核 5.x+ 及主流发行版(RHEL 8+, Ubuntu 20.04+)验证,实际操作请以您的环境为准。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9974.html