通过Internet提供网络驱动器?


18

我最近使用Ubuntu Server和Samba搭建了一台小型服务器计算机,用作文件服务器(除其他功能外),以便我的整个家庭可以从Windows计算机通过网络访问某些文件。但是,我想更进一步,并希望可以从家外通过Internet访问共享。我该怎么做?我对Windows网络共享系统的工作原理知之甚少,所以我不知道从哪里开始。


您确实应该使用SCP。
2011年

@kzh:对我的一些家庭成员来说有点太复杂了。
Sasha Chedygov

1
关于接受的答案,没有什么私人的,但是虽然从技术上来说可以回答您的问题,但我绝不会这样做。您确实暴露了自己,尤其是在网络上有任何敏感内容的情况下。我想说的正确方法是为家庭建立一个简单的PPTP VPN,然后让他们可以访问。
KCotreau

1
@KCotreau:为简单起见,我遗漏了很多这个问题。只是说,我们将要公开的数据绝不是敏感的。我了解并接受了安全隐患-我只是想简单回答我的特定问题。
Sasha Chedygov

1
@musicfreak我担心的是,这是对计算机其他区域甚至整个网络的攻击点。显然,您可以随心所欲地随意执行此操作,但我还是不建议您这样做,除非计算机上没有任何东西,至少不只是共享。一本非常酷的书是“黑客暴露”。它显示了多少黑客攻击了这些协议。
KCotreau

Answers:


11

使用Samba,您将不得不将端口139 / tcp445 / tcp暴露给外部-通常这需要在路由器中配置“端口转发”。此外,您必须确保外部IP地址可从外部ping通。

之后,您可以通过\\youraddressExplorer的地址栏中或在Start-Run中输入来访问共享。(这里youraddress或者是你的外部IP地址或您的DNS名称,如果你有一个。)

但是请注意,Windows文件共享使用的CIFS和SMBv2协议不提供数据加密(因此,具有数据包嗅探器的任何人都可以监视您的文件传输),并且其身份验证也不是特别强大。仅SMBv3获得了加密支持。

另外,不要忘记Windows的SMB服务过去一直是非常频繁的感染目标。尽管大多数Windows漏洞不会以任何方式影响Samba,但这仍然值得牢记(并且通常意味着SMB端口在ISP级别被阻止了)。

另请注意,Windows计算机默认情况下会记住整个本地会话的登录凭据。除非您以“来宾”身份连接到Samba,否则必须在公共计算机上格外小心:请始终在使用net use \\address资源管理器/ net use \\address /del断开连接之前先使用它。(在个人计算机上不需要。)

为了提高安全性,请将以下内容添加到的常规部分smb.conf

LANMAN auth = no
NTLM auth = no
invalid users = root

呵呵,我认为这要复杂得多。谢谢你的建议!
Sasha Chedygov

2
附带说明一下,对于减少数据加密的问题,您有什么建议吗?我信任我连接到的所有网络,但是例如,我可能想为我的女友(可能在不可信的网络上)注册一个帐户,以便她可以访问我的音乐/照片/等。我总是可以给她一个只读帐户并称其为好帐户,但我只是想知道您是否有一些更具体的建议。再次感谢!
Sasha Chedygov

对于只读访问,可以设置HTTPS服务器(StartSSL / CAcert)。要上传文件,可以将其扩展到WebDAV ...但是,如果CIFS可用,则Windows将不会使用WebDAV,并且大多数Windows版本都存在SSL保护的WebDAV问题。其他解决方案需要外部软件(使用WinSCP的SFTP)或VPN配置。
grawity

我正计划建立一个基于版本的备份系统(类似于Mac OS X上的Time Machine),这样,即使有人可以访问共享并擦除所有内容,它仍然是安全的。你觉得够了吗?当然,我更希望一开始就避免发生这种情况。
Sasha Chedygov

2
请注意:加拿大的ISP除非您有企业帐户,否则SMB端口将被阻止。如果您使用的是JMB,则请确保您的ISP取消阻止端口
Canadian Luke

7

如果您的家人可以使用WinSCP进行处理,则:

  • 安装和设置SSH
  • 在服务器上为家人提供本地帐户
  • 将文件存储符号链接到这些目录中。例如,如果您要/srv/samba_files通过Samba 进行曝光,则需要ln -s /home/{user}/files /srv/samba_files对每个帐户进行或类似操作。如果必须对许多帐户执行此操作,则可以编写脚本来执行此操作。
  • 在家人的计算机上安装WinSCP

然后,您将拥有一种非常安全的传输文件的方法,该方法不太难使用。

但是,如果您真的希望与Windows进行“网络驱动器”集成,我将了解OpenVPN,然后设置到您的家庭网络的桥接隧道。我已经成功获取Windows文件共享以通过此类隧道进行工作。

您还可以使用PoPToP(pptpd)允许Windows系统通过PPTP vpn连接回Ubuntu盒。(IPSec / L2TP隧道可以提供更好的安全性,但是很难设置)。


为什么不创建直接files指向的共享/srv/samba_files
grawity

Samba共享仅在LAN端可见。在Internet端,您将使用WinSCP。
LawrenceC

@LawrenceC这种“ openvpn”方法是否为树莓派等单板计算机共享了重量级的东西?
Bhavesh Gangani

OpenVPN在ARM 1.3Ghz系统上占用了20%的CPU,并没有给我带来512mb RAM的不足。这也可以用作路由器,DHCP和DNS服务器。一些规格较低的SOHO路由器可以运行它。可以,但是会消耗一些资源。
LawrenceC

1

这取决于您打算提供哪种文件。如果这些是文档或您需要远程访问的文件,只需在Ubuntu服务器上运行FTP服务器。确保使用安全的密码妥善保护它,并仅访问文件目录,而不访问根目录。

但是,如果您打算流媒体文件(歌曲,电影),则需要运行流服务器。有很多解决方案(这里是一个)。

最后,您始终可以使用现有的“云”驱动器解决方案,例如Dropbox或SkyDrive或Amazon Cloud Player-只需将文件与其中一项服务进行同步即可,并保证了互联网访问(快速)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.