LANDISK HACKING DIARY | ||
Since2005/8/17 | ||
TOPへ戻る | ||
INDEX | |||||||||||||
1. LANDISK環境からdebian環境への完全移行 2. 自動起動設定 |
|||||||||||||
LANDISK環境からdebian環境への完全移行 | |||||||||||||
|
さてと…一通り主要なサーバーをインストールし、正常に動いているようなので、そろそろ真剣に考えなければいけないことがある。当サイトを最初から読んできた方なら既に気づいていただろうが、面倒そうなので気づかないフリをしてきたはずだ。今までは、LANDISKにログインする際に、一旦、LANDISK環境にログインし、次に、debian_start スクリプトを実行することで debian 環境に移行していた。たいした手間ではないが、この作業、かなり面倒だとは思わないだろうか?いや、かなり面倒だ。それに、LANDISKを再起動した場合、全て初期状態にリセットされるので、その度にdebian_start を実行し、サーバーを稼動させるのではこれも手間になる。こういった面倒な作業を全て自動化させ、ログインする際には、直接debian 環境にログインしたい。以下ではその方法について説明していく。 まず、これからしなければならないことを考えてみる。LANDISK環境で稼動している主要なデーモンをまずリストアップしてみる。 inet(ftp、telnet)、cron、samba、ssh、lpd、httpd LANDISK環境に必要のないものは、ftp、cron、samba、ssh、lpd、httpd である。つまり、これらのデーモンは全てdebian 環境に移行させるからだ。LANDISK環境とdebian環境での2重起動にならないようにきちんと設定を施しておく必要があるだろう。ひとつだけ、telnet のみ残したが、これは、LANDISK環境にログインするために必要となるからである。通常はLANDISK環境にログインすることはないが、設定ミスなどをした場合にLANDISKにログインできる最後の手段として残しておく(追記:LANDISK環境のssh はなにも停止させる必要はありません。debian 環境のssh を22番で起動させ、LANDISK環境のssh を他のポート番号で起動させればよいだけです。LANDISKのメモリ量と相談し、ssh をダブル起動させるかべきか否か判断してください)。 ■xinetd のインストール 最初に debian 環境に、inetd よりもセキュリティに強いxiened を導入する。現在、LANDISK環境では、inetd 経由で telnetd と wu-ftpd が起動している。telnetd は最悪の事態を想定して起動させたままにしておくとして、wu-ftpd は debian 環境に proftpd を導入するため、必要はない。なので、wu-ftpd をLANDISK起動時に起動しないように設定しておく。
次に、debian環境にログインし、inetd を使わないように設定する。
上記のように、inetd 停止させてしまうのが1番早いが、update-inetd コマンドを使って使用できないようにすることもできるので一例として紹介してみる。
次に、xinetd をインストールする。
xinetd は、/etc/xinetd.d/ 以下に各サービスの設定ファイルを置くようになっている。デフォルトでは、以下の4ファイルがあるはずだ。 echo、chargen、discard、daytime、time、talk、ntalk などは危険を伴うので使わないのならば停止させてしまって構わないだろう。以下の4つのファイルの中身をみてみればわかると思うが、デフォルトで、「disable = yes」となっている。つまり、初期状態で使わない状態になっているということだ。
インストールを終えたら、次にxinetd 経由で起動させたいサービスを/etc/xinetd.d 以下に追加していく。追加し終えたら、再起動する。
■debian 環境に sshd をインストールする 次に、debian環境にopenssh をインストールする。直接ログインする場所を、debian 環境にするように設定していく。今までは、sshd でログインしていた場所は、/root だったが、今度からは/mnt/hda3/debian/root になるわけだ。だが、root でログインできるようにしておくのは、危険を伴うので予めユーザを作成しておく。
上記で作成したユーザーに対して全権限を与えるように sudo をインストールし、適切に設定しておく。debian 環境のデフォルトでは、sudo はインストールされていないはずなので、apt-get してインストールしておく。
sshd のインストールをする。
次に、ユーザ、kororo でログインし、公開鍵・秘密鍵を作成する。作成された id_rsa を Windows 上にコピーしておく。コピーし終えたら、元の id_rsa は削除しておく。
ここまで設定できたら、Windows 上からTeratermを起動し、debian 環境のルートディレクトリへログインできるかどうか確かめておく。ログインプロンプトが今までとは違う画面で表示されるはずである。sudo して root シェルにログインすることができれば、sshd はひとまず成功である。
最後に、/etc/ssh/sshd_config を設定しておく。
|
||||||||||||
自動起動設定 | |||||||||||||
ここまでで完全移行への環境はだいたい揃いましたが、最後にやらなければいけないことがあります。それは、LANDISK起動時に自動起動するデーモンを起動しないように設定し、自動起動するようになっていない debian 環境のデーモンを自動起動させるようにすることです。とりあえず、停止させたいサービスと起動させたいサービスを整理してみることにする。 ■起動時に停止させるサービス in LANDISK環境 wu-ftpd、cron、samba、ssh、lpd、httpd ■起動時に起動させておくサービス in LANDISK環境 inetd (telnet)、dhcpcd ■起動時に起動させておくサービス in debian環境 apache2、bind9、cron、mt-daapd、ntp-server、samba、squid、ssh、lpd など ×失敗例 以下のようにして、samba が自動起動しないようにリネームし、LANDISKを再起動させたらなんとシステムが起動しなくなりました。赤と緑のランプが両方点滅しているので、IPアドレスを取得できなかったのかと思い、作業用マシンを192.168.0.0/24 のネットワークに変更してから再度アクセスしてもアクセスできなかった。なぜ…?samba が起動できないことで、システムを起動させるのに何らかの支障がでてくるんだろうか?結局原因がわからないので筐体を開けて違うマシンで直すハメに…。再度、起動させてから、S91samba を見てみたらやけに長い起動スクリプト。なんとなくいろんなことやってそうだったので、いじるのはやめておくことにした(筐体を何度も開けたくない…)。
LANDISK環境の sshd を自動起動しないようにしておく。
/etc/rc.d/rc.local を編集し、debian 環境のデーモンが自動起動するように設定する。rc.local とはシステムが起動する際に最後に実行されるスクリプトのことである。Webサーバーに関しては、apache と apache2 の混在環境は可能なので、LANDISK環境の apache はそのまま起動させておき、IO-DATAのWeb設定画面にアクセスできるようにしておく。debian 環境では、apache2 を8080 番で起動させ、公開用Webサーバーとする(予定)。作成したrc.local 次第では、LANDISKのPOWERランプ(緑)が、システム起動後もずっと点滅し続けたりすることがある。推測するに、システム起動時に、LANDISK環境の httpd(apache)は起動している状態でないとPOWERランプは点滅したままの状態になってしまうので、無理にapache を停止させることはやめることにした。以下のスクリプトで、筆者の環境では特に支障なく起動するようになったが、使用する際には責任は持ちません。
ここまでの設定を終えれば無事に、LANDISK環境から debian 環境への移行が完成しただろう。あとは、sshd を使って直接、debian 環境にログインすれば良い。あまりお勧めできる方法とは言えないが、debian 環境では再起動をかけることができないので、一旦、LANDISK環境でtelnet ログインしてから再起動をかけることになる分、若干面倒になるのは否めない。ただ、不用意な再起動を防げるという点では意義があるだろう。その際に、予め、debian 環境のデーモンを停止させるスクリプトを実行しておくとよいだろう。
あるいは、LANDISK環境からdebian 環境のデーモンを停止させ、再起動をかけるには、以下のようなシェルスクリプトを使っている。
|
TOPへ戻る | ||
Copyright © KORO All Rights Reserved. |