上一篇
Linux如何配置防火墙?
- Linux
- 2025-07-05
- 2037
Linux系统访问防火墙设置通常需root权限,不同发行版使用不同工具:CentOS/RHEL用
firewall-cmd
命令,Ubuntu常用
ufw
命令,或直接编辑
iptables/nftables
规则。
在Linux系统中,防火墙是保护系统安全的核心组件,不同发行版和版本可能使用不同的防火墙管理工具,以下是主流工具的详细访问和配置方法,操作前请确保拥有sudo
权限。
主流防火墙工具及访问方法
iptables
(传统工具,通用性强)
-
适用场景:所有Linux发行版(需手动安装)。
-
访问方法:
# 查看当前规则 sudo iptables -L -n -v # 临时允许端口(示例:允许80端口) sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 保存规则(依赖发行版) sudo apt-get install iptables-persistent # Ubuntu/Debian sudo netfilter-persistent save
-
配置文件路径:
/etc/iptables/rules.v4
(IPv4规则)/etc/iptables/rules.v6
(IPv6规则)
firewalld
(Red Hat/CentOS/Fedora默认)
-
核心概念:通过“区域”(zone)管理网络信任级别。
-
访问方法:
# 启动服务 sudo systemctl start firewalld sudo systemctl enable firewalld # 查看活动区域 sudo firewall-cmd --get-active-zones # 开放端口(示例:永久开放443端口) sudo firewall-cmd --permanent --add-port=443/tcp sudo firewall-cmd --reload # 重载配置 # 允许服务(示例:SSH) sudo firewall-cmd --permanent --add-service=ssh
-
图形界面(可选):
安装firewall-config
包,运行sudo firewall-config
。
ufw
(Ubuntu/Debian简易工具)
-
特点:简化
iptables
操作。 -
访问方法:
# 启用防火墙 sudo ufw enable # 允许端口或服务 sudo ufw allow 22/tcp # 开放SSH端口 sudo ufw allow http # 或直接使用服务名 # 拒绝IP访问 sudo ufw deny from 192.168.1.100 # 查看状态 sudo ufw status verbose
-
配置文件路径:
/etc/ufw/user.rules
(自定义规则)。
通用操作与注意事项
检查防火墙状态
- 所有工具通用:
sudo systemctl status firewalld # 检查firewalld sudo ufw status # 检查ufw
端口管理命令对比
操作 | iptables | firewalld | ufw |
---|---|---|---|
开放端口 | iptables -A INPUT -p tcp --dport 80 -j ACCEPT |
firewall-cmd --permanent --add-port=80/tcp |
ufw allow 80/tcp |
关闭端口 | iptables -D INPUT -p tcp --dport 80 -j ACCEPT |
firewall-cmd --permanent --remove-port=80/tcp |
ufw deny 80/tcp |
保存规则 | 需手动保存(见上文) | 自动保存,需--reload 生效 |
自动保存 |
关键安全建议
- 最小化开放端口:仅允许必要服务(如SSH、HTTP/HTTPS)。
- 测试后再保存:
使用iptables
时,先通过命令临时修改,测试无误后再保存,避免锁死远程连接。 - 备份配置:
修改前备份配置文件(如cp /etc/ufw/user.rules ~/ufw_backup
)。
故障排查
-
端口未生效?
- 检查服务是否监听:
ss -tuln | grep <端口号>
。 - 确认规则已加载:
sudo iptables -L
或sudo firewall-cmd --list-all
。
- 检查服务是否监听:
-
误锁自己解决方案:
- 物理机:通过本地终端重启防火墙服务(如
sudo systemctl restart firewalld
)。 - 云服务器:使用云平台提供的“救援模式”或控制台恢复。
- 物理机:通过本地终端重启防火墙服务(如
工具选择指南
- 初学者:用
ufw
(Ubuntu/Debian)或firewalld
图形界面。 - 高级用户/跨平台:学习
iptables
基础语法。 - 服务器环境:推荐
firewalld
(动态规则热更新)。
引用说明:
- Red Hat官方文档:Firewalld指南
- Ubuntu社区Wiki:UFW使用教程
- Netfilter(iptables)官网:https://netfilter.org/ 基于Linux内核5.4+及主流发行版(Ubuntu 22.04/CentOS 8)验证,操作前请查阅您的系统版本文档。