Debian 防火墙测试步骤
一、先确认正在使用的防火墙与规则
sudo ufw status verbose;若未安装可 sudo apt install ufw。UFW 未启用时显示 Status: inactive。sudo iptables -L -n -v(加 --line-numbers 便于定位规则)。sudo systemctl status firewalld;查看规则用 sudo firewall-cmd --list-all。sudo ss -tulpen 或 sudo netstat -tulpen,确保被测服务本身在监听对应端口。二、连通性测试方法与命令
nmap -sT -p <端口> 127.0.0.1,验证本机策略是否放行。nmap -sT -p <端口> <服务器IP>,观察端口是 open/open|filtered(被放行或被过滤)还是 closed(主机未监听或被拒绝)。curl -I http://<IP>:<端口>/ 或 curl -vk https://<IP>/。mysql -h <IP> -P <端口> -u <user> -p)验证。sudo ufw logging on,在 /var/log/ufw.log 中查看匹配规则的数据包是否被记录。三、按防火墙工具的最小测试用例
sudo ufw allow 22/tcp → sudo ufw status numbered → 从外部 nmap -sT -p 22 <IP> 应为 open。sudo ufw allow 80,443/tcp → curl -I http://<IP>/ 应返回 200/301/302 等成功状态码。sudo ufw allow from <你的IP>/32 to any port 22 → 仅该来源可连 22/tcp,其他来源应被拒绝。sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT → sudo iptables -L -n -v --line-numbers 查看命中计数 → 外部 nmap 验证。sudo iptables -D INPUT <编号>(先用 --line-numbers 查编号)。sudo apt install iptables-persistent → sudo netfilter-persistent save,重启后规则仍存在。sudo firewall-cmd --add-port=80/tcp --permanent && sudo firewall-cmd --reload → sudo firewall-cmd --list-ports 应含 80/tcp → 外部 curl 验证。四、常见故障点与快速排查
ss -tulpen 确认服务已在目标端口监听,否则先修复服务。sudo ufw allow <端口>/<协议>;iptables 若设 INPUT DROP,需显式放行所需端口/来源。-I(插入到链首)优先匹配。sudo iptables -L -v -n 观察 pkts/bytes 计数是否增加。五、安全提示
iptables-save > /etc/iptables/rules.v4;UFW 变更后 sudo ufw status verbose 复核。