linux centos7 防止暴力破解 fail2ban

系统 centos 7.4 系统  e 不知道的可以用  uname -r 查看
[root@local ~]# uname  -r
3.10.0-514.26.2.el7.x86_64

查看  du -h /var/log/secure    是否被暴力攻击 超过1M说明被攻击

下载软件包: 官方地址:http://www.fail2ban.org

我们使用fail2ban-0.8.14.tar.gz版本
安装fail2ban
解压查看readme文件
[root@www ~]# tar -zxvf fail2ban-0.8.14.tar.gz
[root@www fail2ban-0.8.14]# vim README.md  #查看以下内容
需要安装python开发环境,并且版本要大于2.4
查看当前系统中python的版本:
[root@www fail2ban-0.8.14]# python -V
Python 2.6.6
安装:
[root@www ~]# cd fail2ban-0.8.14
[root@www fail2ban-0.8.14]#python setup.py install

相关主要文件说明:
/etc/fail2ban/action.d #动作文件夹,内含默认文件。iptables以及mail等动作配置
/etc/fail2ban/fail2ban.conf    #定义了fai2ban日志级别、日志位置及sock文件位置
/etc/fail2ban/filter.d                     #条件文件夹,内含默认文件。过滤日志关键内容设置
/etc/fail2ban/jail.conf     #主要配置文件,模块化。主要设置启用ban动作的服务及动作阀值
# jail   [dʒeɪl]监狱

服务启动脚本:
[root@www fail2ban-0.8.14]# pwd
/root/fail2ban-0.8.14 /files/redhat-initd 
?? 你怎么知道要复制这个文件? 一个新的软件包,后期怎么可以知道哪个文件是启动脚本文件?
这就要找服务器启动脚本文件中有什么特点,然后过滤出来对应的文件名。

chkconfig是RedHat系统Linux特有的服务启动配置命令,我们可以作为关键字来进行过滤

[root@www fail2ban-0.8.14]# grep chkconfig ./* -R --color
./files/redhat-initd:# chkconfig: - 92 08
启动脚本里都包含chkconfig 字段
源码方式  可以通过自带的脚本启动,但是重启服务器不能开机自动启动
下面的方式可以用yum在线安装,生成系统启动脚本加入开机启动

yum安装fail2ban0.9
配好epel源
Yum   -y   install   fail2ban    安装vim /etc/fail2ban/jail.conf    修改配置文件
跳到最后一行,加配置如下

[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=root, [email protected]]
logpath = /var/log/secure
maxretry = 3
findtime = 300
bantime = 3600

 vim  /etc/fail2ban/jail.conf  #配置文件说明

[ssh-iptables]

enabled  = true  #是否激活此项(true/false)修改成 true

logpath  = /var/log/secure #检测的系统的登陆日志文件。这里要写sshd服务日志文件。

#完成:5分钟内3次密码验证失败,禁止用户IP访问主机1小时。 配置如下

findtime  = 300  #在5分钟内内出现规定次数就开始工作,默认时间单位:秒

maxretry = 3    #3次密码验证失败

bantime  = 3600         #禁止用户IP访问主机1小时

[DEFAULT]               #全局设置

ignoreip = 127.0.0.1/8       #忽略的IP列表,不受设置限制

bantime  = 600             #屏蔽时间,单位:秒

findtime  = 600             #这个时间段内超过规定次数会被ban掉

maxretry = 5                #最大尝试次数

backend = auto            #日志修改检测机制(gamin、polling和auto这三种)

启动服务:
systemctl  start  fail2ban.service
设置开机自启动:
systemctl  enable  fail2ban.service

测试:

[root@xuegod63 fail2ban]# > /var/log/secure  #清日志。 从现在开始

启动服务:

[root@xuegod63 ~]# /etc/init.d/fail2ban restart

 [root@xuegod63 fail2ban]# iptables -L n    #会多生成一个规则链

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

[root@xuegod64 ~]# ssh 192.168.1.63

连续3次

fail2ban-client status#配置好之后我们检测下fail2ban是否工作。

Status

|- Number of jail: 1

`- Jail list: ssh-iptables

#具体看某一项的状态也可以看,如果显示被ban的ip和数目就表示成功了,如果都是0,说明没有

需要注意的四点:

(1)如果做错了,想清空一下记录,还原:

只需要把 >  /var/log/secure   清空就可以了。

service  fail2ban  restart  

(2)另外如果后期需要把iptables清空后或iptables重启后,也需要把fail2ban重启一下。

(3)如果修改ssh默认端口22为2015后 。 配置fail2ban来监控SSHD服务

需要修改配置文件:

[root@xuegod63 fail2ban]# vim jail.conf

#修改iptables动作中的端口号。 默认为SSH。

改:port=ssh 为 port=2015
    [root@xuegod63 fail2ban]# vim /etc/fail2ban/action.d/iptables.conf  #修改动作文件中默认端口号。 改: port=ssh  为port=2015

猜你喜欢

转载自blog.csdn.net/z13615480737/article/details/81436103