码迷,mamicode.com
首页 > Web开发 > 详细

web服务器防止dos拒绝服务攻击

时间:2015-10-14 16:13:31      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:

服务器安全防护是非常重要的滴,mysql 3306 ,ftp 21 20 ,ssh 22端口等等都可以直接用iptables设置访问的权限,centos系统可以在etc/sysconfig/iptables中加入类似的语句。

-A INPUT -s 192.168.3.192/32 -p tcp -m tcp --dport 3306 -j ACCEPT

表示只有192.168.3.192这个ip可以访问服务器的3306端口等,这样就安全了许多。但是web服务由于要面向所有用户,所以这样就不合适。现在是时候祭出神器fail2ban的时候了。不过也只能防一般的小黑客。ddos估计一下就打死了。dos和ddos差别是一个是一台一个是多台。

安装

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

yum install fail2ban

配置

安装完成后,服务配置目录为:/etc/fail2ban
/etc/fail2ban/action.d                #动作文件夹,内含默认文件。iptables以及mail等动作配置
/etc/fail2ban/fail2ban.conf           #定义了fai2ban日志级别、日志位置及sock文件位置
/etc/fail2ban/filter.d                #条件文件夹,内含默认文件。过滤日志关键内容设置
/etc/fail2ban/jail.conf               #主要配置文件,模块化。主要设置启用ban动作的服务及动作阀值
/etc/rc.d/init.d/fail2ban             #启动脚本文件
3. vi /etc/fail2ban/fail2ban.conf
[Definition]
logtarget = /var/log/fail2ban.log   #我们需要做的就是把这行改成/var/log/fail2ban.log,方便用来记录日志信息

vim /etc/fail2ban/jail.conf里加入

[nginx-dos]
enabled = true
port = http,https
filter = nginx-bansniffer
action = iptables[name=bbs-nginx-ddos, port=http, protocol=tcp]
         sendmail-whois[name=bbs-nginx-ddos, dest=xxxx@xxx.com sender=root]
logpath = /data/nginx/logs/bbs.access.log#放日志的地方。
maxretry = 4000   #注意
findtime = 60
bantime = 3600

socket = /var/run/fail2ban/fail2ban.sock

然后创建文件/etc/fail2ban/filter.d/nginx-bansniffer.conf,内容如下:

[Definition]
failregex = <HOST> -.*- .*HTTP/1.* .* .*$
ignoreregex =

原理
fail2ban采集登陆日志调用iptables进行封ip,可以用国外一个大神hulk等工具进行测试。上面的配置maxretry = 4000,不单单是最大4000个ip才就封掉,而是要看清楚网页加载的时候fail2ban的日志中会产生多少了记录,sendemail和iptables要上下对齐。

web服务器防止dos拒绝服务攻击

标签:

原文地址:http://my.oschina.net/u/2460176/blog/517112

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!