ssh 一分钟被打 1000 次, fail2ban 有用吗?

2022-04-22 08:03:32 +08:00
 elboble
Apr 20 23:40:03 debian99 sshd[2443]: Failed password for invalid user liyanjun from 134.209.229.252 port 44720 ssh2
Apr 20 23:40:03 debian99 sshd[2450]: Failed password for invalid user liyaocheng from 134.209.229.252 port 44948 ssh2
Apr 20 23:40:03 debian99 sshd[2453]: Failed password for invalid user liyifei from 134.209.229.252 port 45180 ssh2
Apr 20 23:40:03 debian99 sshd[2431]: Failed password for invalid user lixy from 134.209.229.252 port 43946 ssh2
Apr 20 23:40:03 debian99 sshd[2415]: Failed password for invalid user lixiang from 134.209.229.252 port 43168 ssh2
Apr 20 23:40:03 debian99 sshd[2459]: Failed password for invalid user liyongmin from 134.209.229.252 port 45918 ssh2
Apr 20 23:40:03 debian99 sshd[2441]: Failed password for invalid user liyanhao from 134.209.229.252 port 44636 ssh2
Apr 20 23:40:03 debian99 sshd[2446]: Failed password for invalid user liyanjun from 134.209.229.252 port 44794 ssh2
@:~$ sudo cat /var/log/auth.log | grep 134.209.229.252 | grep invalid | wc -l
948
@:~$ 

暂时没用 fail2ban ,自己写个脚本,每一分钟扫一次 auth.log,大于 10 次就 ban ,但是有的 ip 一分钟就能尝试 1000 次,太凶残了,能限制 ssh 并发个数吗,超过 10 个,就不要管了。

9079 次点击
所在节点    Linux
65 条回复
mingl0280
2022-04-22 14:07:02 +08:00
@elboble 你自己给你自己的 IP 开白名单啊,有啥困难的?不就是在前面加一条 ACCEPT 的事情?另外不知道为啥你不设这个但是我 22 端口是不用密码的……
suifengdang666
2022-04-22 14:44:42 +08:00
fail2ban 的搜索时间可以说是近实时,基本上 1s 左右可以检测到 login failed 存在并输出到 fail2ban.log
gesse
2022-04-22 16:42:45 +08:00
直接 ban c 段 ip 啊。
ctro15547
2022-04-22 16:52:59 +08:00
有用,已经 ban 了几个 W 的 ip 了 ,每个都封 1 个月 爱打就打吧 累了
shellic
2022-04-22 17:30:59 +08:00
禁掉密码登录换密钥登录,瞬间清净了
documentzhangx66
2022-04-22 18:09:41 +08:00
这其实非常简单。

攻击者,会先扫描 tcp 22 端口,如果扫不出来,才去扫高位端口。

所以,你在服务器上,先把 ssh 改为高位端口,然后做个脚本:

只要有 IP 连接 tcp 22 ,直接永久封掉它的 IP 。
cco
2022-04-22 18:33:15 +08:00
从来不开放 22 端口
从来不使用密码登录
linglin0924
2022-04-22 18:33:58 +08:00
当时端口默认,也是一堆脚本小子扫。后来端口改成 6w+以上,每次登录的 banner 就很清爽了。
zpfhbyx
2022-04-22 18:54:35 +08:00
😃 加个 2fa 就屏蔽了大部分了..
elboble
2022-04-22 19:16:38 +08:00
@documentzhangx66 是个办法,但是不能轮询,要用中断。
SpicaStar
2022-04-22 19:22:18 +08:00
22 端口只对 ipv6 开放不就行了,如果是服务器域名不要直接解析到机器上
想扫你无异于大海捞针
datocp
2022-04-22 19:31:14 +08:00
搜索一下 iptables recent hacker/ipset ,实现一点不输 fail2ban 。制造陷阱,动态封锁。
documentzhangx66
2022-04-22 19:43:55 +08:00
@elboble 直接改 fail2ban 的代码就是轮询,改 iptables 代码就是中断。看你怎么用。我喜欢后者。
acbot
2022-04-22 19:54:38 +08:00
除开 Web 80 443 这种端口不方便改之外,其他服务改非常用端口 + IP 白名单段(不要给我说动态 IP ,或者说么有公网啥的,我要说在现有大 NAT 环境下,都不难统计出来),能解决大部分安全问题!
AS4694lAS4808
2022-04-22 20:05:00 +08:00
@m4d3bug 如果要远程管理还得开着 sshd 。。
icegaze
2022-04-22 20:05:17 +08:00
敲端口很好,
自己设置几个不特定端口顺序,
能杜绝一切 ssh 登录的尝试… …
yeqizhang
2022-04-22 20:29:11 +08:00
host.deny 禁 22 host.allow 再允许国内的 ip 段,比如我就 allow 我这个省份,最后一道防线是定时处理日志找出 ip 用 iptable 禁用
pengtdyd
2022-04-22 21:29:09 +08:00
换端口啊!!!!!!把 22 端口封了
EVJohn
2022-04-22 21:34:23 +08:00
换端口,或者上个 zerotier/tinc/wg ,22 只对 sdlan 服务
aaa5838769
2022-04-22 21:38:52 +08:00
换端口+key 登陆+防火墙白名单。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/848484

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX