ブログトップ
コンピュータと共にある創造的日常
uneoyaji.exblog.jp

メディアアート・プロジェクトにハマったオヤジの日常生活
by une0exct
パソコン用の廉価NASをLinuxサーバ用に設定する
1つの URL を Linux 2台で負荷分散させて運用しているのだが、予算の都合により、これまで共有デスクはなく、それぞれ同じ内容をコピーしておったのですよ。
マシンがやや古くてディスク容量不足が目に見えてきたため、NAS を物色していたのだが、表立って UNIX 対応をうたっている製品は、法人向けのためか、結構、値が張る。パソコン用の I/Oデータとかバッファロのが安いのだが、どうも UNIX は想定外らしく、メーカが用意している情報だけでは、うまく運用できるのか不明。で、いろいろ情報をあさっていると、どうもバッファロの主要製品は OS が Linux らしい。しかも、ACPコマンドが使えるようになっていて、これで root 権限を奪取する抜け技がボランティアサイトで公開されていた。んで、やってみたわけです。
購入した製品は TeraStation TS-X8.0TL/R5。RAID 0,1,5,10 対応、2TBドライブ×4装備。
まず、本体の IP アドレス設定。設置説明書きは、DHCP を想定していて、固定 IPv4 の設定の方法が書いてない!本体には設定をいじるための操作パネルのようなものはなく、ネット HTTP 経由 WEB ベースで設定するようになっている。これじゃ設定できんではないかと思いきや、幸い、本体には2つの Ethernet ポートがあるので、2nd ポートをパソコンに直結すれば設定可能。
LAN ケーブルを接続して2分ほど待つと、プライベートアドレス 169.254.xx.xx が自動的にふられる。パソコンには製品付属の CD (DVDだったかも) を突っ込んで設定開始。
イーサポート1の固定アドレス設定、ユーザ登録、NFS の有効化、NFS クライアントのアドレス設定、NFS は user じゃなくて kernel モード、などなど。
これで、Linux から NFS マウントかけると、ちゃんとマウントできます。
しかし、Linux からマウントしたディレクトリィ内にサブディレクトリィを作ってみると、オーナ・グループが nobody になって、しかも chown が効かない。これは、Linux 側のユーザがなんでも同じ。ということは、NAS 側の exports オプションが all_squash になっていると。今回は home を NAS に引っ越そうという計画なのに、これでは使い物になりません。それで、NAS内部の設定を編集すべく、root 奪取を試みたわけです。
まず、パソコンに nas_central.org から acp_commander.jar をダウンロード。
旧製品だと
% java -jar acp_commander.jar -t 169.254.xx.xx -ip 169.254.xx.xx -pw password -o
で、telnetd が起動して、root パスワードがリセットされるはずなのだが、telnetd が動くが、パスワードリセットは利きません。(注:169.254.xx.xx は、NAS の IP アドレスです。) そこで、
% java -jar acp_commander.jar -t 169.254.xx.xx -ip 169.254.xx.xx -pw password -s
...
/root>chmod 666 /etc/shadow
>exit
で、パスワードファイルを書き込み可能にしてから、telnet でユーザ名 admin にてログインして root パスワードを消去。今度は root でログインして、/etc/shadow のアクセス許可を 644 とかに戻し、ついでに新しい root パスワードを % passwd コマンドで設定。ついでに ssh で root ログインできるように、/etc/sshd_cong 内の PermitRootLogin を no から yes に変更。UsePAM yes をコメントアウト。セキュリティ上は、あまり良い方法ではないが。。
/etc/inittab を見ると、起動スクリプトは /etc/init.d/rcS となっているので、その中身をいろいろ見ていると、/etc/init.d/nfs.sh の中に nas_confggen -c nfs というコマンドがあり、これが /etc/exports を作るらしい。つまり /etc/exports を直接編集しても、再起動するともとに戻ってしまう。ということで、nfs.sh 内の nas_confggen -c nfs の直後に以下の2行を追加。
sed /all_squash/s//no_all_squash/ < /etc/exports > /etc/exports.new
mv /etc/exports.new /etc/exports
再起動が面倒いので、上記2行を直接実行し、Linux 側の mount を解除してから、/etc/init.d/nfs.sh restart で、nfsd を再起動。Linux 側から再度 mount してみると、今度はちゃんと Linux 側のログインユーザのままアクセスできる。Linux 側で root ログインして、home 以下を NAS に % tar cf - . | (cd /mnt/nas; tar xf -) とかでコピー、、しようとしたが、root_squach を外してなかったので、できない。実は2人しかユーザがいないのをいいことに、NAS側に空のユーザディレクトリィを作っておいてから、Linux 側で各ユーザになって、tar でコピーした。
NAS側マウントポイントのディレクトリィ /mnt/array1/share のアクセス権がなんと777つまり誰でも書き込み可能になっているので、これは 755 に変更。あと、Windows は使わないので、samba を停止。NAS再起動時にも samba が立ち上がらないよう、smb.sh を細工。
いまのところ順調に稼働しています。ディスク容量が 80GB から 5.8TB に増えた。
[PR]
by une0exct | 2012-01-21 16:23
<< MacOS X 10.7 Li... QuickTime Playe... >>