上一篇
Linux防火墙如何配置
- Linux
- 2025-07-05
- 3685
Linux系统主要通过命令行工具管理防火墙: ,1. **iptables**:传统工具,使用
iptables -L
查看规则 ,2. **firewalld**:主流工具(CentOS/RHEL等),通过
firewall-cmd --state
检查状态 ,3. **UFW**:Ubuntu简易工具,
ufw status
查看状态 ,操作需root权限,不同发行版默认工具不同。
在Linux系统中,访问和管理防火墙是系统安全的核心操作,根据发行版和防火墙工具的不同,主要有三种主流方式:iptables(传统工具)、firewalld(Red Hat/CentOS/Fedora默认)和ufw(Ubuntu/Debian简化工具),以下是详细操作指南:
通过 iptables 访问防火墙
iptables 是 Linux 最基础的防火墙工具,直接操作内核级规则。
常用命令:
# 查看当前规则(含详细策略) sudo iptables -L -v --line-numbers # 允许特定端口(如开放80端口) sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 拒绝IP访问(如屏蔽192.168.1.100) sudo iptables -A INPUT -s 192.168.1.100 -j DROP # 保存规则(重启后生效) sudo iptables-save > /etc/iptables/rules.v4 # Debian/Ubuntu sudo service iptables save # CentOS 6
️ 注意:
- 规则修改后需手动保存,否则重启失效。
- 复杂规则需熟悉链(INPUT/OUTPUT/FORWARD)和表(filter/nat)结构。
通过 firewalld 访问防火墙
firewalld 是动态防火墙管理器,支持“区域”概念(如 public、home),适用于 CentOS/RHEL/Fedora。
关键操作:
# 启动服务 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 # 拒绝IP段(如屏蔽10.0.0.0/24) sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.0/24" reject'
优势:
无需重启服务,--reload
可动态应用新规则,避免网络中断。
通过 ufw (Uncomplicated Firewall) 访问防火墙
ufw 是简化版工具,适合 Ubuntu/Debian 新手用户。
基础步骤:
# 启用ufw sudo ufw enable # 允许端口或服务(如开放22端口和Nginx) sudo ufw allow 22 sudo ufw allow 'Nginx Full' # 拒绝特定IP sudo ufw deny from 203.0.113.50 # 查看规则状态 sudo ufw status numbered # 带编号显示规则 # 删除规则(根据编号) sudo ufw delete 2 # 删除第2条规则
提示:
使用ufw app list
查看预定义应用配置(如 Plex、Samba)。
通用检查与故障排除
- 验证防火墙状态
sudo systemctl status firewalld # firewalld sudo ufw status # ufw
- 查看端口监听
sudo ss -tulnp | grep :80 # 检查80端口是否被监听
- 诊断连接问题
traceroute example.com # 跟踪路由 telnet example.com 22 # 测试端口连通性
安全操作建议
- 备份规则
sudo iptables-save > ~/iptables-backup.txt # iptables备份
- 避免锁定自己
- 修改规则前确保放行当前SSH连接。
- 使用
cron
设置超时回滚:sudo ufw disable
(5分钟后执行)。
- 最小权限原则
- 仅开放必要端口(如SSH、HTTP/HTTPS)。
- 使用
--permanent
(firewalld)或持久化保存(iptables/ufw)。
引用说明
- iptables 官方文档:https://netfilter.org/documentation/
- firewalld 手册:https://firewalld.org/documentation/
- ufw 社区指南:https://help.ubuntu.com/community/UFW
- Linux 内核网络栈:https://www.kernel.org/doc/html/latest/networking/index.html
操作需 root 权限,生产环境建议先在测试机验证,不同发行版命令可能略有差异,请以官方文档为准。