我很快就会有一台树莓派,我想把它转变成一台云服务器或者 NAS 服务器,这样我的所有文件都可以在网络上传输,问题是我必须能够使用 Windows 和 Linux 在 LAN 之外访问它。
我在考虑类似 samba 的东西,因为我可以将不同的硬盘划分为不同的用户名
因为我还没有,所以我还没有尝试过。
我想知道是否有一种安全的方法(例如加密数据)来做到这一点,以及最好的开始方法是什么。
答案1
如果您只想通过 SMB 使用网络中的共享文件夹,则可以使用路由器上的 VPN 服务器使其可访问,从而让您将外部流量隧道传输到本地网络。
或者,你可以在预制 NAS 或 Raspberry Pi 上托管云服务,例如OwnCloud(对于大量文件来说,速度仍然很慢) 或者海上文件(应该表现得更好),并在每台需要文件的计算机上安装客户端,以使这些文件与“云”(就在您家中的设备上)保持同步。
如果您不介意在 Pi 上设置 Linux 映像,网上有许多指南可以向您展示如何在 Raspberry Pi 上设置这两项服务。对于像 Synology Diskstation 这样的 NAS,事情会更简单。
答案2
您说得对,Samba 是在不同的操作系统之间共享文件的正确方式。
至于如何确保安全,你可能希望阅读此网页,它主要处理保护 Samba 共享的问题。一个合理的预防措施(但请读到最后以了解如何避免所有这些)是server signing = [auto|mandatory|disabled]
在文件的 Global 部分进行设置/etc/samba/smb.conf
:手册状态:
服务器签名(G)
这控制客户端是否被允许或要求使用 SMB1 和 SMB2 签名。可能的值是自动、强制和禁用。
设置为自动时,会提供 SMB1 签名,但不强制执行。设置为强制时,需要 SMB1 签名;设置为禁用时,也不会提供 SMB 签名。
对于 SMB2 协议,根据设计,签名无法禁用。在协商 SMB2 的情况下,如果将此参数设置为禁用,则将被视为自动。将其设置为强制仍将要求 SMB2 客户端使用签名。
默认值:服务器签名 = 已禁用
如果您担心第三方会读取您的通信,从而读取您的文件内容,那么您可以至少在原则上使用应用程序层实用程序(如 GnuGP)来加密/解密文件,这样您就可以在开放的线路上传输加密文件,而没有人能够代替您读取它们。
然而,更好的解决方案是设置一个虚拟专用网络 (VPN).这将保证两个都加密和安全识别。我个人最喜欢的是OpenVPN; 我在运行 Raspian 的 Raspberry PI 上设置了一个 OpenVPN 服务器,我可以从任何地方通过客户端(适用于所有操作系统,包括 Android 和 iOS)连接到它。VPN 通常既验证客户端,又加密其通信,因此您可以将这两个功能分配给 VPN,从而减轻 SAMBA 的两项任务。特别是,OpenVPNbridged
使您的远程客户端看起来仿佛它属于您的本地 LAN,然后您可以使用它作为 Samba 的唯一安全性,即它的客户端属于您的本地 LAN。
另外,可以配置 VPN 以让您访问您在家中拥有的任何服务、与本地电脑、打印机、家庭自动化系统等进行 ssh/telnet/rdp 会话。