首页主机资讯ubuntu防火墙故障排查步骤

ubuntu防火墙故障排查步骤

时间2025-12-19 02:15:05发布访客分类主机资讯浏览752
导读:Ubuntu 防火墙故障排查步骤 一 明确防火墙栈与最小检查 先确认系统正在使用哪类防火墙:UFW(Ubuntu 常见默认)、firewalld(常见于 RHEL 系,但部分环境也会安装)、或直接操作 iptables/nftables。...

Ubuntu 防火墙故障排查步骤

一 明确防火墙栈与最小检查

  • 先确认系统正在使用哪类防火墙:UFW(Ubuntu 常见默认)、firewalld(常见于 RHEL 系,但部分环境也会安装)、或直接操作 iptables/nftables
  • 最小检查清单:
    • UFW:执行 sudo ufw status verbosesudo ufw status numbered,确认状态为 active,并检查目标端口是否有 ALLOW IN 规则。
    • firewalld:执行 sudo firewall-cmd --state 查看是否 running;用 sudo firewall-cmd --list-portssudo firewall-cmd --list-all 查看开放端口与区域配置。
    • 直接规则链:执行 sudo iptables -L -n -vsudo iptables -S 查看当前生效规则与策略。
    • 服务状态:必要时用 sudo systemctl status ufwsudo systemctl status firewalld 确认服务是否运行。
    • 原则:UFW 与 firewalld 本质都是对 iptables/nftables 的前端封装,排查时要以“当前实际生效的规则”为准。

二 分层连通性定位

  • 链路层/路由:先排除网络不可达。对目标 IP 执行 ping < IP> ;若不通,优先检查路由、云安全组/本机安全策略、网线/交换与上游网络。
  • 本机监听:确认服务已在正确端口监听。执行 sudo ss -tulpen | grep < 端口> ,看是否存在对应 LISTEN 状态及正确的 PID/程序
  • 本机自测:在服务器本机测试访问 curl -Iv http://127.0.0.1:< 端口> nc -vz 127.0.0.1 < 端口> ,验证应用本身是否可达。
  • 外部探测:从外部主机测试端口可达性,建议用 nmap -sT -p < 端口> < 服务器IP> 查看端口状态(open/filtered/closed)。
  • 结果判读:
    • 本机可连、外部不可连,多半是外部策略/防火墙问题;
    • 本机不可连,多半是服务未监听/配置错误
    • 本机与外部均不可连,优先排查网络与路由

三 防火墙规则核对与修正

  • UFW 场景:
    • 查看并核对:sudo ufw status verbose / sudo ufw status numbered
    • 放行端口:sudo ufw allow < 端口> /tcp(或 /udp,或 sudo ufw allow 22,80,443/tcp 批量放行);
    • 按来源限制:sudo ufw allow from < IP/网段> to any port < 端口>
    • 删除规则:sudo ufw delete allow < 端口> /tcp 或用编号删除 sudo ufw delete < 编号>
    • 使配置持久生效:UFW 默认即持久,修改后无需额外动作。
  • firewalld 场景:
    • 查看状态与规则:sudo firewall-cmd --statesudo firewall-cmd --list-portssudo firewall-cmd --list-all
    • 放行端口:临时 sudo firewall-cmd --add-port=< 端口> /tcp;永久 sudo firewall-cmd --permanent --add-port=< 端口> /tcpsudo firewall-cmd --reload
    • 按来源限制:sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="< IP/网段> " port port="< 端口> " protocol="tcp" accept',再 sudo firewall-cmd --reload
    • 注意区分运行时永久配置,遗漏 --permanent 或未 reload 是常见疏漏。
  • 直接 iptables 场景:
    • 查看:sudo iptables -L -n -vsudo iptables -S
    • 放行示例:sudo iptables -A INPUT -p tcp --dport < 端口> -j ACCEPT(注意规则顺序与策略默认动作);
    • 精细放行来源:sudo iptables -A INPUT -p tcp -s < IP/网段> --dport < 端口> -j ACCEPT
    • 保存:若使用持久化方案(如 iptables-persistent),需执行 sudo netfilter-persistent save 或相应保存命令。

四 日志与抓包确认拦截点

  • 查看防火墙日志:
    • UFW/iptables:日志通常写入系统日志,可用 sudo tail -f /var/log/syslog | grep -i "UFW\|iptables\|DROP" 实时观察;
    • firewalld:用 sudo journalctl -u firewalld -f 查看服务日志;如需记录被拒绝的数据包,可在 /etc/firewalld/firewalld.conf 中设置 LogDenied=all 并重启 firewalld。
  • 主动记录被丢弃包(iptables):
    • 新建日志链:sudo iptables -N LOGGING
    • 记录并限速:sudo iptables -A INPUT -j LOGGING
    • 丢弃并记录:sudo iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
    • 继续处理:sudo iptables -A LOGGING -j DROP
    • 分析:在 /var/log/syslog/var/log/kern.log 中检索 IPTables-Dropped 前缀,统计高频源 IP 与端口。
  • 抓包定位:在服务器上执行 sudo tcpdump -ni any "tcp port < 端口> ",从结果判断是未到达本机(可能被上游拦截)、到达但未握手(可能被本机防火墙/服务策略拒绝)、还是握手后被应用关闭

五 常见症状快速处置

  • 新改端口仍连不上:
    • 核对 UFW/firewalld/iptables 是否已放行该端口与协议;
    • 若使用 firewalld,确认已 sudo firewall-cmd --reload 使永久规则生效;
    • ss -lntp | grep < 端口> 确认服务确实在该端口监听;
    • 外部用 nmap 复核端口状态。
  • 出现 “No route to host”:
    • 该提示更偏向网络层不可达(路由、云安全组/ACL、物理链路)而非端口策略;先排查网络连通性与上游策略,再回到防火墙核对。
  • 服务已放行但仍被拒:
    • 检查是否有更靠前或默认策略的 DROP/REJECT 规则;
    • 核对协议(TCP/UDP)、来源地址限制、端口范围;
    • 打开日志或抓包确认包是否到达 INPUT 链以及被哪条规则处理。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ubuntu防火墙故障排查步骤
本文地址: https://pptw.com/jishu/775803.html
Debian Exploit:攻击者如何利用零日漏洞 如何利用Debian Exploit进行安全培训

游客 回复需填写必要信息