form1.cn
Make a little progress every day

fail2ban的使用以及防暴力破解

17th of December 2019 Linux Command 2025

yum安装:

yum install fail2ban


  fail2ban的配置文件路径:/etc/fail2ban


  fail2ban安装目录:/usr/share/fail2ban


  日志文件:/var/log/fail2ban.log


  达到阈值之后的执行的动作的配置文件:   action.d/ 


  包含所有的过滤规则:filter.d/


2. 配置fail2ban并实现防暴力破解


  官方的文档写到:在配置时,我们应该避免修改由fail2ban安装创建的文件,我们应该去编写具有.local扩展名的新文件。在.local新文件里配置的内容会覆盖jail.conf内容里相同的值。


  当我们的配置发生改变了我们可以使用  fail2ban-client reload ,来加载新的配置。


  2.1配置fail2ban


    编辑配置文件 jail.local  并实现防暴力破解 



vim /etc/fail2ban/jail.d/jail.local


文件内容:


#defalut这里是设定全局设置,如果下面的监控没有设置就以全局设置的值设置。
[DEFAULT]
# 用于指定哪些地址ip可以忽略 fail2ban 防御,以空格间隔。
ignoreip = 127.0.0.1/8
# 客户端主机被禁止的时长(默认单位为秒)
bantime  = 3600
# 过滤的时长(秒)
findtime  = 600
# 匹配到的阈值(次数)
maxretry = 3

[ssh-iptables]
# 是否开启
enabled  = true
# 过滤规则
filter   = sshd
# 动作
action   = iptables[name=SSH, port=ssh, protocol=tcp]
# 日志文件的路径
logpath  = /var/log/secure
# 匹配到的阈值(次数)
maxretry = 3



  在这里需要注意一点就是:我们上面的action设置的时候,port=ssh,如果我们更改了sshd服务的端口号,我能需要在这里设置对应的端口号,否则配置不生效。


  2.2 防暴力破解测试


    在上面配置好了之后,我们需要让配置生效:


fail2ban-client reload

    测试:故意输入错误密码3次,再进行登录时,会拒绝登录


[root@121~]# ssh 192.168.1.121

root@192.168.1.121's password: 

Permission denied, please try again.

root@192.168.1.121's password: 

Permission denied, please try again.

root@192.168.1.121's password: 

Permission denied (publickey,password).

[root@121~]# ssh 192.168.1.121

ssh: connect to host 192.168.1.121 port 22: Connection refused

   我们可以查看当前被禁止登陆的ip:


[root@121]# fail2ban-client status ssh-iptables 

Status for the jail: ssh-iptables

|- filter

|  |- File list:    /var/log/secure     #日志文件路径

|  |- Currently failed:    0        #当前失败次数

|  `- Total failed:    3            #总失败次数

`- action

   |- Currently banned:    1        #当前禁止的ip数量

   |  `- IP list:    192.168.1.112        #当前禁止的ip

   `- Total banned:    1        #禁止的ip总数

3. fail2ban常用的命令


  3.1 启动暂停查看状态


systemctl   start/restart/stop/status   fail2ban

    3.2 fail2ban-client


start启动fail2ban server和监狱

reload重新加载配置文件

stop暂停fail2ban和监狱

status查看运行的监控服务数量和列表

set loglevel 设置日志等级,有 CRITICAL, ERROR, WARNING,NOTICE, INFO, DEBUG

get loglevel获取当前日志的等级

set <JAIL> idle on|off 设置某个监控(监狱)的状态。

set <JAIL> addignoreip <IP>设置某个监控(监狱)可以忽略的ip

set <JAIL> delignoreip <IP>删除某个监控(监狱)可以忽略的ip

set <JAIL> banip <IP>将ip加入 监控(监狱)

set <JAIL> unbanip <IP>将ip从监控(监狱)移除



//启动

systemctl start fail2ban

//重启

systemctl restart fail2ban

//开机重启

systemctl enable fail2ban

//查看状态

systemctl status fail2ban.service

//查看配置状态

fail2ban-client status

//默认配置

vim /etc/fail2ban/jail.conf

 

//查看攻击者

fail2ban-client status sshd

 

//确保防火墙已开起

systemctl enable firewalld

systemctl start firewalld

 

 

//更新 SELinux 策略

yum update -y selinux-policy*


https://www.cnblogs.com/operationhome/p/9184580.html

https://www.cnblogs.com/anech/p/6867589.html