Windows cannot access WD Mybookworld CIFS share problem resolved

我有一台 Windows 10 家庭版的电脑,无法访问 WD Mybookworld CIFS。具体症状是访问 \\wd_ip_address 就被拒绝,但该 IP 地址可以被 ping,也可以访问 WD Mybookworld 的 web UI。

为了找出问题所在,我进行了完整的交叉替换测试。我先试着用它借用一个 IP 访问 WD Mybookworld CIFS,被拒绝,该 IP 在其他电脑上使用正常;然后用它来访问同一网络内的另一台 NAS 下的 CIFS,这是一台自建的 NAS,装的系统是 FreeNAS,可以访问;接着用另一台 Windows 10 家庭版的电脑访问了 \\wd_ip_address,也能访问。所以问题仅限于一台特定的电脑访问特定的 NAS,查看了 WD Mybookworld 里的设置,没找到能拒绝特定 IP 访问的设置,即使有,似乎也不太可能做过这样的限制。

找啊找,最后发现是 Windows 10 “SMB 1.0/CIFS File sharing support” 被关闭了,需要在控制面版 >> 程序和功能 >> 启用或关闭 Windows 功能里重新启用。估计 WD Mybookworld CIFS 用的是 SMB 1.0,而 FreeNAS 用了更高版的 SMB,所以这个 Windows 共享文件夹的问题只影响了特定的机型。

我还是不懂怎么就把这一台 Windows 10 “SMB 1.0/CIFS File sharing support” 给关闭的,反正感觉 Windows 10 毛病挺多的。

NIC is a critical point

一个网络设备好不好,就拿大文件去测试它。

LinkSys WRT54GL 路由器就有这样的问题:从 WAN 端口下载若干GB 大小的文件,中途就会断开,路由器也不工作了,它的 web 管理界面也访问不了,非得重启才能恢复。

今天发现我的网络硬盘 WD MyBookWorld 2TB 也有此类问题:在拷贝两个20多GB大小的文件过程中,中途也被断开,再也访问不了 MyBookWorld,重启后恢复。

以前我以为这些家用级的网络设备在大流量压力下会死机(CPU 超载),今天的结论是 CPU 或许还有余力,但网卡超载了。因为,在访问不了 MyBookWorld 时,我拔出了一个 USB 设备(我用 MyBookWorld 的USB 口在给手机充电),触发了 USB device unplug 的事件。通常我会收到一个邮件通知,但这次因为网卡停止响应,CPU 仍在工作,记录下了这个事件,延迟到重启后网卡恢复正常才发出邮件。

网卡很关键,以后得多关注这方面的指标。我现在热衷于选用商业级的设备,即使是为家用。

Play with WD MybookWorld

先说一下我所了解的此网络硬盘的习性:

  • 首先,它在创建用户时,并不创建同名组。
  • 其次,创建用户时,会问及是否创建 User Private Share。User Private Share 是 samba 用的一个名词,我觉得很难理解:既然是 Private,何来 Share?就叫 User Home Directory 更好一些。
  • 再次,删除用户时, User Private Share 并不随之删除,在 Folder Shares 界面里才能删除它。我试过以 root 身份执行 rm 都说“device busy”。

什么情况下需要共享?最初我想按人分,一类是平级共享,比如同一组织内两个人共事,他们可以相互访问对方的文件;另一类是分级共享,比如上级可以访问下级的文件,而反之不能。后来情况变复杂了:甲要访问乙的部分文件,乙也要访问甲的部分文件,同时甲又给丙共享另一部分文件……所以最后我按文件类别分,某类文件要给哪几个人权限,思路就很清楚了。

Mybookworld is not safe

我的 Mybookworld samba service 建有若干用户,各自的目录是凭各自的密码访问。昨天发现,Mybookworld 竟然不再问密码,任由我畅行在各个用户目录。Mybookworld 有一个 ip address 和一个自称的 device name,还有一个路由器指派它的 device name。凭前二者访问仍然正常,只是凭路由器指派的 device name 访问时密码失效。

我刚开始还以为我上次误点了“记住密码”,运行

net use * /d

Mybookworld 还是任由我畅通无阻。奇了怪了,难道 windows 有其他我不知道的地方记住了访问密码?转念一想,不是 windows 的原因,因为我不可能多次为多个用户误点“记住密码”。

于是重启 Mybookworld,问题依旧。正好有个 firmware 更新,更新后问题还是依旧。没辙了!

原本准备在 internet 上开放对 Mybookworld 的 ssh 访问,这下打消主意 —— Mybookworld 不够安全,samba 会出这等问题,保不准 ssh 也会出问题。

别说我是事后诸葛亮,刚拿到 Mybookworld 时,我看了一下它的配置,就觉得它很容易出现安全漏洞。举个例子:用 Mybookworld 自带的 web interface 创建的用户并不是 Linux 用户,这些用户属组全是 root:jewab,使用 root 就是一个非常不好的 bad practice,况且权限控制依赖于 Mybookworld 自带的程序,一点也没用到 Linux 强大的权限控制。开发 Mybookworld 的人水平再高,难道能高到抛弃一套完美的机制自搞一套?

再举个例子,启用 Mybookworld nfs 服务时可以指定 IP Allowed,但是 /etc/exports 却是这么写的

/nfs/myname *(rw,all_squash,sync,insecure,anonuid=65534,anongid=65534)

我非常不理解,nfs 服务明明可以限定 IP,然而 Mybookworld 又不用它,又在自搞一套。可它自搞的一套非常地不稳定,经常发生 allow list 上的用户不许访问。我不知道会不会有 deny list 上的用户反而被允许,那就更糟了。

