没有静态 IP+只能密码登录 SSH 的服务器怎么做好安全防护? SSH 104 位随机密码还需要配置 fail2ban 吗?客户买了一套 08 年后就没人维护的系统,设备间通过公网 IP+ SSH 通信,只能用密码登录,没源码改不了。

2023-02-11 21:12:19 +08:00
 edis0n0
3733 次点击
所在节点    信息安全
32 条回复
leonshaw
2023-02-12 11:16:35 +08:00
强密码本身不用担心暴破。密码登录主要问题在服务器能看到明文密码,所以客户端一定要有 host key 校验。fail2ban 可以有,能减少服务器压力,或者让攻击者知难而退。
wfhtqp
2023-02-12 11:33:31 +08:00
headsacle
zed1018
2023-02-12 15:20:17 +08:00
如果我没有理解错,假设你的客户端只是需要类似 NTL 去搭一个到服务器上的 8000 port ,你还可以把客户端用的那个 user 设置 nologin ,这样即使别人暴力到了也多一层保护
adoal
2023-02-12 15:54:36 +08:00
既要又要还要是不可能的。脱保了而且连源码都没有的系统,又不打算重新开发,那只能通过堆屎山的运维手段来缓解了。

首先要在服务器端更新系统组件,这是必须做的。多年不更新,鬼知道哪个 CVE 会暴雷。当然如果服务器端操作系统比较老,比如 CentOS 6 这样的,就算更新到最新也很老了。可以自己编译安装较新版的 OpenSSH ,不过不要替换系统自带的,可以安装在另外路径,系统自带的停掉,用新的来服务。不过这样做了还是要自己日常关注 OpenSSH 的安全通告,必要时手动升级。

另外,你的意思是客户端程序里调用 ssh 登录,登录成功后做了端口转发,而且是程序内部代码实现的,不是调用外部 ssh 命令,现在没办法改了?(如果是调用外部程序,就可以用加套的方式替换)

客户端程序的行为没法改,不等于运行客户端的环境没没法动。#19 说的“无论是 VPN 还是 Knock, 都离不开客户端改造”大概意思时连运行客户端环境都没法动的情况。如果不是他说的这样,其实是可以认真考虑用 VPN 的。当然如果要运行客户端的是各个非 IT 的业务员工的家里,那部署 VPN 会造成心智负担。要么做好培训和支持,要么另行开发易操作的部署程序,都会比较折腾,但并不是完全不可行的。
adoal
2023-02-12 15:56:52 +08:00
fail2ban 、改受限 shell ,也算是短平快的辅助手段了。但一般来说这些只是辅助手段。根本的还是认证安全 /网络链路安全。
adoal
2023-02-12 16:01:10 +08:00
深刻教训:定制开发的信息化项目一定要要求交付源代码了才能通过验收。不要信搅基陈之类的网红信息咨询顾问的鼓吹。不是每个信息化开发商都是皮袍索芙特这样的长命巨头,也不是每个业主都有条件出丰裕的资金每个项目都找长命巨头来做。
yinmin
2023-02-12 16:46:56 +08:00
如果服务器没法动,就只有改造网络了。

第一种方式是架 vpn 专网,服务器放专网里,然后客户端先 vpn 拨入再访问服务器。如果你熟悉 docker 的话,架设 vpn 最简单的方式是用 hwdsl2/ipsec-vpn-server 镜像(下载量超千万),windows 客户端使用 Windows 内置的 IKEv2 协议(不推荐 l2tp 协议),客户端无需安装第三方软件,只需要将 vpn 证书导入系统,然后配置即可。使用者是无法导出证书,也就是说,只有你安装的机器可以用 vpn ,使用者无法自己克隆一个出来,克隆硬盘也不行。

第二种方式是使用 stunnel 做双向证书认证,stunnel 稳定性很好,这个配置有点专业,你可以自己研究一下。

推荐一款设备做 vpn 服务器,软路由神器 nano pi r2s 或者 r4s ,安装 armbian linux 操作系统,安装 Docker ,安装 hwdsl2/ipsec-vpn-server 镜像,如果企业用,不推荐 openwrt ,直接上 armbian ,妥妥的 500Mbps+。
parametrix
2023-02-12 22:09:53 +08:00
密码有什么问题?你这 104 位随机密码比 ed25519 私钥位数还长,不用 fail2ban 除了 DDOS 风险我看不出来能出啥问题。
parametrix
2023-02-12 22:11:54 +08:00
另外,SSH 加密套件的安全性完全不输给 TLS ,用 SSH 做安全通讯没什么问题。
julyclyde
2023-02-13 08:57:20 +08:00
都用家用宽带了,还能有啥严肃业务啊……
julyclyde
2023-02-13 08:58:22 +08:00
@adoal 业主下一年就会对运维项目单独招标,然后开发方的竞争对手会“零知识”中标,然后发现啥工作都做不下去
coolloves
2023-03-29 20:40:42 +08:00
怎么感觉 nginx 反代就可以解决吧?
对方通过 ssh 隧道来接你内部 127:8000 的服务,回收 ssh,nginx 把服务暴漏出去,做个简单验证,给不同的用户不同的密码.这样风险小很多吧.

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

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

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

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

© 2021 V2EX