溫馨提示×

centos下nginx如何防止DDoS攻擊

小樊
37
2025-08-28 19:32:56
欄目: 云計算

在CentOS系統下,Nginx可以通過以下幾種方式來防止DDoS攻擊:

1. 限制連接數

通過限制每個IP地址的并發連接數,可以有效防止DDoS攻擊。

http {
    ...
    limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;

    server {
        ...
        location / {
            limit_req zone=mylimit burst=5;
            ...
        }
    }
}

2. 使用防火墻

使用iptables或firewalld來限制連接數和阻止惡意IP。

使用iptables

# 限制每個IP每秒只能建立1個連接
iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP

# 阻止特定IP
iptables -A INPUT -s 1.2.3.4 -j DROP

使用firewalld

# 限制每個IP每秒只能建立1個連接
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p tcp --syn -m limit --limit 1/s -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 1 -p tcp --syn -j DROP
firewall-cmd --reload

# 阻止特定IP
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="1.2.3.4" reject'
firewall-cmd --reload

3. 使用Fail2Ban

Fail2Ban可以監控日志文件并自動封禁惡意IP。

安裝Fail2Ban

sudo yum install epel-release
sudo yum install fail2ban

配置Fail2Ban

編輯/etc/fail2ban/jail.local文件,添加以下內容:

[nginx]
enabled = true
filter = nginx-auth
action = iptables-multiport[name=nginx, port="http,https", protocol=tcp]
logpath = /var/log/nginx/access.log
bantime = 600
findtime = 600
maxretry = 3

創建過濾器文件/etc/fail2ban/filter.d/nginx-auth.conf

[Definition]
failregex = ^<HOST> -.*"(GET|POST|HEAD).*HTTP.*"
ignoreregex =

4. 使用Cloudflare或其他CDN

使用Cloudflare或其他CDN服務可以提供額外的安全層,包括DDoS防護。

5. 監控和日志分析

定期檢查Nginx日志,分析異常流量和攻擊模式,及時調整防護策略。

tail -f /var/log/nginx/access.log

6. 使用SSL/TLS加密

啟用SSL/TLS加密可以防止中間人攻擊和數據泄露。

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /path/to/certificate.pem;
    ssl_certificate_key /path/to/privatekey.pem;

    ...
}

通過以上方法,可以在CentOS系統下有效地防止Nginx受到DDoS攻擊。根據實際情況選擇合適的防護措施,并定期更新和調整配置。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女