/lab/izumit//Computing


○自宅サーバの立ち上げ

 ADSL回線を引いたときから考えていたことですが,自宅サーバを立ち上げたいと思っていました。自宅になぜサーバが必要かというと,誰にも迷惑をかけずにアプリケーションのテストをする環境が欲しかったのと,気兼ねないディスクスペースが欲しかったからです。

 一般的にプロバイダーからIPアドレスは1つしかもらえず,しかも接続し直すたびに変化するものです。ADSLは常時接続といっても,回線状況の悪化などで切断して再接続することがままあります。固定IPアドレスをもらえば,常に同じIPアドレスを使えるので便利なのですが,低料金のところはほとんどありません。

 そもそも,インターネットに接続するのはADSLモデムルータです。実は唯一のIPアドレスをこいつが獲得してしまうのです。それじゃぁパソコンからインターネットアクセスできないじゃないか,という訳ではなくてルータを窓口とするLANにはプライベートIPアドレスが割り当てられます。自宅サーバも直接ADSLモデムルータに取って代わるのでなければプライベートIPアドレスを割り当てられてLANの中です。このままでは外部から自宅サーバにアクセスできませんので,スタティックIPマスカレード設定を行います。IPアドレスを持っているADSLモデムルータに来た特定ポート(WWW, SSH等)への接続要求を,LANのサーバマシンに転送してやる設定で,自宅サーバを立ち上げるときの手法になります。DMZ設定という,すべての接続要求をLANのサーバマシンに転送する設定もありますが,これはADSLモデムルータ・サーバマシンの負荷が極度に高まってしまう危険があります。

 自宅サーバとしてizm.nursery.jpが立ち上がりました。LCDパネルをもぎ取られたCeleron300なThinkPad240無印にVineLinux2.1.5を入れました。たまたま手近にあったのと,バッテリー搭載のため停電時でもデータが保護されるので,ノートPCを自宅サーバに仕立てました。稼働時の騒音についても,デスクトップ型のサーバではファンの音などが気になるでしょうが,ノートPCではほとんど気になりません。DynamicDNSという仕組みを使って,ADSL回線が再接続になってIPアドレスが変わったとしてもizm.nursery.jpでアクセスできるようにしてあります。

○サーバ設定手順

 ThinkPad240は,ThinkPad-i1124と兄弟モデルなので,基本的には以前書いたLinuxインストール記録の内容を踏襲すれば間違いありません。ただ,全く同じなのは芸がないので,RedHat系LinuxであるVineを特徴を生かすためにrpmパッケージを最大限生かしたサーバ設定を行うことにしました。LCDパネルをもぎ取ったので,外部CRTディスプレイをつないだ状態でのインストール作業でした。

  1. Vine Linux 2.1.5のFTP版CDイメージをダウンロードして,インストール用CD-Rを作成します。
  2. 既に販売終了しているI/O Data製CD-RWをPCカード接続で利用するために,ブートフロッピーディスクをノートPC用に作成します。
  3. 一旦,日本語の状態でインストールしようとしたところ,リフレッシュレートが違うのか画面表示ができませんでした。最初のプロンプトで>englishと入力して,なんとか先に進みます。
  4. ディスクツールでは,2つのパーティションに分かれているのを,改めて切り直してスワップ領域とそれ以外のルートに割り当てる領域とに編集しました。
  5. パッケージの選択ではカスタムの中で,インターネットサーバ群(WWW,FTP,DNS)等は入れません。これはバージョンアップしたものをrpmパッケージでインストールするつもりだったからです。
  6. 自宅サーバにはSSH(Security Shell)ログインすることが多くなるので,X Window Systemは利用しないことにしました。i1124と違うのはビデオカードのチップで,設定が手間だったのも利用しない理由の一つです。
  7. TP240はPCカードスロットが1つなので,CD-RWをつないでインストールしているときにはネットワークアダプタを使えません。手動でネットワーク設定をするのが面倒ですが,仕方ありません。eth0の定義とプライベートIPアドレスをnetconfコマンドで地道にやります。地道とはいえ,Linux稼働実績の無いネットワークアダプタでは徒労に終わる恐れがあるので,もちろん楽な道を選びます。
  8. とりあえずインストールが終了して起動したLinuxサーバは,セキュリティ的にも危ない要素をいろいろと抱えているので,ディストリビューションのFTPサーバにあるupdatesを片っ端からインストールします。
  9. インストール時にはパスしたインターネットサーバ群についても,rpmパッケージによるインストールを行います。Proftpd,Apache1.3.22,mod_ssl0.9.5aなどなど。DNSは別サーバにお願いするので,BINDは入れません。
  10. 以前のWebアプリケーションサーバ構築では,Apache+SSLという構成を行いました。ソースレベルでパッチをあてて,それをコンパイル&インストールという手順が必要でしたので,RedHat系Linuxのrpmパッケージ管理という流儀に反していました。そこで,今回はrpmパッケージで管理できるApache1.3.22とmod_ssl0.9.5aを利用しました。どちらが優れているという訳ではありませんが,HTTPSのセキュアな通信が可能になるという意味では同じです。
  11. DynamicDNS用にPerlスクリプトを書きます。ADSLモデムルータの管理画面ページから現在のIPアドレスを取得して,手元に残してある前回のIPアドレスと比較します。違っていれば,IPアドレスが変更されているという意味ですから,DNSサーバにアクセスしてizm.nursery.jpとIPアドレスの対応を変更します。cronに30分おきにチェックするように設定しました。
  12. サーバ調査サイトのNetcraftのデータを見れば,どれだけIPアドレスが変化したか分かります。cronの動作により,長くとも30分以内にはizm.nursery.jpで到達できるようになります。

○DNSサーバ設定手順

 私が取得しているnursery.jpという汎用JPドメインは,202.26.48.29にホスティングしてもらっています。ここのBINDに,izm.nursery.jpというゾーン設定を行います。nursery.jp自身は変更されたくないためです。key付きのnsupdateを試みたのですがうまくいかないため,認証付きCGIからnsupdateを操作して書き換える仕様にしました。

○ADSLモデムルータ設定手順

 ACCAネットワークスの8Mサービスは富士通のADSLモデムルータで統一されているようです。これを使って自宅サーバを公開するには,スタティックIPマスカレード設定を行います。自宅サーバにするマシンのプライベートIPアドレスとポート番号を設定してやるだけです。izm.nursery.jpでは,WWWとSSHのみを設定しています。外部公開Webサービスと,外部からのリモートログイン用の意味です。


Myself Study Essay Computing Bookmark
index