LinkStationをハックする!smb.confの編集方法

LinkStation

LinkStation LS-QLシリーズのハードディスクが調子悪くなったため、LinkStationにtelnetで入り込んで、復旧作業をしています。

LinkStationはLinuxを独自にカスタマイズしたOSをファームウェアとして使っています。

そのため、Linuxの知識があれば、LinkStationをLinuxサーバのようにして使うことも可能です。

ただし、コマンドラインでLinkStationをいじり倒してしまうと、元々LinkStationに備わっているGUIの「管理ページ」での設定状態と同期が取れなくなり、完全復旧への道のりは遠回りになります。

本記事では、LinkStationを一時的に復旧させて、とにかく中のデータだけでも救済したい場合に使えるノウハウとして、LinkStationにtelnetでログインして、sambaのファイ共有設定(ファイル名で言うとsmb.conf)を直接編集する方法について解説します。

なお、LinkStationにtelnetログイン出来るようにするテクニックは以下の記事に書いてあります。

LinkStationのtelnet化手順【RAIDでもOK】

LinkStationのファイル共有プログラム調査

LinkStation

まず、uname -aでLinuxの種類を調べます。
⇒ LinkStation独自Linuxのようでした

次に、ファイル共有のプログラムを調べます。
⇒ NFSではなく、samba(smbd,nmbd)でした。

ちなみに、psコマンドでプロセスを表示させるときは、オプション無しでpsと叩く必要があります。
⇒ 結果は以下の通り

root@LS-QLF9C:~# ps
  PID  Uid        VSZ Stat Command
    1 root       3364 S   init       
    2 root            SW< [kthreadd]
    3 root            SWN [ksoftirqd/0]
    4 root            SW< [events/0]
    5 root            SW< [khelper]
   32 root            SW< [kblockd/0]
   45 root            SW  [crypto]
   46 root            SW  [crypto_ret]
   49 root            SW  [pdflush]
   50 root            SW  [pdflush]
   51 root            SW< [kswapd0]
   52 root            SW< [aio/0]
   53 root            SW< [xfslogd/0]
   54 root            SW< [xfsdatad/0]
  242 root            SW< [scsi_eh_0]
  243 root            SW< [scsi_eh_1]
  288 root            SW< [mtdblockd]
  471 root            SW< [md0_raid1]
  520 root            SW< [md10_raid1]
  524 root            SW< [md1_raid1]
  594 root            SW< [xfsbufd]
  595 root            SW< [xfssyncd]
  982 root            SW< [kjournald]
 1026 root       3276 S   /usr/local/apache/bin/httpd 
 1064 root            SW< [khubd]
 1317 root       1856 S   syslogd -m 0 
 1319 root       2368 S   klogd 
 1324 root       3624 S   /usr/sbin/inetd 
 1328 root       1792 S   /usr/local/sbin/errormon 
 1332 root       2268 S   /bin/sh /usr/local/sbin/kernelmon 
 1350 root       2508 S   /bin/sh /usr/local/sbin/miconmon_exec.sh start 
 1697 root            SW< [xfsbufd]
 1698 root            SW< [xfssyncd]
 2007 root       3404 S   /bin/bash2 /usr/local/sbin/diskmon_exec.sh start 
 2129 root       2216 S   /usr/local/sbin/clientUtil_server -i eth0 
 2167 root       4168 S   /usr/local/sbin/lsprcvd -i eth0 
 2171 root       1764 S   /usr/local/sbin/daemonwatch -a /etc/daemonwatch.list 
 2177 root       3364 S   /usr/sbin/crond 
 2333 root      18092 S   /usr/local/BootServer/rarpd 
 2334 root       1700 S   /usr/local/BootServer/tftpd 
 2335 root       9892 S   /usr/local/BootServer/rarpcfgd 
 2338 root       1568 S   /usr/local/BootServer/fwupdated 
 2979 root       3232 S   cat /proc/buffalo/kernevnt 
 4242 root            SW< [xfsbufd]
 4243 root            SW< [xfssyncd]
 5326 root       1740 S   /usr/local/sbin/mDNSResponderPosix -b -f /etc/bonjour.config 
 5795 root      10304 S   /usr/local/sbin/smbd -D 
 5799 root      10436 S   /usr/local/sbin/smbd -D 
 5804 root       6020 S   /usr/local/sbin/nmbd -D 
 5832 root       2272 S   lpd Waiting   
 6203 root       3364 R   /usr/sbin/telnetd 
 6204 root       3368 S   /sbin/getty -L ttyS0 115200 vt100 
17039 root       3364 S   /usr/local/apache/bin/httpd 
17040 root       3364 S   /usr/local/apache/bin/httpd 
17041 root       3364 S   /usr/local/apache/bin/httpd 
17042 root       3364 S   /usr/local/apache/bin/httpd 
17049 root       3364 S   /usr/local/apache/bin/httpd 
17257 root       3232 S   sleep 10 
17268 root       3232 S   sleep 3 
17269 root       3368 R   ps 
17408 root       2412 S   -sh 
28815 root            SW< [md2_raid5]

だいぶ、LinkStationを丸裸にしている気分になってきました(笑)。

LinkStationのsamba定義ファイル(smb.conf)の編集方法

・sambaだと分かったので、/etc/samba/smb.confを編集します
⇒ 以下の行を追加しました

[array2]
    comment = hogehoge
    path = /mnt/array2
    browsable = yes
    printable = no
    writable = no   ← とりあえず読み出し専用として設定
    guest ok = yes
    csc policy = disable

・/etc/samba/smb.confをsambaのプロセス(smbd,nmbd)に再読み込みさせるために、刺激を与えます
⇒ 以下のようにします

root@LS-QLF9C:~# ps | grep smb
 5795 root      10304 S   /usr/local/sbin/smbd -D 
 5799 root      10436 S   /usr/local/sbin/smbd -D 
17456 root       3368 S   grep smb 
root@LS-QLF9C:~# kill -1 5795
root@LS-QLF9C:~# kill -1 5799
root@LS-QLF9C:~# ps | grep nmb
 5804 root       6020 S   /usr/local/sbin/nmbd -D 
18077 root       3368 R   grep nmbd 
root@LS-QLF9C:~# kill -1 5804
root@LS-QLF9C:~# 

これで/mnt/array2というディレクトリが、array2という名前でLinkStationからファイル共有されるようになります。
NASの復活です!

sambaの設定ファイルを直接編集してLinkStationをファイルサーバとして復活させるのは、データをサルベージするための応急処置です。
データが全て壊れていないかどうかは、この時点では分かりませんので注意が必要です。

LinkStationのHDDが壊れてEMモードにすらならずにハマってしまったけれど、Linuxの機能を駆使して完全復旧させた私の体験の一部始終を読みたい方は、以下の記事から進んで下さい。

故障したLinkStationから自力でデータ復旧した方法

コメント

タイトルとURLをコピーしました