KVMとVPNでセキュアなWEBサーバーを構築する

概要

システム図

webserver_1

システムのポイント

WEBサーバーはインターネット環境からアクセス可能ですが、SQLサーバーにはVPN接続を行わないと接続出来ないのがポイントです。また、SQLサーバーは仮想サーバーのため、1台のサーバーで独立したWEBサーバーとSQLサーバーを運用出来ます。MyPhpAdminはブラウザで直接データベースを操作出来るので非常に便利な反面、インターネット環境からアクセス出来るようにしてしまうとパスワードのみでアクセス可能となってしまうので脆弱性を生んでしまいます。そのため、VPN経由でのみ接続可能とすることで利便性とセキュリティを両立します。

サーバーの構築手順

基本設定

  1. WEBサーバーの構築
    OSのミニマムインストールからWEBサーバー構築、メールサーバー構築まで行います。詳細はこちら
  2. openVPNサーバー機能の追加
    SQLサーバーを構築した際に、セキュリティ向上のためにアクセスを同一LAN内からのみに制限します。その際に外部からアクセスするためにはVPNを構築する必要があるため、WEBサーバーにopenVPNサーバー機能を追加します。構築方法はこちら
  3. KVM機能を使用して、仮想サーバーの構築
    セキュリティ的にWEBサーバーとSQLサーバーは分離するべきで、別サーバーを用意するのが理想的ですが、それほどアクセスが多いサーバーではないため、経済的なバランスをとって仮想サーバー上に構築します。その前準備としてKVMをインストールして仮想サーバーを構築し、OSをセットアップします。構築方法はこちら
  4. 仮想サーバー上にMariaDB機能の追加しMyPhpAdmninを構成
    MyPhpAdminを構築する場合は、WEBサーバー機能も必要になります。仮想サーバーのMyPhpAdminに遠隔からアクセスする場合、VPNに接続してからブラウザからプライベートIPアドレスにアクセスします。構築方法はこちら
  5. openVPNサーバーと仮想サーバーのネットワーク設定
    WEBサーバーと仮想サーバーのブリッジ接続を行う必要があります。ブリッジ設定はVPNサーバーと仮想サーバーの両方で行う必要があります。詳細はこちら

以上で、サーバー側の基本設定は完了です。基本設定だけでも基本動作は出来ますが、よりセキュアなサーバーとする方法を考えます。

さらにセキュリティを向上させるために

  1. httpsの構成
    ドメイン設定を完了してから作業を行う必要があるので、また作業後に書きます。
  2. SSH接続を鍵認証方式に変更
    パスワード認証方式からより安全性を高めるために鍵認証方式に変更します。詳細な手順はこちら
  3. SSH接続のポートを22番ポートから変更
    SSH接続のポートはデフォルト22番ですが、セキュリティを考慮すると変更しておくのが無難です。SElinuxの設定変更等が必要となり、詳細な手順はこちら

その他の追加設定

  1. WEBサーバーへの外付けHDDマウント設定
    httpdのルートフォルダ配下にHDDをマウントさせる場合、SElinuxでアクセスエラーとならないように設定が必要です。詳細はこちら

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

four × two =