![]() |
Copyright © 2000-2005 eazyfox. All Rights Reserved. | ||||
|
|
|||||
| Home > Firewall製品紹介 > Kerio4 | |||||
Tiny社から分離したKerioから新しいバージョンのFirewallがリリースされた。Kerio Personal Firewall Ver.4はこれまでのアプリケーション+プロトコル制御に加えてプログラムの起動の制御とIDS機能を持つ。Downloadはこちらから行う。
インストール作業はフォルダの指定だけであっさりと終わる。対応するOSはWindows
98/Me/NT4.0 Workstation/2000 Professional/XP Home/XP ProfessionalでServerは未対応になっている。
DownloadしたSetupモジュールを起動する。このあとライセンスの確認画面で「Agree」を選んでインストール先のフォルダを指定するだけでインストールは終わる。
最初の起動でネットワークインターフェイスかダイヤルアップアダプタを信頼するIPに登録するか?の指定が出てくるので「YES」を押してとりあえず認識を終了させる。信頼するIPの設定は後でも変更可能である。
Ver4.1から「Simple」と「Advanced」の2つのモードがインストール時に選択できるようになった。
Ver4.1以前からのUpdateではこれまでのルールが引き継がれるので、ここではどちらを選んでも今後の動作に差は無い。新規でKerio4をインストールする場合は通常は「Advanced」を選ぶこと。「Simple」を選択するとせっかくの豊富な機能が使いこなせないからだ。ただしSimpleを選んで新規インストールしても、後から設定を変更するだけですぐに「Advanced」モードに変更できるので、あまり気にすることは無い
ではSimpleモードとは何か?
Outの許可とInの遮断は後述する通常ルール(Network Security)で設定されている。
これがSimpleモードの標準ルール。全てのアプリケーションの"Out"が許可されている。また一番下に「Any
other application」というルールがあり、上記以外のアプリケーション(IEやOutlookなど)はOutが許可、Inが遮断のルールが適用される。
IDS機能やPredefinedルールは有効なので外部からのアクセスは確実に遮断されるが、Out側の制御はしていないのでこの状態で使うことは推奨できない
Simpleでインストールしても最下段の「Any other application」を削除するか、"Ask"に変更すればAdvancedに変更したことになる。つまりSimpleとはとりあえず外部からの攻撃を防ぎたい人向けのお手軽設定状態ということになる
Kerio4の機能を簡単に一覧にしてみた。Free版という項目は購入しないときには30日の試用期間経過後も使える機能を示す。つまりFree版というの存在していなくて通常版が30日経てばWebコンテンツフィルタなど"X"の項目は機能しなくなるということである。有償版だけの機能は「購入する」を参考にして欲しい。
| 機能名 | 説明 | Free版 |
| ネットワークセキュリティ | Internetに接続するアプリケーションの制御とパケットフィルタの制御 | ○ |
| システムセキュリティ | アプリケーションの実行、最後に起動したときからモジュールの置き換えチェック、他のアプリケーションを2次起動するときのチェック | ○ |
| 侵入検知 | 主な侵入パターンを記録したデータベースと照合して侵入を検知 | ○ |
| Webコンテンツフィルタ | 広告制御機能、ポップアップ制御機能、Java・VBスクリプトの制御機能、Cookieなどの保存制御機能 | X |
| 自動更新 | 最新モジュールの自動アップデート機能 | ○ |
| ICS対応 | WindowsのICS(インターネット接続共有)に対応。 | X |
| Syslog出力 | ログ情報をSyslogに出力して複数台のPCのログを一括管理する機能 | X |
| パスワードとリモート管理 | Firewallの設定を保護するパスワード管理と一括設定管理のためのリモート管理機能 | X |
新たに追加された機能の目玉はシステムセキュリティである。機能は後述するがFirewallで全てのプログラムの起動を制限するもので設定は大変だが非常に有効なものだ。
左にあるメニューは上から順に
緊急遮断ボタンをクリックすると
と表示が変わる。
それぞれの項目についてはこれから見ていくことにするが、各メニューに2つから3つのサブ画面が存在するため設定や参照できる項目は非常に多い。書くほうも大変であるが見るほうも大変なので覚悟していただきたい。
まずはOverviewから。ここではVer.2から引き継がれているコネクションの状態表示とグローバルセッティングが行える。
「Connections」では今の接続状態を表示している。
「LocalPoint」は自PCのアプリケーションとポート、「Remote Point」が接続先のIPとポート、「Protocol」は使用しているプロトコル、「Speed
In」と「Speed Out」は現在の送受信の速度(KB/S)、「Bytes In」と「 Bytes Out」は累積送受信のバイト数になっている。左図ではSYSTEMモジュールがNBT関係のポートを開いて送受信を行っているのがわかる。
ちなみにOutgoingが緑色でIncomingが赤色で表示される。またIPアドレスの横の数値はListen状態では待ち受けポート番号を表示して、通信中はオープンしているポートの数が表示される。つぎに「Statistics」。遮断したパケットやIDSの状況などの累積した数値を参照できる
各項目でどれだけ遮断・防御したのかが表示される。また表示は「last hour:直近の1時間」〜「last
month:直近の1ヶ月」の4つから選べるようになっている。
累積数のクリアは右上のボタンの「Reset all statistics」をクリックする。左図では通知がほとんど0だが、1ヶ月の累積で見ると結構な数値が表示される。ちゃんと動いているようだ。
つぎにPreferences:グローバルセッティングを行う。
上から順に「自動アップデート」と「今すぐチェック」のボタン。その下が「ベータ版もアップデートする」だが、ここは好みでどちらでもよいと思う。
次が「Gateway Mode(ICSやNATルータ)」で使用するときにチェックを入れる。VMwareを使うときにもこのチェックが必要だそうだ。そして「クラッシュダンプの採取」で採取したダンプはKerioに送られるらしい。
「Import」と「Export」は旧Ver.2のルールのインポートや他のPCへルールのコピーを行うときに使用する。
そして「パスワードプロテクション」は設定変更にパスワードを設定するときに使う。最後のLanguageは英語、チェコ語など・・日本語はないので英語でいいだろう。(Ver4.1からGatewayの設定はNetwork SecurityのAdvancedに移動された)
ゲートウェイモードは「有償版」だけの機能であり、ICSやNATルータを自PCで動かしているときに使用するので、通常のモデムやルータの配下で動くときにはチェックを入れてはいけない(チェックを入れるとFirewallが自PCのIP以外や自PCのアプリケーション宛でないパケットを通過させる機能が有効になる)。またパスワードプロテクションも同様に有償版の機能である。
ここからは「Network Security」の画面。この製品には3つのルールの形式(タイプ)がある
| Rules for applications (通常ルール) |
アプリケーションごとに信頼するIPとインターネット(信頼できないIP)での着信と発信を制御するルール。 |
| Advanced Packet Filter (拡張ルール) |
IP・プロトコル・ポート番号とアプリケーションなどの細かい指定を行う拡張ルール。信頼するIPやインターネットの区別はないが、後述するIPグループで指定が可能 |
| Predefined network security rules | アプリケーションに関係がないネットワークの制御や通知などのプロトコルに関するルール。有効/無効の指定しかできない |
通常ルールと拡張ルールは筆者が書きやすいように適当につけた名前。ではInternetExplorerを起動してYahoo.co.jpを参照してみる。
登録済みのルールに該当しないアプリケーションなのでダイアログが表示される。真ん中の緑のところに「Outgoing
Connection」とあるので外部に接続しようとしたということがわかる。その下が「Internet
Explorer」とアプリケーション名が表示されて、「Remote point」に接続先のIPとポート番号が表示される。「Create
a rule〜」にチェックを入れるとルールが作成されて、以降このIEについてはダイアログが表示されず、設定したルールが適用されるようになる。「Details」は接続情報が下段に
表示される
「Internet Explorer」となっているアプリケーション名のところにマウスカーソルをあてるとフルパスのプログラム名が表示されるという機能もある。起動した覚えがないアプリケーションが表示されたときには接続先を確認してから「Permit:許可」か「Deny:遮断」を選択する。いろいろなプログラムをルール登録していくと「Applications」に一覧が出てくる。
一番上の「Enable Network security〜」はFirewall機能のOn/Off。一覧は左から「プログラム名」、「信頼するIPへの送受信」、「インターネットへの送受信」と「ログ」、「警告表示」になっている。In/Outでは「permit:許可」、「deny:遮断」、「ask:問い合わせ」の3つから選べる。IEやメールクライアントはインターネット側へのアクセス許可が必要だが、その他のモジュールは極力Internet側をdenyにしておくことが望まれる
アプリケーションの設定は「Edit」ボタンをクリックすることで画面を出して指定変更も可能。
指定できる内容は一覧画面と同じなのだが、信頼するIP(Trusted)と信頼できないIP(Internet)ごとに外部からの接続要求(Incoming)と外部への接続要求(Outgoing)を指定する。
ログや警告表示を設定すると一覧には下図のようにグレーのLogマークと黄色い三角の警告表示が出てくる。
![]()
ログは後述する。Alertで警告表示を選ぶと
これはWindows Updateを実行したときの表示になるが、画面に右下にこのような警告が表示される。時間、プログラム名〜接続先とポート番号なと詳細な情報が表示される。最後のActionはPermitなので許可ルールを適用していることがわかる。ここでは41個の警告表示があり、三角マークで次の警告を見ることができる。
次に「Advanced Packet Filter:拡張ルール」でプロトコルやポートをの指定してみる。アプリケーションごとにさらに細かくポートやプロトコルが指定可能となる。
一覧では左から「ルールの名前」、「方向」、「許可/遮断」、「ログ」、「警告」、「ローカルのポート」、「接続先のポート」、「プロトコル」、「アプリケーション名」になっている。また右にある三角マークでルールのプライオリティを上下できる。リストの上から順に一致するルールの検査を行うので優先順位を考えてルールを並べなくてはいけない。
Descriptionのところにあるチェックを外すとルールの適用が行われない(ルール自体は削除されない)。
ここではDonutとポートスキャンツールを指定している。実際にルールを登録してみる
ここでは上から順に「ルールの名前」、「フルパスのアプリケーション名」、「グループ」、右の2つのチェックボックスが「ネットワークログへ出力」、「警告メッセージの表示」で3つの大きなBOXは、「使用するプロトコル」、「ローカル」、「リモート」。下にあるのは左が「方向」右が「許可/遮断」となっている。ローカルはポート番号、リモートは
のようにポート番号とIPアドレスの両方が指定できる。
ここではWebブラウザのDonutを指定している。使用するプロトコルは"TCP"のみ、接続先のリモートポートは"http(80)"と"https(443)"だけに限定している。接続先のリモートIPはここでは指定していない。そして方向は外部を参照するだけの"Outgoing"を"許可"という設定。FTPを含めてもよいのだが、専用のクライアントツールを使うとして、ここでは許可していない。IPやポート番号はFrom〜Toの範囲指定も可能だがポート番号の1024以上というような指定はできないので1024〜65535という指定になる。ただし一般的なポート番号は一覧が出てくるので名前で選択できる。アプリケーションのポート、プロトコルの指定ができるということは使用者が意図しない動きをさせないということである。つまりWebブラウザがhttpやhttps以外のポートにアクセスすることを防ぐことで効果は少ないかもしれないが危険なコードを含むサイトへ接続することを防ぐことができる。
この拡張ルールはグループ分けができるようになっている。グループ作成は単に管理しやすいことを目的としているだけで適用がグループごとになるわけではない。たとえばOS関係のルールとアプリケーション関係のグループと分けたほうが見やすいルール作りができる。注意点は現時点でグループ名をツリーに出すには登録後一旦フォームを閉じて再表示しないといけないのとグループ名での削除はできないということ。
リモートで指定できるIPグループという項目はここで指定する。ここでは自宅サーバ群を指定してみた。特別にグループ化したいIPアドレスとなるとVPNなら会社のアドレスであったり、ISPのアドレスなどがあると思う。筆者は設定を試しただけで使っていない。
この拡張ルールは通常ルールとは別に指定できるのだが、どうも兼ね合いがよく理解できなかった。通常ルール
and 拡張ルールとなるのだが、同じアプリケーション(IEで試した)で通常と拡張の両方で指定することもできてしまう。そのようなケースでは通信速度がものすごく遅くなることがある。また通常ルールを削除して拡張ルールだけにしてみたが、拡張ルールで指定したポート以外のポートを使うと再度ダイアログが表示される。
これらのことから
|
ちなみにInternet Explorerのルールは
| Description | Direction | Action | Log | Alert | Local | Remote | Protocol | Application |
| browser dst.Port | Out | Permit | − | − | − | Port=80,443 | TCP | iexplore.exe |
| browser dst.udp | Out | Permit | − | − | − | IP=127.0.0.1 | UDP | iexplore.exe |
この2つのルールでIEはダイアログが出なくなった。内部Loopbackへアクセスがあるがこれを許可しないと画像が表示されるまでにものすごい時間がかかるようになる。LoopbackはIEのキャッシュ参照にも使われているしFirewallの管理モジュールとの内部通信でも用いられるので完全に遮断することはできないようだ。
つぎはあらかじめ設定されているICMPなどの設定であるPredefinedを見てみる。
ここでは上から「IGMP」、「ICMP(Ping)の受信」、「ICMP(Ping)の送信」、「その他ICMP」、「DHCP」、「DNS」、「VPN」、「ブロードキャスト」についてあらかじめルールが設定されている。よくわからないのであればこのままでいいと思う。あえて変えるとすればDNSの参照を特定のサーバに制限するとか、VPNは使わないから許可しないといったところであろう。このルールには新たにルールを追加することはできないが「permit」「deny」の変更は可能であり、このルールは要らないというときは一番上の「Enable
predefined〜」のチェックをはずすと無効になる。
次は信頼するIP(Trusted IP)の登録を見てみる。これは通常家庭内LANなどFirewallの規制を外部とは区別して定義するためのもので、上で見たようにアプリケーションのルールもTrustedとInternetに分かれている。
まずは一覧。Loopbackは自PC内での通信なのでデフォルトで指定されている。
ここではすでに登録済みだが家庭内LAN(192.168.1.xxx)をTrustedに追加してみる
上から順に「信頼するIPの名前」、「適用するNIC」、「指定するIPのタイプ」で"単一のIP","From-Toの指定","サブネットマスクの指定","Allの指定"から選択する。あとは指定のタイプで内容が変わり、サブネットマスクを指定すると「IPアドレス」、「サブネットマスク」となる。From-Toでは開始アドレス、終了アドレスとなる。
なおDial-Up環境で使用場合は接続先を識別する"Checking of dialed telephone numbers"機能をこの製品は持っている。つまり通常使用する接続先を記憶しておくことで、未知の接続先へのDial-Up時には警告を表示する機能である。
KerioとAVGが提携している関係でAVGを見つけたときには自動でルールが追加される。これはAVGのメールスキャン機能用と自動更新用の2つで、AVGユーザーにとってはありがたい。
Ver4.1で「Advanced」タブが追加された。ここでは「Boot time protection:OS起動時の保護機能」「Gateway mode:Windowsインターネット共有を使用する」 「Advanced logging:Openしていないポートに対するアクセスのログ出力」が設定可能。Gatewayモードは有償版だけの機能なので、無償版では利用できない。
Boot time ProtectはKerio4のFirewallエンジンとは別のLowLevelなドライバで制御を行っている。
このバージョンから採用された新機能がアプリケーションの起動を制限するというシステムセキュリティである。これはネットワークの利用には関係なくアプリケーションの起動を許可するか/許可しないかを設定する。この機能はネットワーク利用に関係がないのでWindows標準の電卓やメモ帳を起動するときにもダイアログが表示され設定が必要となる。しかしこの機能のおかげでVirusやトロイの木馬がIEのコンポーネントを利用して何かを送信しようとしても阻止することが可能となる。設定が面倒だが大変有効な機能なので無効にしないようにしてほしい(筆者は最初あまりにダイアログが頻繁に出るので無効にしてしまったが、全部設定が終われば新たなアプリケーションをインストールしない限りダイアログは出てこない)
システムセキュリティのルールはダイアログで作成する。作成済みルールは編集(変更)、削除が可能だが、ダイアログ以外から新規に作成することはできない。
ダイアログはアプリケーションの起動、更新(変更)、他のアプリケーションの起動時の3パターンで表示される。
| Starting application | 未登録のアプリケーションが起動されたときに表示される |
| Replacing application | 登録済みアプリケーションが更新後、初めて起動されたときに表示される。ルール登録時のチェックサムが変化しているので、この表示が出てくる |
| Application is launching other application | 登録済みアプリケーションが他の実行プログラムから起動されたときに表示される |
未登録のアプリケーションを起動すると左図のようなダイアログが表示される。真ん中の「Starting
application」が未登録のアプリケーションが起動されたことを表している。ここではExplorerからメモ帳(Notepad.exe)を起動した。表示される内容はNetwork
Securityと同じだ。許可するのであれば「Permit」で許可しないときは「Deny」をクリックする。「Create
a rule〜」で設定を登録することもNetwork Securityと同じ。他のアプリケーションから起動されたときは表示が
になる。IEのコンポーネントを利用するアプリケーションはこれが表示されるので注意が必要。
このようにアプリケーションを登録していくと一覧ができてくる。
一番上のチェックはSystem Securityの有効/無効のチェック。一覧は「アプリケーション名」、「起動時設定」、「変更時設定」、「他のアプリからの起動時設定」、「ログ出力」、「警告表示」となっている。
通常のアプリケーションはデフォルトの「〆」、「?」、「〆」の設定でいいと思う。もし気になる怪しいソフトであれば全てを「?」のAskにしておくか警告表示にしておけば安心である。次はSystem Securityのオプションの設定。
3つのイベントごとに「automatically〜:自動で許可する」か「use existing〜:ルールになければダイアログを表示する」かを選択できる。3つのイベントは上から「アプリケーションが起動されたとき」、「アプリケーションが変更されたとき」、「他のアプリケーションから起動されたとき」である。全部「自動で許可する」にするとKerioが勝手に許可を与えたことになるので実質システムセキュリティの機能が働らいていない状態となる。ここは我慢してすべて「use existing〜:ルールになければダイアログ表示」にしておくのがよい。
侵入パターンデータベースに一致したトラフィックを検知すると自動でアクションを起こす機能が備わった。侵入パターンデータはUpdateで自動更新される。侵入パターンは3段階に分類されていて
| High | OSにダメージを与えるような攻撃や外部へのデータ漏洩のように危険なパターン |
| Medium | サービスへ侵入を試みるパターンやセキュリティホールを突いた攻撃など |
| Low | 不正データやフォーマットエラーなどによる攻撃であまり危険性のないパターン |
一番上のチェックが「IDSを有効/無効にする」もので、ここは必ずチェックを入れて有効にする。次に3レベルごとにActionが「Permit:許可」か「Deny:遮断」で「Log to intrusions〜:IDSログに出力する」と登録されているパターンを表示する「Details..」である。最下段にポートスキャンをログに出力するのかの設定がある。ここの設定は変更しないほうがよい。
どういった侵入パターンが登録されているのか見てみると
これはHighのものだが、バックドア(トロイの木馬)のパターンだということがわかる。MediumやLowは結構な数が登録されているが、変更や削除はできない
ログは「ネットワークログ」、「システムログ」、「IDSログ」と有償機能の「Webフィルタログ」がある。ここでは最初の3つのログを見てみることにする。 まずはネットワークログ。
ネットワークは「日付」、「ルール名」、「アプリケーション」、「方向」、「ローカルポート」、「リモートポート」、「プロトコル」、「アクション」で構成されている。ここではDonutをログ出力の設定にして動かしたときのものである。
つぎはシステムログ
システムセキュリティでのログは変更時だけにしているので、ここではKerioのバージョンアップのログが出ている。
そしてIDSのログ
筆者の環境はルータ配下なので実際に侵入はないのだが、サーバからのICMPを侵入と判断している。
最後にログのオプションの設定。
ログのサイズと有償機能のsyslogがここでは設定できる。ログサイズはデフォルト値くらいが妥当かなとおもう。
・現行バージョンで気になった点
・フィルタールールの適用順序
適用順序の2番目にあるKerioのシステムが使用する自動更新や管理用の定義済みルールは下記のとおり(このルールは変更や無効など操作はできない)
| Description | Direction | Action | Log | Alert | Local | Remote | Protocol | Application | 説明 |
| リモート管理 | In | Permit | − | − | − | IP=any,Port=44334 | TCP+UDP | kpf4ss.exe | 管理ツールとFWエンジンの通信 |
| In | Deny | − | − | − | IP=localhost,Port=44334 | TCP+UDP | kpf4ss.exe | ||
| GUIとエンジン | Out | Permit | − | − | − | IP=any,Port=any | TCP+UDP | kpf4ss.exe | |
| Out | Deny | − | − | − | IP=localhost,Port=any | TCP+UDP | kpf4ss.exe | ||
| GUI | Out | Permit | − | − | Port=44334 | − | TCP+UDP | kpf4gui.exe | |
| DNS | Both | Permit | − | − | − | IP=any,Port=53 | UDP | kpf4ss.exe kpf4gui.exe |
FWが使用するDNS |
| CrashDump | Out | Permit | − | − | − | IP=crashes.kerio.com | TCP | assist.exe | クラッシュダンプの送信 |
| Download | Out | Permit | − | − | − | IP=Proxy,Port=ProxyPort | TCP | kpf4ss.exe | 最新モジュールの更新 |
| Download | Out | Permit | − | − | − | IP=secure.kerio.com,Port=443 | TCP | kpf4ss.exe |
ちなみにモジュール名と働きは下記のとおり
| Personal Firewall Engine | kpf4ss.exe | サービス(NT系)またはバックグラウンド(9x系)として起動されるFirewallのコアエンジン |
| Low-level ドライバ | fwdrv.sys | ネットワークの下位レベルで動作して常に動いているドライバ。 |
| Personal Firewall GUI | kpf4gui.exe | GUI画面を担当するモジュール。つまり画面表示のモジュール |
| CrashDump Sender | assist.exe | クラッシュ時に環境やログ情報を送信するモジュール |
| Driver-Engine インターフェイス |
kfe.dll | Low-levelドライバとエンジン間のインターフェイスを担当するモジュール |
| Hot-Key Control | gkh.dll | Hot-Keyをコントロールするモジュール |
| Security Center インターフェイス |
kwsapi.dll | Windows Security Centerとデータ交換するインターフェイス |
| Open SSL ライブラリ | KTssleay32_0.9.7.dll libeay32_0.9.7.dll |
エンジン-GUIモジュール間の設定ファイルの暗号化通信を担当するOpen SSLモジュール |
| aniconvライブラリ | KTiconv.dll | Webフィルタやログ出力でコード変換を担当するモジュール |
| クラッシュダンプ採取 | KTzlib.dll | クラッシュダンプの情報をパッキングするモジュール |
・標準ルールと拡張ルールについて
Kerio4では定義可能な標準ルールと拡張ルールの2パターンのルールが設定できる。2つのルールの違いと目的について簡単に説明をしてみる
| 標準ルール Application rules |
アプリケーション単位でTrusted(信頼できるIP)とInternet(信頼できないIP)毎に発信と着信を設定する。設定できる内容はZoneAlarmと同じなのでFirewall初心者には標準ルールだけで管理しても充分な安全性が確保できる(System
Securityとの併用が必須) IEやメーラーなど外部と接続する必要があるアプリケーションはInternet側のOutを許可(Permit)にして正常に動作すればOK。よくわからないアプリケーションはTrustedとInternetの両方を遮断(Deny)にして問題があればTrustedのOutを許可→TrustedのInを許可→InternetのOutを許可→InternetのInを許可の順で動作を確かめながら設定する。正常に動作すればその時点で設定を変更しない |
| 拡張ルール Advanced packet filter |
アプリケーションまたはプロトコルごとに相手先と自PCのポートを指定する。IPやポートの基礎知識が必要。きっちりと指定を行えばアプリケーションが意図しないアクセスをほぼ完全に封じ込めることが可能。プロトコルやポートに関する知識が必要なので中級者以上を対象とする |
とりあえず初めてKerio4を使用するのなら標準ルールですべてのアプリケーションの設定を行い、設定が簡単なブラウザやメーラーから拡張ルールに移行すればいいと思う。最初から無理をして拡張ルールに挑む必要はない。
ルール作りで参考になるかどうかはわからないが筆者の作成したルールを例としてあげておきます。OSはXPなのでWin9xシリーズでは相当違うと思いますが。システムセキュリティにもWin9x用と2000,XP用のシステムモジュールの許可があらかじめ与えられています。
前提条件としてTrusted Areaの指定
| Loopback | 127.0.0.1 | デフォルトで入っているLoopback |
| Local Area Network | 192.168.1.0 subnet mask:255.255.255.0 | 家庭内LANのアドレスをサブネットマスクで指定 |
以上の信頼するIP群が登録されているとして標準ルールで指定するのが
| 説明 | Description | アプリケーション | Trusted | Internet | ||
| In | Out | In | Out | |||
| Logonプロセス | Windows NT Logon Application | \WINDOWS\System32\winlogon.exe | ○ | ○ | × | × |
| IPSEC Policy Agent | LSA Shell(Export Version) | \WINDOWS\System32\lsass.exe | ○ | ○ | × | × |
| user logon 初期化 | User Init Logon Application | \WINDOWS\System32\userinit.exe | ○ | ○ | × | × |
| サービスの親玉 | Generiv Host Process | \WINDOWS\System32\svchost.exe | ○ | ○ | × | ○ |
| Microsoft File and Printer Sharing | Microsoft File and Printer sharing | NetBIOS | ○ | ○ | × | × |
これらのルールはポート番号をきっちり指定するために拡張ルールでもいいのだが固定の相手先だけ許可すればいいので標準ルールで定義。というかこれらのルールはあらかじめプリセットされているようでTrusted側をすべてDenyにしてもDNSやDHCPはPredefinedのルールが先に適用されてちゃんと動作する。また、これらシステムプログラム群のルールは削除できなかった。なお、Internet側が全てDenyになっているのは筆者の環境がルーター配下で動作していて、ルータがDNSリレーを行っているため。
次は拡張ルール
| Description | Direction | Action | Log | Alert | Local | Remote | Protocol | Application | 説明 |
| browser dst.Port ブラウザ |
Out | Permit | − | − | 1024〜65535 もしくは指定なし |
Port=80,443 好みにより8080,8000を追加 |
TCP | iexplore.exe | IEが接続するのはhttpとhttpsだけに限定する(FTPは専用クライアントを使う場合) |
| browser dst.udp ブラウザLoopBack |
Out | Permit | − | − | 同上 | IP=127.0.0.1 | UDP | iexplore.exe | |
| Browser other drop その他Drop |
Out | Deny | − | − | − | − | − | iexplore.exe | IEが80,443以外へ接続するのを遮断する |
| Mailer メールクライアント |
Out | Permit | − | − | 1024〜65535 もしくは指定なし |
IP=SMTPとPOPサーバのIP Port=25,110 |
TCP | メーラのexe | |
| Ftp Client(1) | Out | Permit | − | − | 同上 | Port=21 | TCP | FTPクライアントのexe | In-Outを分けたルール(PASVではない) |
| In | Permit | - | − | 同上 | Port=20 | TCP | |||
| Ftp Client(2) | Both | Permit | − | − | 同上 | Port=20,21 | TCP | FTPクライアントのexe | In-Outを一緒に定義したとき(PASVではない) |
| Ftp Client(PASV) | Out | Permit | − | − | 同上 | − | TCP | FTPクライアントのexe | PASVモードを使用するとき |
| DNS (UDP) |
Out | Permit | − | − | Port=53 | IP=ISPのDNS Port=53 |
UDP | DNSはPredefinedで定義済みなので必須ではない | |
| DNS (TCP) |
Out | Permit | − | − | 1024〜65535 もしくは指定なし |
IP=ISPのDNS Port=53 |
TCP | 同上 | |
| DHCP | Both | Permit | − | − | Port=68 | Port=67 | UDP | DHCPはPredefinedで定義済みなので必須ではない |
注意点 RemoteでPort番号を複数指定すると"or"条件になる。つまりPort=20,21は20または21のポートになる。しかしIPとPortを組み合わせた指定は"and"条件になる。つまりIP=aaa Port=80はIPがaaaで且つPort=80の条件になる。
1行目〜3行目のように「許可するルール」+「遮断するルール」を組み合わせると、許可するルール以外のホストやポートへ接続しようとしてもダイアログが表示されないで遮断される。ルールは表示されている上から順に適用されるので、必ず上から順に「許可ルール」→「遮断ルール」とすること。
主なアプリケーションのルールを参考に示したが、3つの形式のルールがあることが少しわかりにくいかもしれない。すべて自分でカスタマイズしてルール作りをするのであればPredefinedのルールを無効にして拡張ルールでICMP,DNS,DHCPを定義してもなんら問題はない。そういった意味では懐が深いが初心者にも優しいFirewallになっている。
・筆者の設定は
あまり参考にもならないと思うが、現在使用しているKerioの設定の状況だけ掲載しておきます。雰囲気だけ見てもらえれば結構です。
ネットワークセキュリティの通常ルールはほとんど触っていない。ルールが少ないのは1回ずつ「Permit」を押す癖がついたため。
次はパケットフィルタルール(拡張ルール)の画面。
こちらも必要なものはほとんど登録したが、この程度の登録数で収まっている。
Groupを細かく分けて登録しているが、これは筆者の気分の問題なので・・・
・設定ファイル
各ファイルのフォルダ構成は下記のとおり(インストール先をC:\Program Files\Kerio4とした場合、C:\Program Files\Kerio4\logs\〜となる)
| データ | ファイル名 | 説明 |
| フィルタルール | インストール先\config\kpf.cfg | 1世代前のファイルがkpf.cfg.bakとして保存されている |
| IDSルール | インストール先\config\IDSRules\xxxx.rlk | ワードパッドで参照可能 |
| IDSログ | インストール先\logs\ids.log | テキストエディタで参照可能 |
| エラーログ | インストール先\logs\error.log | テキストエディタで参照可能。モジュールのロード時のログ |
| ネットワークログ | インストール先\logs\network.log | テキストエディタで参照可能 |
| システムログ | インストール先\logs\system.log | テキストエディタで参照可能 |
| 警告ログ | インストール先\logs\warning.log | テキストエディタで参照可能。モジュールの動作状態のログ |
| Webログ | インストール先\logs\web.log | テキストエディタで参照可能 |
フィルタルールはExportしないと内容はわからない。ログは通常のテキスト形式なのでViewerは簡単に作れそう(idxというファイルがあるが正体は不明)
・Windowsのファイル共有とIDS
Ver4.1でWindowsファイル共有機能(ブラウジング含む)がIDSにより攻撃と判断されて使用できなくなっている。ファイルの共有を有効とするにはIDSのルールから該当する定義行を編集するとよい(Ver.4.1.2で一部解消されました。IDSルールを手動変更するとバージョンアップのときに更新されなくなりますので注意してください。)。Kerio\Personal Firewall 4\config\IDSRules\netbios.rlk(icmp.rlkも)をワードパッドで開き、下記の行を編集すること。Notepad(メモ帳)で開くと改行コードが識別されないので、非常に見づらい。
| NETBIOS SMB IPC$ share access | alert tcp $EXTERNAL_NET any -> $HOME_NET 139 (msg:"NETBIOS SMB IPC$ share access"; flow:to_server.established; content:"|00|"; offset:0; depth:1; content:"|FF|SMB|75|"; offset:4; depth:5; content:"\\IPC$|00|"; nocase; classtype:attempted-recon; sid:537; rev:8;) |
| NETBIOS SMB IPC$ share access (unicode) | alert tcp $EXTERNAL_NET any -> $HOME_NET 139 (msg:"NETBIOS SMB IPC$ share access (unicode)"; flow:to_server.established; content:"|00|"; offset:0; depth:1; content:"|FF|SMB|75|"; offset:4; depth:5; content:"|5c00|I|00|P|00|C|00|$|00|"; nocase; reference:arachnids.334; classtype:attempted-recon; sid:538; rev:7;) |
| NETBIOS SMB winreg access (unicode) | alert tcp $EXTERNAL_NET any -> $HOME_NET 139 (msg:"NETBIOS SMB winreg access (unicode)"; flow:to_server.established; content:"|00|"; offset:0; depth:1; content:"|FF|SMB|a2|"; offset:4; depth:5; content:"\\|00|w|00|i|00|n|00|r|00|e|00|g|00|"; nocase; offset:85; classtype:attempted-recon; sid:2175; rev:1;) |
| ICMP L3retriever Ping | alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"ICMP L3retriever Ping"; content: "ABCDEFGHIJKLMNOPQRSTUVWABCDEFGHI"; itype: 8; icode: 0; depth: 32; reference:arachnids.311; classtype:attempted-recon; sid:466; rev:1; |
編集方法は太字の"$EXTERNAL_NET"を"!$HOME_NET"または"!192.168.1.0/24"とLANのアドレスの前に"!"を付けて変更する。これで$HOME_NET(信頼するIP)またはLANのアドレス以外ということになる。行削除(コメント化)は行の先頭に"#"を付ける。編集後にFirewallエンジンの再起動を必ず行うこと。筆者が確認したところWinXP間でのアクセスは上記の変更でファイル共有できたが、Win9x系が絡むと変更するルールが異なるので、IntrusionのLogを見て必要なルールの変更を行うこと。
| Sourceアドレスを変更する場合 | alert tcp !$HOME_NET any -> $HOME_NET 139 (msg:"NETBIOS SMB IPC$ share access"; flow:to_server.established; content:"|00|"; offset:0; depth:1; content:"|FF|SMB|75|"; offset:4; depth:5; content:"\\IPC$|00|"; nocase; classtype:attempted-recon; sid:537; rev:8;) |
| 行をコメント化する場合 | #alert tcp $EXTERNAL_NET any -> $HOME_NET 139 (msg:"NETBIOS SMB IPC$ share access"; flow:to_server.established; content:"|00|"; offset:0; depth:1; content:"|FF|SMB|75|"; offset:4; depth:5; content:"\\IPC$|00|"; nocase; classtype:attempted-recon; sid:537; rev:8;) |
・Uninstall情報
Kerio4をUninstallするときの情報。ファイルやレジストリを削除するのでKerio4のサービスおよび実行プロセスを全て停止した状態で行うこと。
| Programフォルダの 削除 |
C:\Program Files\Kerio\Personal Firewall 4フォルダを削除する |
| ドライバの削除 | fwdrv.sys(NT系) fwdrv.vxd(Win9x系)を削除する Windowsのsystem32またはsystemフォルダに居るはずである。ファイル検索で「fwdrv.*」を検索すること。fwdrv.errというファイルのある。ドライバのエラーログのようなので消してもよいのだろう。 |
| レジストリの削除 | HKEY_LOCAL_MACHINE\SOFTWARE\Kerio\Personal Firewall 4 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vxd\fwdrv(Win9x系) HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\fwdrv(NT系) |
後はRebootして終了
有償版を購入してフル機能のKerio4をぜひご使用ください。コンテンツフィルタやICS対応。企業ユースの機能としてSyslogへの出力とリモート管理も利用が可能になります。
・リモートメンテナンス機能
他のPCにインストールされているKerio4の設定をリモートで行う機能です。つまりKerio4の集中管理が可能になります。管理を行うためのPC(管理者用PC)にはKerio4がインストールされていなくてもkpf4gui.exe、KTlibeay32_0.9.7.dll、KTssleay32_0.9.7.dll、KTzlib.dllをC:\Program Files\Kerio\Personal Firewall 4にCopyすれば管理ができます。
リモート接続したPCのアイコンが管理用PCのタスクトレイに表示されます。これでローカルのKerio4と同様のメンテナンスが可能になります。また設定変更を管理者だけに許可するためのパスワード規制が可能になります。
・Syslog出力
ログをSyslogサーバに転送することが可能になります。ログ情報を集中管理するには便利な機能です。
「Syslog server」:ログを転送するSyslogサーバのIPを設定する
「Syslog Port」:Syslogサーバのポート番号を指定する
「Advanced」:Syslogサーバに転送するログの種類が指定可能
・Webフィルタ機能
Webフィルタ機能(コンテンツフィルタ機能)はコンテンツに含まれる危険な要素を取り除き、安全サイトを閲覧するためのものです。規制の設定内容によっては画像が表示されなくなったり、正しい表示ができなくなる可能性があります。
Webフィルタ機能は
「広告規制」:コンテンツの広告の表示を規制する
「Popups」:ポップアップ表示されるWindowを規制する
「Web Content」:コンテンツ内のJavaScript、VBScript、ActiveXを規制する
PopUp制御は「Ctrl」または「F12」を押すと一時的にキャンセルする機能もある。
広告規制のルールはあらかじめ設定されている既定ルール(削除や変更は不可)とユーザが追加したルールで判定する。
ユーザ追加ルールはWWWサーバのアドレス+パス名で設定する。
上から順に
「WWWサーバのURL」
「上記サーバのパスの指定」
その下のチェックボックスは
「正規表現を使用する」である
| WWW server | eazyfox.homelinux.org |
| Path on server | */image/* |
と設定すれば当サイトの「image」という名前のフォルダからのコンテンツは表示されなくなる。
次はCookie、Referer制御と特定の文字列の制御を行うプライバシー規制の設定。
上から順にCookie制御、リファラ制御、プライバシー制御の3つに分かれている。
Cookie制御は
「サードパーティーのCookieを規制する」
「広告サーバのCookieを規制する」
「セッションCookieを規制する」
である。認証が必要なサイト等ではセッションCookieを有効にしないとログインできない場合が多い。サードパーティーCookieや広告Cookieは規制していてもほとんど問題ない。
リファラ制御はWWWサーバにどこのリンクから訪れたのかを知らせないための機能。Downloadサイトや認証が必要なサイトでは直接Downloadページに入られたり、認証が必要なページを見られるのを防ぐためにリファラを検査しているところが多いので注意すること。
プライバシー制御は、例えばクレジットカード番号、電話番号、メールアドレスなどを登録して不正に個人情報が送信されることを防止する機能
「Exceptional sites」:サイトごとに上記の規制を設定する機能です。特定のサイトだけ規制を厳しくする(緩くする)ときに使用すればよいでしょう。
・価格など
販売形態はライセンスキーの配布(メールで送ってくる)となります。
| 1userライセンス(1年間のUpdateサービス付き) | 45ドル(\5,000くらい) | |
| 10userライセンス(1年間のUpdateサービス付き) | 350ドル(\38,000くらい) |
Kerio4とAVG 7 WorkStation(AVG7の有償版)がセットになったお徳なお勧め製品はさらに安くなっています。AVG7 WorkStationなので企業ユースも可能です。AVG7 WorkStationはWindows95でも動作します。
| AVG7 WorkStation + Kerio4 1userライセンス(1年間のUpdateサービス付き) |
55ドル(\6,000くらい) |