如何在服务器端自动ban掉扫描ssh的IP

电子说

1.3w人已加入

描述

作者:京东物流 罗旅帆

现在服务器在网络暴露一段时间就会有人不停的进行扫描各种端口,nginx的80,443,ssh的22等。进行尝试渗透,并且现在有大量框架进行全自动扫描渗透。

为了最大化的阻止扫描,可以利用fail2ban这个框架来把频繁扫描的源IP直接丢进黑名单。让服务器在一定时间内拒绝连接。


 

1.安装fail2ban:

# Ubuntu sudo apt update && sudo apt install fail2ban

# CentOS yum install fail2ban


 

我们已经完成了fail2ban的安装, 接下来就是fail2ban的配置

2.配置fail2ban

首先使用vi或者vim打开fail2ban的规则配置文件

 

vi /etc/fail2ban/jail.conf

 


 

按i键插入,复制以下内容:

 

[DEFAULT]
bantime  = 86400
maxretry = 5
findtime = 600
banaction = firewallcmd-allports
[sshd]
enabled  = true
filter   = sshd
logpath  = /var/log/secure
maxretry = 3

 

enable = ture filter =sshd # CentOS logpath = /var/log/secure # Ubuntu # logpath = /var/log/auth.log maxretry = 5 # 最大尝试次数 bantime = 86400 #封禁时间,单位s。-1为永久封禁

3.激活fail2ban

在配置完成后, 当然是选择激活它啦

对于CentOS7/8,Fedora

 

sudo systemctl restart fail2ban

 

对于Debian, Ubuntu或CentOS6:

 

sudo service fail2ban restart

 

如果是第一次启动的话建议把命令中的restart换成start

CentOS7设置fail2ban自启

 

systemctl enable fail2ban.service

 

4.检验fail2ban

如果要检验fail2ban有没有正确启动, 可以使用这个命令

 

sudo fail2ban-client ping

 

如果正确启动的话fail2ban会以pong作为回应(Server replied: pong), 其他情况就需要看看配置文件的格式正确以及是不是用start命令启动fail2ban什么的…

如果要查看fail2ban目前启用的规则的话

 

fail2ban-client status

 

查看某个规则下被封禁的次数以及ip(以[sshd]规则为例)

 

fail2ban-client status sshd

 


 

如果想看iptables的 ban策略生效状态

可以通过

 

sudo iptables -L INPUT -v -n | less 

 


 

总结:

通过以上操作可以看到过去24小时内一共被ban了 很多IP。如下图所示,通过这个策略。可以大幅度缓解ssh 账号密码被暴力破解的进度

SSH



审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分