カテゴリー別アーカイブ: NAS

NAS

Buffalo LS-VL SSHログイン化②

先日のBuffalo LS-VL SSHログイン化ですと作業の無駄が多いのでもっと簡単に出来るようにしてみました。acp_commander.jarのお世話になるやり方に変更はありません。firmware Ver.1.52, Ver.1.54, Ver.1.56にて確認済です。この施策による責任は一切負いません。あくまで自己責任でお願い致します。

  1. sshlogin.sh
    sshlogin.zipをダウンロードし、解凍して出来た以下のsshlogin.shをLS-VLのshareフォルダへ転送します。中身はなんてことはない、rootパスワードを潰し、sshd_configを書き換えてるだけです。前回やったのと基本的には同じで、2つの処理を1ファイルにまとめただけです。

    • sshlogin.sh
    #!/bin/sh
    . /etc/profile
     
    # /etc/shadow
    perl -i.org -pe 's/root:[^:]*?:/root::/' /etc/shadow
     
    # /etc/sshd_config
    perl -i.org -pe 's/#PermitRootLogin yes/PermitRootLogin yes/; s/PermitRootLogin no/#PermitRootLogin no/; s/#PasswordAuthentication yes/PasswordAuthentication yes/; s/#PermitEmptyPasswords no/#PermitEmptyPasswords no\nPermitEmptyPasswords yes/' /etc/sshd_config
    
  2. acp_commander.jar
    次にNAS-Centralに行きacp_commander.jarを拾ってきます。コマンドプロンプトにてacp_commnader.jarからsshlogin.shを実行します。
    acp_commnader.jarは同一ネットワークセグメントからしか実行できません。jar実行にはJava(JREでOK)が必要です。Javaへのパスが通ったコマンドプロンプトから以下のように実行します。
    [cc lang=”dos” theme=”blackboard”] > java -jar acp_commander.jar -t -pw -s
    [/cc] acp_commnader.jarの「-s」オプションはワンライナーの実行しかできません。「/root>」プロンプトで1回だけコマンドを実行できます。複数回行う場合は、その都度接続します。また1行210文字の制限もあります。
    LS-VLのIPアドレスが192.168.0.11とすると以下のようになります。-pwはWeb画面のadminパスワードです。

    > java -jar acp_commander.jar -t 192.168.0.11 -pw xxxxxxxx -s
    ACP_commander out of the nas-central.org (linkstationwiki.net) project.
    Used to send ACP-commands to Buffalo linkstation(R) LS-PRO.
    ………………….
    Enter telnet commands to LS, enter ‘exit’ to leave
    /root> /mnt/disk1/share/sshlogin.sh
  3. sshdリロード
    > java -jar acp_commander.jar -t 192.168.0.11 -pw xxxxxxxx -s
    /root> kill -HUP `cat /var/run/sshd.pid `

    sshのリロードまたはLS-VLを再起動しますと、rootユーザでパスワードは空でログインができるはずです。あとはなんでもできますので、sshd_configの「PermitEmptyPasswords no」にしたり、rootに新パスワードを設定しておきます。

ファームウェアを更新しますとsshd_configが元に戻ってしまうようですのでファーム更新の度に上記を実行します。

また、このままですとrootユーザによるsftpはPAMにより蹴られてしまいますのでrootユーザでsftpもしたい場合は以下のように/etc/ftpusersのrootをコメントしておきます。PAMの設定元は/etc/pam.d/sshdです。

  • /etc/ftpusers
    # vi /etc/ftpusers
    
    #root
    bin
    deamon
    sys
    adm
    sync
    shutdown
    halt
    operator
    nobody
    

Buffalo LS-VL SSHログイン化

もっと簡単にできる方法を追加しました。やってることは同じなんですが。。。


