限制远程 ssh 会话的最佳方法

信息安全 linux SSH 会话管理
2021-08-21 14:30:49

使用以下文件,我尝试限制 SSH 远程登录。由于缺乏对linux环境的了解,我不知道以下方式之间的弊端和漏洞。所以我想知道这些文件和进程之间的内部工作。

请高手与我分享您的经验。

SSHD_CONFIG在 /etc/ssh/ 文件夹中找到了这个文件ssh_config如果我添加了以下行。我可以限制 root 用户远程访问,也可以允许我想要使用我想要的最大会话访问的用户。

vim /etc/ssh/ssh_config    
PermitRootLogin no
AllowUsers jack joe
MaxSessions 5

主机拒绝文件

只需在以下文件中附加用户 IP。

vim /etc/hosts.deny

192.168.5.*

PAM 文件夹: 在 PAM 文件夹中,我添加了所有不允许进行身份验证以访问远程 ssh 的用户。

vi /etc/pam.d/ssh

auth required pam_listfile.so item=user sense=deny file=/etc/sshd/sshd.deny onerr=succeed

vi /etc/sshd/sshd.deny
3个回答
PermitRootLogin no
AllowUsers jack joe
MaxSessions 5

该配置的前两行对我来说似乎很好。第三个没有必要,因为如果有人闯入您的系统,只需 1 个 shell 就可以完成所有的恶行。

在这种情况下,您只允许两个用户连接,这意味着这些用户必须使用足够安全的密码才能不闯入(至少不容易)。

您还可以做一些事情:

  • 如果您使用连接到计算机的 IP 范围受限,请将端口 22 限制在这些范围内。放弃/拒绝其余的。

  • 如果没有,您可能会使用带有 iptables 的 GeoIP来拒绝所有您不期望连接的国家(或者换一种说法,只允许您期望的国家)。

  • 还有一些其他工具可能对您有所帮助:Fail2Ban就是其中之一。这将使得在您的系统中尝试使用错误密码进行 X 次可配置尝试时,IP 将被禁止iptables一段时间(也可配置)。

  • 有数百个类似的工具,但这将是一个足够好的方法来获得基本一致的配置。

您还应该考虑更改 SSH 守护程序正在侦听的端口。

尽管这更像是一种混淆而不是真正的安全措施,但它肯定会减少您需要查看的日志条目的数量,因为您不会受到机器人的持续轰炸。

还有另一个概念称为端口敲击这个想法是一样的。它不一定会增加真正的安全性,但它会使您的日志文件保持干净。

这两种措施都可以让您专注于更重要的日志条目并检查它们是否合法。

文件 /etc/ssh/ssh_config 是 SSH 客户端的全局配置。/etc/ssh/sshd_config 用于配置 SSH 服务器。确保修改正确的。

当您指定“AllowUsers”时,SSH 会自动拒绝所有未列出用户的访问。不需要 PAM 文件。如果您阅读过手​​册页,您就会知道这一点。“人 sshd_config”。

Fail2ban 很棒,我自己也用。在非标准端口上运行 SSH 服务将使日志文件更清晰,但由于非标准 SSH 配置(您必须手动指定端口或使用客户端配置文件 - 本地或全局)而增加了运营成本。