※はじめに、この記事は個人的な備忘録です。参考にされる方は自己責任でお願い致します。
私の自宅で使ってるBuffaloのlinkstation LS-XLシリーズ(LS-X2.0TLJ)へssh接続できる様にhackしてみた。
まず、自宅のNasはFirmware versionが1.65。現状のファームでssh有効化設定を試みたがsshdデーモンが起動しないことがわかった。telnetdでも無理だった。はっきりはわからないのですが、firmware起因としてダウングレードすることにしました。
【PC環境】
MacBookPro(2011 early) OSX v.10.8.4
◆LinkstationのFirmwareダウングレード
【実際の手順】
1.Linkstationシリーズファームウェアアップデーター(Macintosh) Ver.1.60を手に入れる
→ls_series-160_fwmac.dmg(Buffalo HP)
2.ls_series-160_fwmac.dmgを実行し解凍
3.2つのファイル(”update”,"data")を適当な場所(デスクトップとか)にコピー
4.data/LSUpdater.iniをviで開き編集する
23行目以降を下記の様に編集する
[Flags]
VersionCheck = 0←defaultの"1"を"0"に書き換える
NoFormatting = 1
[SpecialFlags]←追記する
Debug = 1←追記する
5."update"ファイルを実行する
→Firmwareの書き換えが始まるので終わるまで待つ。
更新が終わりnasの再起動が始まる。2分置きにnasとの接続の確立を確認する動作が行われるが10〜20分くらい経ってもnasが検出されない。最終的にはエラーで終了するが、実際には起動は完了していた。試しにNASNavigator2だったか最新のファームウェアアップデーターを実行したらnasは検出されたのでOKとする。
6.nas動作確認
→Web設定より、各種設定の確認。その他→メディアサーバーのDLNAサーバーとiTunesサーバーが何故か”使用する”に変わっていた。
7.nasへの接続確認
「Finder→移動→サーバーへ接続」よりafp接続はOK。smb接続はNG。ユーザー名とパスワードを聞くポップアップが表示されて入力するもブルブルして拒否られる。別のユーザ名で接続するとOK。Web設定より、「ユーザー/グループ→ユーザー」からユーザーの削除/再登録を実施したところsmb接続ができるようになった。ファームの書き換えでユーザー情報が上手く更新されなかったのか?TimeMachine機能は問題無く動作することを確認。
私のMBPではnasをsmbでautomountしているのですがこちらも上手くいきました。(afp接続もOKでした)
以上でLinkstationのファームウェアのダウングレードは完了。
◆sshd有効化
【準備するもの】
※nasへログイン出来ない状態でもroot権限でコマンドの実行が可能となる
2.ターミナル
【実行】
1.ネットで得た知識からスクリプト作成し実行(acp_commander.jarが有る場所で実行)
「
mac:tool user$ more nas.sh
IP=192.168.0.x←NasのローカルIP
Admin_PW=admpassword←現在のadminユーザーのパスワード
java -jar acp_commander.jar -t $IP -ip $IP -pw $Admin_PW -c "sed -i 's/root:[^:]*:/root::/g' /etc/shadow"
java -jar acp_commander.jar -t $IP -ip $IP -pw $Admin_PW -c "sed -i 's/UsePAM yes/UsePAM no/g' /etc/sshd_config"
java -jar acp_commander.jar -t $IP -ip $IP -pw $Admin_PW -c "sed -i 's/PermitRootLogin no/PermitRootLogin yes/g' /etc/sshd_config"
java -jar acp_commander.jar -t $IP -ip $IP -pw $Admin_PW -c "(echo 'PermitEmptyPasswords yes') >> /etc/sshd_config"
java -jar acp_commander.jar -t $IP -ip $IP -pw $Admin_PW -c "(echo 'sshd:ALL') >> /etc/hosts.allow"
java -jar acp_commander.jar -t $IP -ip $IP -pw $Admin_PW -c "(echo 'ssh stream tcp nowait root /usr/local/sbin/sshd /usr/local/sbin/sshd -i') >> /etc/inetd.conf"
java -jar acp_commander.jar -t $IP -ip $IP -pw $Admin_PW -c "/etc/init.d/sshd.sh restart"
」
主にやっていることはsshのconfigファイルの書き換えです。
スクリプトの流れとしては、
1.defaultでnasのrootに設定されているパスワードをクリアする
2.sshd_configの中身を書き換える
3.hosts.allowへ全てのユーザーがsshでアクセスできる様に設定(たぶん)
4.サーバー起動時に自動でsshdが起動するようにinetd.confへ追記
5.sshの設定ファイルを変更したのでsshdデーモン再起動して設定を反映させる
以上でsshでnasへ接続できるようになりました。(この時点ではパスワード無しでログインできてしまう状態です。)
脆弱な状態なのですぐにrootのパスワードを設定してあげましょう。
また、パスワードを設定したら/etc/sshd_configの「PermitEmptyPasswords yes」はコメントアウトするか行を削除しましょう。
sshでアクセスが可能になり自由度が広がったので色々やってみようと考えているところです。さてと、何をやろうかな...?
BUFFALO NAS(ネットワークHDD) 【iPhone5対応(WebAccess i)】 2TB LS-X2.0TLJ
新品価格 |
コメントをお書きください
sextel (水曜日, 01 11月 2017 00:01)
Ostałówek