Apache服务器对拒绝服务攻击的防范主要通过软件Apache DoS Evasive ManeuversModule来实现。它是一款mod_access的替代软件,可以对抗DoS攻击。该软件可以快速拒绝来自相同地址对同一URL的重复请求,通过查询内部一张各子进程的哈希表来实现。到网站http://online/.securityfocus.com/data/tools/dospatch.tar.gz上下载软件。软件安装的配置可以查看Linux中文主页http://www.linux.gov.cn/上的Apache性能和安全指南,过程比较简单,限于篇幅这里就不介绍了。
同时可以使用Linux系统强大的命令手段防范Dos攻击。
netstat -an grep -i "服务器IP地址:80" awk "print $6" sort uniq -csort-n
这个命令会自动统计TCP连接的各个状态的数量,如果syn_recv很高的话,就不能排除有基于TCP协议的拒绝服务攻击的可能。于是需要打开tcp_syncookies:
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
如果没有/proc/sys/net/ipv4/tcp_syncookies,说明内核不支持syncookies,需要重新编译内核,同时降低SYN重试次数。
echo "1" > /proc/sys/net/ipv4/tcp_syn_retriesecho "1">/proc/sys/net/ipv4/tcp_synack_retries
同时加大syn_backlog,以保证用户的访问:
echo "2048" > /proc/sys/net/ipv4/tcp_max_syn_backlog