第02回 「telnetd or sshd のインストール/ユーザの追加」
LANDISK HACKING DIARY
Since2005/8/17
TOPへ戻る

   INDEX
 
1. telnetd のインストール
2. sshd のインストール
3. ユーザの追加
4. 公開鍵/秘密鍵の生成(RSA認証)




 
   telnetd のインストール

 

 


バックアップ作業を済ませたら次にすることはLANDISKへログインだ。Telnet もしくはSSH を簡単にインストールすることができるパッケージが配布されているのでそちらを利用するのが良いだろう。I-O Data純正のアップデート方法でアップデートすることができるので作者様には大変(^人^)感謝です。まず、下記に紹介するサイトより「landisk_telnetd_v2.0.zip」をダウンロードしてくる。解凍後、README.TXT が入っているのできちんと理解してからインストールすることをお勧めする。また、update.tgzを解凍し、どのようなファイルがインストールされるかをしっかり確認しておこう。中に入っている「landisk-update.sh」の内容をみればどのような処理が行われるのかがわかる。

wizd on LANDISK
⇒http://landisk.sealandair.info/


telnetd のインストールは、「ファームウェアの更新」から landisk_telnetd_v2.0.zip を解凍してできた「update.tgz」を指定し、「更新」ボタンを押すだけである。更新の前には、Web設定画面より、「landisk」というユーザを予め作成しておく。更新後、LANDISKが再起動するのでランプの点滅が終了したら再度、Webブラウザからアクセスすることができるか確認する。


正常にアクセスできることが確認できたら、TeratermPro からIPアドレスを指定して23番ポートにアクセスする。以下のように表示されたら、ユーザ名「landisk」、パスワードを入力するばログインすることができる。ログイン後、デフォルトでは .bash_profile などが存在しないので「bash$」と味気ないシェル表記になっている。

Linux 2.4.21 (landisk) (1)

landisklogin:
Password:
bash$

root になるには、sudo su を実行する。cat /etc/sudoers を閲覧すると「landisk ALL=(ALL) ALL」とユーザーlandisk に対して全ての権限を与えられていることがわかる。

$ sudo su

なお、デフォルトではRead-Only になっているため、ファイルを編集する場合にはリマウントして書き込み権限を与えてあげる必要がある。

# mount -o rw,remount /




 
     sshd のインストール
   
sshd もtelnet のインストール方法となんら変わりはない。telnetd の後に sshd をインストールする場合は、/etc/hosts.allow, /etc/hosts.deny がない場合に限って作成するため、既に存在する/etc/hosts.allow を勝手に書き換えられることはないから安心してそのままインストールすることができる。

iWA's Server - Let's hack LANDISK
⇒http://iwa.ath.cx/landisk/


Web設定画面よりアップデートを実行すると、LANDISKは再起動を開始する。鍵を生成するため1分程度待つ必要がある。再起動後、Web画面にアクセスできることを確認する。次に、TeratermProを起動し、LANDISKのIPを指定し、22番ポートへアクセスする。デフォルトでSSH2プロトコルでログインすることができた。なお、ログイン後に、/home/landisk ディレクトリがないためにchroot できないという旨のメッセージが表示されたので、root になり、ディレクトリを作成しておいた(LANDISK のWeb画面でユーザを作成すると、ユーザーディレクトリが作成されない)。再度ログインしなおし、先ほどのメッセージがでないことを確認する。

# mkdir /home/landisk
# chown landisk.landisk /home/landisk



 
     ユーザの追加
   
ついでに、普段使い慣れたログイン名でログインしたいので新規にユーザを作成しておく。

# adduser kororo

sudo su でroot でログインできるように/etc/sudoers を編集する。当然、visudoコマンドなどはインストールされていないので構文ミスは致命的になる。慎重にファイルを編集する必要がある。また、/etc/sudoers はデフォルトで440のRead Only に設定されているのでchmod で755に変更してあげる。/etc/sudoers の編集後は、必ず/etc/sudoers のパーミッションを440に戻しておく。これをしておかないと、一般ユーザではログインできるがsudo でroot になることができなくなる。「sudo: /etc/sudoers is mode 0755, should be 0440」というエラーが発生するのだ。root のパスワードを変更していればまだマシだが、変更していない場合はパスワードがわからないので目もあてられなくなる(最もroot のパスワードを変更するとI-O Data のファームウェアを更新できなくなる可能性があるので変更しない方が良い)。chmod 440 を実行後、シェルを抜けずに、新規ターミナルを開き一般ユーザでsudo が実行できるか確認しておこう。

# mount -o rw,remount /
# ls -l /etc/sudoers
-r--r----- 1 root root 635 Aug 18 03:12 /etc/sudoers
# chmod 755 /etc/sudoers
# vi /etc/sudoers
kororo ALL=(ALL) ALL
# chmod 440 /etc/sudoers
# シェルを抜ける前に新規ターミナルを開き、一般ユーザでログインできるか確認すること



 
     公開鍵/秘密鍵の生成(RSA認証)
   
RSA認証でログインできるように公開鍵と秘密鍵を生成しておく。

$ /mnt/hda3/local/bin/ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/kororo/.ssh/id_rsa):[ ENTER ]
Created directory '/home/kororo/.ssh'.
Enter passphrase (empty for no passphrase):パスフレーズの入力
Enter same passphrase again:
Your identification has been saved in /home/kororo/.ssh/id_rsa.
Your public key has been saved in /home/kororo/.ssh/id_rsa.pub.
The key fingerprint is:
6b:e7:7c:19:be:ac:40:2d:f5:46:fb:b6:bc:61:cd:18 kororo@landisk

生成した鍵をWindows マシンに転送する。どのような手段で転送しても構わないが、以下の手順ではLANDISK の共有ファイルにid_rsa をコピーしている。あとは、Win機側でTeraterm を起動して「RSA/DSA鍵を使う」にチェックを入れ、先ほどコピーしたid_rsa を指定しLANDISKにログインするだけである。

$ cd .ssh/
$ cp -p id_rsa.pub authorized_keys
$ cp id_rsa /mnt/hda3/share/disk1
$ sudo su
# chown nobody.nobody /mnt/hda3/share/disk1/id_rsa

最後に、/etc/ssh/sshd_config も編集しなおしておく。「RSAAuthentication yes」でRSA認証が可能となる。鍵でのログインになるので、「PasswordAuthentication」(プレイン認証)は「no」にしておく。root でのログインができるようになっていると危険性が増すので「PermitRootLogin」は「no」に設定しておく。空パスワードでのログインはさせないように「PermitEmptyPasswords」は「no」になっていることを確認する。

# vi /etc/ssh/sshd_config
RSAAuthentication yes
PermitEmptyPasswords no
PasswordAuthentication no
PermitRootLogin no

設定を反映させるため、sshd を再起動する。

# /etc/init.d/ssh restart
Restarting OpenBSD Secure Shell server: sshd.





TOPへ戻る
 
Copyright © KORO All Rights Reserved.