XG Firewall v18のルールとポリシーについて

この記事で実現すること

XG Firewall v18のルールとポリシーの基本的な機能を紹介します。また、インストール後、最初から設定されているデフォルトポリシーの内容を説明します。

ルールとポリシーの機能説明

この記事では、XG Firewallの具体的な設定を行います。Firewallは、TCP/UDPのレイヤ3またはレイヤ4の制御が一般的です。httpsであればPort443、SSH(セキュアシェル)であればPort22などに対し、通過させるか拒否するかを決めます。XG Firewallはレイヤ7、つまりアプリケーションの中身を見て可否を判断する事が可能です。サイトがどういうサービスを提供しているかジャンル分けされており、好ましくないサイトには接続しないように設定が出来ます。従来の方法、例えばSSHであればPort22を止めるだけのFirewallは時代に合わなくなってきています。

あやしい振る舞いをするアプリケーションの挙動を見ていると、httpsの443で繋いでみてダメだったら一般的なProxyである8080などからの接続を試み、さらにダメならPort80と続きます。次に接続ドメインを変えたりするなど、ありとあらゆる手段を使って外部との接続を試みようとします。このような問題のあるアプリケーションをインストールしない事が一番良いのですが、ファイル交換サイトへのアクセスは禁じるという設定を行う事で一定の抑止力が発揮できます。

XGのインストール直後は内部”LAN”からインターネット”WAN”への接続は、初期設定として全て通します。前述したレイヤ3、レイヤ4については一切制約は掛かっていません。原則WANへの通信は通すというのが最初の状態です。逆インターネットから内部のサーバに向けた接続は行えず、1つの接続対象毎に都度ルールを作成していく事になります。

左ペインのルールとポリシーを選択し、デフォルトの設定を見てみましょう。ルールグループというグループ化されたルールとデフォルトルールがあります。

  • Traffic to Internal Zone
    Firewallの内側(内部のLANにサーバを立てる場合)にアクセスするルールを記載します。
  • Traffic to Wan
    インターネットにアクセスするルールを記載します。
  • Traffic to DMZ
    今回は使いません。そもそもは業務上サーバを立てる場合はDMZにWebサーバやメールサーバを配置し、内部クライアントとは分離するのが業務上一般的です。今回の設定では、個人でそこまでは不要としています。
  • Default Network Policy
    上から順にルールを実行してきて、全てをチェックし、最後に全てを許可するルールとなっています。一番右の(•••)マークでルールのOn/Offをトグルで切り替えられるようになっています。
  • すべてをドロップ
    これは設定変更できず、視覚的に最後は全てドロップする事を示しています。

“Default Network Policy”の説明

このルールは「許可する」となっています。なお、「破棄する」は無応答で相手はタイムアウトを待つ事になります。「拒否する」は接続要求をAcceptせず、接続を確立させず、すぐにエラーとなります。

ここでは、LANからWANへの通信を対象としています。送信元デバイスはLANにあるクライアントを指定出来るようになっています。サービスはプロトコルの設定を行うためのものですが、Port番号の数字ではなく、「ftp」や「ntp」などサービスとして登録できます。宛先ネットワークという項目もあります。これは国を指定する事、ビルトインの”FQDNホスト”または”FQDNホストグループ”として、”Apple Services”や”Google API Hosts”など宛先サーバー指定する事が可能です。

次に、アプリケーションFirewallの設定です。

レイヤ7のファイアウォールでは、データの中身を見てNGと判断すると、接続を許可しません。このために、Webポリシー/IPS/アプリケーションコントロールなど設定が出来るようになっています。

Webポリシーは、Default Policy、Allow Allなど複数のポリシーが存在しています。サイトの属性(広告、ギャンブル、アダルト)によって拒否する事が可能です。”Allow All”は原則全てを通します。”Default Policy”は一定のリスクがあるものを対象とし、ある程度XGにお任せで制御するポリシーです。まだ初期セットアップの段階なので、ここで慌てて何かを決める必要はありません。いきなり厳しくしないのであれば、”Allow All”に一旦変更しても良いでしょう。

IPSは攻撃防御としてXGにお任せで”lantowan_general”として下さい。悪意のあるサイトからの脆弱性攻撃を防御するものであり、通常の利用で不便な事はありません。アプリケーションコントロールは、使いたく無いアプリケーションを拒否するものですが、ホームユーザーにとっては危険なVPNやProxyなどを停止する用途になります。初期セットアップが終わってから改めて検証しながら設定するべきものです。初期セットアップ時は”なし”にしておくのが無難でしょう。

SSL/TLSインスペクションの機能について補足します。v18では以下のオプションは利用しません。

  • DPIエンジンでなくWEBプロキシを使用する
  • Webプロキシでのフィルタリング中にHTTPSを復号化する

これは前バージョンのv17まではPort443のみをProxyとしてhttpsの解析を行っていました。v18の目玉機能であるDPIエンジンはPortに依存しないため、複数Portを検査できる方法、つまりWEBプロキシは利用しない事が前提になります。SSL/TLSインスペクションの詳しい説明については、「SSLインスペクションについて」を参照してください。

ここまで、”Default Network Policy”について設定されている内容を説明しました。もちろんこのルールを修正する事は可能ですが、このデフォルトルールは最後のルールとし、それより優先度の高い”上部に位置する”ルールを追加していくのが通常です。”上部に位置するルール”で許可するものを細かく設定し、最後のルールは”拒否”にする方法ももちろん可能です(業務系ファイアウォールは原則拒否で、必要なもののみ許可設定を行います)。

ファイアウォールルールの組み立て方

上記で説明してきた通り、レイヤ7のファイアウォールはHTTPSプロトコルを通すという前提で、コンテンツの中身についてどのように制御するかを設定していく事になります。最初から存在しているDefault Network Policyはいくつもの上位ルールを通り抜けてきて最後に処理するルールです。以下にXGで対応可能なファイアウォールルールの組み立て方の一例について記載します。これは端末ごとにルールを決めていくやり方で、比較的シンプルな方法です。基本的に上位のルールはより絞り、下位のルールは甘めになります。

  1. 不要国のアクセスは拒否
  2. IoT機器の利用プロトコル、接続先を制限するルール
  3. サーバー用途端末のルール。WANに対してhttp/https/ntpの接続のみ
  4. 子供の端末向けの好ましく無いジャンルの禁止ルール
  5. SSLインスペクションを行えないクライアント向けルール(プロトコル制限)
  6. SSLインスペクションを行える一般端末のルール(やや緩めでプロトコル制限無し)
  7. Default Network Policy(全て許可)、または全て拒否