凌峰创科服务平台

Linux服务器防火墙如何查看?

在Linux服务器管理中,防火墙是保障系统安全的重要屏障,有效控制网络流量并防止未授权访问,不同Linux发行版默认使用不同的防火墙管理工具,如CentOS/RHEL系列的firewalld、Ubuntu系列的ufw(Uncomplicated Firewall),以及传统的iptables,本文将详细介绍如何查看Linux服务器防火墙的状态、规则、配置信息及常见操作方法,帮助管理员全面掌握防火墙的监控与管理技巧。

Linux服务器防火墙如何查看?-图1
(图片来源网络,侵删)

查看防火墙状态与基本信息

首先需要确认防火墙是否处于运行状态,这是基础的安全检查步骤,对于使用systemd的系统,可通过systemctl命令管理防火墙服务。

检查防火墙服务状态
firewalld为例,执行以下命令:

systemctl status firewalld

若输出显示active (running),则表示防火墙已启用;若为inactive (dead),则表示防火墙未运行,同理,对于ufw,使用:

systemctl status ufw

使用防火墙专用命令查看状态

Linux服务器防火墙如何查看?-图2
(图片来源网络,侵删)
  • firewalld
    firewall-cmd --state

    直接返回runningnot running,适用于快速判断。

  • ufw
    ufw status

    输出可能为Status: active(启用)、inactive(禁用)或disabled(未安装)。

查看防火墙默认策略
默认策略决定了未明确匹配的流量处理方式,通常为DROP(丢弃)或REJECT(拒绝)。

  • firewalld
    firewall-cmd --get-default-zone

    查看默认区域(如public),并通过以下命令查看区域的默认策略:

    Linux服务器防火墙如何查看?-图3
    (图片来源网络,侵删)
    firewall-cmd --zone=public --list-all
  • iptables(传统工具):
    iptables -L -n -v

    Chain INPUTChain FORWARD中查看policy列,默认策略通常为DROPACCEPT

查看防火墙规则详情

防火墙规则是实际控制流量的核心,管理员需要定期检查规则的有效性、端口开放情况及IP白名单/黑名单。

firewalld规则查看

  • 列出所有区域的规则
    firewall-cmd --list-all-zones

    输出包含每个区域的接口、服务、端口、端口转发等配置,适合全局查看。

  • 查看特定区域的规则
    firewall-cmd --zone=public --list-ports

    显示已开放的端口(如80/tcp 443/tcp);

    firewall-cmd --zone=public --list-services

    显示已允许的服务(如http https)。

  • 查看富规则(Rich Rules)
    富规则是更精细的控制策略,通过以下命令查看:
    firewall-cmd --list-rich-rules

ufw规则查看

  • 查看所有规则

    ufw status verbose

    输出包含规则编号、动作(allow/deny)、协议、端口、IP地址等详细信息,

    Status: active
    Logging: on (low)
    Default: deny (incoming), allow (outgoing)
    New profiles: skip
    To                         Action      From
    --                         ------      ----
    22/tcp                     ALLOW       Anywhere                  
    80/tcp                     ALLOW       Anywhere                  
    22/tcp (v6)                ALLOW       Anywhere (v6)             
    80/tcp (v6)                ALLOW       Anywhere (v6)             
  • 查看规则编号

    ufw status numbered

    输出带编号的规则,便于后续删除或修改(如ufw delete 2删除第二条规则)。

iptables规则查看
iptables规则较为复杂,需结合链(Chain)和匹配条件(如-p tcp--dport 80)进行查看。

  • 查看所有规则
    iptables -L -n -v --line-numbers

    -n以数字形式显示IP和端口,避免DNS解析延迟;--line-numbers显示规则编号,方便管理。

  • 查看特定链的规则
    iptables -L INPUT -n -v

    只查看INPUT链的规则,适合关注入站流量控制。

  • 查看NAT规则
    iptables -t nat -L -n -v

    查看网络地址转换相关的规则,如端口转发(DNAT/SNAT)。

使用表格对比不同工具的规则查看命令
| 防火墙工具 | 查看所有规则命令 | 查看端口/服务命令 | 查看规则编号/编号删除示例 | |------------|---------------------------|----------------------------------|----------------------------------| | firewalld | firewall-cmd --list-all | firewall-cmd --list-ports | 无编号,需通过--zone--remove-port删除 | | ufw | ufw status verbose | ufw status(显示端口和服务) | ufw status numbered + ufw delete <num> | | iptables | iptables -L -n -v | iptables -L INPUT -n --dport 80 | iptables -L --line-numbers + iptables -D INPUT <num> |

查看防火墙日志与连接状态

防火墙日志是排查安全事件的重要依据,而连接状态可帮助实时监控活动会话。

查看防火墙日志

  • firewalld日志
    默认日志位于/var/log/firewalld,可通过journalctl查看:
    journalctl -u firewalld -f

    -f参数实时跟踪日志输出。

  • ufw日志
    日志文件通常为/var/log/ufw.log,使用tail命令实时查看:
    tail -f /var/log/ufw.log

    日志格式包含时间、动作(ALLOW/DENY)、源IP、目标端口等信息。

  • iptables日志
    需先通过iptables -A INPUT -j LOG将丢弃/拒绝的流量记录到日志,日志文件默认为/var/log/messages,使用:
    grep "iptables" /var/log/messages | tail -n 20

查看活跃连接

  • firewalld
    firewall-cmd --get-active-connections

    显示当前活跃的区域和连接接口。

  • ss/netstat(通用工具):
    查看与防火墙规则相关的连接,
    ss -tulpn | grep :80

    查看监听80端口的进程及PID,结合iptables规则判断是否允许访问。

常见问题排查

在查看防火墙时,可能会遇到规则未生效、日志无记录等问题,以下为排查思路:

  1. 规则未生效:检查防火墙服务是否运行、规则是否添加到正确的区域(firewalld)、规则语法是否正确(iptables)。
  2. 日志无记录:确认日志功能是否启用(如ufw logging on),检查日志文件权限及磁盘空间。
  3. 特定端口无法访问:使用telnetnc测试端口连通性,结合iptables -L INPUT -n -v查看规则是否匹配流量。

相关问答FAQs

Q1: 如何区分防火墙规则中的DROP和REJECT策略?
A: DROP策略会直接丢弃数据包,不返回任何响应,可能导致客户端超时;REJECT策略会发送拒绝响应(如ICMP错误包),客户端会立即收到连接失败提示,可通过iptables -L INPUT -n -v查看策略,或使用tcpdump抓包分析响应行为。

Q2: 防火墙规则显示端口已开放,但外部仍无法访问,可能的原因有哪些?
A: 可能原因包括:(1)安全组(如云服务器ECS安全组)未开放对应端口;(2)SELinux或AppArmor阻止流量;(3)服务未监听正确地址(如仅监听127.0.0.1);(4)网络路径存在其他防火墙设备(如硬件防火墙),需依次排查:检查安全组配置、getenforce查看SELinux状态、使用netstat -tulnp确认服务监听地址、测试网络连通性。

分享:
扫描分享到社交APP
上一篇
下一篇