温馨提示×

如何测试debian防火墙策略

小樊
71
2026-09-23 15:04:37
栏目: 智能运维

在 Debian 系统中,“防火墙”通常指 iptables / nftables,以及常见的前端管理工具(如 ufw、firewalld)。下面按使用场景说明如何测试防火墙策略。


一、确认你用的是哪种防火墙

1. 查看是否使用 ufw

sudo ufw status
  • Status: active → 使用 ufw
  • Status: inactive → 未启用

2. 查看 iptables 规则

sudo iptables -L -n -v

3. 查看 nftables(较新 Debian)

sudo nft list ruleset

二、本地测试防火墙策略(最常用)

方法 1:用 telnet / nc 测试端口

telnet 127.0.0.1 22
# 或
nc -vz 127.0.0.1 22
  • 能连上 → 端口放行
  • 连接被拒 → 被防火墙或服务拒绝

⚠️ 注意:本地回环(lo)通常不被防火墙限制


方法 2:从另一台机器测试(推荐)

在另一台 Linux / Windows 机器上:

telnet <debian_ip> 80
nc -vz <debian_ip> 22

或用:

nmap <debian_ip>

三、测试 ufw 防火墙策略

1. 查看规则

sudo ufw status numbered

2. 临时开放/关闭端口测试

sudo ufw allow 8080
sudo ufw deny 8080

3. 模拟测试(不立即生效)

sudo ufw deny from 192.168.1.100

然后从该 IP 测试访问。


四、测试 iptables 策略

1. 添加测试规则

sudo iptables -A INPUT -p tcp --dport 12345 -j DROP

测试:

nc -vz <ip> 12345

2. 查看命中情况

sudo iptables -L INPUT -v -n

看 pkts 是否增加。

3. 删除测试规则

sudo iptables -D INPUT -p tcp --dport 12345 -j DROP

五、测试 nftables 策略

1. 添加测试规则

sudo nft add rule inet filter input tcp dport 12345 drop

2. 查看规则

sudo nft list ruleset

3. 删除规则

sudo nft delete rule inet filter input handle <handle_id>

六、日志方式验证防火墙是否拦截

ufw 日志

sudo ufw logging on
sudo tail -f /var/log/ufw.log

iptables 日志

sudo iptables -A INPUT -j LOG --log-prefix "IPTABLES-DROP: "
dmesg | grep IPTABLES-DROP

七、常见测试场景示例

测试目标 方法
是否允许 SSH nc -vz ip 22
是否屏蔽某 IP ufw deny from ip
端口是否被 DROP iptables -L -v
外部能否访问 Web 浏览器 / curl

八、安全建议

  • 测试完及时删除测试规则
  • 远程服务器不要先 deny SSH
  • 可用 tmux / screen 防断连

如果你愿意,可以告诉我:

  • 你用的是 ufw / iptables / nftables
  • 想测试的是 入站 / 出站 / 特定端口 / 特定 IP

我可以直接给你可复制的测试命令。

0 踩