Administrator name of Mybookworld to downloader area

如果要登录 Mybookworld downloader,在 Administrator name 那一栏里输入的竟然是 “downloader”。我试了好多次才试正确,每次输错后我气馁地认为 Mybookworld downloader 被 disable 了。我没读 WD 的说明书,这年头谁有耐心看说明书?再说像 network drive 这种东西本来就应该很直观地让人使用,而 Mybookworld 没有做到。

首先,用 admin 作用户名可以进入 network storage manager 和 copy manager,而进 downloader 非得用 downloader,没有统一规范,我不喜欢;

其次,downloader 的密码是用 admin 进入 network storage manager 进行修改的,修改完了还要退出 network storage manager 再进入 downloader,烦不烦?

最后,内置的 admin 和 downloader 用户名不能被修改或删除,给暴力破解提供了方便,安全堪忧。

Caveats of firmware upgrade of Mybookworld 1TB

买了 Mybookworld 2TB,按建议首先做了 firmware upgrade to newest version。

顺便把原来的 Mybookworld 1TB 也 upgrade firmware,没注意到 Mybookworld 1TB upgrade 以后有没有自启。接着我发现以下反常现象:

  • 原先破解后的 sshd 也失效了,但能按老办法重新破解一遍。
  • 原先注释了 moinet start script,被取消了注释,只好重新注释一遍。
  • 原先修改了 root 的密码被擦除了,幸好 root 没有密码是无法登录的,其他用户的密码还在,赶紧再次修改 root 密码。提示说密码只能 5-8位,其实可以超过8位,把密码弄长一些吧,保险起见。
  • 局域网内其他机子无法凭 netbios name 访问 Mybookworld 1TB,还是手动重启一下 Mybookworld 1TB,以期它能赢得主控浏览服务器选举。

My review of Mybookworld 2TB

尽管我很清楚数据备份的重要性,尽管我脑袋里有数据备份的方案,但数据灾难还是时有发生,因为这么多年来缺乏一个数据存放的终极地点,数据备份方案过于复杂,执行不便,落实不力。

我所有可以动用的存储介质容量加起来估计会超过2TB,足够把我所有的数据备份好几遍,但我还是狠了狠心,购入了 WD My Book World Edition 2TB。

打开包装,首先发现 WD My Book World Edition 2TB 不带 USB 接口,无法用 USB 以外置硬盘方式与主机相连。网络硬盘的存取速率太慢,我原想要一个与 Ethernet 连接同时使用的 USB 连接。我嫌麻烦,也不打算因为不带 USB 接口就去退货,期待它的网络存取速率能有改进。开机后一试,果然,相对我公司一年多购入的 WD My Book World Edition 1TB,现在的 2TB 网络存取速率快了近一倍,但也只有可怜的 5.8 MB/s。

远程共享根本用不着 Mionet 的服务,所以我一来就禁用了它,以免它占用 My Book World 本来就不强大的 CPU。然后我逛了逛 Web 管理界面,感觉不错,比 1TB 多了很多功能。我原本设计了一套基于命令行管理文件的方案,补足 1TB Web 管理界面不足之处,现在看来要调整一下,充分利用 2TB 自带的 Web 管理界面——直观的就是美的。

还没来得及仔细试用 WD My Book World Edition 2TB,不过第一印象还不错(比预期的好),我估计它的 CPU 要优于 1TB 的,内存也会更大一些(128M?)。

How slow is MyBookWorld

以前只是觉得 MyBookWorld 慢,但也没关心究竟有多慢,今天实测了一下,单个大文件读速率 4.9 MB/s,写速率 3.8 MB/s。这么糟糕的成绩,大概得归咎于 CPU 能力太差。我测的是 MyBookWorld I 版,不知带 Raid 双硬盘配置的 MyBookWorld II 是否使用了更好的芯片,如果同种芯片,II 版不会有比 I 版更好的成绩。

WD My Book World Network Hard Drive Is Not A Server

When I bought the WD My Book World Network Hard Drive, I was attracted by its giga network interface. I though it could act as a file server with fast data access rate. One of my office collabration program requires fast data access rate to improve the performance. However, as my test carried out, My Book World Ed.1 only achieved 45Mbps data transfer rate, which means giga network interface makes no difference to 100 mega network interface on this device.

To this point, I am very dissapointed at My Book World. However, if I just regard My Book World as an additional storage device or a backup disk, rather than giving it a tough data read/write job, it works fine. It is designed to be a storage, not a server. The only fault of the design is putting giga network interface on My Book World, or the designers should put a fast access disk into it to catch up with giga networking.

Hack WD My Book World Network Hard Drive

昨天,我在体验My Book World时建议不要安装WD Anywhere Access;今天,我更有理由相信这一点。

Martin Hinner是个强人,在他的网站上,我找到了WD官方永远也不会公布的资料,以及改装My Book World详细的过程。WD Anywhere Access的存取机理是:在你能Anywhere Access之前,MioNet早就能Access你的My Book World,因为MioNet的程序内嵌在My Book World并自启动,不管你愿不愿意。可怕不?MioNet为了卖Premium帐户,给自己留了这么大个后门。数据的安全性寄托在MioNet手上,而且寄托在MioNet的技术能否经受安全性考验,实在不是什么好事。

所以,不光WD Anywhere Access装不得,Martin建议从My Book World里屏蔽MioNet自启动,由此还能获得一个额外的好处:减轻了My Book World CPU的负担。MioNet内嵌的是Java程序,很大程度上拖慢了系统。

当然,为了屏蔽掉MioNet,你得相信Martin Hinner是个好人。我相信他是。