温馨提示×

LNMP环境下Ubuntu如何防止DDoS攻击

小樊
53
2025-06-19 03:41:55
栏目: 云计算

在Ubuntu LNMP(Linux, Nginx, MySQL, PHP)环境下,防止DDoS攻击可以通过以下几种方法来实现:

使用防火墙

  • ufw:启用并配置ufw来限制访问。
    sudo ufw enable
    sudo ufw default deny incoming
    sudo ufw default allow outgoing
    sudo ufw allow 22/tcp   # SSH
    sudo ufw allow 80/tcp   # HTTP
    sudo ufw allow 443/tcp  # HTTPS
    

配置Nginx

  • 限制请求速率和连接数
    http {
        limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
        server {
            listen 80;
            server_name example.com;
            location / {
                limit_req zone=mylimit burst=5 nodelay;
                ...
            }
        }
    }
    

使用Fail2Ban

  • 监控日志文件并自动封禁恶意IP
    sudo apt-get install fail2ban
    sudo systemctl enable fail2ban
    sudo systemctl start fail2ban
    
    配置Fail2Ban:
    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    sudo nano /etc/fail2ban/jail.local
    
    jail.local中添加以下内容:
    [nginx]
    enabled = true
    port = http,https
    filter = nginx-badbots
    logpath = /var/log/nginx/access.log
    maxretry = 3
    bantime = 600
    

使用Cloudflare或其他CDN

  • 提供DDoS防护,缓存静态内容: Cloudflare等CDN服务可以帮助减轻服务器压力,分散流量。

优化MySQL

  • 限制连接数和查询速率
    SET GLOBAL max_connections = 100;
    SET GLOBAL query_cache_size = 0;
    SET GLOBAL query_cache_type = 0;
    

使用Web应用防火墙(WAF)

  • 保护Web应用: 使用像ModSecurity这样的WAF来保护你的Web应用。
    sudo apt-get install libapache2-mod-security2
    sudo systemctl enable apache2-mod-security2
    sudo systemctl start apache2-mod-security2
    

监控和日志分析

  • 定期检查服务器日志: 使用工具如fail2ban、logwatch等来分析日志,及时发现异常行为。

定期更新和打补丁

  • 确保所有软件都是最新的
    sudo apt update
    sudo apt upgrade
    

通过以上方法,可以有效地提高Ubuntu LNMP环境对DDoS攻击的防御能力。记住,网络安全是一个持续的过程,需要不断评估和改进防御措施。

0