防火墙深入总结
字数 1240 2025-08-25 22:58:41
防火墙深入总结与配置指南
前言
防火墙是网络安全的重要组成部分,本文将从Windows和Linux两个平台深入总结防火墙的配置、管理与绕过技术,涵盖端口探测、规则配置、流量转发等关键知识点。
Windows防火墙配置与管理
基本命令
-
查看防火墙状态:
netsh advfirewall show allprofiles -
开启/关闭防火墙:
netsh firewall set opmode mode=disable # 关闭防火墙 netsh advfirewall set publicprofile state on # 开启防火墙 -
日志管理:
netsh firewall show logging # 查看防火墙日志目录 netsh advfirewall set currentprofile logging filename "C:\windows\temp\test.log" # 自定义日志位置
规则管理
-
查看所有规则:
netsh advfirewall firewall show rule name=all -
添加规则:
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow -
删除规则:
netsh advfirewall firewall delete rule name="rule name"
端口转发技术
-
添加转发规则:
netsh interface portproxy add v4tov4 listenport=8888 connectaddress=本机ip connectport=3389 -
查看转发规则:
netsh interface portproxy show all -
删除转发规则:
netsh interface portproxy delete v4tov4 listenport=8888 protocol=tcp
Linux防火墙(iptables)配置
基本参数
| 参数 | 作用 |
|---|---|
| -P | 设置默认策略 |
| -F | 清空规则链 |
| -L | 查看规则链 |
| -A | 在规则链末尾加入新规则 |
| -I num | 在规则链头部加入新规则 |
| -D num | 删除某一条规则 |
| -s | 匹配来源地址IP/MASK |
| -d | 匹配目标地址 |
| -i | 匹配流入数据的网卡 |
| -o | 匹配流出数据的网卡 |
| -p | 匹配协议(tcp,udp,icmp) |
常用ACTION
- DROP:丢弃
- REJECT:明示拒绝
- ACCEPT:接受
- REDIRECT:重定向
- RETURN:返回
常用链
- PREROUTING: 路由判断前的规则(DNAT/REDIRECT)
- INPUT: 处理入站数据包
- OUTPUT: 处理出站数据包
- FORWARD: 处理转发数据包
- POSTROUTING: 路由判断后的规则(SNAT/MASQUERADE)
实用命令
-
列出所有规则并编号:
iptables -L -n --line-number -
允许SSH访问:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT -
禁止DNS查询:
iptables -A OUTPUT -p udp --dport 53 -j DROP -
禁用多个出站端口:
iptables -A OUTPUT -p tcp --dport 1:65535 -j DROP -
配置不连续端口:
iptables -A INPUT -p tcp -m multiport --dport 21:25,135:139 -j DROP -
屏蔽单个IP:
iptables -I INPUT -s 192.168.60.1 -j DROP -
删除规则:
iptables -D OUTPUT 1 -
保存规则:
service iptables save 或 iptables-save > /etc/iptables.rules
ICMP控制
-
禁止ping:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all -
允许ping:
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
防火墙探测与绕过技术
Windows平台
-
探测出站规则未禁用的端口:
powershell -c "1..65535 | % {echo ((new-object Net.Sockets.TcpClient).Connect('allports.exposed',$_)) $_ } 2>$null" -
ICMP协议绕过:
- 当仅禁用特定端口出站但未禁用ICMP协议时,可通过ICMP隧道进行通信
- 如果ICMP也被禁用,则需关闭防火墙或寻找其他方法
Linux平台探测技术
-
配置服务器端:
iptables -A INPUT -p tcp --dport 1:65535 -j ACCEPT iptables -A PREROUTING -t nat -p tcp -m multiport --dport 1:21,23:65535 -j REDIRECT --to-port 8888 nc -lvp 8888 -
探测开放端口:
for i in {50..80}; do timeout 1 bash -c "echo > /dev/tcp/192.168.60.129/$i" && echo "$i open" || echo "$i closed"; done -
清空规则:
iptables -t nat -F # 清空nat表的所有链 iptables -t nat -F PREROUTING # 清空PREROUTING表
总结
-
Windows防火墙:
- 使用netsh命令管理防火墙规则
- 可通过端口转发绕过限制
- ICMP协议可能成为绕过点
-
Linux防火墙:
- iptables功能强大但配置复杂
- 支持端口范围、协议类型等多种匹配方式
- 规则需保存才能持久化
-
探测技术:
- 可通过批量端口扫描发现可用出站端口
- ICMP协议常被忽视但很有用
- 服务器端重定向技术可用于探测
-
安全建议:
- 配置防火墙时应全面考虑各种协议
- 定期检查防火墙规则
- 重要服务应使用非标准端口
- 记录并分析防火墙日志
掌握这些防火墙配置和绕过技术,对于网络安全攻防两端都具有重要意义。管理员可以更好地保护系统安全,而安全研究人员则可以更有效地测试系统防护能力。