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 等服务器监控。