前回、Sophos XG Firewall Home EditionをHyper-V上にインストールしました。
今回は、Sophos XG FirewallでWeb Proxyの設定をしていきたいと思います。
期待する目標
本手順で期待する目標は以下の通りです。
- Sophos XG FirewallでWeb Proxyを設定する
- Web Proxyでドメインをブロックする
- CA証明書をインストールして証明書エラーを解消する
前提条件
Sophos XG Firewallがインストールされている環境は以下の通りです。
- CPU : 4vCPU
- MEM : 6GB
- DISK : 200GB
- NIC1 : Static → Local Network側
- NIC2 : DHCP → WAN側
Proxyを適用する端末はWindows10となります。
Web Proxy設定

[保護]-[Web]-[全般設定]を選択します。

[詳細]-[Webプロキシ設定]より、以下の設定を行います。
- Webプロキシのリスニングポート : 8080 (任意のポートを設定)
- TLSの最低バージョン : TLS 1.1 (任意のバージョンを設定)
- 許可されたポート : 必要に応じて追加
設定が完了したら、[適用]を選択して設定を保存します。
以上で、Sophos XG FirewallのWeb Proxy設定は完了です。
Firewallルール設定
Webプロキシ設定自体はデフォルトで有効化されているためポートと宛先ポートの設定を行えば基本的なProxyとしては動作します。
ここから、Proxyでアクセスを制限ルールを追加していきます。
Sophos XG Firewallでは、ブロックや許可をするグループを作成した後にポリシーに組み込んでいくとやりやすいです。

[Web]-[URLグループ]より、[追加]を選択します。
デフォルトでそれなりのグループが作成されています。

URLグループより、以下の設定を行っていきます。
- URLグループ名 : 任意のURLグループ名を設定
- 説明 : 任意の説明を設定
- 一致するドメイン名 : URLグループに追加するドメインを入力して、[+]を押下します。

URLグループの設定が完了したら、[保存]を選択します。

URLグループの追加が完了すると、上段にポップアップが表示されます。
また、追加したURLグループがリスト内に存在することを確認します。

[保護]-[Web]-[ポリシー]より[Default Policy]を選択します。
ここでのポリシーは、[ルールとポリシー]で設定しているFirewallポリシーに適用されているものに対して設定します。
[ルールとポリシー]でLAN→WANへの通信を制御しているFirewallルールがあれば、LAN→WANで設定しているポリシーに対して変更を加えます。
デフォルトだと、LAN→WANへのFirewallルールが自動的に生成されるため、そのFirewallルールで適用されているDefault Policyを変更していきます。

[Default Policy]を選択後、[その他の設定の編集]を押下します。

[Webポリシーの編集]より、[ルールの追加]を選択します。

[ルールの追加]を選択すると、最上位に全拒否のルールが挿入されます。
このルールを変更していきます。

追加したルールの[アクティビティ]を選択します。

[アクティビティ]-[新規項目の追加]を選択します。

[ユーザアクティビティ]が選択されているため、[URLグループ]を選択します。

[URLグループ]より、先ほど設定した[Yahoo]のURLグループを選択し、[選択した1個の項目を適用]を押下します。

[アクティビティ]より、URLグループの[Yahoo]が選択されていることを確認します。
ルール画面に戻るには、画面内のアクティブな部分をクリックします。

[アクティビティ]にURLグループが設定されていることを確認して、[アクション]を設定します。
今回は、Yahooを完全にアクセス拒否するため、アクションを[×]にしています。
[!]マークについては、警告画面は出るが、ユーザ操作でアクセスが可能になる設定です。

追加したルールの右端にある[状態]のトグルスイッチを[ON]に設定します。
この状態がOFFになっていると、ルールが適用されません!

ルールを下までスクロールし、[保存]を選択します。

保存が成功すると、画面上部にポップアップが表示されるため、正しくルールが適用されているか確認します。
Proxy稼働確認
Proxyのルールが適用できたら、稼働確認を実施していきます。
初めに、端末にProxy設定を行わずに、Yahooにアクセスしていきます。

Proxyを入れる前にブロックするページが正常に表示されることを確認します。

[スタートメニュー]-[インターネットオプション]-[インターネットのプロパティ]-[接続]より、[LANの設定]を選択します。

