システム奮闘記:その43

エフセキュア社のLinuxウイルスゲートウェイの設定



Tweet

(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型式で行える。

設定画面
Linuxウイルスゲートウェイの設定画面

  まずは、メールのフィルター部分の設定を行う。

メールフィルターの設定
メールフィルターの設定
赤く囲んだ部分は、ウイルスフィルターに転送してきたメールを
受け取る際のポートを記述。ここでは「9025」を記述する。

黒く囲んだ部分には、中継先のメールサーバーのアドレスとポートを記述。
ここでは、社内LANにあるメールサーバーを記述する。

ピンクの部分はLAN内にあるメールサーバーからやってくる
メールを受信するための記述で、メールサーバーのアドレスを入れる。

青く囲んだ部分には、LAN内からやってきたメールの中継先を記述するが、
黒く囲んだ中継先とは別のアドレスとポートになる。
ここでは、メールを外部へ送るため、メールゲートウェイにある
Postfixへメールへ転送するため、Postfixのアドレスとポートを記述

  いかにも簡単に設定したかに思えますが、かなり混乱しました。
  試行錯誤の末、上の設定方法になる事がわかりました。
  なにせ「親サーバー」が2ヶ所もあったりするため、意味がわかりにくい。
  マニュアルを読んでもピンと来ない。となれば、手当たり次第に
試行錯誤をしてみるしかなくなる (--;;
  

  早速、試運転を開始する事にした。
  そうすると、見事にウイルスが引っかかってくれる。

  ふふふ、成功、成功   ( ̄∀ ̄)

  と満面の笑みを浮かべて、今度こそは、勝ち誇った気分だった。
  だが、今回も束の間の喜びだった
  
  実は、この構成だと重大な問題が2つ発生してしまう事がわかった。

  まずは、1つ目の問題発覚の話から。
  ウイルスフィルターのお陰で、メールやWebから感染する事がなくなり
平和になったかに思えた。
  だが、ノートパソコンなどで外部からウイルスを持ち込むケースがある。

重大な問題:その1
重大な問題点。その1
社内でウイルスに感染した時の事を考える。
社内のパソコンから外部へウイルスメールが流れる時、
メールサーバーを中継して、ウイルスフィルターのある
メールゲートウェイへ届く。

メールゲートウェイでウイルスメールを感知するのだが、
メールサーバーを中継しているため、ウイルスフィルターは
社内から飛んできたウイルスメールに関しては、
「メールサーバーから中継されたメールが感染」という形でしか
ログが残せないのだ。
送信元で見たくても、送信元を偽造しているウイルスメールが多いので
どこのパソコンからの接続されたかの情報がない限り、
感染源の特定は困難なものになる。

  つまりウイルスに感染しても、感染しているパソコンが不明だという。
  感染源が特定できないとなれば、ウイルス感染が起こっても、
ウイルス駆除などの根本的な解決ができない事を意味する。

  そして、もう1つ重大な問題があった。

重大な問題:その2
重大な問題:その2
ウイルスフィルターは、Webのデータのフィルターも行ってくれる。
いわば、プロキシに似た側面の部分もある。

外部のサイトの閲覧には全く問題がないのだが、社内向けのサイトは
社内LAN(プライベートIPのエリア)にあるのだが、NATの影響がある
社内向けサイトの閲覧ができなくなる問題が発生する。

  一応、IEのプロキシの設定に付け加えるだけで解決する。

これで解消できるのだが・・・
社内の場合はプロキシを使用しない設定
赤く囲んだ部分に、プロキシ経由にしたくないアドレスを記述すれば
例え、プロキシサーバーがNATの外にあっても問題はないのだ。

  だが、横着者の私は・・・。

  全端末の設定の変更は面倒なのらー!!

  だった (^^;;
  それに将来、社内向けのWebサーバーが増えた場合は、増える度に
追加の設定を行う必要がある。
  できるだけ、こんな事は避けたい。

  そのため、2つの問題点を解消する必要があった。
  あっさりと、フリダシに戻されるのだった (--;;


そこでウイルスフィルターの設置する場所を考える事にした。 Webのデータのチェックを考えると、メールサーバーに ウイルスフィルターを入れた方が良いという事になる。 この時点で、メールゲートウェイにウイルスフィルターを設置する事が 良いという思い込みは崩れ去った。 となれば、以下のような方法が正攻法に思えてくる。
これが正攻法な設定かも
メールサーバーにウイルスゲートウェイを設置する方法
ウイルスフィルターをメールサーバーに設置する事によって、
クライアントからメールサーバーへメールを送信する時に、
フィルターでチェックがかけられる上、メールを取り込む際も、
POPの設定でフィルターをかける事ができるため、
メールの添付ファイルのチェックは可能になる上、
クライアントがウイルスメールを送信した時も、
どのクライアントが感染したのかが明確になる。

その上、メールサーバーは社内LAN内にあるので、
Webのプロキシ的な役目も可能になる。

  これで一件落着かと思ったのだ。
  だが、私自身に問題があった。それは・・・

  POPに関する設定方法がわかんなーい (--;;

  また、マニュアルを見て設定方法を勉強しないといけない。面倒だ。
  それに、簡単に設定できても、別の問題もある。それは・・・

  クライアントのメーラーの設定変更が必要なのらー!!

  本社や営業所のパソコンの全てのメーラーの設定変更を行う必要が出てくる。
  なぜなら、メーラーから送受信するためには、ウイルスフィルターを
経由させるため、ウイルスフィルターのポート番号に合わせる必要がある。

OutlookExpressの設定変更の箇所
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、オープンソースで「システム奮闘記」戻る

Tweet