如何*正确*地保护 ubuntu 服务器上的 SFTP 访问?

如何*正确*地保护 ubuntu 服务器上的 SFTP 访问?

我需要一些帮助来在 ubuntu / kubuntu 22.04 服务器上配置非常可靠的 sftpd 服务。ssh / tls 安全细节对我来说非常模糊。certbot 不会有帮助,我怀疑 letsencrypt 也不会有帮助。

但对于 ftp 帐户本身的密码(似乎始终是一个薄弱环节),我的想法如下:

使用 Filezilla 应用程序(适用于 Windows 和 Linux)访问 FTP 服务器。记下包含混合大小写特殊字符的密码,如 ( ) , . ; - _

确保密码本身可以在首字字符级别用 leet-speak 表达,因此在其中包含一个以“a”开头的单词,这样您就可以假设可以选择用“4”替换该字符。对于“e”=“3”和 leet-speak 词典的其余部分也是如此。

在最终密码中包含 ascii-art,作为一行。

安装时使用密码管理器的密码来保护 filezilla 的安全。

将该密码设置为仅由您刚刚设计的密码短语的首字母组成的密码。

对 filezilla 中任何书签的密码重复此过程。

将所有网站、用户名、密码写在一张纸上,并随身携带(但不要放在钱包里)。不要将它们保存在任何系统上的文件中。

我想知道这个过程是否足以阻止那些可以访问间谍软件和 rootkit 软件的人(我听说这些软件现在可以通过暗网获得)。

答案1

您在这里问的问题不清楚,但从安全角度来看,这似乎非常混乱,而且不太好。Leet Speak 不会增加显著的安全性,从安全角度来看,写下密码也不太好。

SFTP 是安全 FTP,它通过 SSH 运行,从而可以实现相当好的安全性。

为了以安全的方式使用它,您确实需要掌握私钥/公钥的概念(SSH 对此提供了很好的支持)。这个想法是您有 2 个密钥,一个只有您知道的私钥,以及一个您可以告诉所有人的公钥。想要让您访问其资源的人会将您的公钥添加到服务器。然后,您可以在客户端中使用您的私钥访问该站点。(您无法从公钥中推断出私钥)。

SSH(以及大多数类似的系统允许您更进一步,通过使用密码(即长密码)加密您的私钥,因此即使有人获得了它,他们也无法在不知道您的密码的情况下使用它。

从您的角度来看(并且简化了很多),您需要了解的有关 TLS 的信息是它就像 HTTPS - 在这种情况下,它所做的就是通过使用您/您的软件信任的第三方来验证远程端,从而防止第三方拦截连接。

密码管理器的想法很好。你想出一个复杂的密码,使用它来生成不同的随机密码每个网站都有密码。只要您使用的密码足够安全,您就可以在您信任的设备之间共享密码管理器使用的文件,并且只记住 1 个密码,而所有网站都有不同的密码 - 因此,如果 1 个密码被泄露,它不会帮助攻击者进入其他网站。

这些都无法防止那些可以访问您用来输入密码的系统的人。(它可能对 SFTP 没有帮助,但这正是 2FA 发挥作用的地方 - 例如使用电话或辅助设备来双重验证您的密码。根据您的服务器实现,可能可以将 SFTP 与 2FA 结合起来,但从您现在的位置到那里有一个非常陡峭的学习曲线,所以它不切实际)

相关内容