您当前位置:知识库 >云服务器 >服务器教程 >浏览文章

Linux 如何使用 fail2ban 防止 SSH 暴力破解

来源:不详 日期:2023/9/25 16:14:59 阅读量:(0)

Linux 如何使用 fail2ban 防止 SSH 暴力破解

如果你坚持使用带密码的 SSH 登录, 业内公认的, 防止SSH爆破的最有效且成本最低的方法是利用Fail2ban. 不需要加之一, 而且, 几乎没有副作用.

Fail2ban还能结合 wordpress 防止暴力登录, 今天只说最小可用方式, 也是最实用的方式, 在你使用 ssh 账户和密码登录的情况下, 如何防止别人暴力破解.

Centos 下安装 faile2ban

yum -y install epel-release
yum
-y install fail2ban

配置 Fail2Ban

编辑其配置文件 /etc/fail2ban/jail.conf。在配置文件的“[DEFAULT]”区,你可以在此定义所有受监控的服务的默认参数,另外在特定服务的配置部分,你可以为每个服务(例如SSH,Apache等)设置特定的配置来覆盖默认的参数配置。

在针对服务的监狱区(在[DEFAULT]区后面的地方),你需要定义一个[ssh-iptables]区,这里用来定义SSH相关的监狱配置。真正的禁止IP地址的操作是通过iptables完成的。

下面是一个包含“ssh-iptables”监狱配置的/etc/fail2ban/jail.conf的文件样例。当然根据你的需要,你也可以指定其他的应用监狱

[DEFAULT]               #全局设置
ignoreip
= 127.0.0.1/8       #忽略的IP列表,不受设置限制
bantime  
= 600             #屏蔽时间,单位:秒
findtime  
= 600             #这个时间段内超过规定次数会被ban掉
maxretry
= 3                #最大尝试次数
backend
= auto            #日志修改检测机制(gamin、polling和auto这三种)
[ssh-iptables]              
#单个服务检查设置,如设置bantime、findtime、maxretry和全局冲突,服务优先级大于全局设置。
enabled  
= true             #是否激活此项(true/false)修改成 true
filter  
= sshd              #过滤规则filter的名字,对应filter.d目录下的sshd.conf
action  
= iptables[name=SSH, port=ssh, protocol=tcp]             #动作的相关参数,对应action.d/iptables.conf文件
sendmail-whois
[name=SSH, dest=you@example.com, sender=fail2ban@example.com, sendername="Fail2Ban"]#触发报警的收件人
logpath  
= /var/log/secure   #检测的系统的登陆日志文件。这里要写sshd服务日志文件。默认为logpath = /var/log/sshd.log
#5分钟内3次密码验证失败,禁止用户IP访问主机1小时。配置如下
bantime  
= 3600   #禁止用户IP访问主机1小时
findtime  
= 300    #在5分钟内内出现规定次数就开始工作
maxretry
= 3    #3次密码验证失败

image.png

重启Fail2Ban

systemctl restart fail2ban

测试

密码输入错误三次之后ssh服务断开

image.png

查看防火墙规则,我们的IP已经被禁止端口访问

image.png


关键字:
声明:我公司网站部分信息和资讯来自于网络,若涉及版权相关问题请致电(63937922)或在线提交留言告知,我们会第一时间屏蔽删除。
有价值
0% (0)
无价值
0% (10)

分享转发:

发表评论请先登录后发表评论。愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。