Slingboxなどのリモート接続用に今まで自宅のネット回線には固定IPの1セッションともう1セッションの2セッションをAsahiネットにて確保していたのですが、震災をきっかけに節電対策でSlingbox等を停止。あわせて固定IP&1セッションも解約。いわば一般的な回線契約に戻しました。
そのおかげで固定IP\800円+1セッション\735円=\1,535円/月もお安くなったわけですが、海外渡航でのSlingboxは必須?なので、今回の渡航前、無料DynamicDNSサイトのDynDNSで取り急ぎドメインを発行。すでに固定IPではないわけですので一定時間毎にDynamicDNS側へ自IPを更新する必要があるわけですが、渡航時は時間がなくとりあえずネットブック(Dell Inspiron mini10)を引っ張り出してきてDynDNS更新ソフトをインストして常時電源ONで旅立ったわけです。今後のためにもDynamicDNS更新できるものを用意しておこうかということでBuffalo LS-V2.0Lを購入してきました。なんでNASかといえばあれなんですが(汗)題目のようなことができ遊べますし、Webファイルストレージとしても使用できるのでまあ一石二鳥かなと。以前は自鯖も飼っていたのですが、2年前にすべてレンタルサーバへ移行。これからは消費電力の少ないサーバ、つまりNASでしょう!(笑)このLS-VLシリーズのスペックなら結構遊べるサーバになると思うのですが。。。

BuffaloのルータでDynDNS更新という手もあるのですが、これですとルータはPPPoE接続しないとグローバルIPがわからないはずで、うちではRV-230SEにPPPoEとDMZをさせ、PCとは別ルータで挟んでセグメントを別けておきたいのでNG。
[cc] [AsahiNet] —– [RV-230SE] –+– [Router] —– [PC] +– [LS-VL(静的IPマスカレード)] +– [Slingbox(静的IPマスカレード)] [/cc] LS-XLの時はhddrootfs.img本体にトラップを仕掛けファーム更新でrootハックしていたのですが、効率が悪すぎですので今回はacp_commander.jarのお世話になりました。こちらのほうが数百倍簡単です(笑)

まずはLS-VLにログインできないとなにも始まらないですので、SSHログイン化してみます。

  1. freerootpw.sh
    NAS-Centralに行きrootパスワードを潰すfreerootpw.shとacp_commander.jarを拾ってきます。freerootpw.shはそのままLS-VLのshareフォルダへ転送します。中身はなんてことはない以下のようなコマンドっす。まあ他にもやり方はありそうですが。。。

    • freerootpw.sh
    #!/bin/sh
    . /etc/profile
    mv /etc/shadow /etc/shadow.org
    cat /etc/shadow.org | perl -pe 's/root:[^:]*?:/root::/' > /etc/shadow
    chmod 644 /etc/shadow
    
  2. sshd_config
    次にBuffaloでfirmwareを拾ってきて解凍します。途中hddrootfs.imgのパスワードを聞かれたりしますが適宜入力(パスはNAS-Centralにあります)解凍を繰り返し/etc/sshd_configを抜き出します。で、以下の設定変更をしこれまたLS-VLのshareフォルダへ転送します。

    • sshd_config
    PermitRootLogin yes
    PasswordAuthentication yes
    PermitEmptyPasswords yes
    
  3. acp_commander.jar
    最後にacp_commnader.jarから下記2ファイルをコマンド操作します。

    • freerootpw.sh を実行。
    • sshd_config を/etc/sshd_config に上書きコピー

    acp_commnader.jarの「-s」オプションはワンライナーの実行しかできません。「/root>」プロンプトで1回コマンド実行できる感じです。

    • acp_commnader.jar
    [cc theme=”blackboard”] java -jar acp_commander.jar -t -ip -pw -s
    [/cc]

再起動しますと、rootユーザでパスワードは空でログインができるはずです。あとはなんでもできますので、sshd_configの「PermitEmptyPasswords no」にしたり、rootに新パスワードを設定しておきます。

とまあ、上記経路図を書いていたら、やっぱりBuffaloのルータでPPPoEやらせたほうがよい気がしてきました。それはVPNです。中国ではあれがこれで有名サイトにアクセスできない。VPNすれば問題ないのでやっぱり以下に変更しようかと思ってます。RV-230SEはPPPoEブリッジ、もしくはVDSLユニットからルータユニットを通さず直接Buffaloルータへ。幸いBuffaloルータは複数台在庫があるので問題ないかと。DynamicDNSもBuffaloルータに任せようかと、いうことでLS-VLにddclientを入れる必要がなくなりそうです。
ルータ1台の消費電力は増えてしまいますが。。。
[cc] [AsahiNet] —– [RV-230SE] —– [WHR-G301N] –+– [Router] —– [PC] +– [LS-VL(静的IPマスカレード)] +– [Slingbox(静的IPマスカレード)] [/cc]