システム奮闘記:その43
エフセキュア社のLinuxウイルスゲートウェイの設定
(2005年10月26日に掲載)
はじめに
年々、増加するウイルス。その大半がメールに添付してやってくる。
2004年6月、Postfixについている簡易フィルターを設定した。
main.cfに次の記述をすれば、ある程度はウイルス対策が行える。
main.cfの記述の部分(Postfix-2.Xの場合) |
header_checks = regexp:/etc/postfix/header_checks
|
設定ファイルの中身は以下のように行なう。
header_checksファイルの中身 |
|
[ ]の中身は空白に見えますが、実はスペース1個とタブになります。
|
これを設定すると、添付ファイルの拡張子が、exe、scr、pifの場合は
ウイルスメールとして受信拒否をしてくれる。
これら3つの拡張子は、ウイルスメールの定番拡張子といっても過言ではない。
この設定を行った当初は威力を発揮してくれた。
外部からやってくるウイルスメールを、次々と、はじいてくれるからだ。
メールのログで、はじかれる様子を見て
ふふふ、成功、成功 ( ̄∀ ̄)
と満面の笑みを浮かべて、勝ち誇った感じていたのだった。
だが、それも束の間の喜びだった。
2004年10月に、事件が起こった。
社内でウイルス騒動が起こったのだ!!
ある営業所の人が
俺に携帯に変な添付ファイル付のメールがきたで!
と言ってきた。
添付ファイルの拡張子を見ると、明らかにウイルスメールだった。
しかし、送信元を偽っているため、誰が送ったのか、わからない。
次々と、本社や営業所から「変な英語のメールが来ている」という騒ぎになった。
社内では「全然、フィルターの効果があらへんやん」と言われる (--;;
おまけに、どこからやってきたウイルスメールなのか見当がつかない。
最近のウイルスは、送信元を偽装するため、どこから来たのかが
全くわからない。
なんで、ウイルスフィルターが効かへんねん(TT)
と思いつつ、原因を探る。
すると、大きな盲点が見つかった。
社内でウイルスに感染したパソコンが、ウイルスメールを飛ばす時は
折角のウイルスフィルターも無力になる。
外部からのウイルスメールへの対処 |
|
該当する拡張子を添付ファイルに含まれるメールは全て送信者に
「こんなメールはいらん」で突き返す設定にしていた。
それにしても、悪玉パックマンの絵になったなぁ (^^;;
|
だが、社内でウイルス感染が起こった場合、どうなるのか。
しかも、送信者の名前を偽っているため、以下のような事が起こる。
社内でウイルスメールが発信されると・・・ |
|
社内のパソコンがウイルス感染した場合、社内から社内宛に
ウイルスメールが飛び交う可能性もある。
最近のウイルスの大半は送信元を偽っている。
そのため、簡易フィルターは偽っている送信元へウイルスメールを
突き返しているため、全く関係ないはずのユーザーへウイルスメールが
まき散らされる事が起こる。
|
ウイルス感染の原因は、管理職の人が使っているノートパソコンで、
出張先のホテルなどで感染したのを社内に持ち込んだためだった。
普段はペーペーの平社員の私だが、こんな時だけは管理職の人に対して
ウイルスを持ち込んではアキません (--メ
と強く言えたりする。
さて、簡易フィルターに重大な落し穴がある事がわかった。
パソコンへのウイルス感染を防ぐ方法だが、ウイルスバスターなどの
ウイルスソフトを入れるのが、一般的には良い方法だと思われる。
だが、社内のパソコンは古い機種なのだ。
Celeron333MHz RAM64M なので、最新のウイルスバスターなんぞ入れると
重くて動かないのらー!!!
そのためウイルスバスターといったソフトを入れるが賢明ではない。
それに、ウイルスソフトの場合、ウイルスパターンの更新をしない人達の
問題も出てくる。
私の友人K君の会社では、1台1台にウイルスソフトを入れているのだが、
更新しない人がいたり、常にウイルススキャンすると重たいので、
ウイルススキャンを外す人がいたりして、頭を抱えているという。
うちの会社の場合、パソコンにウイルスソフトを入れるのは現実的でない。
しかし、方法は他にもある。
メールサーバーにウイルスフィルターを入れる方法だ。
これだとクライアントのパソコンの性能に影響されずに済む。
この時点では、SoftwareDesign2004年4月号のpostfixの特集に、
Linuxサーバー側でウイルスフィルターを入れる方法が書かれているのを知っていた。
雑誌を見た時、次のような構成が良いと書いていた。
SoftwareDesign2004年4月号に載っていた
メールゲートウェイの設置によるウイルスフィルターの導入法 |
|
既存のメールサーバーの手前にメールゲートウェイを設置する。
そして、ウイルスフィルターをメールゲートウェイに入れおく。
そうすれば、メールサーバーに関係なくウイルスフィルターの設定や変更、
テストなどが行える上、メールサーバーの設定も最小限度で済むという。
|
実は、メールゲートウェイを導入する利点が他にもある。
うちの会社では次の利点が発揮される。
メールゲートウェイ導入の長所 |
|
DMZにメールゲートウェイを置き、LAN内に既存のメールサーバーを置く事で
例え、メールゲートウェイが攻撃されても、既存のメールサーバーは
無事なので、ユーザー情報などが守られる。メールゲートウェイは
一種の防波堤の役目を担ってくれる。
|
メールゲートウェイ自体は、2004年9月に導入した。
詳しくは「システム奮闘記:その35」をご覧ください。
(インタネットVPN導入)
この時、私が調べた範囲では、Linux版のウイルスフィルターには、
2種類ある事がわかった。
「Proscan」を出している、株式会社プロマーク(Promark Inc.)
http://www.promark-inc.com/
もう一つは、日本エフ・セキュア社だ。
http://www.f-secure.co.jp/
どっちが良いのか考えた。
結論は、日本エフ・セキュア社の製品になった。
製品名は「F-SecureアンチウイルスLinuxゲートウェイ」だ。
理由は、Proscanの場合は、メールだけがウイルスチェックの対象だが、
日本エフ・セキュア社の製品だと、メール以外にも、プロキシーサーバーのように
Webデータの中継ができ、Webの閲覧データまでウイルスチェックをしてくれる。
Webでウイルスに感染する事も充分にあり得る話なだけに、
できるだけの防備はしておく事に越した事はない。
日本エフ・セキュア社の製品で以下のサーバー構成ができないかと考えた。
サーバーの構成 |
|
SoftwareDesignに書いてあった構成が良いと思い込んでため
上の構成にする事にした。
|
ところで、いきなり導入して失敗するのも恐い。
何せ失敗談の生産だけは得意中の得意分野だからなのだ。
そこで導入前に、お試し版を使って、実際にできるかどうかを確かめる事にした。
早速、お試し版を入れてみる。
RPM型式なので、簡単にRedHatにはインストールできる。
設定はWeb型式で行える。
設定画面 |
|
まずは、メールのフィルター部分の設定を行う。
メールフィルターの設定 |
|
赤く囲んだ部分は、ウイルスフィルターに転送してきたメールを
受け取る際のポートを記述。ここでは「9025」を記述する。
黒く囲んだ部分には、中継先のメールサーバーのアドレスとポートを記述。
ここでは、社内LANにあるメールサーバーを記述する。
ピンクの部分はLAN内にあるメールサーバーからやってくる
メールを受信するための記述で、メールサーバーのアドレスを入れる。
青く囲んだ部分には、LAN内からやってきたメールの中継先を記述するが、
黒く囲んだ中継先とは別のアドレスとポートになる。
ここでは、メールを外部へ送るため、メールゲートウェイにある
Postfixへメールへ転送するため、Postfixのアドレスとポートを記述
|
いかにも簡単に設定したかに思えますが、かなり混乱しました。
試行錯誤の末、上の設定方法になる事がわかりました。
なにせ「親サーバー」が2ヶ所もあったりするため、意味がわかりにくい。
マニュアルを読んでもピンと来ない。となれば、手当たり次第に
試行錯誤をしてみるしかなくなる (--;;
早速、試運転を開始する事にした。
そうすると、見事にウイルスが引っかかってくれる。
ふふふ、成功、成功 ( ̄∀ ̄)
と満面の笑みを浮かべて、今度こそは、勝ち誇った気分だった。
だが、今回も束の間の喜びだった
実は、この構成だと重大な問題が2つ発生してしまう事がわかった。
まずは、1つ目の問題発覚の話から。
ウイルスフィルターのお陰で、メールやWebから感染する事がなくなり
平和になったかに思えた。
だが、ノートパソコンなどで外部からウイルスを持ち込むケースがある。
重大な問題:その1 |
|
社内でウイルスに感染した時の事を考える。
社内のパソコンから外部へウイルスメールが流れる時、
メールサーバーを中継して、ウイルスフィルターのある
メールゲートウェイへ届く。
メールゲートウェイでウイルスメールを感知するのだが、
メールサーバーを中継しているため、ウイルスフィルターは
社内から飛んできたウイルスメールに関しては、
「メールサーバーから中継されたメールが感染」という形でしか
ログが残せないのだ。
送信元で見たくても、送信元を偽造しているウイルスメールが多いので
どこのパソコンからの接続されたかの情報がない限り、
感染源の特定は困難なものになる。
|
つまりウイルスに感染しても、感染しているパソコンが不明だという。
感染源が特定できないとなれば、ウイルス感染が起こっても、
ウイルス駆除などの根本的な解決ができない事を意味する。
そして、もう1つ重大な問題があった。
重大な問題:その2 |
|
ウイルスフィルターは、Webのデータのフィルターも行ってくれる。
いわば、プロキシに似た側面の部分もある。
外部のサイトの閲覧には全く問題がないのだが、社内向けのサイトは
社内LAN(プライベートIPのエリア)にあるのだが、NATの影響がある
社内向けサイトの閲覧ができなくなる問題が発生する。
|
一応、IEのプロキシの設定に付け加えるだけで解決する。
これで解消できるのだが・・・ |
|
赤く囲んだ部分に、プロキシ経由にしたくないアドレスを記述すれば
例え、プロキシサーバーがNATの外にあっても問題はないのだ。
|
だが、横着者の私は・・・。
全端末の設定の変更は面倒なのらー!!
だった (^^;;
それに将来、社内向けのWebサーバーが増えた場合は、増える度に
追加の設定を行う必要がある。
できるだけ、こんな事は避けたい。
そのため、2つの問題点を解消する必要があった。
あっさりと、フリダシに戻されるのだった (--;;
そこでウイルスフィルターの設置する場所を考える事にした。
Webのデータのチェックを考えると、メールサーバーに
ウイルスフィルターを入れた方が良いという事になる。
この時点で、メールゲートウェイにウイルスフィルターを設置する事が
良いという思い込みは崩れ去った。
となれば、以下のような方法が正攻法に思えてくる。
これが正攻法な設定かも |
|
ウイルスフィルターをメールサーバーに設置する事によって、
クライアントからメールサーバーへメールを送信する時に、
フィルターでチェックがかけられる上、メールを取り込む際も、
POPの設定でフィルターをかける事ができるため、
メールの添付ファイルのチェックは可能になる上、
クライアントがウイルスメールを送信した時も、
どのクライアントが感染したのかが明確になる。
その上、メールサーバーは社内LAN内にあるので、
Webのプロキシ的な役目も可能になる。
|
これで一件落着かと思ったのだ。
だが、私自身に問題があった。それは・・・
POPに関する設定方法がわかんなーい (--;;
また、マニュアルを見て設定方法を勉強しないといけない。面倒だ。
それに、簡単に設定できても、別の問題もある。それは・・・
クライアントのメーラーの設定変更が必要なのらー!!
本社や営業所のパソコンの全てのメーラーの設定変更を行う必要が出てくる。
なぜなら、メーラーから送受信するためには、ウイルスフィルターを
経由させるため、ウイルスフィルターのポート番号に合わせる必要がある。
OutlookExpressの設定変更の箇所 |
|
赤い部分はメールサーバーへ中継するためのポート番号。
青い部分はメールを取り込む際のポート番号
|
全部のクライアントの設定を行う必要がある。非常に手間だ・・・ (--;;
横着者の私なので、できるだけ手抜きをしたいと考える。
いつもなら楽するつもりで横着して、ドツボにはまったりするのだが、
今回は、マニュアルをパラパラと見てみると、良い方法が載っていた。
マニュアルに載っていた方法 |
|
赤い部分はメールサーバーへ中継するためのポート番号。
青い部分はメールを取り込む際のポート番号
メールゲートウェイやクライアントからやってくるメールを
ウイルスフィルターで受け取り、それをメールサーバーの
Postfixへ転送している形になっている。
|
Postfixでのメールのポートを「25」から「9025」に変えるのは
全く思いもつかない発想だ。
Postfix側の設定変更が面倒なのかなぁと思って、マニュアルを見たら
簡単に設定変更ができる事がわかった。
master.cfファイルの変更だけで済む
master.cf ファイルの変更 |
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
#smtp inet n - n - - smtpd
9025 inet n - n - - smtpd
|
青い部分は修正前の記述。無効にするため先頭に「#」を入れる。
赤い部分は修正後の記述。
これだけで、ポートの番号を「25」から「9025」へ変更できる。
|
さて、ウイルスフィルターの設定の部分だが、次のようになります。
ウイルスフィルターの設定画面 |
|
青い部分はウイルスフィルターがメールを受け取る時のポート番号を記述。
ここでは「25」を記述。
赤い部分は中継先のメールサーバーのアドレスなので、
メールサーバー自身のPostfixへメールを転送すれば良いので、
メールサーバーのアドレスとポート番号を記述。
ここではポート番号が「9025」にします。
|
今回のフィルターの設定は、簡単だった。
あっさり設定できたので、呆気なかった (^^;;
これでメールとWebでのウイルス感染が防げるだけでなく、
社内のパソコンでウイルス感染があっても、ウイルスメールが発信されると
どのパソコンが感染したのかが感知できるようになった。
しかもクライアントの設定は、プロキシの設定だけ行えば良くなった。
手間はかからない、問題も起こらない、ウイルスメールの発信源もわかる。
うちの会社にとっての理想的な形ができたのだった (^^)V
最後に、日本エフ・セキュアー社のLinux版ウイルスフィルターの
ライセンスだが、ユーザー名で決まる。
これはウイルスフィルターを利用するパソコンの台数なのか、
それともメールのアカウント数なのか。
購入前に、日本エフ・セキュアー社に問い合わせをしてみた。
日本エフ・セキュアー社からの回答 |
Linuxゲートウェイは、クライアントPC台数とメールアカウント数の
どちらか少ない方でライセンス購入をいただいております
|
つまり、どちらかの数を比較して、少ない方のユーザー数でカウントを行う。
50台パソコンがあっても、3つしかメールアカウントがなければ、
3ユーザー扱いになるという。ちょっと極端な例かも (^^;;
まとめ
Linux版のウイルスフィルターの導入で、ウイルスフィルターを
インストールするサーバーを、どれにするのかで、試行錯誤をしました。
教訓(?)として、本の内容を鵜のみしない事です。
個々のケースによって、より良い構成が違ってくるためです。
日本エフ・セキュアー社の製品は、メールとWebのフィルターを行ってくれる
優れものです。値段的にも高くないと思いますので、お薦めします。
ちなみに、これだけ褒めていますが、ワイロは貰っていませんので (^^;;
次章:「バッファフロー攻撃の手口。メモリ違反で管理者権限奪取」を読む
前章:「匿名ログオンができないWindowsXP」を読む
目次:Linux、オープンソースで「システム奮闘記」戻る