WordPress前書き一般に公開されているWebサーバーを実行している場合、コンテンツをアクセス可能にすることと、安全な構成を確立することとのバランスをとることが難しくなる場合があります。注意深い精査の対象とすべきさまざまな分野があります。これらの1つはプロセスの分離と可視性です。*と呼ばれるプロジェクトは、カーネルネームスペースを利用して分離ポリシーを実施する軽量のセキュリティコンテナー化メカニズムを提供することにより、この分野での支援を目指しています。これにより、chroot環境が非常に軽量になります。このガイドでは、プロセスを独自のchroot環境で分離するためにfirejailを使用する方法を示します。これを実際の例で示すために、2つのchroot環境をセットアップします。Webサーバーで、もう1つはサイトデータを処理するMySQLデータベースで構成します。これらの2つのインスタンスには独自のファイルシステムとインストールがあり、ブリッジネットワークデバイスを介して通信します。14.04サーバーを基本インストールとして使用します。+`パッケージを利用できるようになり、chroot環境を簡単に作成できるようになります。14.04の初期サーバーセットアップ]を完了していることを確認してください。ホストシステムに2つのchroot環境をセットアップします。+`ツールでよりよくテストされているため、選択されています。ホストマシンはパブリックIPアドレスで構成され、刑務所と通信するために設定するブリッジネットワークのゲートウェイとして機能します。ジェイルされた環境は、ブリッジインターフェイスを利用するようにのみ構成され、ホスト上のNATルールを介してより広いインターネットにのみアクセスできます。構成する3つの環境には、次のプロパティがあります。Server(none)10.10.20.20上記の赤の値は、ホストサーバーのパブリックIPアドレスに置き換える必要があることに注意してください。ガイド全体でこのインターフェイスとこれらのアドレスを設定するため、ブリッジのIPアドレスはそのまま使用する必要があります。*ユーザーとして実行されます。開始するには、使用するツールの一部をサーバーにダウンロードする必要があります。`パッケージをダウンロードする必要があります。+`パッケージ名を見つけ、以下のURLのファイル名部分をそのバージョンに置き換えます。以下のURLは、パッケージへの直接ダウンロードリンクです。+`を使用してインストールします。firejail*firejailプログラムをインストールした後、Ubuntuのデフォルトリポジトリから追加のパッケージを取得する必要があります。bridge-utilsブリッジインターフェイスを構成する実際の刑務所に入る前に、ブリッジネットワークインターフェースをセットアップします。`コマンドで新しいインターフェースを作成できます。br0次に、インターフェイスを起動する必要があります。インターフェイスのアクティブ化に加えて、CIDRネットワーク範囲を割り当てています。10.10.20.1/24インターフェースが稼働している状態で、インターフェース間でIP転送またはルーティングを許可するようカーネルに指示する必要があります。次のように入力して、このセッションでこの機能を有効にできます。+」ルールを設定する必要があります。*のIPアドレスがあります。10.10.20.10:80これにより、「nat」テーブルの「PREROUTING」チェーンの下部にルールが追加されます。ポート80宛てのTCPパッケージがヒットすると、トラフィックはネットワークアドレス変換を介して「10.10.20.10」のポート80にリダイレクトされます。データベースとWebサーバーがWordPressからコンポーネントを更新できるようにインターネットを照会できるようにする一連のルールを設定する必要があります。+`インターフェースがホストマシンを介して通信を正常にルーティングできるようにするマスカレードルールを追加することから始めます。MASQUERADE次に、FORWARDチェーンのルールを調整して、インターフェイス間の通信をロックダウンできます。+」ネットワークへのトラフィックを明示的に許可できるように、確立された以前のNATルールをミラーリングする必要があります。ACCEPTまた、確立された接続に関連する着信トラフィックを許可します。+」ネットワークからの送信接続に対してのみ許可されるように、他のすべての転送接続をドロップします。このポリシーの例外は、前述のルールで既に確立されています。DROPこれで、ホストシステムは、ジェイルされた環境との通信に使用するブリッジインターフェイスで構成されます。Chrootディレクトリ構造を作成するこれで、chrootディレクトリ構造を作成する準備が整いました。前に言ったように、Webサーバーとデータベースサーバーは完全に別のファイルシステムで動作します。+`というディレクトリ内に保持します。今すぐそのディレクトリを作成します。/jails作成したディレクトリに移動します。/jails次に、ジェイルされたオペレーティングシステムで使用されるファイル構造を作成する必要があります。+`ツールを使用します。このユーティリティは、既存のファイルシステム内のDebian環境をブートストラップするために作成されました。これを行うには、Debianリポジトリからパッケージを取得し、正しい場所に「インストール」します。+」を使用できますが、代わりに安定したDebianインストールを選択します。このツールはDebianで動作するように作成されているため、これらの環境はこのツールで最もよくテストされています。データベース環境を「db」というディレクトリにインストールします。適切なディレクトリ構造を作成し、必要なパッケージをダウンロードしてインストールするには、次のように入力します。+`を使用して、Webサーバーが使用できる別のディレクトリに構造をコピーできます。新しいディレクトリは「www」と呼ばれます。次のコマンドのスラッシュ(/)に注意してください。これにより、ディレクトリ自体をコピーする代わりに、最初のディレクトリの_contents_が2番目のディレクトリにコピーされます。+`プログラムで使用できる2つのchrootディレクトリ構造ができました。+`ディレクトリ構造内にchroot環境を作成できます。chroot環境を作成して内部でbashセッションを開始するには、chrootルートのディレクトリの場所とセッションに使用するホスト名を指定するだけです。~]$このコマンドは、親pid、子pid、およびこのjailセッション内で構成されているインターフェイスを出力します(この時点ではインターフェイスを制限または構成していません)。その後、投獄された環境内のコマンドプロンプトにドロップされます。最初に行う必要があるのは、パッケージデータベースを更新し、chroot環境内にMySQLサーバーをインストールすることです。次のように入力して、それを行うことができます。mysql-server更新プロセス中に、Debianリポジトリがチェックされていることがわかります。これは、chroot環境がDebianインストールであるためです。インストールプロセス中に、ルートMySQLアカウントのパスワードを選択して確認するように求められます。インストールが完了したら、次のように入力してMySQLデータのディレクトリ構造を生成する必要があります。mysql_install_db次に、含まれるスクリプトを使用して、いくつかの安全でないデフォルトをロックダウンします。mysql_secure_installationインストール中に設定したルートMySQLパスワードの入力を求められます。その後、パスワードを変更するかどうかを尋ねられます。選択に満足したら「いいえ」を選択します。残りのプロンプトについては、Enterキーを押してデフォルトの選択肢を選択します。WordPressデータベースとユーザーを作成する次に、WordPress用に個別のデータベースをセットアップします。MySQLルートアカウントを使用してMySQLサーバーにログインします。プロンプトが表示されたら、そのユーザーに対して選択したパスワードを入力します。-pMySQLプロンプトが表示されます。WordPressが使用する新しいデータベースを作成します。wordpress;次に、Webサーバーjailからこのデータベースを操作するユーザーを作成します。*になるため、このユーザーをそのアドレスに関連付ける必要があります。このユーザーに安全なパスワードを割り当てます。次に、このユーザーに、作成したデータベースを操作する権限を付与します。'wordpressuser'@'10.10.20.10';ここで、権限テーブルをフラッシュして終了するだけです。PRIVILEGES;exitMySQL設定を変更してブリッジアドレスにバインドする次に、MySQL構成ファイルを変更する必要があります。/etc/mysql/my.confこのファイルはセクションに編成されています。次のように始まるセクションを見つけます。+」というディレクティブが表示されます。ブリッジインターフェイスでリッスンするMySQLインスタンスを起動します。*になるため、次のように変更する必要があります。10.10.20.20完了したら、ファイルを保存して閉じます。これで、現在実行中のMySQLインスタンスを停止して、このjailを終了できます。Webサーバーをセットアップするデータベースが構成されたので、Webサーバーに使用されるjailに移動できます。firejailを使用して、このjail環境でセッションを今すぐ開始します。WebサーバーとPHPコンポーネントをインストールすることです。これらは、動的リクエストを処理し、MySQLデータベースに接続するために必要です。php5-mysqlPHPの構成まず、PHPプロセッサの構成ファイルを編集して、セキュリティ上の問題になる可能性のある機能を無効にします。+`ディレクティブを探します。コメントアウトされ、「1」に設定されます。コメントを外し、「0」に変更する必要があります。cgi.fix_pathinfo=0完了したら、ファイルを保存して閉じます。次に、WordPressファイルを正しく提供するためにNginxをセットアップする必要があります。_`を設定し、PHP処理を構成することが含まれます。デフォルトのNginx構成ファイルを開きます。/etc/nginx/sites-available/default行う必要がある変更の概要は次のとおりです。+`ディレクティブのコメントを外します。+`を指すように変更します。index.php`ファイルを探します。index.php`ファイルに渡すようにします。+`ブロック内にあります。エラーページを許可するには、すべてのエラーページディレクティブのコメントを外します。`ディレクティブは、指定された要求を試行し、それ以外の場合は404を返します。上記の変更を完了すると、ファイルは次のようになります(簡潔にするためにコメントは削除されています)。}}簡単な場合は、ここに表示されている内容全体を貼り付けることができます。server_name`ディレクティブを調整するだけです。完了したら、ファイルを保存して閉じます。WordPressファイルのダウンロードと設定Nginxがファイルを正しく提供するように構成されたので、ファイルをダウンロード、構成、およびインストールできます。tarballをダウンロードすることから始めます。latest.tar.gzサンプル構成ファイルを、チェックされる有効な構成ファイル名にコピーします。wp-config.php次に、テキストエディターで新しい構成ファイルを開きます。wp-config.php内部では、データベースストレージに関連付けられている値を変更する必要があります。MySQLデータベースで行った選択の詳細を設定オプションに入力する必要があります。以前に独自の値に変更する必要があるパスワードフィールドを除き、以下に示す値を使用できます。'10.10.20.20');終了したら、ファイルを保存して閉じます。html`ディレクトリを作成する必要があります。次に、すべてのWordPressファイルをそのディレクトリにコピーします。/var/www/htmlこれで、ファイルの所有権をWebユーザーに付与できます。/var/www/html/*これで、Webサーバーの刑務所が完全に構成されました。次のように入力して、WebサーバーとPHPプロセスを正常にシャットダウンできます。stopここで、jailを終了してホストサーバーセッションに戻ります。exit刑務所の開始これで、刑務所が完全に設定されました。ネットワークブリッジインターフェイスで個別に起動できます。データベースサーバーが簡単なので、データベースサーバーを起動します。前と同じようにchrootルートの場所を指定する必要があります。+`パラメーターを使用してブリッジインターフェースを指定します。