解决 ssh 爆破的一个方法,使用不支持的加密套件

344 天前
 huahsiung

ssh 服务器是我手动实现的,当时我了安全,强行只启用了一种加密。

今天一看,竟然被爆破了

爆破器支持的加密套件 aes128-gcm@openssh.com chacha20-poly1305@openssh.com aes128-ctr aes192-ctr aes256-ctr

直接握不了手。

3780 次点击
所在节点    分享发现
29 条回复
hingle
344 天前
“ ssh 服务器是我手动实现的”

这才是最不安全的方式。
huahsiung
344 天前
@hinglelibssh.org 现有的库实现的,也不能说不安全吧,不然使用 libssh.org 的都不安全了。在 libssh 上层代码,代码也没有超过 100 行,低级错误应该基本都避免了
illl
344 天前
只允许用证书没有更安全嘛
Radeon
344 天前
支持。这个想法很好
churchmice
344 天前
证书登录保平安
0o0O0o0O0o
344 天前
赞同#1 ,就算用它们的库,你自己的代码会不会有漏洞,你的编译会不会和安全实践不一致,上游的漏洞、补丁是不是及时关注处理,等等
hash
344 天前
弄一扇正常的防盗门,而不是把门框用水泥糊满
titanium98118
344 天前
证书登录保平安
myqoo
344 天前
ssh 这种服务完全没必要开放给所有 IP
huahsiung
344 天前
@0o0O0o0O0o 软件已经用上几个月了,就像自己做的东西,在难吃也...,不过现在看起来不是很难吃。

所有人都所有同一个软件,攻击面就会很大。不知道为什么 v 站的风气就是“造不如买”。都觉得使用别人的更安全。

软件只实现了 req-pty ,exec 和 scp [scp 强行把所有文件重定向到 /upload] ,攻击面应该很小。不也有不少人使用 openssh 也不会关注上游的漏洞、补丁啊

反正总要去试的,总比等别人好吧。
huahsiung
344 天前
@titanium98118
@churchmice
@illl 这个在只在自己的电脑是登录是没有问题的。如果是公用电脑,总不可能把私钥放上去把。
我也考虑过堡垒机,万一堡垒机被日了呢。

当然也用其他方法,比如 webssh ,但是这里只是讨论`sshd 使用不支持的加密套`的一种方法
huahsiung
344 天前
希望关注点不要在“ ssh 服务器是我手动实现的”这里

毕竟我喜欢自己手动实现

我使用的 Linux 的组件都被我替换完了。除了 sshd,还编写了一个 dhcp 客户端,替换了 isc-dhcp 。编写了一个 net 管理工具,替换了 systemd-networkd ,什么 NetworkManager ,systemd-resolved 全部被我自己的软件替换了,除了 systemd-udevd 等替换难度巨大的,其他基本都替换了。

我 ss 也是自己实现的,我使用的 ss 移除了 aes 对称加密,使用我自研的对称加密,移除了默认的 hash ,改使用其他的 hash ,还改了默认的认证方式。也没有被封锁过任何 ip 和端口(可能是用的人少,只有我和朋友在用)

希望大家不要过分关注“自己实现是最不安全的方式”这个论点,从某种程度来说,我现在在“以身试毒”。用来验证“自己实现才是最不安全的方式”的论点。什么时候我被黑客日了,我来吱一声
churchmice
344 天前
@huahsiung 弄个加密 u 盘,密钥存那里面
huahsiung
344 天前
@churchmice 感谢你的建议,但是公用电脑我一般是 webssh 或者 novnc 。感觉这个好一点
billccn
343 天前
@huahsiung 虽然动手实践是很好的,但是也要注意 security by obscurity is not security 。

你自编译的虽然抵挡了自动扫描,但是扫描器会把你这个奇葩的握手记下来,说不定哪一天有个友邦黑客大神无聊拿你做“科研”,这时候你没有及时升级 SSH 的其他部分就使你中招了。

另外在不信任电脑上使用私钥的问题可以用智能卡解决,最方便的是 Yubikey ,在大多数电脑上免驱。
eudemonwind
343 天前
感觉楼主这种改客户端的方法不适合大规模部署,对小白也不友好。一般人使用,对于安全还是循序渐进的找到适合自己的最好。

比如:强密码 > 证书登陆 > 改端口 > Fail2ban > 防火墙白名单 > 各种隐藏端口的办法( vpn or and 端口敲门 or and 加密隧道 等等等等)
huahsiung
343 天前
@eudemonwind 我只是用我的程序做了给示例,实际上 openssh 也可以很轻松配置自定义加密套件,

配置文件添加 vim /etc/ssh/sshd_config

KexAlgorithms +diffie-hellman-group14-sha512 #指定密钥交换套件

Ciphers aes256-gcm@openssh.com,aes256-ctr #指定加密套件

MACs hmac-sha256 #指定 hmac 算法

差不多就算这样
leonshaw
343 天前
@billccn 理论跟实践还是有区别的。互联网上大部分扫描攻击都是针对已知漏洞广撒网,对一两个异常不会有兴趣,因为没什么收益。
idealhs
343 天前
给哥们的动手精神点个赞
但是我还是想说,自己写的不太可能强过现成的,所以我选择 sshd
idealhs
343 天前
#15 说的很对,选择一个小众的加密协议不代表你就安全了,类似于 mac 没病毒这个说法
你没挨打只是因为人家打你不是一片一片的打,不划算,如果有人专心想打你,你这个就可能是纸糊的
正儿八经的 ssh 安全,还是要靠证书验证和限制访问 IP

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

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

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

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

© 2021 V2EX