2013-10-13
buffalo LS-WXL NAS 部署笔记
从上大学开始到现在所积累的照片和资料现在一直是用一台希捷的3.5寸外置移动硬盘保存着。每次拿出来拷东西的时候,咔咔的读盘声总让人不免担心,万一这块硬盘哪天抽风坏了怎么办。这些数据中包含了无数过往的努力和回忆,一旦丢失,代价实在是难以估量。
组建一套家用的NAS是解决目前的窘境的最好选择。但是群晖之类的NAS不带硬盘动辄上千实在是有点贵,心怀一颗屌丝之心,始终不忍下手。用旧PC改装一个,家中实在是没有地方可以容纳。上个月无聊逛易讯时发现Buffalo LS-WXL NAS正在特价,399购入一台,貌似一个月过后到现在还是最低价,占到便宜的感觉十分开心 :)虽然便宜了点,做工和群晖的高富帅没法比,但是两个硬盘槽位,支持RAID 0/RAID 1,linux系统可以破解,支持Web Access,功能足矣。
光有腹中空空的NAS当然不行,还得往它肚子里塞上硬盘才能工作起来,对比各项参数和口碑,西数的NAS专用红盘是最好的选择,但是价格嘛。。。 最终决定下来,还是入了两块西数的2T绿盘,可靠性差了点,但是有RAID 1,两块互为备份,可靠性还是有保证的。易讯绿盘无货,京东现货入手。
考虑到家里特殊的网络拓扑结构,NAS附近有小米盒子,电视机,还有一个Raspberry PI需要接入网络,装修时墙上只留了一个网口,这么多设备需要一个交换机来互联并接入网络,还需添置一个交换机。家里有一个百兆的TP-Link交换机,但是今后如果想用小米盒子直接samba访问NAS放高清电影的话,百兆网络就难当大任了。交换机这个东西属于耐用品,一般都不容易坏,上淘宝上淘一个二手实用的即可。上上下下比较了一番,Netgear GS105是一个不错的选择,铁壳,千兆,成色不错的货挺多的,找了一个靠谱的商家,加配原装电源一个¥99搞定。两天后到手,成色果然不错,9成新有余,拿在手中沉甸甸的,淘宝掌柜诚不欺我也~
万事俱备,只欠部署。安装之前,来一张全家福先~
组装过程非常easy,就不细表了,以后有空再画一下家里的网络拓扑图。
下面记录一下LS-WXL破解和设置的关键步骤。
一、获取root密码
我手上的这台LS-WXL固件版本是1.34,版本较低,带来的好处是 — 破解容易~
nas-center.com的geek们已经对LS-WXL的各个版本给出了破解方法:
http://buffalo.nas-central.org/wiki/Category:LS-WXL
对于1.4以前的版本,可以直接使用web server运行php脚本来修改/etc/pam.d/sshd
步骤很简单:
1、创建一个文件夹名为www
2、在LS-WXL的web控制界面中打开web server支持,指定根目录为www
访问http://IP_TO_YOUR_NAS:81/,如果显示如下,说明服务器启用成功
3、通过samba访问LS-WXL,修改www/htdocs/下的index.php为如下内容
<?php $file = '../../../../etc/pam.d/sshd'; $fh=fopen($file, 'w') or die("can't open file"); $stringData = "account required pam_unix.so\n"; fwrite($fh, $stringData); $stringData = "session required pam_unix.so\n"; fwrite($fh, $stringData); $stringData = "auth required pam_permit.so\n"; fwrite($fh, $stringData); fclose($fh); echo "update sccess"; ?>
4、重新访问http://IP_TO_YOUR_NAS:81/
如果显示“update sccess”,说明破解成功,现在开始就可以不用密码以root用户登陆NAS了!
但是我们的这个修改在每次重新启动NAS之后都会失效,因此我们需要建立另外一条持久性的通路到服务器。
除了密码认证,ssh还可以使用公钥来进行身份认证。通过在root目录下配置公钥认证,即使重启自后sshd密码变更了,有公钥在,我们可以继续通过公钥认证来访问服务器~
在NAS上,通过如下命令生成密钥对:
farnsworth@MYS-HOME-NAS:~$ ssh-keygen -b 1024 -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/farnsworth/.ssh/id_rsa): Created directory '/home/farnsworth/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/farnsworth/.ssh/id_rsa. Your public key has been saved in /home/farnsworth/.ssh/id_rsa.pub. The key fingerprint is: 09:a6:ad:45:49:4d:9e:b4:ae:4e:b3:fd:d0:ee:db:8c farnsworth@MYS-HOME-NAS:~$ cd .ssh/ farnsworth@MYS-HOME-NAS:~/.ssh$ ll -rw------- 1 farnswor hdusers 887 Oct 13 22:49 id_rsa -rw-r--r-- 1 farnswor hdusers 233 Oct 13 22:49 id_rsa.pub farnsworth@MYS-HOME-NAS:~/.ssh$ mv id_rsa.pub authorized_keys farnsworth@MYS-HOME-NAS:~/.ssh$ ll -rw-r--r-- 1 farnswor hdusers 233 Oct 13 22:49 authorized_keys -rw------- 1 farnswor hdusers 887 Oct 13 22:49 id_rsa
将id_rsa文件拷贝到samba共享文件夹目录,再设置putty或者SecureCRT的访问方式为public-key,即可实现公钥免认证登录。
二、安装ipkg
通过ssh登录后,第一件事就是安装ipkg。ipkg是一个轻量级的包管理协议,和debian的apt系统很相似,命令也很像。
执行如下命令下载并安装
root@MYS-HOME-NAS:~# wget http://ipkg.nslu2-linux.org/feeds/optware/cs05q3armel/cross/stable/lspro-bootstrap_1.2-7_arm.xsh sh ./lspro-bootstrap_1.2-7_arm.xsh root@MYS-HOME-NAS:~# ipkg update root@MYS-HOME-NAS:~# ipkg upgrade root@MYS-HOME-NAS:~# ipkg install vim
如果整个过程没有报错,就说明ipkg安装成功了。
如果遇到重启之后,ipkg命令及通过ipkg安装的软件都找不到了,很有可能是/opt的挂载路径不正确导致的。
此时需要检查/etc/init.d/rc.optware中REAL_OPT_DIR变量的设置
如果当前硬盘做了RAID阵列,那这个变量的值应该是这个样子的:
REAL_OPT_DIR=/mnt/array1/.optware
如果当硬盘没做RAID阵列,那这个变量的值应该是这个样子的:
REAL_OPT_DIR=/mnt/disk1/.optware
这个变量设置正确了之后,无论如何重启,我们的软件都不会丢了~
三、安装配置transmission
作为一个NAS,bt下载的功能自然是必须的。LS-WXL居然自带了一个utorrent,但是无奈不好用,怎么配置都没速度。幸好还有transmission。
安装很简单,使用ipkg直接安装即可
root@MYS-HOME-NAS:~# ipkg install transmission
安装完毕后,su到我们之前创建的普通用户下,再执行一下如下命令,强制生成配置文件,等待大概10s之后,ctrl+c退出
root@MYS-HOME-NAS:~# su - farnsworth farnsworth@MYS-HOME-NAS:~$ transmission-daemon -f
此时在当前用户的根目录下会生成transmission的默认配置文件:~/.config/transmission-daemon/settings.json
打开这个文件,修改一下相关字段就可以了,比如下载路径,ip访问白名单等(如果没什么安全顾虑的话,直接改成”rpc-whitelist”: “*.*.*.*”,就可以从任何地方访问了transmission的web界面了)。
修改完配置之后,再次启动transmission
farnsworth@MYS-HOME-NAS:~$ transmission-daemon & farnsworth@MYS-HOME-NAS:~$ ps | grep transmission 2907 farnsworth 41132 S /opt/bin/transmission-daemon 3249 farnsworth 3364 R grep transmission
此时在浏览器中打开
http://IP_TO_YOUR_NAS:9091/transmission/web/
即可访问transmission客户端:
表问我种子是神马,你懂的。。。
ok,准备收工?稍等,还漏掉了一项,我们需要transmission在NAS启动的时候自己一起启动,这样就不必每次都登录ssh自己启动了。
vim /opt/etc/init.d/S60startup
添加以下内容:
#!/bin/sh START_UP_USER='farnsworth' START_UP_TIME=`date` export HOME=/home/${START_UP_USER} su ${START_UP_USER} -c "/opt/bin/transmission-daemon &" echo "transmission-daemon start up @ $START_UP_TIME with return value <$?>" > /tmp/transmission.log
注意把其中farnsworth替换成自己的用户名。之所以要这么麻烦使用自己的用户名来登录,因为在启动脚本中启动的进程默认都是以root用户运行的,这种情况下,下载生成的文件读写权限也是root的,我们将无法自由的在windows端通过samba协议自由拷贝下载下来的文件。用自己的用户名来启动transmission-daemon进程,权限问题就解决了。
四、WebAccess配置
虽然我们的NAS价格很屌丝,但是功能很全面,内置的WebAccess功能,可以让我们远程通过web或者手机客户端访问家中的NAS上的数据(可以利用这个功能通过手机看NAS上存储的小电影哦 ^_*,是不是有种超值碉堡的感觉? )。
今天写到这里已经挺晚了,关于WebAccess的配置说明,稍后再奉上~ 未完待续哦~