基本情報技術者試験によく出るWebアプリケーションをインターネットに公開する際の「サーバの安全な配置方法」について、DMZ(非武装地帯)と内部LANセグメントという2つのネットワークの観点から、WebサーバとDBサーバの配置方法についてまとめます。
「サーバってどこに置けばいいの?」「重要なデータが外に漏れないようにするには?」という疑問をもった方、基本情報の試験勉強中の方は、ぜひ参考にしてください。
DMZ(非武装地帯)とは?
DMZ(DeMilitarized Zone)は、インターネットと内部ネットワークの間にある「緩衝地帯」のようなものです。
🔰 DMZの役割
- インターネットに公開する必要があるサーバ(例:Webサーバ)を配置
- 万が一攻撃されても、内部ネットワークへの侵入を防ぐ壁になる
サーバ配置の基本構成
[インターネット] │ ┌────┐ │ FW │(1段目) └────┘ │ [DMZゾーン] │ ┌──────────────┐ └▶│ Webサーバ(公開) │ └──────────────┘ │ ┌────┐ │ FW │(2段目) └────┘ │ [内部LANセグメント] │ ┌──────────────┐ └▶│ DBサーバ(非公開) │ └──────────────┘
WebサーバはDMZに配置すべし
📌 理由
- WebサーバはHTTP/HTTPSでインターネットからの通信を受けるため、公開が必須
- セキュリティリスクが高いため、直接内部ネットワークに入れないことが鉄則
✅ セキュリティ対策
- 必要なポート(80, 443)のみ開放
- OS・ミドルウェアのアップデート
- Webアプリケーションファイアウォール(WAF)の導入
- 公開鍵認証によるSSH接続、rootログイン禁止
- ログ監視ツール(例:Fail2ban)で不正ログイン対策
DBサーバは内部LANに設置すべし
📌 理由
- データベースには機密データが多く格納されるため、外部から直接アクセスできてはいけない
- Webサーバからの接続のみに限定することで、攻撃経路を限定
✅ セキュリティ対策
- MySQLなら
bind-address = 127.0.0.1
または WebサーバのプライベートIPのみ許可 - データベースユーザーに最低限の権限のみ付与
- 通信を暗号化(SSL/TLS)
- データバックアップは暗号化+安全な場所に保存
二重のファイアウォール構成(2段FW)を採用しよう
DMZと内部LANの間に第2のファイアウォール(FW)を設けることで、WebサーバからDBサーバへの通信も厳密に制御できます。
通信元 | 通信先 | 許可ポート | 備考 |
---|---|---|---|
インターネット | Webサーバ(DMZ) | 80, 443 | HTTP/HTTPS |
Webサーバ(DMZ) | DBサーバ(内部) | 3306(MySQL) | DB通信のみ許可 |
その他の通信 | DBサーバ | ✖すべて遮断✖ | セキュリティ向上 |
まとめ
DMZに配置 | Webサーバなどの公開系 |
内部LANに配置 | DBなど非公開の重要データ系 |
セキュリティのポイント | ファイアウォール制御、最小権限、監視、暗号化 |
推奨構成 | DMZ+二重FW+内部セグメント |
おまけ:クラウド環境(AWSなど)の場合は?
AWSの場合は以下のように考えると良いです。
- Webサーバ → パブリックサブネット+セキュリティグループ(HTTP/HTTPSのみ)
- DBサーバ → プライベートサブネット+セキュリティグループ(Webサーバからのみ接続可)
- NACLやIAMも使えば、さらに堅牢に構成できます。