首页主机资讯Linux LNMP如何防止DDoS攻击

Linux LNMP如何防止DDoS攻击

时间2025-11-20 22:01:04发布访客分类主机资讯浏览1009
导读:Linux LNMP 防 DDoS 实用方案 一 分层防御总体思路 边缘与网络层:先用防火墙/ACL收敛暴露面,仅开放必要端口(如 22/80/443),对异常来源进行限速/封禁;大规模攻击时结合CDN/WAF做流量清洗与缓存,显著降低源...

Linux LNMP 防 DDoS 实用方案

一 分层防御总体思路

  • 边缘与网络层:先用防火墙/ACL收敛暴露面,仅开放必要端口(如 22/80/443),对异常来源进行限速/封禁;大规模攻击时结合CDN/WAF做流量清洗与缓存,显著降低源站压力。
  • 主机与连接层:在 Nginx 侧限制并发连接数请求速率,抵御连接耗尽与低速/突发型攻击;对管理口(如 SSH)仅限跳板或白名单。
  • 应用与数据库层:开启 HTTPS、最小化暴露面;对 PHP 禁用不必要扩展、限制上传;对 MySQL 限制连接数与来源。
  • 自动化与监测:用 Fail2Ban 自动封禁恶意 IP,结合日志与监控(如 top/htop、Prometheus/Grafana)快速发现异常并处置。
  • 预案与协作:准备应急开关(如临时返回 503、关闭非核心功能)、与 ISP/云厂商联动清洗,必要时启用专业 DDoS 防护服务

二 Nginx 关键配置示例

  • 限制请求速率(防 CC/突发)
    http {
        
        limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
    
        server {
        
            listen 80;
        
            server_name example.com;
    
            location / {
        
                limit_req zone=one burst=5 nodelay;
    
                # 其他配置 …
            }
    
        }
    
    }
    
    
  • 限制并发连接数(防连接耗尽)
    http {
        
        limit_conn_zone $binary_remote_addr zone=addr:10m;
    
        server {
        
            listen 80;
        
            server_name example.com;
    
            location / {
        
                limit_conn addr 10;
    
                # 其他配置 …
            }
    
        }
    
    }
    
    
  • 强制 HTTPS(减少明文与握手开销)
    server {
        
        listen 80;
        
        server_name example.com;
        
        return 301 https://$host$request_uri;
    
    }
        
    

说明:以上为常用且有效的速率/连接控制与强制加密配置,可直接按需放入 http/server/location 块中使用。

三 防火墙与 Fail2Ban 自动化

  • 防火墙收敛暴露面
    • firewalld(CentOS/RHEL)
      sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.10" port port="22" protocol="tcp" accept'
      sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port="80" protocol="tcp" accept'
      sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port="443" protocol="tcp" accept'
      sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port="22" protocol="tcp" reject'
      sudo firewall-cmd --reload
      
    • ufw(Ubuntu/Debian)
      sudo ufw default deny incoming
      sudo ufw default allow outgoing
      sudo ufw allow 22/tcp
      sudo ufw allow 80/tcp
      sudo ufw allow 443/tcp
      sudo ufw enable
      
  • Fail2Ban 自动封禁
    • 安装与启用
      # Ubuntu/Debian
      sudo apt-get install fail2ban -y
      sudo systemctl enable --now fail2ban
      
      # CentOS/RHEL
      sudo yum install fail2ban -y
      sudo systemctl enable --now fail2ban
      
    • 保护 Nginx 示例(/etc/fail2ban/jail.local)
      [nginx]
      enabled = true
      port = http,https
      filter = nginx-badbots
      logpath = /var/log/nginx/access.log
      maxretry = 3
      bantime = 600
      

提示:按业务容忍度调整 rate/burst、maxretry、bantime,避免误封正常爬虫或突发流量。

四 应用与数据库层加固

  • PHP
    • 仅启用必要扩展,禁用危险函数;限制上传大小与类型并在服务端校验;设置安全响应头(如 CSP)降低 XSS 风险。
  • MySQL
    • 强口令与最小权限;限制来源地址;按需设置最大连接数,避免被连接洪泛拖垮。
  • 通用
    • 关闭不必要的端口与服务,遵循最小权限原则;定期安全扫描与补丁更新。

五 监控、应急与高防选择

  • 监控与告警
    • 实时查看资源使用(如 top/htop、iotop),对异常流量与连接数设置阈值告警;结合日志分析工具(如 logwatch)与可视化监控(如 Prometheus/Grafana)建立基线。
  • 应急处置
    • 攻击峰值时可临时返回 503、关闭非核心功能或静态资源降级;必要时切换至维护页,优先保障核心业务可用。
  • 高防与协作
    • 启用 Cloudflare/AkamaiCDN/WAF 做缓存与清洗;大规模攻击时与 ISP 协同进行上游清洗或启用云厂商高防。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux LNMP如何防止DDoS攻击
本文地址: https://pptw.com/jishu/752500.html
如何利用GCC进行内存泄漏检测 LNMP中MySQL如何恢复数据

游客 回复需填写必要信息