2: 2009-08-19 (水) 01:20:15 maruo ソース 現: 2021-07-04 (日) 17:32:23 maruo ソース
Line 11: Line 11:
ほかにもあるのですが、一応この2つに着目してみました。H+BEDVは、有償ソフトなのですが、個人利用に限り無料。1年間有効なキーが送られて参りまして、1年更新で使用できます。~ ほかにもあるのですが、一応この2つに着目してみました。H+BEDVは、有償ソフトなのですが、個人利用に限り無料。1年間有効なキーが送られて参りまして、1年更新で使用できます。~
-Clam AntiVirusはGPLライセンスなフリーのウィルススキャンソフト。で、実はどっちも試してみたのですが、私はH+BEDVをチョイスしてみました。なぜならば、一応有償なので、ウィルスパターンファイルの更新頻度が高いだろうということです。ウィルスチェックソフトのインストールに関しては、[[ココ:http://www.fkimura.com/AMaViS3.html]]が非常に参考になります。~ +Clam AntiVirusはGPLライセンスなフリーのウィルススキャンソフト。で、実はどっちも試してみたのですが、私はClam AvtiVirusを選択いたしました。というのも、H+BEDVがいつの間にか自由に更新ができづらくなってしまいましてね… 
-Clam AntiVirについては気が向いたら加筆するかな~+ 
 +**インストール [#gd4dafca] 
 + # emerge clamav 
 +**設定 [#h8b26d83
 + # rc-update add clamd default 
 +意外に簡単でした♪ 
*SPAM対策 [#j0481b5a] *SPAM対策 [#j0481b5a]
Line 19: Line 25:
-サーバに問い合わせ最新SPAMパターンと比較できること -サーバに問い合わせ最新SPAMパターンと比較できること
-ベイズフィルタという学習フィルタを持っていて、後でSPAMとそうでないメールを比較させて賢くしていけること -ベイズフィルタという学習フィルタを持っていて、後でSPAMとそうでないメールを比較させて賢くしていけること
 +-様々なプラグインが用意されていること
 +
 +いや、至れりつくせりですね。
 +
 +また、最近は他の手段もあり、
 +:greylisting|whitlist(信頼できるホストの一覧)、blacklist(信頼できないホストの一覧)というSPAMホストのリストの他に、greylistという、中間を用意する。具体的には、初めてメール転送を依頼してきたホストは、greylistに登録し、一定時間接続をRejectする。真に自分にメールを送ってくるホストは、リトライしてくるはず。SPAMなどツールで送信するホストは、一旦はじかれるとリトライしてこないので、SPAM対策になる
 +:SPF(Sender Policy Framework)|DNSのTXTフィールドに、ある送信ドメインを信頼してもらう場合、どのDNSレコードを信頼してもらうかを記載しておく。メールを受信したMTAは、そのDNSフィールドを参照し、信頼できるホストからのメールかどうかを判定する
-いや、至れりつくせりですね。あとはメールで利用できるようにすればオッケ♪+いろいろと対抗策が増えているんですね~。ちょっと設定に凝ってみようと思いまする。
*postfixとの連動 [#w117632b] *postfixとの連動 [#w117632b]
Line 70: Line 83:
 #コメントアウトすればいい  #コメントアウトすればいい
 @av_scanners = (  @av_scanners = (
-  ### http://www.hbedv.com/ or http://www.centralcommand.com+ # ### http://www.clamav.net
-  ['H+BEDV AntiVir or CentralCommand Vexira Antivirus', + ['ClamAV-clamd', 
-    ['antivir','vexira'], +  \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.sock"], 
-    '--allfiles -noboot -nombr -rs -s -z {}', [0], qr/ALERT:|VIRUS:/, +  qr/\bOK$/, qr/\bFOUND$/, 
-    qr/(?x)^\s* (?: ALERT: \s* (?: \[ | [^']* ' ) +  qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
-         (?i) VIRUS:\ .*?\ virus\ '?) ( [^\]\s']+ )/ ]+
-   # NOTE: if you only have a demo version, remove -z and add 214, as in: +
-   #  '--allfiles -noboot -nombr -rs -s {}', [0,214], qr/ALERT:|VIRUS:/,+
-と、こんなもん。で、AMaViSdとspamdを起動します。+ 
 +と、こんなもん。で、AMaViSdを起動します。
 /etc/init.d/amavisd start  /etc/init.d/amavisd start
- /etc/init.d/spamd start 
**Postfixとの連動設定 [#m8e0ebca] **Postfixとの連動設定 [#m8e0ebca]
Line 127: Line 137:
と、ヘッダにSpamチェックが入ります。これを振り分けルールに入れてやれば、SPAMが隔離できるという寸法です。いや便利。~ と、ヘッダにSpamチェックが入ります。これを振り分けルールに入れてやれば、SPAMが隔離できるという寸法です。いや便利。~
-次にウィルスメールを食わせて見ます。 
- A virus (Eicar-Test-Signatur) was found. 
- Scanner detecting a virus: H+BEDV AntiVir or CentralCommand Vexira Antivirus+*SpamAssassinの設定 [#c7e7143e] 
 +以下は、設定変更行ったら、amavisd_newを再起動するのを忘れないでね!
- The mail originated from: <mabuchi@hh.iij4u.or.jp>+**ベイズフィルタの学習 [#q052a4f1] 
 +先ほど、SpamAssassinには自動学習機能があるといいました。ですので、収集されたメールから、Spam学習ルールを作る自動化シェルスクリプトを作りました。
- According to the 'Received:' trace, the message originated at: +さて、2021年に、ベイズフィルタのオプションに、berkdbが使用できなくなりました…ベイズ学習データを保存するための手段DBIも、GentooのメインストリームでMaskedになっちまいました。 
-   送ってきた人+なので、MySQL(MariaDB)に学習データを保存するように設定してみます。
- The message WAS NOT delivered to: +***DBを作る [#o7ae4091] 
- <送信先>: +MariaDBが起動していると仮定して、以下を設定します。
-   250 2.7.1 Ok, discarded, id=04101-06 - VIRUS: Eicar-Test-Signatur+
- Virus scanner output: + # cp /usr/share/doc/spamassassin-3.4.5/bayes_mysql.sql.bz2 ~ 
-  AntiVir / Linux Version 2.1.0-22 + # cd ~ 
-  Copyright (c) 1994-2004 by H+BEDV Datentechnik GmbH+ # bunzip2 bayes_mysql.sql.bz2 
-  All rights reserved.+ # mysql -u root -p 
 + mysql> CREATE DATABASE sa_bayes; 
 + mysql> USE sa_bayes; 
 + mysql> SOURCE bayes_mysql.sql; 
 + mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON sa_bayes.* TO 'DBアクセスユーザー名' IDENTIFIED BY 'DBアクセスパスワード'; 
 + mysql> FLUSH PRIVILEGES;
-   Loading /usr/lib/AntiVir/antivir.vdf ...+***SpamAssassin側の設定 [#q643cce5]
-   VDF version: 6.25.0.46 created 03 May 2004+/etc/mail/spamassassin/local.cfを、以下の設定を変更(または追加)します 
 + use_bayes          1 
 + bayes_auto_learn  1 
 + bayes_auto_expire
 +  
 + bayes_store_module Mail::SpamAssassin::BayesStore::MySQL 
 + bayes_sql_dsn      DBI:mysql:sa_bayes:127.0.0.1:3306 
 + bayes_sql_username 'DBアクセスユーザー名' 
 + bayes_sql_password 'DBアクセスパスワード'
-  For private, non-commercial use only. +これで受信時の自動学習及びベイズフィルタの使用を定義。ア~ンドamavisが溜め込むベイズフィルタをデフォルトルールとする事にしたです。そりで、 
-  AntiVir license: 1001068963 for Mutsumi Mabuchi, Yokohama+ HOME=/var/amavis 
 + find /var/spool/imap -type d -name SPAM -exec /usr/bin/sa-learn -- username=amavis --spam {} \;
-   checking drive/path (list): /var/run/amavis/amavis-20040505T143847-04101/parts +というわけで、imapフォルダ下にあるSPAMって名前のフォルダ下にあるSPAMメールを毎日自動学習するようにCRONシェルを設定して、おしまいでっす。
-   ALERT: [Eicar-Test-Signatur virus] /var/run/amavis/amavis-20040505T143847-04101/parts/part-00001 +
-         <<< Contains code of the Eicar-Test-Signatur virus+
 +さらに、
 + sa-learn - username=amavis --ham <SPAMでないメールがあるディレクトリ>
 +と指定すると、SPAMでないメールも学習してくださいます。
-   ----- scan results ----- +**sa-updateの設定 [#d2bc7662] 
-    directories:        1 +もともとspamassassinは、バージョンアップ毎に更新したルールをパッケージに付与していまいたが、これだとイタチごっこに対する対応が遅い、ということで、spamassassin 3以上になると、NWから定期的に更新したルールを取ってこれるようになりました。これにはsa-updateというツールを使用します。 
-          files:        1 +まず、sa-updateを使用するのに、GPGのキーファイルを作成してやります。例えば/foo/var.keysという名前で、 
-         alerts:        1 + 26C900A46DD40CD5AD24F6D7DEE01987265FA05B 
-      repaired:        0 + 5244EC45 
-       deleted:        0 +こんな中身のファイルを作ってやります。テキストでそのまんまね。で、以下のコマンドをcronなどで定期的に実行してやって。 
-       renamed:        0 + /usr/bin/sa-update --gpgkeyfile /foo/var.keys 
-     scan time: 00:00:01 +これで、/var/lib/spamassassin配下に、定期的にアップデートファイルが作られますのねで。
-   ------------------------ +
-   Thank you for using AntiVir.+
- The message has been quarantined as+**DCCの設定 [#bb0aedb2] 
-    /var/virusmails/virus-20040505-171002-04101-06+手元にあるSPAMだけだと、パターン数が少なすぎて、すべてをマッチさせるのは難しいもの。このために、NWのサーバに貯められているSPAMパターンと照合するという手があります。そのいくつかに、DCC,Pyzor,Razor等があります。今回私はDCCを選択いたしました。どうもDCCが一番精度がいいらしい?という評判だったので。で、DCCを導入いたします。 
 +***DCCDのインストール [#p25ea2b2] 
 +まず/etc/portage/package.keywordsに mail-filter/dcc を追加いたします。んで 
 + # emerge dcc 
 +/etc/dcc/dcc_confを編集いたします。以下に特に注意して。 
 + DCCD_ENABLE=off 
 + DCCIFD_ENABLE=on 
 +さらに、/etc/init.d/dccにバグがあるので、以下を編集してやります。 
 + if [[ "${DCCIFD}" != "on" ]] 
 +               ↓ 
 + if [[ "${DCCIFD_ENABLE}" != "on" ]] 
 +で、DCCを起動してやってください。 
 + # rc-update add dcc default 
 + # /etc/init.d/dcc start 
 +次に、/etc/spamassassin/v310.preを編集します。 
 + # loadplugin Mail::SpamAssassin::Plugin::DCC 
 +                              ↓ 
 + loadplugin Mail::SpamAssassin::Plugin::DCC 
 +     コメントを外してやる 
 +そして、/etc/spamassassin/local.cfに、以下を追加してやってください。 
 + # DCC Configuration 
 + use_dcc 1 
 + dcc_home /var/dcc 
 + dcc_path /usr/bin/dccproc 
 + add_header all  DCC _DCCB_: _DCCR_ 
 +以上でっす
- ------------------------- BEGIN HEADERS ----------------------------- +**SPFの設定 [#ve425015] 
-      ウィルスメールのヘッダ +spamassassinにSPFを設定するのは楽ちんです。/etc/spamassassin/init.preを以下のように編集します。 
- -------------------------- END HEADERS ------------------------------+ # SPF - perform SPF verification. 
 + # 
 + #loadplugin Mail::SpamAssassin::Plugin::SPF 
 +                   ↓ 
 + loadplugin Mail::SpamAssassin::Plugin::SPF 
 +         コメントを外す 
 +以上でっす。
-すばらすぃ~。メールは送られず、隔離エリアに葬られました。えらいえらい。ちなみに、デフォルトのままだと、/var/virusmailsに隔離されてます。+* Postfix側の設定[#p8bce71c] 
 +spamassassinだけでは、受信したメールをSPAMと分類するだけ。入り口であるPostfixにて怪しいものを拒否する手があります。先程述べたgreylistingですが、これをPosftix上で実現してくれるツールが、Postgreyです。
-*SpamAssassinのベイズフィルタ学習 [#c7e7143e+**Postgrey [#vba5c072
-先ほど、SpamAssassinには自動学習機能があるといいました。ですので、収集されたメールから、Spam学習ルールを作る自動化シェルスクリプトを作りました。+***インストール [#xbcc195d] 
 + # emerge postgrey 
 +***設定 [#f25ff92b] 
 +/etc/conf.d/postgreyに、設定を追加いたします。重要なのは以下ですかね 
 + # 初受信のサーバを、何秒受信拒否するか。デフォルトは5分 
 + POSTGREY_DELAY=300 
 + # postgreyへのオプション指定。--max-ageは、受信許容したサーバのキャッシュを何日で消去するか。デフォルトは30日 
 + POSTGREY_OPTS="--max-age=30" 
 +そしてpostgreyを起動してやります。 
 + # rc-update add postgrey default 
 + # /etc/init.d/postgrey start 
 +で、最後にpostfixの設定。/etc/postfix/main.cfに以下の設定を追記します。 
 + smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated, 
 +     reject_unauth_destination,check_policy_service inet:127.0.0.1:10030 
 +後ろにある、check_policy_service inet:127.0.0.1:10030が重要です。smtpd_recipient_restrictionsは項目の順序も重要ですので、気をつけてね!で、最後に 
 + # /etc/init.d/postfix reload
-まずはSpamassassinの設定。/etc/spamassassin/local.cfをいじります。 +**バックアップサーバ側の設定 [#ra8dcbd0] 
- bayes_auto_learn_threshold_nonspam      0.1 +今までは、メインサーバのpostfixがダウンしてしまった場合、上位のDDNS側で、エラーではじかれたメールをプロバイダに転送してくれるよう設定してました。でも、これがSPAM大量増産の大本!せっかくこちらのPostfixでエラーで弾かれても、全部プロバイダに転送されちゃう。そのため、このプロバイダへの転送を止めちゃえば、SPAMも減るってもの。 
- bayes_auto_learn_threshold_spam        6.0 +しかし、もしもメインサーバがダウンした場合、外部から送信されてきたメールが着信せず、消えてしまいかねないので、それも困る。このためバックアップサーバが受信して、キューイングしておいてくれるように設定しておきます。 
- bayes_auto_learn        1 +メインサーバのpostfixとの設定の違いは 
- use_bayes              1 +-受信したら、自分のドメインに該当するメールアドレスのみ、メインサーバのpostfixへ転送する 
- bayes_path              /var/amavis/.spamassassin/bayes+-上記の設定なので、amavisに転送する設定は行わない
-これで受信時の自動学習及びベイズフィルタの使用を定義。ア~ンドamavisが溜め込むベイズフィルタをデフォルトルールとする事にしたです。そりで、 +その他の設定(SMTP-AUTH/postgrey)は有効としておきます。このため、メインサーバとの差分として、amavis設定を削除し、転送用設定を付け加えときます。/etc/postfix/main.cfに以下を追加します。 
- HOME=/var/amavis + transport_maps = hash:/etc/postfix/transport 
- find /var/spool/imap -type d -name SPAM -exec /usr/bin/sa-learn --spam {} \;+さらに、/etc/postfix/transportというファイルを作り、ドメインと転送先をそれぞれ指定。 
 + example.net smtp:[XXX.XXX.XXX.XXX] 
 + .example.net smtp:mail.server 
 +example.netは、MXレコードを引かずに([]を付けるとMXレコードを参照しない)IPアドレスXXX.XXX.XXX.XXXに転送する。.example.net(XXX.example.net等)はmail.serverに転送する、という設定。で、 
 + # postmap transport 
 +を実行して、ハッシュマップを作ります。最後に 
 + # /etc/init.d/postfix reload 
 +で完成。
-というわけで、imapフォルダ下にあるSPAMって名前のフォルダ下にあるSPAMメールを毎日自動学習するようにCRONシェルを設定して、おしまいでっす。+ちなみに、このバックアップサーバは、メールを受信したらキューイングしてとっておいてくれます。マスタサーバが生き返ったら、再送してくれるありがたいサーバとなります。マスタサーバが死んでる間は、こいつに貯めておいてもらえば、わざわざプロバイダに転送してもらわなくて済むという寸法。 
 + 
 +*結果 [#kfe32905] 
 +劇的にSPAMメールが減りました!それまでは1日に300~400通近いSPAMが、1/6以下に減りました。なぜSPAMが0近くにならないかというと、プロバイダのメールに着信するSPAMは、無条件で受信しちゃうから…しかし、そのメールはspamassassinにてSPAMに分類されます。bayesフィルタ、ルール、DCC、SPFを噛ますことで、SPAM認識率が相当向上しました。これでしばらくは安心でしょう♪


トップ   差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 7178, today: 2, yesterday: 5
ページ内検索

ログイン

ユーザー名:


パスワード:





パスワード紛失

メインメニュー

サブメニュー
自宅鯖計画

Gentoo Linuxな生活

玄箱HGにGentoo格闘記

航空ショーへ行こう

モータースポーツな世界

奥深き写真の世界への誘い

我思う ゆえに我あり



携帯用QRコード