HOME

CeHttpで作るWebサーバの構築例

ここでは実際にCeHttpとADSLで作成する常時接続サーバの構築例について記述します。
あくまで例ですので、他にも様々なやり方があると思いますが参考にしてください。

WindowsCEとCeHttpでWebサーバを構築すると下記のようなメリットがあります。

  • 珍しい
  • 静かだ
  • 電気代が安い
  • 停電しても壊れない(確立が飛躍的に高い)
  • Linuxよりは簡単だ(と思う)
  • WindowsNT/2000/XPよりは安全(これは確実)
  • 無料の開発環境 eVC++で拡張モジュールが作成できる

逆にデメリットとしては

  • PerlなどのメジャーなCGIが使えない(少なくともCeHttpは)
  • 容量に制限がある(少なくともSDカードとか使わなければ)

容量に制限がある、というのは最近のWindowsCEでは心配ないかもしれません。

 

機器構成

  機器構成は下記のようになります。

一般的なADSL回線接続の例はこのようになると思います。

ルータが持つIPアドレスには

  • グローバルIPアドレス
    (DHCPサーバから与えられる)インターネットからアクセスできるIPアドレス
  • ローカルIPアドレス
    家庭内機器からアクセスできるIPアドレス

があります。
グローバルIPアドレスはADSLプロバイダから適当にDHCPによって与えられます。
図では「210.100.1.1」と記述していますが、これはあくまで例です。
ローカルIPアドレスはルータにて設定するIPアドレスで、大体「192.168.xxx.xxx」とか「10.0.xxx.xxx」とに設定されます。 図では192.168.3.2としています。

WindowsCE機は通常ルータを経由してインターネットと接続します。
普段使うPCも同様です。

サーバはこんな感じです。

上からルータ、WindowsCE機(シグマリオンI)、そしてLinuxサーバ、最下段にYahooBB!モデムです。

※現在はmuseaを使っています。

CeHttpのセットアップ

  WindowsCE機をネットワークに接続します。IPアドレスはルータのDHCPから割り当てられるものではなくて、固定にしておきましょう。大体ルータの説明書にやり方が書いてあります。
