清水理史の「イニシャルB」
ルーター直下でウイルスやあやしい通信を遮断! 「Sophos XG Firewall」で家庭用UTMを無料で自作する
2016年1月25日 06:00
ネットワークを流れる通信を監視し、ウイルスや不正アクセス、内部からの勝手な通信、あやしいWebアクセスなどを遮断できるUTM(Universal Threat Management)。そんなUTMアプライアンスが、何と無料で利用できる時代となった。「Sophos XG Firewall Home Edition」を試してみた。
企業向けUTMとほぼ同機能が個人ならタダ
本当は、Bitdefenderのコレが欲しかった。
しかし、残念ながら日本では入手できないうえ、価格も初年度利用料込みで$199。次年度から年間$99かかるとなると、ちょっと「高いんじゃねぇ?」とも思えてしまう。
とは言え、仕事でセキュリティ関連の情報を調べていたりすると、「企業はもちろんだけど、個人だって、身の回りにこれだけネットにつながる機器があるのに、その半分も未対策ってのは、どうなのさ?」と自らの環境に疑問が湧いてくる。
もちろん、PCにはセキュリティ対策ソフトは導入されていし、スマホも自分の端末の対策は万全、だと思う。しかし“家族の”となると「ちょっと見せて」と言って素直に端末を渡すような年ごろの娘ではなくなったし、カミさんだって理由をきちんと説明しないと眉をひそめる。
それでも対策しようと思えばできるスマホはいいが、最近はネットワークカメラやNASがターゲットになるようなケースもある。
さすがに、個人が直接的な標的になることはまだ考えにくいが、メールやWebから巧妙にLAN内へと忍び込み、外部のC&C(Command and Control)サーバーと通信するなんて手口を見せられると、外部から内部の通信も怖いが、内部から外部の通信の「素通り」っぷりに不安も感じる。
というわけで、門番よろしく、インターネットの出入り口で通信を監視してくれる機器が欲しくなったわけだ。
本コラムでも以前に紹介したが、ASUSのRT-ACシリーズなら、これに近いことはできる。トレンドマイクロのエンジンを利用して、悪質なWebページへのアクセスをブロックしたり、マルウェアに感染した内部の危機から外部へのあやしい通信を遮断したりできるが、マルウェアそのものを検知できるわけではないし、あくまでも簡易的な機能という印象だ。
どうせやるなら、企業向けのファイアウォール並、いやUTM(Universal Threat Management)アプライアンスそのものを手に入れてみようかと調べてみたところ、まさに望んでいた製品が昨年末Sophosから登場した。
「Sophos XG Firewall Home Edition」。同社が買収したインドのUTMベンダーCyberoamの技術と、Sophosのマルウェア対策技術を融合させた新製品で、非商用利用の個人ユーザーであれば、企業向けに提供されている機能とほぼ同じ機能を、何と無料で利用できる。
ちなみに、Sophosは国内ではあまり知名度は高くないが、企業向けのセキュリティ対策製品では有名で、他社製のUTMにマルウェア対策用のエンジンを数多く提供していることでも知られている。クライアント向け製品はAV-TESTでの評価も高い(こちらを参照)。
同社は、これまでにもSophos UTM 9という従来製品を個人ユーザーに無料で提供していたが、今回のSophos XG Firewallは、UIが一新され、パフォーマンスも大幅に向上している。
というわけで、早速、PCを用意してインストールしてみたのが、今回の顛末というわけだ。
年末年始をほぼコレに費やす
最初に言っておくと、さすがに企業向けの製品だけあって、多機能で、いろいろ設定に凝り出すと、結構手こずる。
さすがにコマンドラインでの操作が強要されるような無粋なことはないが、ゾーンやポリシーといった考え方を理解しないと、ちょっとした設定変更で、すぐに通信ができなくなったり、逆に素通りになったりするので、慣れるには結構時間がかかる。
筆者も年末にダウンロードして、年末年始はほぼこの設定に費やすことになったが、おかげで、それなりにノウハウを蓄積できた。今回の記事は、その集大成と言えるもので、基本的なセットアップだけでなく、ゲーム機用の対策やポートフォワードによるサーバー公開など、UTMのコンセプトから考えるとあまりおすすめしたくはないが、実際家庭での利用で困るような設定まで、一般的な使い方はほぼ網羅している。
とは言え、すべての設定を紹介することはできないので、詳細な画面などは外部のサイトにプレゼン資料の形で保管することにした。詳細に関しては、そちらを参照していただければ幸いだ。
ネットワーク制御 | ゾーン/ユーザー/ネットワークベースのポリシー設定 |
スケジュール制御 | |
トラフィック制御 | |
IPS(侵入防御システム) | |
ATP(不正な外部通信の検知と遮断) | |
マルウェア対策 | FTP/HTTP/HTTPSスキャン |
アプリケーション制御 | アプリケーションコントロール |
アプリケーショントラフィックシェーピング | |
Web対策 | Webフィルタ |
ファイルフィルタ | |
ネット閲覧クォータ | |
メール対策 | メールスキャン |
スパム対策 | |
機密情報保護 | |
メールアーカイブ | |
VPN | L2TP/Ipsec、PPTP、SSL VPN |
LANポート×2のベアボーンを利用
最初に悩んだのは、PCの選定だ。Sophos XG Firewallは、ルーターとLANの間に設置することで、その間を行き来する通信を監視する製品だ。このため、インストールするPCにはWAN側とLAN側、それぞれに接続するための2つのLANポートが必要になる。
手元に余っているNUCなどの小型PCを利用しようかと思ったのだが、LANポートが足りなかったため、今回は新調することにした。
幸いShuttleが昨年春に発売したDS57Uというベアボーンが、2ポートのLAN、しかもIntel製を搭載していたうえ、ファンレスで小型だったため、今回はこれを購入することにした。ベアボーンなので、メモリとストレージが別途必要だが、今回、メモリは8GB×2を新規に購入、ストレージは以前にNUC用に購入して手元に余っていたmSATAの128GBを利用することにした。
本体 | shuttle DS57U |
実売価格 | 2万4680円※ |
CPU | Intel Celeron 3205U(1.5GHz) |
RAM | DDR3L 2スロット |
GPU | Onboard(Intel HD Graphics) |
Audio | Realtek ALC662 |
LAN | Intel i211×1、Intel i218×1 |
無線LAN | IEEE 802.11b/g/n |
HDD | 2.5インチ×1搭載可能(SATA直結) |
拡張スロット | Mini PCI Express half×1(無線LANで使用済み) |
オンボードコネクタ | mSATA×1 |
USB | USB 2.0×4、USB 3.0×2 |
COMポート | ×2 |
カードリーダー | SDXC/SDHC/SD |
サイズ | 39.5(幅)×200(奥行き)×165(高さ)mm |
重量 | 1.43kg |
- ※筆者購入時の価格(2015年12月時点Amazon.co.jp)
DS57Uの価格が24680円、メモリが9896円だったので、トータルで34576円。ストレージを新調したとしても128GBで7000円程度で購入できるはずなので、それでも4万円を少し超える程度となる。
1$=118円で換算すると、冒頭で触れたBitdefender Boxは、1年の利用で2万3482円、2年で3万5164円、3年で4万6846円。ストレージを自前で用意した筆者の場合は2年分、ストレージを新調しても3年分と同等の価格で入手できることになる。これは結構お得な印象だ。
DS57U | 2万4680円 |
Trascend DDR3L 8GB×2 | 9896円 |
mSATA SSD(crucial 128GB) | 0円 |
合計 | 3万4576円 |
- ※SSDは手持ちのものを使用(参考:Trascend TS128GMSA370 7480円)
なお結論から先に言えば、今回、このPCに直接Sophos XG Firewallをインストールせず、Hyper-V Server 2012 R2を使って仮想環境としてインストールした。
個人向けに無料で提供されるSophos XG Firewallには、使用メモリ容量6GBまでという制限があるため(ほかに機能的な制限はなし)、せっかくの16GBのメモリが無駄になってしまうこと。さらに、直接DS57Uにインストールした場合とHyper-V Server 2012 R2上にインストールした場合で比較してみたところ、パフォーマンスにほとんど差がなかったことが、その理由だ(以下のグラフ参照)。
場合によっては、仮想環境に別のサーバーを導入して同居させることもできるので、仮想環境で使うのがおすすめだ。ちなみに、ESXiはNICを認識させるのに苦労するので、Hyper-V Server 2012R2がおすすめだ。Sophos XG FirewallもHyper-V向けイメージがあらかじめ用意されており、簡単にダウンロードすることができる。
下り | 上り | |
実マシン(PC1)※1 | 655.69 | 102.79 |
Hyper-V(PC1)※2 | 610.65 | 89.23 |
Hyper-V(PC2)※3 | 629.15 | 158.71 |
Hyper-V(PC1/UTM9)※4 | 119.73 | 36.37 |
- ※1:PC1 Shuttle DS57U(Intel Celeron 3205U 1.5GHz/RAM 16GB DDR3L/Crucial m-sata 128GB SSD/Intel i211+i218 Gigabit LAN)
- ※2:Hyper-V Server 2012R2(2core/6GBメモリ割り当て)
- ※3:PC2 自作PC(Intel Core i5 2400S 2.5GHz/RAM 16GB DDR3/Crucial RealSSD C300 64GB/Realtek RTL8111DL/Intel Server Adapter I340-T4)
- ※4:PC1/UTM9:Sophos UTM 9を使用
- ※5:回線はSo-net光(2Gbps)を使用。上位は標準ルーター(ZTE F660T)
導入から初期設定
それでは、実際の使い方を紹介していこう。まずはソフトウェアの入手とインストールについてだが、以下の手順を参考にしてほしい。
Sophos XG Firewall Step by Step Guide 1.導入編
https://doc.co/HiWjwh/b7NvA7
(入手/インストール/比較)
ダウンロードするには、簡単なユーザー登録が必要となるので、登録しておこう。登録したアドレスあてに、インストールに必要なシリアル番号が送られてくるので、メールチェックも忘れずに実行しておくこと。
注意すべきなのは、ダウンロードするイメージだ。Sophos XG Firewallは、同社製ハードウェア向け、仮想環境向け、PC向けで、異なるイメージが提供されており、仮想環境向けとしても、VMware、Hyper-V、KVM、XenApp向けが用意されている。利用する環境のイメージを間違えないようにダウンロードしよう。
インストールに関しては、仮想マシンの準備が必要になる。PC上の2つのLANポートを両方とも仮想スイッチに接続すること、CPUを2コアに変更すること、メモリを6GB以下にすること(それ以上は使われないのでもったいない。通常は4GB前後で十分)などがポイントだ。
なお、Sophos XG Firewallでは、標準では最初に接続した仮想NICがLAN側、2番目がWAN側として認識される。クライアントを接続するのは最初の仮想NIC側、ルーターを接続するのは2番目の仮想NIC側となるので、間違えないようにしよう。
ダウンロードしたイメージは、PRIMARY-DISKとAUXILIARY-DISKと2つの領域に分けられている。両方とも必要なので、仮想マシンに忘れずに接続しておこう。接続後、仮想マシンをオンにすれば、無事に起動するはずだ。
初期設定
仮想マシンが起動したら、続いて初期設定を実行する。詳細は以下を参照してほしい。
Sophos XG Firewall Step by Step Guide 2.初期設定編
https://doc.co/p146fX/b7NvA7
(初期設定とウィザード)
初期設定のポイントは、接続先のアドレスだ。標準では「http://172.16.16.16:4444」となっている。Sophos XG Firewallでは、管理用とユーザー用の2種類のWebページにアクセス可能で、管理用のポートは4444となっている。ユーザー用にアクセスしても、管理者アカウントではログインできないので必ずポートを指定しよう。
初期設定では、最初に製品登録が必要になる。シリアル番号のアクティベート→製品の登録→ライセンスの同期という順番に実行するが、この際、インターネット接続が必須となる点に注意が必要だ。
Sophos XG Firewallは、ルーターとしての基本機能を備えており、PPPoE接続なども可能だが、初期設定ではPPPoE接続のセットアップができないため、ライセンスの同期も実行できない。
本稿では、一般的な家庭での利用を想定し、上位にルーターがあることを想定している。2重NATになり、いろいろとややこしいので、個人的には直接PPPoE接続したいところだが、少なくとも初期設定では上位ルーターの配下でインターネット接続できる状態で利用するのが無難だ。
登録が完了すると、ウィザードによってネットワーク構成を変更できるが、これも少々くせ者だ(ここでPPPoE設定もできる)。ウィザードの最後に表示されるように、これを実行するとDHCPサーバーの設定がクリアされてしまう。ウィザード完了後は、いったん、PCにIPアドレスを手動で割り当てて、再び設定を続行する必要がある。
基本設定
初期設定が完了すると、LAN側に接続したPCからインターネット接続が可能になるが、まだ最低限の保護機能しか動作していない。
Webフィルタやアプリケーションフィルタ、IPSは初期設定のウィザードで適用できるが、ウイルススキャンなどは後から構成しておく必要がある。また、ウィザードで無効になったDHCPサーバーも稼働させる必要があるので、以下を参考に設定してこう。
Sophos XG Firewall Step by Step Guide 3.基本設定編
https://doc.co/x4A2yc/b7NvA7
(DHCPサーバー構成/管理者パスワード変更/マルウェア検査有効化/エンジン設定)
なお、Sophos XG Firewallではマルウェア検出用のエンジンとして、Sophosのエンジンに加えAvairのエンジンも利用することができる。標準ではSophosのみだが、両方利用したり、Avairをプライマリに設定することもできるので、好みに合わせて設定しておこう。
以下は、シングルエンジンとデュアルエンジンのCPU負荷、メモリ使用量の比較だ。SophosとAvairの2重チェックにしても大きな差はないと言える。通信速度もほぼ同等なので、せっかくなのでデュアルエンジンに変更しておくといいだろう。
CPU負荷 | メモリ | |
アイドル | 4.71 | 2413.27 |
シングルエンジン | 35.4 | 2427.03 |
デュアルエンジン | 36.1 | 2412.95 |
下り | 上り | |
シングルエンジン | 640.44 | 156 |
デュアルエンジン | 638.25 | 157.9 |
動作チェック
ここまで設定できれば、一通りの動作が可能になる。試しに、WebフィルタにひっかかりそうなURLにアクセスしてみるといいだろう。例えば、上記のドキュメントで設定した「Default Workplace Policy」の場合、Gamblingが禁止カテゴリに含まれているので、「http://www.jra.go.jp」などが遮断される。
海外製品の場合、日本のサイトにあまり強くないイメージがあるが、本製品は比較的精度は悪くない。いろいろ試してみたところ、ブログ形式などで個人が違法にアップロードしている写真や画像などのアダルト系サイトなどは取りこぼすものの、比較的アクセスが多いと思われるサイトに関しては、かなりの確率でブロックできた。予想以上に優秀だ。
ウイルスチェックに関しては、eicar.orgを利用した。筆者の環境では、最初、うまくテストファイルを検知できなかったが、どうやら不具合があるようで、コミュニティサイトの情報(https://community.sophos.com/products/xg-firewall/f/46/t/73550)を参考に、ポリシーを適用するプロトコルにHTTPなどを明示的に指定したところ、可能になった(いったん設定後、元に戻せば正常に動作するようになる)。
通信経路上でウイルスを検知できるので、PC上のセキュリティ対策ソフトやSmart Screenなどのブラウザのセキュリティ機能よりも、先に検知してくれるのがメリットだ。
こうなると、PC上のセキュリティ対策ソフトも考え直したくなる。PCローカルのセキュリティ対策ソフトは、メディア経由での検知などの役割もあるが、通信経路上で取りこぼされたものを最後の最後で検知する役割となるので、少なくともSophosとAvair以外のエンジンのものを選んだ方がよさそうだ。従来のパターンマッチング方式ではなく、ヒューリスティック技術に特化した製品を試すというのも、組み合わせとして悪くないだろう。
詳細なテスト方法については、以下にまとめてあるので、こちらを参考に操作するといいだろう。
Sophos XG Firewall Step by Step Guide 4.動作チェック編
https://doc.co/JSjtg2/b7NvA7
(コンテンツフィルタチェック/ウイルスチェック/検出されない場合の対処)
さらにカスタマイズしたい場合は
以上で、取りあえずSophos XG Firewallを使えるようになるが、このままではまだ常用するのは難しい。
例外としてWebフィルタリングを通過できるようにするホワイトリストを設定したり、P2Pの通信や一般的にリスクが高いとされているアプリの通信も禁止したい。ユーザーごとに異なるポリシーを設定できるようにした方が便利だし、FTPとHTTPだけでなく、HTTPSもスキャンできるようにもしたい。
そもそもUTMの利用とは相反するが、ゲーム機は例外としてセキュリティ機能をすべてスルーさせるとか、内部に設置したNASやサーバー向けにポートを開けたいといったニーズもあるだろう。
また、拠点間を結んだり、PCやスマートフォンから安全かつ手軽に接続可能なSSL VPNサーバーとしても動作させることができる。
単純に安全に自宅に接続できるというだけでなく、自宅をセキュリティゲートウェイとして活用できるのがメリットだ。例えば、旅行先のホテルや海外などでインターネット接続する際でも、いったん、自宅にVPN接続すれば端末間の通信を暗号化することができる。
しかも、単純なVPNサーバーと違って、VPN経由でもSophos XG Firewallのマルウェアスキャン機能などを通過させることができるので、ウイルスやスパイウェアから端末を保護することもできる。これは、なかなか便利だ。
以下に具体的な設定方法のドキュメントを記載しておくので、ぜひ参考にしてほしい。ここまで設定しておくと、もうルーターに直接PCを接続するのが不安になる。少々、手間はかかるが、簡単ながらPCを自作したり、仮想環境を試す楽しみもあるので、ぜひチャレンジすることをオススメしたいところだ。
Sophos XG Firewall Step by Step Guide 5.カスタマイズ編
https://doc.co/DEvzTt/b7NvA7
(IPアドレス変更/Webカテゴリカスタマイズ/ホワイトリスト/ATP/高リスクアプリ禁止)
Sophos XG Firewall Step by Step Guide 6.ユーザー管理編
https://doc.co/DAW7nt/b7NvA7
(ユーザー管理/ユーザーごとのポリシー適用)
Sophos XG Firewall Step by Step Guide 7.HTTPSスキャン編
https://doc.co/QgWAhw/b7NvA7
(HTTPSスキャン有効化/証明書インストール)
Sophos XG Firewall Step by Step Guide 8.ゲーム機編
https://doc.co/hNKTMw/b7NvA7
(IPホストによる識別と制御)
Sophos XG Firewall Step by Step Guide 9.ポートフォワード編
https://doc.co/bYmEgR/b7NvA7
(業務アプリケーションルール)
Sophos XG Firewall Step by Step Guide 10.SSL VPN編
https://doc.co/Fsv9pt/b7NvA7
(SSL VPNサーバー/iOSからの接続)
【記事追記 2018年4月9日16:35】
2017年12月15日に「docs.com」のサービスが終了したことに伴い、設定方法のドキュメント公開を終了しました。