[LANの設定]-[プロキシサーバ]より以下の設定を行います。
- LANにプロキシサーバを使用する : ■
- アドレス : Sophos XG Firewall のLAN側のIPアドレス
- ポート : 8080 (任意で設定したポート)
- ローカルアドレスにはプロキシサーバを使用しない : □ (任意)
ローカルアドレスにはプロキシサーバを使用しないにチェックを入れた場合、必要に応じて[詳細設定]からローカルアドレスを定義してください。
設定が完了したら、[OK]を選択します。

Proxy設定後、ブラウザを再起動し、Yahooにアクセスします。
アクセスすると、証明書のエラーが表示されるため、[詳細設定]より、アクセスを継続してください。
この証明書エラーについては、後述します。

Sophosのブロックページが表示されることを確認します。
以上でSophos XG FirewallのWeb Proxy設定は完了です。
CA証明書のインストール
Sophos XG Firewallでブロックしたサイトにアクセスした場合、証明書エラーが表示されます。
これは、ブロックした際に表示するSophos XG Firewall側の証明書が公的な証明書ではなく、自己証明書を使用していることに起因します。
そのため、内部で使用する場合は、Sophos XG Firewallの自己証明書を端末側にインストールすることで解決します。

[保護]-[Web]-[全般設定]-[HTTPS復号化とスキャン]より、[HTTPSスキャンの証明機関(CA)]より、[SecurityApplication_SSL_CA]が選択されていることを確認し、右側のダウンロードボタンを押下してCA証明書をダウンロードします。

証明書がPEM形式でダウンロードできるため、証明書のインストールを行っていきます。
本来であれば、証明書のインポートツールから指定するのですが、省略してファイルの拡張子をリネームする方法でインストールしていきます。
ダウンロードした証明書の拡張子を.pem→.cer形式に変更します。

拡張子を変更した証明書をダブルクリックします。

インストールする証明書が表示されるため、インストールする証明書に間違えがないことを確認し、[証明書のインストール]を選択します。

[証明書のインポートウィザードの開始]より、証明書の保存場所を選択します。
今回は、[現在のユーザ]を選択しました。
保存場所の設定ができたら、[次へ]を押下します。

[証明書ストア]より、[証明書をすべて次のストアに配置する]を選択し、[参照]を押下します。

[証明書ストア]より、[信頼されたルート証明機関]を選択し、[OK]を押下します。

証明書ストアの配置設定が完了したら、[次へ]を選択します。

[証明書のインポートウィザードの完了]より、証明書の配置場所を確認し、[完了]を選択します。

SophosのCA証明書は自己証明書であり、外部の公的な検証ができないため、セキュリティの警告が表示されます。
問題はないため、[はい]を押下します。

[証明書のインポートウィザード]より、[正しくインポートされました]と表示されたら、[OK]を押下します。
以上で、Sophos XG FirewallのCA証明書のインストールは完了です。
再度ブロックしたYahooのサイトにアクセスし、証明書エラーが表示されないことを確認します。

これで直接ブロックされる画面が表示されました。
SophosのCA証明書については、Windows環境であればドメインコントローラからGPO経由で端末に直接証明書を配ることが可能なため、管理が楽になると思います。
まとめ
今回は、Sophos XG FirewallにWeb Proxyを設定しました。
設定自体は、Sophos XG Firewallをインストールをすると自動で有効化されるので、どちらかというとポリシー設定がメインとなりました。
今回は、検証の一環としてYahooのURLを1つだけブロックしましたが、実際の業務であれば、デフォルトで用意されているカテゴリーのルールを精査したうえで適用するとよいと思います。
とはいえ、家庭用なのでルールをがちがちに絞っても仕方がないので、業務ベースよりも緩い設定になるかと思います。
また、Sophos XG Firewallでは比較的簡単に通信のブロックポリシーを設定することができるため、変なソフトを入れずにAdBlocker的なことができると思います。
AndroidやiPhoneのようにVPNを張ってAdBlockをするとVPN分速度が低下するのでこれであればある程度速度を低下させずに広告を引っぺがすことができます。便利ですね。
おまけ
本ブログではVMwareやWindows、Linuxのインストール手順等も公開しております。
インフラエンジニアとして有益な記事や無益なコンテンツも作成しておりますので、通勤時間や休憩時間、休日のスキマ時間等に合わせて読んでいただけると幸いです。
また、Youtubeで解説動画も鋭意作成中です。本ブログで記事にしているものも動画にしようと思っておりますので、よろしくお願いいたします。
コメント