进阶 #security#firewall#ids

防火墙与入侵检测

防火墙控制网络流量访问规则(允许/拒绝),IDS/IPS 检测并阻止可疑活动。规则匹配和异常检测是两种基本方法

🧱 “门卫”与”监控摄像头”

防火墙和入侵检测系统(IDS)是网络安全中最基础的两道防线。

🏪 类比:宿舍楼的安全

防火墙 = 宿舍楼门口的门卫——检查每个进入的人”有卡吗?“——没卡的拦下(拒绝/允许规则)。

IDS = 楼道里的监控摄像头——观察每个经过的人”这个人在撬门?“——发现可疑行为就报警。

IPS = 监控摄像头 + 自动关门——发现撬门的直接锁门阻止。


🔥 防火墙——“谁可以进来”

防火墙根据预设规则决定:允许还是拒绝网络流量。

防火墙的三种类型

包过滤防火墙(网络层):
  检查每个 IP 包的:来源 IP、目标 IP、端口号
  规则示例:"允许来自 10.0.0.0/8 的 TCP/22(SSH)"
  
状态检测防火墙(传输层):
  不仅看单个包——还跟踪连接状态
  规则示例:"允许已建立的连接通过"

应用层防火墙(WAF):
  理解应用协议(HTTP),检查请求内容
  规则示例:"阻止 URL 中包含 /etc/passwd 的请求"
# iptables——Linux 的包过滤防火墙
# 允许来自内网的 SSH 连接
iptables -A INPUT -s 10.0.0.0/8 -p tcp --dport 22 -j ACCEPT
# 阻止所有其他入站连接
iptables -A INPUT -j DROP

🚨 IDS/IPS——“谁在干坏事”

两种检测方法

方法原理优点缺点
签名检测匹配已知攻击模式准确、误报少只能检测已知攻击
异常检测偏离正常基线的行为报警能发现新攻击误报多(“正常行为”难定义)
# IDS 签名示例——检测 SQL 注入尝试
rules = [
    {"pattern": "'.*OR.*1=1",      "name": "SQL注入检测"},
    {"pattern": "<script>",        "name": "XSS检测"},
    {"pattern": "/etc/passwd",     "name": "路径遍历"},
]

for request in network_traffic:
    for rule in rules:
        if re.search(rule["pattern"], request):
            alert(f"告警:{rule['name']}")

WAF——Web 应用防火墙

WAF 是专门保护 Web 应用的防火墙:

  • 检测 SQL 注入、XSS、CSRF 等 Web 攻击
  • 可配置规则或自动学习正常流量
  • 典型产品:ModSecurity(开源)、Cloudflare WAF

📝 小结

设备作用工作层
防火墙允许/拒绝流量(门卫)网络/传输/应用层
IDS检测攻击并告警(监控)网络/应用层
IPS检测并阻止攻击(监控+自动关门)网络/应用层
WAF保护 Web 应用应用层(HTTP)

为什么先学这个? 技术层面的防御之后,看看”流程层面”的安全——安全开发生命周期(SSDLC)