2012年2月24日金曜日

TeraStationを軽くハックしてみる。

ほとんどここに書いてあるのですが・・・

前提条件:試したのはHS-DHTGL/R5です。他は調べてください。(最近のは出来ないらしい)
JAVASSHクライアント


1:http://downloads.nas-central.org/Uploads/LSPro/Binaries/addons.tarをDLして、共有に入れる。(例えば、\\192.168.XXX.XXX\share\acp_commander\addons.tarにおく)
2:TeraStationと同一ネットワークのマシンのCドライブのルートに、
http://downloads.buffalo.nas-central.org/TOOLS/ALL_LS_KB_ARM9/ACP_COMMANDER/acp_commander.jarをDLして置いておく。
3:ファイヤーウォールを切る。
4:コマンドプロンプトを起動。以下のコマンドを打つ。(もちろんIPは各自TeraStationのIPに置き換えてね)
c:
cd \
java -jar acp_commander.jar -t 192.168.xxx.xxx -o -addons
5:rootのパスワードクリア、telnetdの起動がされているので、telnetでTeraStationに接続する。
以下Telnet上で実行する。

6:先ほどセットしたaddons.tarを解凍する。以下コマンド

cp /mnt/array1/share/acp_commander/addons.tar /root
tar -C / -xzvf addons.tar
これで、wgetコマンドが使えるようになる。
7:パッケージ管理ソフトipkgをインストールする。以下コマンド


mkdir -p /share/tmp; cd /share/tmp
wget http://ipkg.nslu2-linux.org/feeds/optware/mssii/cross/stable/mssii-bootstrap_1.2-7_arm.xsh
sh mssii-bootstrap_1.2-7_arm.xsh
8:パッケージ情報をアップデートする。以下コマンド

ipkg update
9:SSHをインストールする。以下コマンド

ipkg install openssh

10:忘れていたが、当然rootのパスワードを設定する。

rebootして、今度はSSHで接続し、設定したパスワードで接続できればOK。


以下余談


ipkgでいろいろインストールできるようです

ipkg install openvpn
インストール先は/optになる
/opt/etc/openvpn/
vi client.confで設定する
起動してみる
/opt/etc/init.d/S20openvpn
insmod: can't read '/opt/lib/modules/tun.o': No such file or directory
/opt/etc/init.d/S20openvpn: line 24: return: can only `return' from a function or sourced script

ドライバが無いというので探してみる。
http://drivers.razvi.ro/ds209/にあったドライバをDLしてみた。

mkdir /opt/lib/modules/
cp /mnt/array1/Files/tun.ko /opt/lib/modules/
mv /opt/lib/modules/tun.ko /opt/lib/modules/tun.o

しかし、いっこうに改善せず。OpenVPNは駄目っぽい
次にClamAVをトライしてみる

ipkg install clamav
/opt/etc/init.d/S98clamav
Can't open /dev/null
ERROR: daemonize() failed

/opt/etc/init.d/S98clamvを書き換える。どうも--daemonが悪いらしい
CentOSにいれたものを参考に書き換える

#!/bin/sh

if [ ! -e /opt/var/log/freshclam.log ]; then
  touch /opt/var/log/freshclam.log
  chown clamav:clamav /opt/var/log/freshclam.log
fi

/opt/bin/freshclam --quiet --verbose --daemon-notify="/etc/clamd.conf" --log=/opt/var/log/freshclam.log


スキャンしてみる
/opt/etc/init.d# clamscan /root

/root/.bash_history: OK
/root/addons.tar: OK

----------- SCAN SUMMARY -----------
Known viruses: 755056
Engine version: 0.96
Scanned directories: 1
Scanned files: 2
Infected files: 0
Data scanned: 3.04 MB
Data read: 0.53 MB (ratio 5.76:1)
Time: 194.326 sec (3 m 14 s)

・・・・1Mスキャンするのに1分かかる(汗
1.4Tbyteあるから2,333時間!約97日かかります
・・・さくっとアンインストール




TeraStationのちょっとしたハック

HS-DHTGL/R5でしか試していませんが・・・

TeraStationから定期的に送られるメールの容量表示、単位がKbyteでしかも区切りが無いので、
非常に見にくい。
たとえばこんな感じ。

[ハードディスク利用状況]
 RAIDアレイ1使用量 : 2396826472 kbytes / 3904177664 kbytes (使用率 61%)
と言う訳で、改善してみた。
*TeraStationにSSHもしくは何らかの方法でコンソールに入れることが前提条件となります。
SSHの入り方はそのうち書くかも。


1:/usr/local/bin/sendmail.shを開きます。(要root)
2:FuncRegularReport()を探します。この関数が、定期的に容量を通知するメール本文を作成しています。
3:この関数内にある以下のdfコマンドにオプション-hを付けます。

diskvol=`df  | grep -e "/mnt/$mpt" |  awk -F " " '{print $2}'`
diskused=`df  | grep -e "/mnt/$mpt" |  awk -F " " '{print $3}'`
これを
diskvol=`df -h | grep -e "/mnt/$mpt" |  awk -F " " '{print $2}'`
diskused=`df -h | grep -e "/mnt/$mpt" |  awk -F " " '{print $3}'`
します。
4:以下の内容からKbytesを削除します。
echo " : $diskused"" kbytes / ""$diskvol kbytes ($msgDiskUsedRate $diskusedrate)" >> $BODY_FILE
これを
echo " : $diskused""  / ""$diskvol  ($msgDiskUsedRate $diskusedrate)" >> $BODY_FILE
します。
5:上書き保存します。

これで、通知メールが以下のようになります。
[ハードディスク利用状況]
RAIDアレイ1使用量 : 2.2T / 3.6T (使用率 61%)

簡単でしょ。