介绍
虽然通过SSH连接到你的服务器是非常安全的,但是SSH程序本身是必须暴露在互联网上,这会带有一些风险,并提供了潜在的被攻击性。
暴露于网络的任何服务都是黑客的潜在目标。如果你注意到这些应用程序的日志,你经常会看到重复的系统登录尝试,代表主机已经被尝试暴力攻击。
fail2ban可以通过创建基于失败的登录尝试的预定数量自动改变你的iptables防火墙配置规则缓解这一问题。这将使你的服务器,不需要您的干预且对这些非法访问作出反应。
以下,我们将介绍如何安装和一个CentOS 7服务器上使用的fail2ban。
1. 安装EPEL源以及Fail2ban
yum install epel-release -y
yum install fail2ban fail2ban-systemd -y
2.配置本地设置
fail2ban的服务的配置文件保存在/etc/fail2ban目录。在那里,你可以找到一个名为默认值的文件jail.conf。由于这个文件可以通过软件包升级覆盖,所以我们不应该编辑此文件。因此,我们将编写一个名为jail.local的新文件,其中定义的任何值将覆盖jail.conf这个文件配置中。
vi /etc/fail2ban/jail.local
写入以下命令:
[DEFAULT]
filter = sshd
findtime = 300
bantime = 86400
maxretry = 3
banaction = iptables-allports
[sshd]
enabled = true
port = 2233
bantime是被封IP禁止访问的时间,设定值为24小时,单位是秒。 findtime是检测时间,在此时间内超过规定的次数会激活fail2ban,单位是秒。 maxretry是允许错误登录的最大次数,和findtime配合使用。 sshd区块的enabled = true开启对SSH服务的防护,port为SSH的自定义端口。
保存退出,重启服务:
systemctl start fail2ban.service
3.启用fail2ban并设为开机自启
systemctl enable fail2ban
systemctl start fail2ban
4.常用操作
//启动
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
羞羞的铁狼