2019年9月15日日曜日

NAS : LinkStation に ssh で入れるようにする

バッファローの NAS が Linux サーバーとして使えるという情報を得たので、トライしてみました。



機種:LS210D1010C(1.0 GB)

ファームウェアバージョン:Ver 1.70  0.01



主にバックアップと AV-Disk として使っています。







サーバーとして使うためには、telnet もしくは ssh でログインできる必要があります。



ログインできれば CLI で Linux のコマンドを打てますから、いろいろとできることになります。





参考にしたサイトによれば、1.60 にバージョンダウンして ssh でログインできたとありますが、すでにバッファローのサイトには以前のバージョンはないので、現在のバージョンで試みるしかありません。





まぁ、できなければ諦めるだけのことです。









まずは、ターミナルでワンラインコマンドを使えるツール acp_commander.jar をダウンロードしてきます。



これを Mac の適当なディレクトリに置き、cd でそのディレクトリに移動します。





最初に、LS210D の root 用にするパスワードを設定します。



LS210D の IP アドレス = 192.168.0.10 とする

root 用パスワード   = rootpw とする

admin のパスワード  = adminpw とする



である場合、次のようにします。



MacBookAir:~ $ java -jar ./acp_commander.jar -t 192.168.0.10 -ip 192.168.0.10 -pw adminpw -c "(echo rootpw; echo rootpw) | passwd"



これは -c(以下が Linux コマンドを示す)の後ろの "" の中のコマンドを実行するという意味です。

上の場合は rootpw を2回出力し、これを passwd に入れるということになります。



つまり、最初のパスワード設定と確認設定してパスワードにするということになります。





次に /etc/sshd_config の中身を確認するため、次のようにします。



MacBookAir:~ $ java -jar ./acp_commander.jar -t 192.168.0.10 -ip 192.168.0.10 -pw adminpw -c "cat /etc/sshd_config"





同様に cat コマンドで /etc/sshd_config の中身を見る、ということです。





config ファイルの中の次の文字列を修正します。



1."#Port 22" → "Port 22" : コメントを外す

2."#PermitRootLogin yes" → "PermitRootLogin yes" : コメントを外す

3."#UsePAM no" → "UsePAM no" : コメントを外す



MacBookAir:~ $ java -jar ./acp_commander.jar -t 192.168.0.10 -ip 192.168.0.10 -pw adminpw -c "sed -i 's/#Port 22/Port 22/g' /etc/sshd_config"



MacBookAir:~ $ java -jar ./acp_commander.jar -t 192.168.0.10 -ip 192.168.0.10 -pw adminpw -c "sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/sshd_config"



MacBookAir:~ $ java -jar ./acp_commander.jar -t 192.168.0.10 -ip 192.168.0.10 -pw adminpw -c "sed -i 's/#UsePAM no/UsePAM no/g' /etc/sshd_config"





sed コマンドは 's/今ある文字列/置き換える文字列/g' で、g はすべての該当する文字列を置き換える、という意味ですね。



対象とするファイルはその後ろの /etc/sshd_config です。





/etc/sshd_config の修正ができたら ssh デーモンの再起動を行います。





ここで、ちょっと問題発生です。



最初は、参考サイトのように次のコマンドを入力しましたが ssh でのログインがはねられます。



MacBookAir:~ $ java -jar ./acp_commander.jar -t 192.168.0.10 -ip 192.168.0.10 -pw adminpw -c "/etc/init.d/sshd.sh restart"





sshd_config を見直しますが問題はなさそうです。



sshd.sh が実在しているのかを下記コマンドで確認するとありません



MacBookAir:~ $ java -jar ./acp_commander.jar -t 192.168.0.10 -ip 192.168.0.10 -pw adminpw -c "ls -l /etc/init.d"





それらしきものとして S50sshd というファイルがあります。中身を cat で見てみるといかにもこれっぽい。



そこで、



MacBookAir:~ $ java -jar ./acp_commander.jar -t 192.168.0.10 -ip 192.168.0.10 -pw adminpw -c "/etc/init.d/S50sshd restart"





としてみましたら、ビンゴ!!



ssh でログインできました。





MacBookAir:~ $ ssh root@192.168.0.10

root@192.168.0.10's password: ← root に与えたパスワードを入力する

[root@LS210DF ~]#

[root@LS210DF ~]# cat /proc/version  

Linux version 3.3.4 (root@nasbuild) (gcc version 4.6.2 (Linaro GCC branch-4.6.2. Marvell GCC 201201-883.01c949de) ) #1 Thu Jul 26 21:06:52 JST 2018

[root@LS210DF ~]#

[root@LS210DF ~]#





Linux のバージョンはかなり古くて 3.3.4 ですが、まずはめでたし。







さて、NAS 以外にどんな役割を与えるか、です。



じっくり考えてみます。











【2019/09/17 追記】



NAS を再起動すると ssh でログインできません。

そこで面倒なことに、次のコマンドを実行するはめになります。



MacBookAir:~ $ java -jar ./acp_commander.jar -t 192.168.0.10 -ip 192.168.0.10 -pw adminpw -c "/etc/init.d/S50sshd restart"





/etc/init.d/rcS の中を見ると、中ほどにある以下の部分の sshd.shS50sshd にする必要があります。





 #

 echo "** step3 **"

 for cmd in drivecheck.sh replication.sh atalk.sh httpd.sh smb.sh nfs.sh sshd.sh bonjour.sh lsprcvd.sh cron.sh checkconfig.sh ups.sh pwrmgr.sh ftpd.sh iscsi_rts_init.sh






ssh でログインしていますので sed コマンドでこの部分を置き換えます。



[root@LS210DF]# sed -i 's/sshd.sh/S50sshd/' /etc/init.d/rcS



リブートしても、acp_commander.jar で ssh デーモンを起動し直さなくて ssh でログインできるようになりました。















【2019/09/18 追記】





Western Digital 社製ハードディスクは IntelliPark という機能があるのですが、これがあるためにヘッドのロード/アンロードが異常に行われて寿命が大変に速くなり、1〜2年という説もあるようです。



本来はディスクアクセス時のヘッドの動きを抑制するはずのものですが、普通の使い方では逆にヘッドの動きが多くなってしまう、という何ともお粗末な機能です。





S.M.A.R.T チェックしてみましたらナンと 37 万回以上という異常な回数です。





幸い、代替セクターの使用やエラーなどはありませんでしたが、ロード/アンロードを止めなくてはなりません。





IntelliPark を無効にしましたら、ピタッとロード/アンロードが止まりました。





こういうことも ssh ログイン化したことからわかりました。





ただ、LS210D の Linux はバージョンが古すぎて、パッケージのインストールもままなりません。





そこで Debian(ラズパイと同じバージョン)をインストールできるようですが、いまの Web サーバー機能を別途に構成し直さなくてはならないようで、痛し痒しです。







と、いうことでしばらくは本来の NAS 優先して使うことにしました。







そのうちに、ディスクが壊れた場合は SSD に換装して、そのときは Debian 化をしようかと思います。
























0 件のコメント:

コメントを投稿