ルータ、サーバ、回線、ドメイン等の用意

以下は、自宅(自社)サーバを構築するためのメモ書きです。ホスティングサーバ使用した場合には、何かと制約を受けますが、そのような制約を受けずにかつ低コストでウェブサイトを作りたいというのが動機なのでサーバの構築の基本方針は、以下のとおりとしました。以下のようにしておけば、将来的に、Amazon EC2 への移行も容易だと思います。

  1. サーバは専用機とし、サーバには、IIS、SQL Server Express、PHP、MySQL等のウェブサイト作成のために必要なソフトのみをインストールする。DNSサーバーはレジストラーのものを利用し、メールはGMail、HotMail 等を利用する。なお、参考までに、Windows 用のOSSのメールサーバーソフトとしては、hMailServerがあります。 
  2. サーバ機の操作は、インストール時を除きリモートデスクトップでおこなう。(これはサーバーの設置スペースを少なくするためで、直接操作しても問題はありません)
  3. サーバ機とのファイルのやりとりはFTPでもできるようにする。

1 ネットワーク構成(ルーターの用意)

自宅サーバを構築する場合、ブロードバンドルーターはセキュリティを確保するため必ず用意します。サーバーを公開することによって予期しない不正アクセスや攻撃を受ける可能性があります。ルータを用意することで、不正アクセスの芽を摘み取っておくことが、セキュリティを確保する上で非常に重要なことです。ルーターの機能についてはルータの設定にメモをしています。詳しくは、別のホームページや書物を参考にしてください。今回は、ルーターが2台あったので、二重にして、サーバーが乗っ取られても、パソコンの方はすぐには乗っ取られないような構成にしてみました。外部からのアクセスは、「ポートフォワーディング」を使って、ポート番号80(http)、443(https)のみを開放するようにしました。

| (グローバルアドレス)
ルータ1
|  (192.168.0.1)
|
|―――自宅サーバ(192.168.0.3)
|
|  (192.168.0.2)
ルータ2
|  (192.168.1.1)
|  
|―――パソコン(DHCP:192.168.1.11~)
|   
|―――パソコン(DHCP:192.168.1.11~)

2 サーバーの用意

Windows 10 8、7 又は Vista が動作する PC を用意します。Windows 10 / 8 / 7 / Vista の推奨システム要件は、CPU 1GHz 以上、32ビットOSがメモリ 1GB以上 64ビットOSがメモリ2GB以上、HDDの空き容量15GB以上(64ビットOSの場合20GB)となっています。最近では保有しているパソコンのほとんどがこの要件を満足するようになっているので、IIS も気軽に使える Web サーバーになっています。

Windows 7/Vista では IIS は、Home Premium 以上に標準で添付されているので、Home Premium 以上のパソコンを用意します。できれば、同時接続台数、同時処理数が多くリモートデスクトップが利用できる Windows 7 Pro 以上が望ましいのですが、Home Premium でも特に支障はありません。

エディション 同時接続台数※1 同時処理数※2 リモートデスクトップ
Windows 10 Pro 20 10? 対応
Windows 10 20 10? ×?
Windows 8.1 Pro 20 10 対応
Windows 8.1 20 3 ×
Win 7 Profesional 以上 20 10 対応
Win 7 Home Premium 20 3 ×
Vista Business 以上 10 10 対応
Vista Home Premium 10 3 ×

※1 Windows のライセンス契約上の制限です。
※2 IIS の機能制限です。

現在の私の新自宅サーバーの構成は、以下のとおりです(詳しくは、ブログにメモをしています)。

  • ベアボーン:Intel D54250WYB (Core i5 4250Uを搭載)
  • メモリー:DDR3-1600 8GB
  • SDD:mSATA 240GB
  • OS:Microsoft Windows 8.1 Pro 64 ビット DSP版

私の旧自宅サーバーの構成は、以下のとおりです(詳しくは、ブログにメモをしています)。 インテル Atom プロセッサーは、省電力なので自宅サーバーには最適な CPU です。最近メモリを4GBに増設しました。

  • マザーボード(CPUを含む):Intel マザーボード D510MO
  • ケース:AOpen Mini-ITXケース S110 BLACK
  • メモリー:DDR2 800 4GB
  • HDD:2.5インチ SATA 250GB HTS545025B9A300
  • ファン:ainex CF-60SS
  • OS:Microsoft Windows 7 Professional 64 ビット DSP版

Windows XP や Vista Home Basic でも、あまりお勧めはしませんが WebMatrix (IIS Express) を使えば公開サーバーとして利用できます。

WebMatrix (IIS Express)で公開サーバー

3 インターネット回線の用意

自宅サーバーに外部からアクセスしてもらうためには、常時接続の環境でかつプロバイダ(接続業者)よりグローバルIPアドレスが割り当てられていることが必要になります。プロバイダ(CATVやマンションの場合は特に注意)によっては、プライベートIPアドレスを割り当てているところがあります。プライベートIPアドレスでは、サーバーを公開することはできません。また、プロバイダの規約によって禁止されていないことも確認しておいてください。

※プライベートアドレスかどうかの確認方法
プライベートアドレスは、以下のアドレスが予約されています。ルーター経由で接続している場合は、ルーターでWAN側のIPアドレスを確認します。また、ルーターを使わずにPCに接続している場合は、Dosプロンプトで ipconfig コマンドをたたくとIPアドレスを表示することができます。確認したIPアドレスが、プライベートアドレスの範囲にあればプライベートアドレスになります。なお、ルータのWAN側がプライベートアドレスの場合、ADSLモデムや光終端装置にルーター機能がついているにもかかわらず、ルータを設置している場合もあるので、接続業者に確認するか、ADSLモデム等の説明書を確認した方がいいと思います。

