Administrator
Published on 2023-07-25 / 59 Visits
1
0

使用 fail2ban 防止 Linux server SSH 被暴力破解

使用 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 的服务器了.


Comment