fail2ban防暴力破解[nginx][sshd]

介绍:fail2ban是一款实用软件,可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作。
ps:需要开启防火墙
安装fail2ban
系统环境Centos6
[root@localhost ~]# yum -y install wget
[root@node1 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
[root@node1 ~]# yum -y install fail2ban
系统环境Centos7
[root@localhost ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@localhost ~]# yum -y install fail2ban
fail2ban 结构:

/etc/fail2ban                  ## fail2ban 服务配置目录
/etc/fail2ban/action.d     ## iptables 、mail 等动作文件目录
/etc/fail2ban/filter.d       ## 条件匹配文件目录,过滤日志关键内容
/etc/fail2ban/jail.conf     ## fail2ban 防护配置文件
/etc/fail2ban/fail2ban.conf   ## fail2ban 配置文件,定义日志级别、日志、sock 文件位置等

下面进行配置防暴力规则
配置nginx服务401错误状态码
[root@node1 ~]# cd /etc/fail2ban/
[root@node1 fail2ban]# cp jail.conf jail.conf.bak
在文件最后添加配置
[root@node1 fail2ban]# vim jail.conf

[nginx]
enabled = true       # 是否开启防护,false 为关闭
port = http     #对应的端口如http=80 https=443 也可以写8088,809等
filter = nginx  # 访问规则定义文件,位置在 /etc/fail2ban/filter.d/nginx.conf
logpath = /var/logs/nginx/access.log   #nginx访问日志
bantime = 3600   # 非法 IP 被屏蔽时间(秒),-1 代表永远封锁
findtime = 90    # 设置多长时间(秒)内超过 maxretry 限制次数即被封锁
maxretry = 3   # 最大尝试次数
ignoreip =192.168.1.1/24 ## 不受限制的 IP或网段,多组用空格分割

新建nginx.conf文件
[root@node1 fail2ban]# vim /etc/fail2ban/filter.d/nginx.conf

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

如果不知道自己需要过滤的状态码如404等可以使用下面的配置

[Definition]
failregex =<HOST>.*-.*-.*$ # <HOST> 表示访问 IP ,这里没有要匹配精确的URL,只是限制访问次数
ignoreregex =

[root@node1 fail2ban]# fail2ban-regex /var/logs/nginx/access.log /etc/fail2ban/filter.d/nginx.conf # 可以测试条件规则是否可用
[root@node1 fail2ban]# service fail2ban start #启动服务
[root@node1 ~ 15:15:26]# fail2ban-client status nginx #查看nginx实列的监控
Status for the jail: nginx
|- Filter
| |- Currently failed: 1
| |- Total failed: 73
| - File list: /var/logs/nginx/access.log- Actions
|- Currently banned: 0
|- Total banned: 2
`- Banned IP list:
[root@node1 ~ 15:15:32]#
也可以通过防火墙进行查看
在这里插入图片描述
解除限制
[root@node1 /etc/fail2ban 18:24:23]# fail2ban-client set nginx unbanip 192.168.1.181
防止sshd被暴力破解密码
[root@node1 /etc/fail2ban 11:02:37]# vim jail.conf

[sshd]
enabled = true
port    = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
findtim = 3600
bantime = 90
maxretry = 3   #条件根据自己需求进行设置即可

[root@node1 fail2ban]# service fail2ban restart
效果图:
在这里插入图片描述
解除限制
[root@node1 /etc/fail2ban 18:24:23]# fail2ban-client set sshd unbanip 192.168.200.181
添加开机自启动
chkconfig --add fail2ban

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当你使用Nginx作为网页服务器时,可以结合使用Fail2Ban来增加安全性。Fail2Ban是一个用于止恶意登录和暴力破解的工具,它监视日志文件并采取相应的措施来阻止攻击者。 要在Nginx上启用Fail2Ban,你可以按照以下步骤操作: 1. 安装Fail2Ban:使用适合你的操作系统的包管理器来安装Fail2Ban。例如,在Ubuntu上可以运行以下命令: ``` sudo apt-get install fail2ban ``` 2. 配置Fail2Ban:编辑Fail2Ban的配置文件 `/etc/fail2ban/jail.conf` 或 `/etc/fail2ban/jail.local`,根据你的系统选择一个文件。在该文件中,你可以定义Fail2Ban监视的日志文件和设置封禁规则。 3. 创建自定义NginxFail2Ban规则:在 `/etc/fail2ban/filter.d/` 目录下创建一个名为 `nginx.conf` 的文件,并添加以下内容: ``` [Definition] failregex = ^<HOST>.*"(GET|POST).*HTTP.*" (444|403|401) ignoreregex = ``` 4. 更新Fail2Ban配置:编辑 `/etc/fail2ban/jail.local` 文件,在 `[DEFAULT]` 部分添加以下内容: ``` [nginx] enabled = true filter = nginx action = iptables[name=nginx, port=http, protocol=tcp] logpath = /var/log/nginx/access.log findtime = 3600 maxretry = 5 ``` 这将启用针对NginxFail2Ban规则,并定义了一些参数,如查找时间(findtime)和最大重试次数(maxretry)。 5. 重启Fail2Ban服务:根据你的操作系统,使用适当的命令重启Fail2Ban服务。例如,在Ubuntu上可以运行以下命令: ``` sudo service fail2ban restart ``` 现在,Fail2Ban将开始监视Nginx的访问日志文件,并根据你在配置文件中定义的规则来封禁恶意IP地址。 请注意,以上步骤仅提供了一个简单的示例配置。你可以根据自己的需求进行定制化设置,例如增加更多的Fail2Ban规则或调整封禁参数。同时,确保你的Nginx日志文件路径与Fail2Ban配置文件中指定的路径一致。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值