Centos7配置fail2ban防止ssh被暴力破解
当前系统centos7.5
1、配置epel源
1
|
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
|
2、安装fail2ban
1
|
yum install fail2ban
|
3、查看当前版本
1
|
fail2ban-server -V
|
4、配置
1
|
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
|
1
|
vi /etc/fail2ban/jail.local
|
在最后添加以下内容
1
2
3
4
5
6
7
8
|
[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=22, protocol=tcp]
#sendmail-whois[name=SSH, dest=your@email.com, sender=fail2ban@email.com]
logpath = /var/log/secure
maxretry = 3
bantime = 300
|
maxretry表示最大尝试次数达到3次,bantime客户端300秒内禁止连接
5、启动fail2ban服务
1
|
systemctl start fail2ban
|
6、验证
启动后验证fail2ban是否正常运行
1
|
fail2ban-client ping
|
正常响应内容为Server replied: pong
7、测试
连接当前主机,连续输错三次密码则会拒绝连接
查看被禁止的IP
1
|
fail2ban-client status ssh-iptables
|
此处ssh-iptables为jail.local的[ssh-iptables]名称
可以在/var/log/fail2ban.log查看屏蔽日志
5分钟后自动解除
CentOS/RHEL 6:
1
|
sudo chkconfig fail2ban on
|
Fedora 或 CentOS/RHEL 7:
1
|
sudo systemctl enable fail2ban
|
---------------------------
虽然SSH作为连接服务器的协议是非常安全的,但是一直暴露在公网中的SSH端口可能会遭受hacker的暴力破解。任何公网上的服务器都是潜在的被攻击对象。
Fail2ban是一个开源的入侵保护框架,它会监控对应的系统日志,并根据检测的可疑行为从而厨房相应的防御动作。Fail2ban可疑根据SSH登陆错误次数,在防火墙iptables中临时增加一条规则,从而防止恶意登陆,达到恶意登陆的目的。
CentOS 7 安装Fail2ban
因为 Fail2ban 在 EPLE (Extra Packages for Enterprise Linux)中不在官方软件仓库中,所以需要先安装 eple-release
1
|
yum update
|
安装 Fail2ban
1
|
yum install fail2ban
|
安装完成后启动 Fail2ban
1
|
systemctl enable fail2ban
|
设置 Fail2ban 开机启动
CentOS/RHEL 6:
1
|
sudo chkconfig fail2ban on
|
Fedora 或 CentOS/RHEL 7:
1
|
sudo systemctl enable fail2ban
|
配置 Fail2ban
Fail2ban 的配置文件是 /etc/fail2ban/jail.conf
,可以通过配置该文件创建自己的拦截规则。但是因为在升级软件包的过程中会覆盖掉这个文件,所以建议新建一个/etc/fail2ban/jail.local
文件而非直接编辑默认配置文件。
1
|
vim /etc/fail2ban/jail.local
|
写入如下配置
1
|
[DEFAULT]
|
重启 Fail2ban
1
|
systemctl restart fail2ban
|
查看 Fail2ban 状态
1
|
# fail2ban-client status
|
验证 Fail2ban 运行正常,通过 ping
参数运行 fail2ban-client
命令。如果 Fail2ban 正常,则如下所示:
1
|
# sudo fail2ban-client ping
|
查询某个特定 jail
的状态
1
|
#### sudo fail2ban-client status sshd
|
如果错误的屏蔽了某个 IP 可以使用下列命令:
1
|
# sudo fail2ban-client set ssh-iptables unbanip 8.8.8.8
|
Fail2ban 其它命令:
1
|
#### 最近一次启动日志
|
Fail2ban 不仅可以屏蔽 SSH 暴力破解,还可应用于 Web 服务器、SMTP、FTP、DNS 等服务器监控。