web服务器防止dos拒绝服务攻击
web服务器防止dos拒绝服务攻击
落叶刀 发表于2年前
web服务器防止dos拒绝服务攻击
  • 发表于 2年前
  • 阅读 215
  • 收藏 4
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

摘要: fail2ban采集登陆日志调用iptables进行封ip

服务器安全防护是非常重要的滴,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要上下对齐。

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 36
博文 76
码字总数 87001
作品 2
×
落叶刀
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: