插件窝 干货文章 Nginx的服务器安全与企业内外防火墙

Nginx的服务器安全与企业内外防火墙

防火墙 Nginx 配置 服务器 291    来源:    2025-04-20

Nginx服务器安全与企业防火墙配置指南

Nginx服务器安全最佳实践

1. 基础安全配置

# 禁用server tokens信息
server_tokens off;

# 限制HTTP方法
limit_except GET POST {
    deny all;
}

# 设置安全头部
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
add_header Content-Security-Policy "default-src 'self'";
add_header Referrer-Policy "strict-origin-when-cross-origin";

2. SSL/TLS配置

ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305';
ssl_ecdh_curve secp384r1;
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;

3. 访问控制

# IP白名单
location /admin {
    allow 192.168.1.0/24;
    allow 10.0.0.1;
    deny all;
}

# 速率限制
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;

location /api {
    limit_req zone=one burst=20 nodelay;
}

4. 文件访问限制

# 禁止访问隐藏文件
location ~ /\. {
    deny all;
    access_log off;
    log_not_found off;
}

# 限制特定文件类型
location ~* \.(php|asp|aspx|jsp)$ {
    deny all;
}

企业防火墙配置策略

1. 内外网防火墙架构

[互联网] 
  |
[外部防火墙] - DMZ区(Nginx反向代理)
  |
[内部防火墙] - 应用服务器区
  |
[数据库防火墙] - 数据库区

2. 防火墙规则建议

  1. 外部防火墙规则:

    • 只允许443(HTTPS)和80(HTTP)入站到Nginx服务器
    • 禁止所有ICMP入站
    • 限制SSH访问仅来自管理IP
  2. 内部防火墙规则:

    • Nginx到应用服务器: 仅允许特定端口(如8080)
    • 应用服务器到数据库: 仅允许数据库端口(如3306,5432)
    • 禁止所有内部服务器直接访问互联网

3. 高级防护措施

  1. Web应用防火墙(WAF):

    • 在Nginx前部署WAF(如ModSecurity)
    • 配置OWASP核心规则集
  2. 入侵检测/防御系统(IDS/IPS):

    • 在网络边界部署IDS/IPS
    • 配置针对HTTP/HTTPS流量的深度检测
  3. DDoS防护:

    • 启用Nginx限速模块
    • 考虑云提供商或专用设备的DDoS防护

监控与日志

Nginx日志配置

log_format security '$remote_addr - $remote_user [$time_local] '
                   '"$request" $status $body_bytes_sent '
                   '"$http_referer" "$http_user_agent" '
                   '$request_time $upstream_response_time '
                   '$http_x_forwarded_for';

access_log /var/log/nginx/security.log security;

关键监控指标

  1. 异常HTTP状态码(4xx,5xx)激增
  2. 同一IP的高频请求
  3. 异常User-Agent模式
  4. 大文件下载行为
  5. 敏感路径访问尝试

应急响应

  1. 可疑活动识别:

    • 检查Nginx访问日志中的异常模式
    • 监控防火墙的拒绝连接日志
  2. 立即响应措施:

    • 通过防火墙临时封锁攻击IP
    • 调整Nginx限速规则
    • 必要时暂时关闭受影响的服务
  3. 事后分析:

    • 收集并保留日志证据
    • 分析攻击向量和潜在漏洞
    • 更新安全规则防止类似攻击

通过结合Nginx的安全配置和企业防火墙策略,可以构建多层防御体系,有效保护企业Web应用和数据安全。