在Linux系统中,防火墙是保护系统安全的核心组件,它通过控制网络流量进出,有效防御恶意攻击,不同Linux发行版使用不同的防火墙管理工具,本文将详细讲解三种主流工具的操作方法:firewalld(适用于CentOS/RHEL/Fedora)、ufw(适用于Ubuntu/Debian)和基础工具iptables。
firewalld 操作指南(推荐用于CentOS/RHEL 7+)
firewalld提供动态管理功能,支持运行时修改规则而无需重启服务。
基础命令
sudo systemctl stop firewalld sudo systemctl restart firewalld # 设置开机自启 sudo systemctl enable firewalld
开放端口(以HTTP/HTTPS为例)
# 开放80端口(HTTP) sudo firewall-cmd --zone=public --add-port=80/tcp --permanent # 开放443端口(HTTPS) sudo firewall-cmd --zone=public --add-port=443/tcp --permanent # 重新加载配置 sudo firewall-cmd --reload
允许服务(如SSH)
sudo firewall-cmd --zone=public --add-service=ssh --permanent sudo firewall-cmd --reload
阻止特定IP
sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject' --permanent sudo firewall-cmd --reload
查看当前规则
sudo firewall-cmd --list-all # 查看所有规则 sudo firewall-cmd --list-ports # 查看开放端口
ufw 操作指南(推荐用于Ubuntu/Debian)
ufw(Uncomplicated Firewall)是简化版的防火墙管理工具。
启用ufw
sudo ufw enable # 启用 sudo ufw disable # 禁用
开放端口与服务
# 开放SSH(默认端口22) sudo ufw allow ssh # 开放自定义端口(如8080) sudo ufw allow 8080/tcp # 允许特定IP访问 sudo ufw allow from 192.168.1.50
拒绝流量
# 拒绝HTTP访问 sudo ufw deny http # 阻止IP sudo ufw deny from 203.0.113.10
删除规则
# 先查看规则编号 sudo ufw status numbered # 根据编号删除(如删除规则2) sudo ufw delete 2
重置规则
sudo ufw reset # 清除所有规则并禁用
iptables 操作指南(通用底层工具)
iptables是Linux内核的底层防火墙,适用于所有发行版,但规则需手动保存。
开放端口
# 允许80端口 sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允许SSH sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
阻止IP
sudo iptables -A INPUT -s 10.0.0.5 -j DROP
保存规则
# CentOS/RHEL sudo service iptables save # Ubuntu/Debian sudo apt install iptables-persistent sudo netfilter-persistent save
查看规则
sudo iptables -L -v
关键注意事项
-
避免锁定自己
- 修改规则前确保开放SSH端口(默认22),否则可能导致无法远程登录。
- 测试规则前使用
sudo iptables -P INPUT ACCEPT
临时允许所有流量。
-
备份配置
- firewalld:备份
/etc/firewalld/
目录 - ufw:备份
/etc/ufw/
目录 - iptables:运行
sudo iptables-save > backup.rules
- firewalld:备份
-
优先级问题
- 规则按顺序匹配,第一条匹配的规则生效。
- 使用
iptables -I INPUT 1
将规则插入顶部。
-
工具兼容性
避免同时启用多个防火墙工具(如firewalld和iptables),可能引发冲突。
- 初学者:优先使用
ufw
(Ubuntu)或firewalld
(CentOS),操作简单。 - 高级用户:直接操作
iptables
,灵活性更高。 - 生产环境:修改前务必备份规则,并通过
telnet
或nmap
测试端口是否生效。
引用说明: 参考Linux官方文档:
- firewalld: firewalld.org
- ufw: Ubuntu UFW指南
- iptables: netfilter.org
所有命令均在CentOS 8、Ubuntu 22.04 LTS实测验证。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4472.html