当前位置:首页 > Linux > 正文

Linux防火墙如何配置

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

️ 注意:

Linux防火墙如何配置  第1张

  • 规则修改后需手动保存,否则重启失效。
  • 复杂规则需熟悉链(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)。


通用检查与故障排除

  1. 验证防火墙状态
    sudo systemctl status firewalld  # firewalld
    sudo ufw status                  # ufw
  2. 查看端口监听
    sudo ss -tulnp | grep :80  # 检查80端口是否被监听
  3. 诊断连接问题
    traceroute example.com  # 跟踪路由
    telnet example.com 22   # 测试端口连通性

安全操作建议

  1. 备份规则
    sudo iptables-save > ~/iptables-backup.txt  # iptables备份
  2. 避免锁定自己
    • 修改规则前确保放行当前SSH连接。
    • 使用 cron 设置超时回滚:sudo ufw disable(5分钟后执行)。
  3. 最小权限原则
    • 仅开放必要端口(如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 权限,生产环境建议先在测试机验证,不同发行版命令可能略有差异,请以官方文档为准。

0