クラス 範囲
クラスA 10.0.0.0 - 10.255.255.255
クラスB x 16 172.16.0.0 - 172.31.255.255
クラスC 192.168.0.0 - 192.168.255.255

※固定アドレスについて
常時接続の場合でも、動的IPアドレスを使っている場合が多く、その場合は接続のたびにIPアドレスが変化してしまいます。そのため、DNS情報を動的に更新するDynamicDNSを利用し、サーバにはDiCEなどのツールをインストールしてDynamicDNSにアドレスを登録してやる必要があります。動的IPアドレスの場合、IPアドレスが変更された時には短時間ですがサーバーにアクセスできなくなります。管理の手間や運用の安定性を考えれば、できれば固定IPアドレスにしたいところです。最近は、固定アドレスも安価に取得できるようになっているので、お金に余裕があるのであれば固定IPアドレスに変更することをお勧めします。固定IPアドレスが安いプロバイダとしては、ASAHIネットが有名です。

4 ドメインの用意

サーバーを公開するためには、サーバーの名前にあたるドメインを取得する必要があります。動的IPアドレスの場合は、Value-Domainを利用して独自ドメインを取得するのがお勧めです。.com .netのgTLDであれば年額990円で取得でき、DynamicDNS を無料で利用することができます。また、Linux ですがXREAで無料サーバのアカウントも取得できるので、XREAにもホームページを作成しておけば自宅(自社)サーバが故障したときに対応がやりやすくなります。なお、実際にドメインを取得するのは、サーバーの設定が終了してからで十分です。1時間程度あれば、DNS の設定までできます。
サブドメインでいいから、ドメインについても無料にしたいというのであれば、DynDNS.com を利用してください。サブドメインでのDynamicDNSのサービスを無料で提供しています。

5 Windows 7 のインストール

サーバーには余分なソフトは不要なので、Windows 7 をクリーンインストールをしました。インストール時に設定を変更する部分はほとんどありませんが、ネットワークの場所については、パブリックネットワークを選択します。また、IPアドレスは、固定アドレスに変更します。ルータで受信したhttpのパケットをNATを使用してサーバに確実に送るため固定アドレスにします。固定アドレスの設定は、「コントロールパネル」、「ネットワークとインターネット」、「ネットワークと共有センター」、「ローカルエリア接続」の順で開くと「ローカルエリア接続の状態」のダイアログが表示されます。「プロパティ」をクリックすると以下の画面が表示されます。「この接続は次の項目を使用します」で「インターネットプロトコルバージョン 4(TCP/IPv4)」を選択して「プロパティ」をクリックします。
server02.png

以下の画面が表示されるので、「次のIPアドレスを使う」を選択します。1のネットワーク構成であれば以下のように設定します。
server01.png

6.リモートデスクトップの設定

サーバー機のOSが、Windows 7 Professional 以上、Vista Business 以上であれば、リモートデスクトップをインストールしておくと、PCからサーバーをコントロールすることができます。ローカル、リモート間でクリップボードやファイルのコピー&ペーストもできるので便利です。

設定の手順については、「コントロールパネル」、「システムとセキュリティ」、「リモートアクセスの許可」の順でクリックするか、「コンピュータ」を右クリックで「プロパティ」、「リモートの設定」を順にクリックすると以下の画面が表示されます。「リモート デスクトップ」の項目で、「リモートデスクトップを実行しているコンピューターからの接続を許可する」を選択して、OKボタンをクリックします。7/Vista のデスクトップOSだけでは、ネットワーク レベル認証の設定はできません。
server03

7.ファイアウォールの設定

Windows XP SP2 以降の Windows では、ファイアウォールがデフォルトでは有効に設定されています。そのことにより、ネットワークを通してのコンピュータへの攻撃を防御しています。したがって、IIS 等のサーバ機能をインストールした時に、他のパソコンからアクセスできるようにするため、サーバ機のファイアウォールを開放してやる必要があります。

今回の設定で開放する必要があるポートの一覧は、以下のようになります。
FTP等のスコープが、192.168.0.2 になっていますが、通常スコープは、リモート接続するPCのアドレスになるところなのですが、1の構成では、ルータによってアドレス変換(NAT)がされるため、ルータのWAN側のポートのIPアドレスを指定することになります。なお、このスコープで、ルータ2の内側にあるすべてのパソコンからの接続でファイアウォールが開放されます。
☆ファイアウォールは、むやみに開放しないよう、サービスの準備が終わってから開放するようにしてください。

サービス ポート番号 スコープ デフォルトの規則
HTTP 80 すべて
HTTPS 443 すべて
FTP 21※1 192.168.0.2 ○※2
リモート・デスクトップ 3389 192.168.0.2 ◎※3
SQL Server 1433 192.168.0.2 -
MySQL 3306 192.168.0.2 ※4

※1 passive モードの場合は、データ転送用コネクションのためのポートをオープンする必要がありあます。Windows ファイアウォールでは、受信の規則で、「FTP Server Passive (FTP Passive Traffic-In)」という名前の規則を有効化します。
※2 Windows 7 の場合は、FTP サービスをインストールすると、デフォルトの規則が作成されます。
※3 コントロールパネルで、リモートデスクトップの接続の許可にすると、自動的に設定されてポートが開放されるので、ファイアウォールの設定をする必要はありません。
※4 MySQL をバイナリファイルでインストールする場合、インストール時に「Add firewall exception for this port」をオンにした場合は、インストーラが自動で設定します。

設定の具体的な手順については、以下にメモをしました。

Web ページを公開するには - ファイアウォールの設定

SQL Server をリモート接続-ファイアウォールの設定