使用 fail2ban 防止 Linux server SSH 被暴力破解
如果你坚持使用带密码的 SSH 登录, 业内公认的, 防止SSH爆破的最有效且成本最低的方法是利用Fail2ban. , 而且, 几乎没有副作用.
玩过群晖的知道 可以设置一个 防破解登陆SSH,这个fail2ban设置好和它类似, 关了SSH自己又不好管理开了 又怕被爆。。。。 那就做好防破吧。。
首先的安装它 这里用armbian的ARM ubuntu 安装 一下 也是我的一台 arm 主机。专门搭建 docker 挂几个东西玩玩。。 Alist GF之类的
安装
sudo apt install fail2ban ubunut/debian
sudo dnf install fail2ban centOS/redhat
ubuntu类的用下面演示用的 redhat类的 都一个意思
安装的时候 好像有点慢 应该网络问题。。 没提示在敲多一次 就行。。。 安装完了 就提示好了。。
使用以下命令启动并启用该服务:
sudo systemctl start fail2ban #启动
sudo systemctl status fail2ban # 查看fail2ban 是否正常启动
sudo systemctl enable fail2ban #设置开机启动
配置jail.local 文件
创建一个新文件jail.local,它将覆盖jail.conf中的任何同类设置.
同时将监视/var/log/auth.log,
sudo vim /etc/fail2ban/jail.local
在此新文件中,粘贴以下内容:
[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
action = iptables[name=SSH, port=ssh, protocol=tcp]
[Definition]
allowipv6 = yes
重新启动fail2ban:
sudo systemctl restart fail2ban
通过命令
sudo systemctl status fail2ban
查看服务运行状态: 如下反馈表示正常运行, 顺便也可以检查上述命令
sudo vim /etc/fail2ban/jail.local
中文件是否设置正确.
全部设置完毕
如果有机器试图通过SSH登录您的Ubuntu服务器,并且失败了三次,那么将通过iptables阻止其IP地址阻止它们进入。
测试和取消
您可以通过一台 vps 尝试登录这台 fail2ban 的机器, 测试以确保失败三次.
在第三次尝试失败后,连接将挂起, 就像死机, ssh 窗口冰冻了.
按[Ctrl] + [c]退出,然后尝试SSH回到服务器。
您使用的IP地址SSH到该服务器, 做梦吧, 被 ban 了, 试验成功.
日常查看 lastb 命令:
如何查看指定日期的 ssh 失败登陆列表:
可以使用以下命令取消 ban 测试IP地址:
sudo fail2ban-client set sshd unbanip IP_ADDRESS
# IP_ADDRESS是禁止的IP地址
# 现在你又可以开心的使用SSH重新登录那个 fail2ban 的服务器了.