DDoS(分布式拒绝服务)攻击是通过大量恶意流量淹没目标服务器,使其无法处理合法请求的攻击方式。攻击者通常利用僵尸网络(botnet)发起这类攻击。
实时网络流量监控
sudo iftop -nNP
或
sudo nload
查看活跃连接
sudo netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
检查带宽使用
sudo vnstat -l -i eth0
分析Web服务器日志
sudo tail -f /var/log/nginx/access.log
或
sudo tail -f /var/log/apache2/access.log
使用iptables限制连接
# 限制单个IP的连接数
sudo iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP
# 限制新建连接速率
sudo iptables -A INPUT -p tcp --dport 80 -m limit --limit 50/minute --limit-burst 200 -j ACCEPT
启用SYN Cookie防护
sudo sysctl -w net.ipv4.tcp_syncookies=1
调整内核参数
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=2048
sudo sysctl -w net.ipv4.conf.all.rp_filter=1
安装和使用fail2ban
sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
配置nginx限流
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
server {
location / {
limit_req zone=one burst=20;
}
}
}
使用mod_evasive(Apache)
sudo apt install libapache2-mod-evasive
配置/etc/apache2/mods-enabled/evasive.conf
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
</IfModule>
使用tcpdump捕获攻击流量分析
sudo tcpdump -i eth0 -w attack.pcap
通过以上措施的组合应用,您可以有效识别和缓解DDoS攻击,保护您的Linux服务器正常运行。记住,DDoS防护是一个持续的过程,需要定期评估和更新防护策略。