李成笔记网

专注域名、站长SEO知识分享与实战技巧

《防火墙规则配置;WAF 工作原理》

一、防火墙规则配置实战

防火墙是网络安全的第一道防线,通过定义流量过滤规则实现访问控制。以下是常见防火墙(如 iptables、nftables、云防火墙)的规则配置方法:

1. 基础规则语法

以 iptables 为例,规则由 链(Chain)匹配条件(Match)动作(Action) 组成:

iptables -A <CHAIN> -p <PROTOCOL> --dport <PORT> -j <ACTION>

2. 常见配置场景

(1) 允许 SSH 访问(仅限内网)

# 允许来自 192.168.1.0/24 网段的 SSH 连接(TCP 22)
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT

# 拒绝其他来源的 SSH 连接
iptables -A INPUT -p tcp --dport 22 -j DROP

(2) 限制 Web 服务端口

# 允许 HTTP/HTTPS 流量(TCP 80/443)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# 禁止其他端口
iptables -A INPUT -p tcp --dport 1024:65535 -j DROP

(3) 防止 IP 欺骗

# 拒绝私有地址段(如 10.0.0.0/8、192.168.0.0/16)
iptables -A INPUT -s 10.0.0.0/8 -j DROP
iptables -A INPUT -s 192.168.0.0/16 -j DROP

(4) NAT 端口转发

# 将公网 80 端口流量转发到内网 192.168.1.100:80
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80
iptables -A FORWARD -p tcp -d 192.168.1.100 --dport 80 -j ACCEPT

3. 规则优化与注意事项

  • 规则顺序:防火墙按顺序匹配规则,需将宽松规则放在严格规则之前。
# 允许 SSH 后再拒绝其他流量
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -j DROP
  • 日志记录:记录被拒绝的流量以便审计。
iptables -A INPUT -j LOG --log-prefix "BLOCKED: " --log-level 4
  • 保存规则:重启后规则失效,需持久化保存。
# Ubuntu/Debian
sudo apt install iptables-persistent
# CentOS/RHEL
sudo service iptables save

二、WAF 工作原理与实战

WAF(Web Application Firewall,Web 应用防火墙)专注于应用层(HTTP/HTTPS)的安全防护,核心目标是防御 Web 攻击(如 SQL 注入、XSS)。

1. WAF 核心功能

  • 攻击检测:识别恶意请求(如 UNION SELECT、<script> 标签)。
  • 签名匹配:基于已知漏洞特征库(如 OWASP ModSecurity CRS)。
  • 行为分析:检测异常流量(如高频请求、CC 攻击)。
  • 内容过滤:拦截敏感信息(如信用卡号、密码)。

2. WAF 技术实现原理

  • 签名检测:匹配已知攻击模式(如 SQL 注入正则表达式)。
# 示例:检测 SQL 注入关键字
(select\s+.*\s+from|insert\s+into|union\s+select)
  • 语义分析:解析 HTTP 请求结构,检测逻辑漏洞(如绕过路径遍历防护)。
  • 速率限制:限制单个 IP 的请求频率(防 CC 攻击)。
# Nginx 速率限制配置示例
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;

3. 部署架构

WAF 部署架构

  • 反向代理模式:WAF 作为前置代理,过滤后转发请求到后端服务器。
  • 插件模式:集成到 Web 服务器(如 Nginx 的 ngx_http_modsecurity_module)。

4. 实战案例:ModSecurity 规则配置

# 启用 ModSecurity 规则
LoadModule security2_module modules/mod_security.so
LoadModule unique_id_module modules/mod_unique_id.so

# 阻塞 SQL 注入尝试
SecRule ARGS "@rx (select|union)" "id:1001,phase:2,deny,status:403,msg:'SQL Injection Detected'"

# 限制请求体大小(防文件上传攻击)
SecRequestBodyLimit 1048576  # 限制为 1MB

三、防火墙与 WAF 联合防御实战

场景:防御针对 Web 服务器的 DDoS 攻击和 SQL 注入。

  1. 防火墙规则
# 仅允许 HTTP/HTTPS 流量
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -j DROP

# 限制单个 IP 的并发连接数(防 CC 攻击)
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j REJECT
  1. WAF 配置(ModSecurity)
# 阻塞敏感路径访问
SecRule REQUEST_URI "@streq /admin" "id:1002,phase:1,deny,status:403"

# 拦截恶意 User-Agent
SecRule REQUEST_HEADERS:User-Agent "@contains sqlmap" "id:1003,phase:1,deny,status:403"

四、总结与最佳实践

  1. 防火墙规则
  • 最小权限原则:仅开放必要端口(如 80/443)。
  • 日志监控:定期分析防火墙日志,发现异常流量。
  1. WAF 防护
  • 定期更新规则库:应对新型 Web 攻击。
  • 误报处理:通过白名单排除误拦截的合法请求(如 API 接口)。
  1. 分层防御
  • 防火墙(网络层) + WAF(应用层) + RASP(运行时防护)形成立体防护。

通过合理配置防火墙规则和部署 WAF,可显著提升 Web 应用的安全性,降低被入侵风险!

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言