我有一堆视频文件,希望我的朋友能够随时下载。他知道如何使用 FTP 客户端等,但他并不精通技术,所以我更喜欢一种让他做最少事情的方法。
我的设置:
顺便说一下,快速的光纤连接真是太棒了。
几个旧机架式服务器全天候运行,虽然有点吵,但也很棒。
具有专用 DMZ 的网络设置,无法访问我的私有 LAN
目前我在 DMZ 中运行两个虚拟服务器,第一个是名为 dmzstorage 的文件服务器,第二个名为 accessserver,均运行 ubuntu server 18.04
这个想法是,dmzstorage 保存我想要共享的文件,而 accessserver 与 dmzstorage 上的共享文件建立只读 NFS 连接并处理来自外部的访问。它允许我快速轻松地尝试多种外部访问选项,同时保持文件服务器不受影响。我可以虚拟地构建一堆不同版本的 accessserver,最终保留我最喜欢的一个。
我一直在访问服务器上尝试使用 sftp。
我喜欢它的安全性,只需要我的朋友找到一个支持 sftp 的 ftp 客户端(很多人都这样做)。
我不喜欢必须向外部开放端口 22。尽管我为朋友创建了一个没有 shell 访问权限的用户,但让端口 22 保持开放仍然让我很不爽。
一个解决方案可能是在访问服务器上运行两个 ssh 实例,一个在端口 22 上的常规实例,这样我就可以从我的 LAN 管理服务器,另一个在端口 2222 上运行的 sftp 实例,然后让我的防火墙将端口 22 上的外部 ip 转换为端口 2222 上的访问服务器 - 这样,我的朋友就不会注意到差异,而黑帽子会尝试在不支持 ssh shell 的端口上完成 ssh 访问。
问题是,有没有更聪明/更好/更简单的方法来做到这一点?如果使用某些交钥匙解决方案或 Windows 可以更好地完成任务,则访问服务器不必运行 Linux,在 dmzstorage 上设置 Samba 共享也不是什么大问题。
那么你会怎么做呢?
答案1
如果您希望朋友直接在您的网络上访问这些文件,则必须打开某种端口。您可以通过使用随机端口向外界开放,通过隐蔽性增加一些安全性(正如您已经建议的那样)。
您没有告诉我们您使用的是哪种防火墙/路由器,但通常应该可以使用随机数将您的端口转发到互联网,同时仍然能够使用不同的端口在内部访问它,但我不太明白为什么您想要一个不同的端口号而不是在内部和外部使用相同的(随机)端口:
https://www.liquidweb.com/kb/changing-the-ssh-port/
除此之外,SFTP 可能是最容易设置的,同时提供您需要的功能。稍微复杂一点的解决方案可能是使用 vsftpd 的 FTPS,它的设置稍微复杂一点,并且还提供加密。