はじめに
このドキュメントでは、エンタープライズチャットおよび電子メール(ECE)のロードバランサとしてpfSense Community Edition(PSE)をセットアップおよび設定する手順について説明します。
前提条件
要 件
次の項目に関する知識があることが推奨されます。
使用するコンポーネント
本書の情報は、次のソフトウェアのバージョンに基づくものです。
- ECE 12.6(1)
- pfSense Community Edition 2.7.2
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
PfSenseのインストール
ソリューションの概要
pfSense Community Editionは、ファイアウォール、ロードバランサ、セキュリティスキャナ、その他多くのサービスを1つのサーバで提供する多機能製品です。 pfSenseはFree BSD上に構築されており、ハードウェア要件は最小限です。ロードバランサはHAProxyの実装であり、製品を設定するための使いやすいGUIが用意されています。
このロードバランサは、ECEとContact Center Management Portal(CCMP)の両方で使用できます。 このドキュメントでは、ECEのpfSenseを設定する手順について説明します。
準備
ステップ 1:pfSenseソフトウェアのダウンロード
isoインストーライメージをダウンロードするには、pfSense Webサイトを使用します。
ステップ 2VMの設定
最小要件でVMを設定します。
・ 64ビットamd64(x86-64)互換CPU
・ 1 GB以上のRAM
・ 8 GB以上のディスクドライブ(SSD、HDDなど)
・1つ以上の互換性のあるネットワークインターフェイスカード
・ ブータブルUSBドライブまたは大容量オプティカルドライブ(DVDまたはBD)による初期インストール
ラボのインストールでは、ネットワークインターフェイス(NIC)が1つだけ必要です。アプライアンスを実行する方法はいくつかありますが、最も簡単な方法は、ワンアームモードとも呼ばれる単一のNICを使用することです。ワンアームモードでは、ネットワークと通信する単一のインターフェイスがあります。これはラボにとっては簡単で十分な方法ですが、最も安全な方法ではありません。
アプライアンスをより安全に設定するには、少なくとも2つのNICを使用します。1つのNICはWANインターフェイスで、パブリックインターネットと直接通信します。2番目のNICはLANインターフェイスで、社内ネットワークと通信します。また、追加のインターフェイスを追加して、異なるセキュリティおよびファイアウォールルールを持つネットワークのさまざまな部分と通信することもできます。たとえば、パブリックインターネットに接続するNICを1つ、外部からアクセス可能なすべてのWebサーバがあるDMZネットワークに接続するNICを1つ、企業ネットワークに接続する3つ目のNICを持つことができます。これにより、内部ユーザと外部ユーザが、DMZに保持されているのと同じWebサーバのセットに安全にアクセスできます。実装前に、設計によるセキュリティへの影響を理解しておいてください。特定の実装のベストプラクティスに従っていることをセキュリティエンジニアに確認します。
設置
ステップ 1:VMへのISOのマウント
ステップ 2VMの電源をオンにし、プロンプトに従ってインストールします。
手順については、このドキュメントを参照してください。
ネットワーク構成
設定を続行するには、アプライアンスにIPアドレスを割り当てる必要があります。
注:このドキュメントでは、ワンアームモードに設定されたアプライアンスについて説明します。
ステップ 1:VLAN の設定
VLANのサポートが必要な場合は、最初の質問に対してyと答えてください。それ以外の場合は、nと答えます。
ステップ 2WANインターフェイスの割り当て
WANインターフェイスは、2アームモードではアプライアンスの非セキュア側となり、1アームモードでは唯一のインターフェイスとなります。プロンプトが表示されたら、インターフェイス名を入力します。
ステップ 3LANインターフェイスの割り当て
LANインターフェイスは、2アームモードのアプライアンスのセキュア側です。必要に応じて、プロンプトが表示されたらインターフェイス名を入力します。
ステップ 4その他のインターフェイスを割り当てる
特定のインストールに必要なその他のインターフェイスを設定します。これらはオプションであり、一般的ではありません。
ステップ 5管理インターフェイスへのIPアドレスの割り当て
ネットワークがDHCPをサポートしている場合、割り当てられたIPアドレスがコンソール画面に表示されます。
pfSenseコンソール
アドレスが割り当てられていない場合、または特定のアドレスを割り当てる場合は、次の手順を実行します。
- コンソールメニューからオプション2を選択します。
- nと答えてDHCPを無効にします。
- WANインターフェイスのIPv4アドレスを入力します。
- ビットカウントでネットマスクを入力します。(24 = 255.255.255.0、16 = 255.255.0.0、8 = 255.0.0.0)
- WANインターフェイスのゲートウェイアドレスを入力します。
- このゲートウェイをアプライアンスのデフォルトゲートウェイにする場合は、ゲートウェイプロンプトに対してyと答え、そうでない場合はnと答えます。
- 必要に応じて、NICをIPv6用に設定します。
- インターフェイスでDHCPサーバを無効にします。
- yと答えて、webConfiguratorプロトコル上でHTTPを有効にします。これは次の手順で使用します。
設定が更新されたことを示す確認メッセージが表示されます。
pfSenseの確認
初期設定の完了
ステップ 1:Webブラウザを開き、http://<ip_address_of_appliance>に移動します。
注:最初はHTTPSではなくHTTPを使用する必要があります。
pfSense管理ログイン
ステップ 2admin/pfSenseのデフォルトログインでログインします。
ステップ 3初期設定を完了する
最初の2つの画面でnextをクリックします。
pfSenseセットアップウィザード – 1
ホスト名、ドメイン名、およびDNSサーバ情報を入力します。
pfSenseセットアップウィザード – 2
IPアドレス情報を確認します。最初にDHCPを選択した場合は、ここで変更できます。
NTPタイムサーバのホスト名を入力し、ドロップダウンで正しいタイムゾーンを選択します。
pfSenseセットアップウィザード – 3
最後までセットアップウィザードを続行します。インターフェイスGUIが再起動し、完了すると新しいURLにリダイレクトされます。
管理者の基本設定
ステップ 1:管理インターフェイスにログインします
ステップ 2SystemドロップダウンメニューからAdvancedを選択します
pfSense GUI – 管理ドロップダウン
ステップ 3WebConfigurator設定の更新
pfSense GUI:管理設定
- HTTPS(SSL/TLS)プロトコルを選択します。
- この時点では、SSL/TLS証明書は自己署名証明書のままにしておきます。
- TCPポートを443以外のポートに変更して、インターフェイスのセキュリティを強化し、ポートのオーバーラップの問題を防ぎます。
- WebGUIのリダイレクトオプションを選択して、ポート80の管理インターフェイスを無効にします。
- Browser HTTP_REFERERエンフォースメントオプションを選択します。
- Enable Secure Shellオプションを選択して、セキュアシェルを有効にします。
注:先に進む前に、必ずSaveボタンを選択してください。その後、新しいhttpsリンクにリダイレクトされます。
ステップ 4必要に応じてプロキシサーバを設定
必要に応じて、[その他]タブでプロキシ情報を設定します。セットアップと設定を完了するには、アプライアンスがインターネットにアクセスできる必要があります。
pfSense GUI:プロキシ設定
注:変更を行った後は、必ずSaveボタンを選択してください。
必要なパッケージの追加
ステップ 1:「システム」>「パッケージマネージャ」を選択します
ステップ 2利用可能なパッケージの選択
注:利用可能なすべてのパッケージをロードするには数分かかる場合があります。タイムアウトになった場合は、DNSサーバが正しく設定されていることを確認します。多くの場合、アプライアンスをリブートすると、インターネット接続が修復されます。
pfSense GUI:パッケージリスト
ステップ 3必要なパッケージの検索とインストール
- ハプロキシ
- オープンVMツール
注: haproxy-develパッケージは選択しないでください。
証明書の設定
pfSenseでは、自己署名証明書を作成することも、パブリックCAや内部CAと統合することもできます。また、CAとして機能し、CA署名付き証明書を発行することもできます。このガイドでは、内部CAと統合する手順について説明します。
このセクションを開始する前に、次の項目が使用可能であることを確認してください。
- PEMまたはBase 64エンコード形式で保存されたCAのルート証明書。
- PEMまたはBase-64エンコード形式で保存されたCAのすべての中間証明書(発行証明書とも呼ばれます)。
ステップ 1:[システム]ドロップダウンメニューから[証明書]を選択します
pfSense GUI:証明書のドロップダウン
ステップ 2CAルート証明書のインポート
pfSense GUI - CA証明書リスト
Addボタンを選択します。
pfSense GUI - CAインポート
図に示すように:
1. 一意で説明的な名前を指定します
2. 「方法」ドロップダウン・リストから「既存の認証局のインポート」を選択します。
3. 「信頼ストア」および「シリアルのランダム化」チェック・ボックスが選択されていることを確認します。
4. 証明書全体を「証明書データ」テキスト・ボックスに貼り付けます。-----BEGIN CERTIFICATE-----および-----END CERTIFICATE-----の行からを含まれていることを確認します。
5. Saveを選択します。
6. 図に示すように、証明書がインポートされることを確認します。
pfSense GUI - CAリスト
ステップ 3CA中間証明書のインポート
pfSense GUI - CA中間インポート
手順を繰り返してルートCA証明書をインポートし、中間CA証明書をインポートします。
pfSense GUI - CAリンク
図に示すように、認証局を確認して、中間証明書がルート証明書に正しくチェーンされていることを確認します。
ステップ 4ロードバランスされたWebサイトのCSRの作成とエクスポート
ここでは、CSRを作成し、CSRをエクスポートし、署名付き証明書をインポートする手順について説明します。PFX形式の既存の証明書がある場合は、この証明書をインポートできます。これらの手順については、pfSenseのマニュアルを参照してください。
1. 「証明書」メニューを選択し、「追加/署名」ボタンを選択します。
pfSense GUI:証明書リスト
2. 証明書署名要求(CSR)フォームに入力します。
pfSense GUI:CSRの作成
- 方法:ドロップダウンから[証明書署名要求の作成]を選択します
- 記述名:証明書の名前を指定します。
- キータイプとダイジェストアルゴリズム:要件に一致していることを確認します。
- 共通名:完全修飾ドメイン名Webサイトを指定します
- ご使用の環境に必要な残りの証明書情報を入力します
pfSense GUI:CSR上級
- Certificate Type:ドロップダウンでServer Certificateを選択します。
- 代替名:実装に必要なサブジェクト代替名(SAN)を指定します。
注:共通名がSANフィールドに自動的に追加されます。必要な名前を追加するだけで済みます。
すべてのフィールドが正しければ、Saveを選択します。
3. CSRをファイルにエクスポートします。
pfSense GUI:CSRのエクスポート
Exportボタンを選択してCSRを保存し、CAで署名します。署名付き証明書を入手したら、これをPEMファイルまたはBase-64ファイルとして保存し、プロセスを完了します。
4. 署名付き証明書をインポートします。
pfSense GUI – 証明書のインポート
署名付き証明書をインポートするには、鉛筆アイコンを選択します。
5. 証明書データをフォームに貼り付けます。
pfSense GUI – 証明書のインポート
Updateを選択して、証明書を保存します。
6. 証明書データが正しいことを確認します。
pfSense GUI:証明書リスト
7. このpfSenseで複数のサイトをホストする場合は、このプロセスを繰り返します。
仮想IPの追加
pfSenseでWebサイトをホストするには、少なくとも1つのIPが必要です。pfSenseでは、これは仮想IP(VIP)で行われます。
ステップ 1:FirewallドロップダウンからVirtual IPsを選択します
pfSense GUI:VIPドロップダウン
ステップ 2「追加」ボタンを選択します
pfSense GUI - VIPランディングページ
ステップ 3住所情報の入力
pfSense GUI:VIPの設定
この情報を使用して、VIPを追加します。
- タイプ:IPエイリアスの選択
- Interface:このIPアドレスをブロードキャストするインターフェイスを選択します
- アドレス:IPアドレスを入力します。
- アドレスマスク:ロードバランシングに使用されるIPアドレスの場合、マスクは/32である必要があります
- 説明:後で設定を理解しやすくするための短いテキストを入力します
Saveを選択して、変更を確定します。
設定に必要なIPアドレスごとにこれを繰り返します。
ステップ 4設定の適用
pfSense GUI:VIPリスト
すべてのVIPを追加したら、Apply Changesボタンを選択します。
ファイアウォールの設定
pfSenseには組み込みのファイアウォールがあります。デフォルトのルールセットは非常に制限されています。アプライアンスを実稼働環境に導入する前に、包括的なファイアウォールポリシーを作成してください。
ステップ 1:FirewallドロップダウンからRulesを選択します
pfSense GUI:ファイアウォールルールのドロップダウン
ステップ 2[追加]ボタンのいずれかを選択します
pfSense GUI – ファイアウォール規則リスト
1つのボタンをクリックすると、選択した行の上に新しいルールが追加され、もう1つのボタンをクリックすると、選択したルールの下に新しいルールが追加されます。どちらのボタンも最初のルールに使用できます。
ステップ 3IPアドレスのポート443へのトラフィックを許可するファイアウォールルールを作成します
pfSense GUI:ファイアウォールパスルールの設定
この情報を使用してルールを作成します。
- アクション:パスの選択
- Interface:ルールを適用するインターフェイスを選択します
- アドレスファミリとプロトコル:必要に応じて選択
- ソース: 「任意」を選択したままにします
- 宛先: [宛先]ドロップダウンから[アドレス]または[エイリアス]を選択し、ルールが適用されるIPアドレスを入力します
- Destination Port Range:FromとToの両方のドロップダウンで、HTTPS(443)を選択します。
- ログ:チェックボックスをオンにすると、この規則に一致するパケットがアカウンティング用にログに記録されます
- 説明:後でルールを参照するテキストを入力します
[Save] を選択します。
ステップ 4他のすべてのトラフィックをpfSenseにドロップするファイアウォールルールを作成します
「追加」ボタンを選択して、新しく作成した規則の下に規則を挿入します。
pfSense GUI:ファイアウォールドロップルールの設定
- 操作:ブロックを選択
- Interface:ルールを適用するインターフェイスを選択します
- アドレスファミリとプロトコル:必要に応じて選択
- ソース: 「任意」を選択したままにします
- 宛先:任意として選択したままにする
- ログ:チェックボックスをオンにすると、この規則に一致するパケットがアカウンティング用にログに記録されます
- 説明:後でルールを参照するテキストを入力します
[Save] を選択します。
ステップ 5ルールを確認し、ブロックルールが一番下にあることを確認します
pfSense GUI – ファイアウォール規則リスト
必要に応じて、ルールをドラッグして並べ替えます。
環境に必要な順序にファイアウォールルールを並べたら、Apply Changesを選択します。
HAProxyの設定
HAProxyの概念
HAProxyの概念
HAProxyは、フロントエンド/バックエンドモデルで実装されます。
フロントエンドは、顧客が通信するプロキシの側を定義します。
フロントエンドは、IPとポートの組み合わせ、証明書のバインドで構成され、いくつかのヘッダー操作を実装できます。
バックエンドは、物理Webサーバと通信するプロキシの側を定義します。
バックエンドは、実際のサーバとポート、初期割り当てのロードバランシング方式、ヘルスチェック、持続性を定義します。
フロントエンドは、専用のバックエンドまたはACLを使用して、どのバックエンドと通信するかを知っています。
ACLはさまざまなルールを作成できるため、特定のフロントエンドがさまざまな状況に応じて異なるバックエンドと通信できます。
初期HAProxy設定
ステップ 1:ServicesドロップダウンからHAProxyを選択します
pfSense GUI - HAProxyドロップダウン
ステップ 2基本設定の構成
pfSense GUI - HAProxyのメイン設定
Enable HAProxyチェックボックスをオンにします。
[最大接続数]に値を入力します。必要なメモリの詳細については、このセクションの表を参照してください。
内部統計ポートの値を入力します。このポートは、アプライアンスのHAProxy統計情報を表示するために使用されますが、アプライアンスの外部には公開されません。
内部統計のリフレッシュレートの値を入力します。
残りの設定を確認し、必要に応じて環境を更新します。
[Save] を選択します。
pfSense GUI - HAProxyによる変更の適用
注:設定の変更は、[, Apply Changes]ボタンを選択するまでアクティブにはなりません。複数の設定変更を行い、それらをすべて一度に適用できます。別のセクションで使用するために設定を適用する必要はありません。
HAProxyバックエンドの設定
バックエンドから開始します。この理由は、フロントエンドがバックエンドを参照しなければならないからです。[バックエンド]メニューが選択されていることを確認します。
pfSense GUI:HAProxyによるバックエンドの追加
Addボタンを選択します。
pfSense GUI - HAProxyバックエンド開始
バックエンドの名前を指定します。
下矢印を選択して、最初のサーバをサーバリストに追加します
バックエンド – サーバーリスト
サーバを参照する名前を指定します。これは、実際のサーバ名と一致する必要はありません。この名前が統計ページに表示されます。
サーバのアドレスを入力します。これは、FQDNのIPアドレスとして設定できます。
接続先のポートを指定します。これはECEのポート443である必要があります。
[暗号化(SSL) ]チェックボックスをオンにします。
Cookieフィールドに値を入力します。これは、セッションスティッキ性Cookieのコンテンツであり、バックエンド内で一意である必要があります。
最初のサーバを設定したら、下向き矢印を選択して、環境内の他のWebサーバを設定します。
HAProxyバックエンド – ロードバランシング
ロードバランシングオプションを設定します。
ECEサーバの場合は、「Least Connections」に設定する必要があります。
HAProxyバックエンド – ヘルスチェック
この設定では、アクセスコントロールリスト(ACL)は使用されません。
タイムアウト/再試行設定は、デフォルト設定のままにすることができます。
ヘルスチェックセクションを設定します。
- ヘルスチェック方法:HTTP
- 頻度の確認:空白のままにすると、1秒ごとにデフォルトが使用されます。
- [ログチェック]:このオプションを選択すると、ヘルスの変更がログに書き込まれます。
- Httpチェック方法:リストからGETを選択します。
- httpチェックリクエストで使用されるURL。: ECEサーバーの場合は、/system/web/view/platform/common/login/root.jsp?partitionId=1と入力します。
- HTTPチェックバージョン: Enter, HTTP/1.1\r\n\Host:\ {fqdn_of_server}
最後のバックスラッシュの後、サーバのFQDNの前にスペースを入れてください。
HAProxyバックエンド – クッキーの持続性
エージェントのチェックをオフのままにします。
Cookieの持続性を設定します。
- Cookie Enabled: Cookieベースの永続性を有効にする場合に選択します。
- Cookie名: Cookieの名前を指定します。
- クッキーモード:ドロップダウンボックスから[挿入]を選択します。
- 残りのオプションは未設定のままにします。
HAProxyバックエンド – HSTS
バックエンド構成フォームの残りのセクションは、デフォルト設定のままにしておくことができます。
HSTSを設定する場合は、このセクションでタイムアウト値を設定します。ECEはHSTS cookieも挿入するため、この設定は冗長になります。
Saveを選択します。
HAProxyフロントエンドの設定
フロントエンドメニューに変更します。
pfSense GUI - HAProxyフロントエンドの追加
、Addボタンを選択します
HAProxy – フロントエンドヘッダー
フロントエンドの名前を指定します。
フロントエンドを後で識別するのに役立つ説明を入力します。
外部アドレステーブルで、次の操作を実行します。
- リッスンアドレス:このWebサイト用に作成したVIPを選択します。
- ポート: 443と入力します。
- SSLオフロード:このオプションを選択すると、セッションCookieを挿入できます。
Max connectionsは空のままにします。
Typeにhttp / https(offloading)が選択されていることを確認します。
HAProxy Backend – デフォルトのバックエンド選択
最も簡単な設定は、ドロップダウンからデフォルトバックエンドを選択することです。これは、VIPが単一のWebサイトをホストしている場合に選択できます。
HAProxyバックエンド – ACL詳細設定
図に示すように、ACLを使用すると、条件に基づいて単一のフロントエンドを複数のバックエンドにリダイレクトできます。
要求のホストが名前とポート番号、または単に名前で始まっているかどうかをACLがチェックしていることがわかります。これに基づいて、特定のバックエンドが使用されます。
これはECEでは一般的ではありません。
HAProxyフロントエンド – 証明書バインド
[SSLオフロード]セクションで、このサイトで使用するために作成した証明書を選択します。この証明書はサーバ証明書である必要があります。
Add ACL for certificate Subject Alternative Namesオプションを選択します。
残りのオプションはデフォルト値のままにしておくことができます。
このフォームの最後にあるSaveを選択します。
HAProxy:設定の適用
Apply Changesを選択して、フロントエンドとバックエンドの変更を実行コンフィギュレーションにコミットします。
これで、pfSenseのセットアップと設定は完了です。