当然ながらbuffaloからシェルは公開されない。しかしすごい人はいるもので、外部から
刺激を与えて無理矢理telnetできるようにするツールが公開されている。
(これって超セキュリティホールだよね?)
以下telnetできるようにするための手順を示す。
ちなみにネットワークにさえ繋がっていればよく、本体分解の必要はない。
◆用意するもの
・javaの動く環境(うちではWindowsXPを利用)
javaはどのバージョンでもいいと思うのでインストールしておく。
http://www.java.com/ja/
・acp_commander.jar
ルートのパスワードをクリアするツール
http://downloads.buffalo.nas-central.org/TOOLS/ALL_LS_KB_ARM9/ACP_COMMANDER/
ダウンロードして適当なディレクトリに配置
◆手順
1.コマンドプロンプト起動し、acp_commander.jarを置いているフォルダへ移動
2.acp_commander.jar実行
> java -jar acp_commander.jar -t 192.168.12.150 -o
192.168.12.150はLS-HGLのIPアドレスね。
以上で完了。
なお、-oはルートパスワードクリアとtelnetを可能にするオプション。
※2012/01/12 追記
当方が実施したときのLS-HGLのファームウェアは1.06でした。
最新ファームウェアではacp_commander.jar の引数を変える必要があるようです。
いただいたコメントを参照してみてください。
◆telnet接続確認
> telnet 192.168.12.150
パスワード無しでいきなりrootでログインした状態となる。うぉ・・・
以上でtelnet準備完了。
■■最低限、最初にやっておきたいこと■■
・rootパスワード設定
・telnetdとsshdの自動起動の設定
・suコマンドの設置
・作業用ユーザの作成
◆rootパスワード設定
# passwd
◆telnetdとsshdの自動起動の設定
# vi /etc/rc.d/init.d/rcS
rcSの終わりのほうにtelnetd とsshd 起動コマンド記述
rcS抜粋
# exec_sh bootcomplete.sh
# exec_sh hdd_late_check.sh
# exec_sh check_initialization.sh
/usr/sbin/telnetd ← 追記
/usr/local/sbin/sshd ← 追記
◆suコマンドの設置
suコマンドは含まれてないので、自分でコンパイルするか拾ってくる必要がある。
自分は以下のサイトから頂きました。感謝。
http://home1.catvmics.ne.jp/~kanemoto/linux/ls-gl.html
下のほうにsuコマンドあります。
ファイルは /bin/に配置。
あと忘れずにスティッキービットを設定。
# chmod u+s /bin/su
パーミッションはこんな感じ。
-rwsr--r-x su
◆作業用ユーザの作成
#useradd foo
なんか警告がいっぱいでるけどOK。
ホームディレクトリ作成。
#mkdir /home/foo
パスワード設定。
#passwd foo
■■sshd関連の設定■■
◆/etc/sshd.conf の編集
PasswordAuthentication no ← キーファイル認証とする
PermitRootLogin no ← rootのsshログイン不可
◆sshキーの作成
ユーザfooにて
sshキーフォルダ作成とキー作成
$ mkdir ~/.ssh
$ cd ~/.ssh
$ ssh-keygen -t rsa -C "SSH2 RSA key"
~/.ssh/に以下の2ファイルが作成される。
id_rsa 秘密鍵
id_rsa.pub 公開鍵
公開鍵のリネーム
$ mv id_rsa.pub authorized_keys
id_rsaはクライアント側PCへコピー後、本フォルダから削除。
あと通常、ssh関連ファイルはパーミッションをきちんと設定しておく必要があるが、このlinuxはデフォでOKみたい。
デフォの状態でパーミッションは以下。(通常はフォルダ、キーとも700)
drwxr-xr-x ./ ← .ssh/
-rwxr--r-- authorized_keys*
以上でsshd設定完了。
◆再起動
とりあえず、最低限必要な環境で立ち上がってくるか再起動して確認。
# shutdown -r now
◆ssh接続確認
再起動後、teraterm等でssh接続できればOK。
PuTTYで接続する場合はPuTTY付属のPuTTYgen.exeにて変換が必要。
以上で全て完了。
◆参考 クライアント側でsshキーを作成する場合
クライアント側でキー生成する場合は、PuTTYgen.exeにて作成。
puttyで生成した公開鍵をサーバ上で以下のコマンドで変換。
$ ssh-keygen -i -f id_rsa.pub >> authorized_keys
これでPuTTYとteratermから接続できるはず。
コールドスタンバイバックアップについてはこちら。