以下は、自宅(自社)サーバを構築するためのメモ書きです。ホスティングサーバ使用した場合には、何かと制約を受けますが、そのような制約を受けずにかつ低コストでウェブサイトを作りたいというのが動機なのでサーバの構築の基本方針は、以下のとおりとしました。以下のようにしておけば、将来的に、Amazon EC2 への移行も容易だと思います。
自宅サーバを構築する場合、ブロードバンドルーターはセキュリティを確保するため必ず用意します。サーバーを公開することによって予期しない不正アクセスや攻撃を受ける可能性があります。ルータを用意することで、不正アクセスの芽を摘み取っておくことが、セキュリティを確保する上で非常に重要なことです。ルーターの機能についてはルータの設定にメモをしています。詳しくは、別のホームページや書物を参考にしてください。今回は、ルーターが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~)
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 の機能制限です。
現在の私の新自宅サーバーの構成は、以下のとおりです(詳しくは、ブログにメモをしています)。
私の旧自宅サーバーの構成は、以下のとおりです(詳しくは、ブログにメモをしています)。 インテル Atom プロセッサーは、省電力なので自宅サーバーには最適な CPU です。最近メモリを4GBに増設しました。
Windows XP や Vista Home Basic でも、あまりお勧めはしませんが WebMatrix (IIS Express) を使えば公開サーバーとして利用できます。
WebMatrix (IIS Express)で公開サーバー
自宅サーバーに外部からアクセスしてもらうためには、常時接続の環境でかつプロバイダ(接続業者)よりグローバル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ネットが有名です。
サーバーを公開するためには、サーバーの名前にあたるドメインを取得する必要があります。動的IPアドレスの場合は、Value-Domainを利用して独自ドメインを取得するのがお勧めです。.com .netのgTLDであれば年額990円で取得でき、DynamicDNS を無料で利用することができます。また、Linux ですがXREAで無料サーバのアカウントも取得できるので、XREAにもホームページを作成しておけば自宅(自社)サーバが故障したときに対応がやりやすくなります。なお、実際にドメインを取得するのは、サーバーの設定が終了してからで十分です。1時間程度あれば、DNS の設定までできます。
サブドメインでいいから、ドメインについても無料にしたいというのであれば、DynDNS.com を利用してください。サブドメインでのDynamicDNSのサービスを無料で提供しています。
サーバーには余分なソフトは不要なので、Windows 7 をクリーンインストールをしました。インストール時に設定を変更する部分はほとんどありませんが、ネットワークの場所については、パブリックネットワークを選択します。また、IPアドレスは、固定アドレスに変更します。ルータで受信したhttpのパケットをNATを使用してサーバに確実に送るため固定アドレスにします。固定アドレスの設定は、「コントロールパネル」、「ネットワークとインターネット」、「ネットワークと共有センター」、「ローカルエリア接続」の順で開くと「ローカルエリア接続の状態」のダイアログが表示されます。「プロパティ」をクリックすると以下の画面が表示されます。「この接続は次の項目を使用します」で「インターネットプロトコルバージョン 4(TCP/IPv4)」を選択して「プロパティ」をクリックします。
以下の画面が表示されるので、「次のIPアドレスを使う」を選択します。1のネットワーク構成であれば以下のように設定します。
サーバー機のOSが、Windows 7 Professional 以上、Vista Business 以上であれば、リモートデスクトップをインストールしておくと、PCからサーバーをコントロールすることができます。ローカル、リモート間でクリップボードやファイルのコピー&ペーストもできるので便利です。
設定の手順については、「コントロールパネル」、「システムとセキュリティ」、「リモートアクセスの許可」の順でクリックするか、「コンピュータ」を右クリックで「プロパティ」、「リモートの設定」を順にクリックすると以下の画面が表示されます。「リモート デスクトップ」の項目で、「リモートデスクトップを実行しているコンピューターからの接続を許可する」を選択して、OKボタンをクリックします。7/Vista のデスクトップOSだけでは、ネットワーク レベル認証の設定はできません。
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」をオンにした場合は、インストーラが自動で設定します。
設定の具体的な手順については、以下にメモをしました。