如何故意导致 ssh root 连接被拒绝

如何故意导致 ssh root 连接被拒绝

很简单,如果收到 root@ip_address 请求,如何让 ssh(端口 22)丢弃/拒绝连接,但仍允许 user@ip_address 正常工作。基本上隐藏了该特定 ip_address 上有服务器的事实。

我在爬虫访问我的服务器时遇到了问题。 sshd_config 中已禁用 SSH 根权限,并且已使用 UFW 限制。

问题/解决方案的替代细节

这些请求正在慢慢消耗我的 RAM,你会建议以刷新 ssh 缓存的方式来应对吗?怎么做呢?

更新和可能的快速解决方案

好的,按照建议对 Fail2Ban 进行了更深入的研究之后,booleanworld 上的小伙子们很好地定义了丢弃数据包和不响应的禁令。

链接在这里:https://www.booleanworld.com/protecting-ssh-fail2ban/

答案1

你不能这么做。

您的服务器无法知道远程连接将尝试以哪个用户身份登录,直到它已经连接之后!

您应该考虑使用 fail2ban 来阻止重复滥用者。

答案2

您可以通过编辑 /etc/ssh/sshd.conf 来禁用通过 ssh 进行的 root 登录

在进行更改之前务必备份配置文件。

sudo cp /etc/ssh/sshd.conf /etc/ssh/sshd.conf.backup

使用您喜欢的任何编辑器(例如 nano 或 vi)并编辑/etc/ssh/sshd.conf

查找或添加以下行;

AllowUsers someuser some_other_user
PermitRootLogin no

保存文件并重新启动 ssh 服务器。

sudo systemctl restart sshd.service

您仍然可以使用以下方式执行 root 活动须藤你也可以通过输入以下命令切换到根目录苏根

额外提示:

打开配置文件后,花点时间检查一下其内容。您可能还会发现其他有用的设置。在更改任何内容之前,请先谷歌一下它的作用,否则您可能会被锁定。

答案3

自从TCP 是面向连接的协议,需要建立连接才能处理/协商进一步的内容(例如本例中的用户名)。因此,上述建议@迈克尔·汉普顿可能是您的解决方案:在不同的端口上运行 SSH 服务器。

攻击者可以通过向端口 22/tcp 发送一百万个探测来扫描一百万个主机。当使用非标准端口时,一百万次探测只能扫描 16 个主机,因为在已知端口的基础上最多还需要测试 65,534 个额外端口。

当然,如果您已经是目标,它就无济于事了,但很有可能,您会将随机扫描的次数减少几个数量级。

对于所有其他已经了解您机器的攻击者,请使用过滤自动化解决方案,例如 Fail2Ban。否则,您最终会拥有大量的防火墙规则,这些规则需要在接受每个 SSH 数据包之前进行处理。当您的 Netfilter 规则随着时间的推移而增长时,这会导致大量 CPU 周期浪费。

相关内容