运维管理 ·

实战sshd服务fail2ban阻止暴力破解

一、 系统配置介绍

 1.0.1 纯环境镜像软件包列表

HOSTNAME                      work231
IP                      192.168.2.231
OS                       Centos 6.8
核心数量                            2
内存大小                           2G
CPU                      i3-4130

 1.0.2 纯环境镜像软件包列表

软件 版本 安装目录
Fail2ban 0.9.6.6 /etc/fail2ban
Python 2.7.13 /webserver/python2
pip 9.0.1
setuptools 32.0.0

二、编译之前准备工作

2.0.1 关闭 Selinux  服务

把 SELINUX=enforcing 改为 SELINUX=disabled

2.0.2 下载软件包

Fail2ban官网:  http://www.fail2ban.org/wiki/index.php/Downloads

2.0.3 更新 Python Yum 源

# Centos 6 python yum 源

# Centos 7 python yum 源

三、开始安装 Python

3.0.1 Python 2.7.13 安装

3.0.2 setuptools-32.0.0.zip 安装

3.0.3 pip-9.0.1.tar.gz 安装

3.0.4 配置 pip 源

配置阿里云 pip 源

或者选择清华大学 pip 源

四、开始安装 fail2ban

设置fail2ban服务启动脚本:

修改第27行 /etc/init.d/fail2ban 文件里的 FAIL2BAN="/usr/bin/fail2ban-client" 路径为

在第35行下面添加一行内容为:

添加开机自动启动

小技巧 你怎么知道要复制这个文件? 一个新的软件包,后期怎么可以知道哪个文件是启动脚本文件?这就要找服务器启动脚本文件中有什么特点,然后过滤出来对应的文件名。

[root@work231 fail2ban-0.9.6]## grep chkconfig ./* -R --color

./files/redhat-initd:# chkconfig: - 92 08

相关主要文件说明:

/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]  监狱

/etc/rc.d/init.d/fail2ban                #启动脚本文件

设置 fail2ban 日志分割

设置防火墙安全策略,修改文件 /etc/fail2ban/action.d/iptables-common.conf 第64行,最后一行

iptables = iptables <lockingopt> 修改为  iptables = iptables

配置fail2ban 配置文件 jail.local

启动 fail2ban 服务

会多生成一个规则链

配置好之后我们检测下fail2ban工作状态

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

测试:故意输入错误密码3次,再进行登录时,会拒绝登录,在其他的机器上ssh 192.168.99.232 连续三次输错密码,使用命令,查看阻止状态

测试结果:

我们在来看看fail2ban的日志记录 记录了被阻止的IP 成功阻止了ssh 密码猜测

fail2ban解锁IP地址命令

五、卸载 fail2ban

 

关注运维天涯微信、新浪微博

评论已关闭