Apache
在httpd.conf中添加 LoadModule reqtimeout_module modules/mod_reqtimeout.so
查看是否存在mod_reqtimeout.so模块
[root@localhost ~]# rpm -ql httpd |grep .so
/usr/lib64/httpd/modules/mod_reqtimeout.so
添加配置
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
<IfModule reqtimeout_module>
RequestReadTimeout header=5-40,MinRate=500 body=20,MinRate=500
</IfModule>
LoadModule reqtimeout_module modules/mod_reqtimeout.so
重启apache
service httpd restart
参考链接:https://blog.csdn.net/h106140873/article/details/53743275
如果上面一个模块不行
建议使用mod_reqtimeout和mod_qos两个模块相互配合来防护。
1、mod_reqtimeout用于控制每个连接上请求发送的速率。配置例如:
#请求头部分,设置超时时间初始为10秒,并在收到客户端发送的数据后,每接收到500
字节数据就将超时时间延长1秒,但最长不超过40秒。可以防护slowloris型的慢速攻击。
RequestReadTimeout header=10-40,minrate=500
#请求正文部分,设置超时时间初始为10秒,并在收到客户端发送的数据后,每接收到
500字节数据就将超时时间延长1秒,但最长不超过40秒。可以防护slow message
body型的慢速攻击。
RequestReadTimeout body=10-40,minrate=500
需注意,对于HTTPS站点,需要把初始超时时间上调,比如调整到20秒。
示例:
LoadModule reqtimeout_module modules/mod_reqtimeout.so
<IfModule reqtimeout_module>
RequestReadTimeout header=10-40,minrate=500 body=10-40,minrate=500
</IfModule>
2、mod_qos用于控制并发连接数。配置例如:
当服务器并发连接数超过600时,关闭keepalive
QS_SrvMaxConnClose 600
#限制每个源IP最大并发连接数为50
QS_SrvMaxConnPerIP 50
这两个数值可以根据服务器的性能调整。
更多关于qos_module配置参考:
http://mod-qos.sourceforge.net/dos.html
示例:
LoadModule qos_module modules/mod_qos.so
<IfModule qos_module>
QS_SrvMaxConnClose 600
QS_SrvMaxConnPerIP 50
</IfModule>
tomcat
修改tomcat配置
修改tomcat server.xml中的
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="8000"
disableUploadTimeout="true"
disableUploadTimeout="true"
redirectPort="18443"
URIEncoding="utf-8"
maxPostSize="-1"
maxHttpHeaderSize ="102400"/>
其中connectionTimeout更改为了8000,并增加了disableUploadTimeout="true"参数文章来源:https://www.toymoban.com/news/detail-619084.html
保存后重启服务再测
参考链接:https://blog.csdn.net/zhangzhen02/article/details/120782292文章来源地址https://www.toymoban.com/news/detail-619084.html
到了这里,关于apache,tomcat缓慢的http拒绝服务攻击修改办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!