今回は、Hyper-V上に構築したSophos XG FirewallにFirewallルールを追加して動作確認をしてみます。
前回はSophos XG FirewallのWeb Proxyを使用して、Yahooをブロックしましたが、今回はFirewallルールとしてYahooをブロックしていきます。
期待する目標
本手順で期待する目標は以下の通りです。
- Sophos XG FirewallのFirewallルールを設定してWebサイトをブロックする
- Web ProxyとFirewallルールの違いを理解する
前提条件
本手順で使用するSophos XG Firewallの情報は以下の通りです。
- CPU : 4vCPU
- MEM : 6GB
- DISK : 200GB
- NIC1 : Static → Local Network側
- NIC2 : DHCP → WAN側
- OS Version : SFOS 19.0.1 MR-1-Build365
なお、端末にはSophos XG Firewallを経由するようにProxy設定を行っています。
Sophos XG FirewallのFirewall設定

Sophos XG Firewallにログインし、[保護]-[ルールとポリシー]を選択します。

[ルールとポリシー]-[ファイアウォールルール]-[IPv4]より、[ファイアウォールルールの追加]を選択します。

[新しいファイアウォールルール]を選択します。

[ルール名]より、Firewallルールの名前を設定します。

[アクション]より、[拒否]を選択します。

[ルールの位置]より、[最上位]を選択します。
なお、この位置に関しては後で変更することができます。本環境ではブラックリスト形式のFirewallルールポリシーを設定しているため、ブロックルールは上に設定します。

ルールのセクションはこのようになりました。
Firewallのログについては、必要に応じて設定してください。

[送信元]-[送信元ゾーン]より、[新規項目の追加]を選択します。

[送信元ゾーン]より、[LAN]を選択して、[選択した1個の項目を適用]を押下します。

送信元セクションには、[送信元ネットワークとデバイス]および[スケジュールされた時間内]の設定がありますが、すべてデフォルトに設定しています。([送信元ネットワークとデバイス]は任意、[スケジュールされた時間内]は常時を選択)
[宛先とサービス]-[宛先ゾーン]より、[新規項目の追加]を選択します。

[宛先ゾーン]より、[WAN]を選択します。
宛先ゾーンとしてWANを設定した後、[宛先ネットワーク]-[新規項目の追加]を押下します。

[宛先ネットワーク]より、[追加]を選択します。

[追加]より、[FQDNホスト]を選択します。

[FQDNホストの追加]より、以下の設定を行います。
- 名前 : *.yahoo.co.jp (任意のFQDNホストの名前)
- FQDN: *.yahoo.co.jp (ブロックするFQDNを設定)
設定完了後、[保存]を押下します。
なお、FQDNには、ワイルドカードを使用することができます。

画面上部にメッセージが表示され、[宛先ネットワーク]に[*.yahoo.co.jp]が追加されていることを確認します。
また、今回はyahooの全サービスをブロックするので、[サービス]は[任意]を設定しています。

[除外の追加]より、このルールを適用しない例外を追加することができます。
このセクションでは、特定用途のネットワークや特定用途のデバイスのみ除外することができます。
本手順では、LAN内のホストすべてでYahooをブロックしたいので、設定はしていません。

設定するルールを確認し、[保存]を選択します。

ファイアウォールルールが問題なく追加されると画面上部にメッセージが出てきます。

今回のルールは、[Traffic to WAN]のルールに自動追加されたので、[Traffic to WAN]のフィルターを選択し、作成したファイアウォールルールが挿入されていることを確認します。
この時、全許可のルールより後に拒否のルールが記載されていると、全許可のルールで合致してしまい、拒否のルールが適用されないため、注意しましょう。
以上でSophos XG FirewallでのFirewallルールの設定は完了です。
Firewallルールの稼働確認
Web Proxyによるポリシー拒否の場合、Sophos の画面が表示されました。
今回は、Firewallルールで拒否したので、同様にYahooにアクセスしてみたいと思います。

Yahooを直接開いてもよいのですが、Proxyの時と条件を合わせるため、GoogleでYahooを検索してページに入ってみます。

Proxyの場合は、ポリシーによるブロックのため、Sophosの画面が表示されましたが、今回はネットワーク的に通信を拒否しているため、[接続が中断されました]と表示されるようになりました。
Proxyの場合、Sophos XG Firewallに対し、端末がアクセス要求を行い、その結果ポリシー的にアウトですよーということで、Proxyサーバが代替画面を表示しているため、Sophosの画面が表示されたのではないかと考えています。
それに対し、Firewallルールによる拒否は通信自体がFirewallで拒否されているため、Yahooによるアクセスの途中で通信が強制的にぶった切られているためだと考えています。
ログの確認
Sophos XG Firewallには、リアルタイムでログを確認できるツールが存在します。

画面右上の[ログビューア]を選択します。

このようにログビューが別ウィンドウで開きます。

右上の検索窓より、ログを検索することができます。
今回は、[yahoo]と検索して、Firewallによる拒否のログを表示してみたいと思います。

フィルターをかけると、[Yahoo]がファイアウォールルールで拒否されていることが確認できます。
ここでは、送信元と宛先のIPも確認できるので、どの端末から通信が発生して、拒否ルールに当たっているかが一発で分かるようになります。
ポリシーテスト
Sophos XG Firewallには、ログビューア以外にもポリシーテスト機能もあります。(Ciscoにもありますが・・・)

[ログビューア]のとなりのタブに[ポリシーテスト]があります。

ポリシーテストより、以下の設定を行います。
- URL : ポリシーテストを行うURLを設定
- 認証済みユーザ : □ (任意)
- 日時 : 任意の日時を設定
- テストの方式 : ファイアウオール、SSL/TLS、Web
- 送信元IP : 任意の送信元IPを設定
- 送信元ゾーン : 任意の送信元を設定
送信元IPと送信元ゾーンについては、ある程度自由に設定できるので、通信を行うケースを想定してテストが実行できます。
設定が完了したら、[テスト]を押下します。

テストを実行すると、テスト結果が表示されます。
このテストは、Firewallのルールやポリシーにより、通信が可能かをチェックしてくれます。
通信ができない場合や、ポリシーの抜け漏れの際に、該当するポリシーが表示できるため、非常に便利なツールとなります。
まとめ
今回は、Sophos XG Firewallを使用して、Firewallルールの設定を行ってみました。
Web Proxyによるポリシーと違い、FirewallルールはFirewallを通過する通信をすべて制御できるので、Proxyが設定できない端末や、Proxyを回避する通信がある場合に、通信を制御することができます。
また、Firewallルールによる拒否は、通信が切断されるためユーザ向けだとちょっとびっくりしちゃうかもしれませんね。
Proxyのポリシーは、Sophosがポリシーでブロックしたというページにリダイレクトされるため、やんわりした印象ですが、Firewallルールで入れると一瞬びっくりしました。
どちらが良いかについては、用途によって使い分けは必要だと思いますが、最低限アクセスさせたくない通信については、Firewallでブロックして残りはProxyのポリシーでブロックするのが良いのですかね?
おまけ
本ブログではVMwareやWindows、Linuxのインストール手順等も公開しております。
インフラエンジニアとして有益な記事や無益なコンテンツも作成しておりますので、通勤時間や休憩時間、休日のスキマ時間等に合わせて読んでいただけると幸いです。
また、Youtubeで解説動画も鋭意作成中です。本ブログで記事にしているものも動画にしようと思っておりますので、よろしくお願いいたします。
コメント