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 个,就不要管了。

8975 次点击
所在节点    Linux
65 条回复
villivateur
2022-04-22 08:06:39 +08:00
禁用密码登录就好了
billgong
2022-04-22 08:13:38 +08:00
f2b 当然有用了,就是为了防这种情况的。这一点并发问题不大,没必要自己写。
JeromeCui
2022-04-22 08:13:46 +08:00
如果是自己的机器,把用 geoip 把国外的 ip 全给禁了会好很多
Mithril
2022-04-22 08:15:37 +08:00
我自己的服务器都是直接把端口封了,需要的时候再从控制台里开。
主要是也没什么需要经常 SSH 上去的工作,甚至有的时候直接用网页的就够了。
lijinma
2022-04-22 08:29:26 +08:00
禁用密码登陆吧
mingl0280
2022-04-22 08:35:50 +08:00
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name sshuser --set
iptables -A INPUT -m recent --update --name sshuser --seconds 3600 --hitcount 5 -j DROP
随便抄了个 IPTables 规则,一小时内只能连接 5 次,超过则阻断。
顺便一提 f2b 其实也差不多……
imnpc
2022-04-22 08:38:09 +08:00
我的都是密钥登录 + 更换高位端口
deasty
2022-04-22 08:38:37 +08:00
fail2ban + Google 动态口令
elboble
2022-04-22 08:41:17 +08:00
@billgong 我看 f2b 原理也是定期扫 log ,1 分钟是最低间隔了,如果不能限制访问频率,那和我这个脚本效果一样啊,1 分钟疯狂跑字典,从 di 跑到 li 了
anytk
2022-04-22 08:42:36 +08:00
复杂点用 iptables ,简单点 ufw limit ,外加改 ssh 端口,禁止密码登陆
markgor
2022-04-22 08:43:43 +08:00
>能限制 ssh 并发个数吗,超过 10 个,就不要管了。
那别人一直打,你正常登陆不也登陆不了?

我一般都是改 sshd 端口+f2b 的,但就现有日志来看,就算不加 f2b 也一样。所以建议你还是直接改 ssh 端口吧
cslive
2022-04-22 08:46:57 +08:00
禁用密码登录,让他扫
angryfish
2022-04-22 08:49:01 +08:00
使用防火墙,平常不用的时候关闭所有目标访问,自己用的时候,允许自己 ip 访问就好了。
我一般情况都不怎么登录 ssh ,只有发布程序的时候登录,感觉还行。
luxor
2022-04-22 09:03:04 +08:00
这不是被打,而是有人在暴力破解 ssh 的账号。改端口也没啥用,很快就能再次连过来。最有效的办法还是建立 iptables ssh 端口的白名单规则。
elboble
2022-04-22 09:06:17 +08:00
@mingl0280 这个没限 ip ,被打了自己也上不了吧?
moxuanyuan
2022-04-22 09:06:52 +08:00
我家里路由器也是。。天天被扫
Fri Apr 22 08:56:40 2022 auth.info sshd[12203]: Invalid user demo from 93.95.230.165 port 54250
Fri Apr 22 08:56:40 2022 auth.info sshd[12203]: Connection closed by invalid user demo 93.95.230.165 port 54250 [preauth]
Fri Apr 22 08:57:09 2022 auth.info sshd[12316]: Invalid user demo from 93.95.230.165 port 54478
Fri Apr 22 08:57:10 2022 auth.info sshd[12316]: Connection closed by invalid user demo 93.95.230.165 port 54478 [preauth]
Fri Apr 22 08:57:39 2022 auth.info sshd[12487]: Invalid user demo from 93.95.230.165 port 54702
Fri Apr 22 08:57:40 2022 auth.info sshd[12487]: Connection closed by invalid user demo 93.95.230.165 port 54702 [preauth]
elboble
2022-04-22 09:08:59 +08:00
@luxor @anytk @imnpc 已经是高位端口了。
就是普通家宽,看来只能禁止密码登录了事。
wu67
2022-04-22 09:09:10 +08:00
先把密码登陆关了.
我印象中是可以用白名单的吧? ssh 只放行自己常用的机器的 ip. 当然如果没有公网 ip 、全是动态的, 那可能有点难办
HeyEvan
2022-04-22 09:16:39 +08:00
我的做法

1. 禁用 root 登录,更改默认 22 端口
2. 服务器防火墙开放 SSH ,云防火墙关闭 SSH
3. 安装 ZeroTier

平时通过 Zerotier 连过去,要是连不上或连接缓慢,直接开放云防火墙,用完再关
aru
2022-04-22 09:23:37 +08:00
怎么会没用呢。
攻击者的 IP 是有限的,封一个少一个,一段时间就清净了
但是 fail2ban 的默认封禁时间是 10 分钟,记得调成一周或一月,还有扫描时间范围设成 1 天

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

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

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

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

© 2021 V2EX