ネットワークに接続したら、インターネットエクスプローラなどで、インターネットのサイト(http://www.yahoo.co.jp とか)を閲覧できることを確認します。

CeHttpをWindowsCE機にインストールします。インストール方法はオンラインマニュアルを読んでください。

 

ルータの設定

  インターネットからWindowsCE機で動作するCeHttpにアクセスできるようにします。

ルータの設定で、インターネットからの接続を80番のポートをWindowsCE機に接続できるようにファイヤーウォールの設定を行います。

WebサーバはHTTPポート(80番)を利用しますので、これをWindowsCE機に通します。(ルーティングします)
ファイヤーウォールの設定は使っているルータの説明書に書いてあります。現在手に入るルータはほとんどがブラウザから簡単に設定できるようになっています。

 

外部からの接続確認

  ファイヤーウォールの設定が終わると、次にインターネットから接続できるかどうか確認します。

インターネットからアクセスするにはグローバルIPアドレスを調べる必要があります。グローバルIPアドレスはルータの設定画面などで調べる事ができます。

一番簡単なインターネット接続の確認方法はケータイ(EZwebやiモード、Jスカイ等)からアクセスすることです。ケータイのブラウザから上記で調べたアドレスにアクセスします。ケータイからみれた場合、インターネットから接続できています。

ここまでで、インターネットから接続できるWEBサーバができたと言う事になります。

 

ダイナミックDNSの登録

  グローバルIPアドレスは変動しますので、このままでは外部からのアクセスの度にIPアドレスを調べなくてはなりません。

ダイナミックDNSを利用して、IPアドレスが変動しても常に一定のURLでアクセスできるようにしましょう。

DNSとはDomain Name Systemの略で、IPアドレスを人間が理解しやすい文字列に変換してくれるものと考えておけばよいでしょう。

例えばこのサイトも http://cehttp.ddo.jp という名前がついていますが、IPアドレスに変換可能です。

ドメイン名とIPアドレスの関係はWindowsのコマンドプロンプトにて下記のようにして確かめることが可能です。

C:\>nslookup cehttp.ddo.jp
Server:
Address: 192.168.2.1

Non-authoritative answer:
Name: cehttp.ddo.jp
Address: xxx.xxx.xxx.xxx ← ここ

nslookup とはDNSに様々な問い合わせを行うコマンドです。

ダイナミックDNSはこのように変動するIPアドレスに固定的なドメイン名を割り当てるサービスです。現在は無料でダイナミックDNSを提供するサービスが数多くありますので、これを利用します。

このサイトが利用しているのはDynamic DO!.jpです。ここではこのサイトにすでに ドメイン名を登録している前提で設定方法を説明します。登録方法は上記サイトに詳しく書いてあります。

DynamicDNSへの登録を自動で行うSOCKETを導入します。

 

SOCKET.EXEのセットアップ

  SOCKETをWindowsCE機にインストールします。(→DOWNLOADへ)

上記DynamicDO!.jpのユーザ名とパスワードが下記のように設定されているとします。

USER:cehttp
PASS:abcxyz

SOCKETのインストール先(デフォルトでは\program files\isocket\)に下記のようなsocket.txtという名前のテキストファイルを設置します。

SOCKET_connect: ddo.jp
SOCKET_port: 80
Host: ddo.jp
User-Agent: Sokcet/1.0

SOCKET_request: GET /dnsupdate.php?dn=cehttp&pw=abcxyz HTTP/1.0

こうすることによって2時間毎にダイナミックDNSを更新する事が可能です。

 

WindowsCE機設置の際のポイント

  WindowsCE機を常時接続する際のポイントとしては、バッテリを抜いておく事と、蓋を閉めておく事です。バッテリは充放電を繰り返すと消耗しますので、抜いて保管しておきます。蓋を閉めておくのは液晶 のバックライトを保護するためです。

シグマリオンは蓋を閉めてもAC電源を入れておけばサスペンドしませんが、その他のWindowsCE機ではサスペンドしてしまうかもしれません。

 

掲示板の設置

  掲示板を設置するにはBBS.CHXを利用します。(→DOWNLOADへ)
これは掲示板用サンプル拡張ですが、簡単な掲示板ならば、これをインストールすれば事足りると思います。
またHTMLのカスタマイズ、管理者権限で投稿の削除などが行えます。

 

基本認証ディレクトリの設置

  掲示板をそのままインストールすると、管理者用拡張スクリプトBBSADMIN.CHXも誰でも見れてしまいます。これを抑制するために、ユーザー名とパスワードを入力しなくては見れないディレクトリを作成し、大切なものはそちらに移します。

デフォルトでは下記のようなディレクトリ構成になっています。

/wwwroot
    /scripts

ここで管理者用スクリプトを配置するディレクトリauthを /wwwroot/scripts 下に作成します。

/wwwroot
    /scripts
          /auth

この /wwwroot/scripts/auth 下に access.cha というテキストファイルを配置します。このテキストファイルには下記のように記述します。

taro:jiro

こうすることによって、ブラウザから  /wwwroot/scripts/auth 下にアクセスしようとすると、ユーザー名とパスワードを聞かれることになります。この際、ユーザー名に「taro」、パスワードに「jiro」と入力することで、アクセスが可能になります。

BBSADMIN.CHXや、DIR.CHX 等の他人に見られたくないファイルはこの下に配置すると良いでしょう。

もちろん普通のページもこのようにして閲覧制限を掛けることが可能です。詳しくはユーザーズマニュアルの4章「基本認証」を参照してください。

セキュリティの考察

  http://cehttp.ddo.jp ではシグマリオンをネットに直接接続し、つまりファイヤーウォールやルータを介さずにグローバルIPアドレスで運営していますが、特に問題なく連続稼動しています。通常はLinuxでも怖くてそんなことはなかなか出来ず、Windowsなら夜もオチオチ眠れない日々が続きますが、WindowsCE機ならば枕を高くして眠ることができます。

そもそもクライアント機なのでサーバとしてのサービスが存在していません。そのため攻撃対象がそもそも存在しないという点が挙げられます。

たいていのバッファオーバーフロー攻撃に対しても有効です。なぜなら大方のバッファオーバーフロー攻撃はIntelのPentium系に対して有効なように作成されているからです。WindowsCE機ではMIPSやARMなどのCPUが利用されている場合がほとんどな為に、この手の攻撃を受けても乗っ取り用コードが走ることはありません。一時期はやったNIMDAの攻撃も日々受けていましたが、特に大きな問題も無く動作していました。CEHTTPはバッファオーバーフロー攻撃を想定して防御しています。

ただしCEHTTPが持つ基本認証に関しては注意が必要です。HTTPプロトコル標準の基本認証はユーザー名とパスワードが平文のままインターネットに流れます。誰かがパケットウォッチをしてしまうと、パスワードがばれてしまいます。昨今のインターネットでこれを行うのは非常に難しくなっていますが、可能性が無いわけではありません。あまり過信しないように注意が必要です。

   

HOME

Copyright (C) 2005 Yuichiro Ishitani All rights reserved.