はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2018/05/30
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> 当サイト情報 >> スレッド

このページは表示専用です。新規投稿・レスや最新情報はこちらです。

 SPAMチェックに一苦労
日時: 2006/11/01 23:18
名前: mojaXP

FedoraCore 6 での話。
CentOS、FedoraCore のPostfix が、MySQLに対応していないのをすっかり忘れ、
postfixadmin を使ったバーチャルドメイン管理に悩みまくった。
MySQLに対応させるだけなら、src.rpmを入れ、/usr/src/redhat/SPECS/postfix.spec を弄った後、
リビルドすれば対応する。もう一つ、quota(VDA)に対応させるには、パッチをDL、
postfix.spec にパッチを引用するよう書き足してからリビルドすればよい。

さて、今度は SpamAssassin。バーチャルドメインとなると、そのままでは機能しない。
仕事で使っているとはいえ、個人サーバだし、メールがじゃんじゃん来るわけでもないから・・・
ということで、当初 filter (pipe) して、amavisd から content_filter で呼び出そうとした。
通常の動作よりも4倍ほど遅くなるらしいとは言われているものの、ジャンジャン来るわけでもないしと
postfix(README)を参考に、スクリプトを組み、master.cf を弄って動かしてみた。
ところが、どうにももうまくいかない。というか、動いてくれない。
一日半悩んだ結果、解決できなかった。

スケジュールも押しているので、動くまで弄くり回すという方法は取れなかったので、
私にしてみれば、もしかしたら慣れているのはコッチかもと、MailScanner を使うことにした。
SpamAssassin とは独立している amavisd はさっさとアンインストール。
yum で何かをインストールする時、その何かに必要なパッケージが自動インストールされるが、
MailScanner はパッケージが提供されているわけではないので・・・というのもちょっと前までの話。
RPMパッケージで提供されていて、必要なパッケージも同梱されているので、インストール方法を読み、
何も手を加えずにインストールはできる。
ただ、そのままでは動かないので、英語のマニュアルを読みながら初期設定をしてあげないといけない。

今はとりあえず動けばいい設定をして動かしただけなので、環境に併せて微調整しているところです。

■ コンテンツ関連情報

 Re: SPAMチェックに一苦労 ( No.1 )
日時: 2006/11/08 11:16
名前: mojaxp 解説

CenOS 4.4(FC6でも可能だと思う--未テスト)でのMailScanner 設定

MailScanner は Amavisd-new などと同じ類のものです。
サイトは http://www.mailscanner.info/
ただ、どこにも日本語の解説が無いので、英語アレルギーがある人は設定に苦労します。
ここでやってもらえると、助かる人も多いかも・・・と(思い込み)、勝手に解説します。

まず、前提
0.対応MTAは沢山あります。FCもCentOSもSendmail か Postfix が標準です。
  以下、postfixをMTAに説明していきます。
  ※準備する前に、# service postfix stop で postfix を止めておきます。
  ※postfixが普通に動く設定はしておいてね。

1.ただインストールする。
  1)# wget http://www.mailscanner.info/files/4/rpm/MailScanner-4.56.8-1.rpm.tar.gz
  2)# tar zxfv MailScanner-4.56.8-1.ta.gz
  3)# cd MailScanner-4.56.8-1
  4)# ./install.sh
   終わるまで放置。インストールが完了するとそのまま起動しますが、コケます。
   コケる理由は、標準で設定されているMTAがSendmailなためで、これでシステムにSendmailを残して
   いると、Sendmail が立ち上がります。
   たまに、起動時にArchive-Zip でエラーが出るときがありますが、付いてくる perl-Archive-Zip が
   古いのか、付属のPerl-Archive-Zip を入れるか yum -y update でエラーがなくなります。

2./etc/MailScanner/MailScanner.conf から以下を修正
  ※普通に修正する箇所(サーバ名とかサイト名とか)の説明は省く(^^ゞ
  1)、Run As User = と Run As Group = 、MTA = を postfix
  2)、Incoming Queue Dir = を /var/spool/postfix/hold
  3)、Outgoing Queue Dir = を /var/spool/postfix/incoming
  4)、SpamAssassin Local Rules Dir = と SpamAssassin Defaul Rules Dir = を
     /etc/mail/spamassassin

3./etc/MailScanner/virus.scanners.conf から以下を修正
  17行目の clamav の一番右端 /usr/local を /usr に修正
  crontab または cron.daily あたりに clamav-update または、スクリプトを入れているとしたら、
  削除しておいてください(入れておいてもいいが・・・)
  MailScanner のスクリプトがウィルス定義ファイルを更新します(正確には freshclamを起動します)

4、起動スクリプトの修正
  起動スクリプトはそのまま起動すると、postfixを2基立ち上げる設定になっているので、
  1つだけにする。そのための設定が上の2)と3)です。
  /etc/rc.d/init.d/MailScanner の
  1)106行目の fi をコメント
  2)113行目の fi の前に fi を追加。
  ※無駄なメッセージが出るので、だいぶ弄くったものがあります。欲しい方は・・・

5.サービスからpostfix を削除
  # chkconfig postfix off
  MailScanner 起動スクリプトから起動されます。

6.postfix の main.cf に1行加える。
  header_checks = regexp:/etc/postfix/header_checks

7.header_checks の最終行に次を加える。
  /^Received:/ HOLD

8./etc/rc.d/init.d/MailScanner start か service MailScanner start で起動。

@.MailScanner のメール配送は以下の流れになります。
  1)誰かが送信したメールがMTA(postfix)に拾われ、/var/spool/postfix/hold に HOLD されます。
  2)MailScanner がスパムチェックの後、ウィルスチェックを行います。
  3)/var/spool/postfix/incoming からメールキューが各配送先に送り届けます。

うまく起動すると、以下のようなヘッダ情報になります<細かいところまだ調整中です。
・・・
From: メールアドレス
MIME-Version: 1.0
X-サーバ名(ホスト名)-MailScanner-Information: なんちゃらかんちゃら
X-サーバ名(ホスト名)-MailScanner: なんちゃらかんちゃら
X-サーバ名(ホスト名)-MailScanner-From: メールアドレス
X-Spam-Status: No
 Re: SPAMチェックに一苦労 ( No.2 )
日時: 2006/11/08 11:25
名前: mojaxp 解説

実際のメールの流れ

Nov 8 04:56:11 ホスト名 postfix/pickup[13504]: 1CB0532C04F: uid=0 from=<root>
Nov 8 04:56:11 ホスト名 postfix/cleanup[13512]: 1CB0532C04F: hold: header Received: by メールサーバ名 (Postfix, from userid 0)??id 1CB0532C04F; Wed, 8 Nov 2006 04:56:10 +0900 (JST) from local; from=<送信元> to=<発送先>
Nov 8 04:56:11 ホスト名 postfix/cleanup[13512]: 1CB0532C04F: message-id=<20061107195611.1CB0532C04F@メールサーバ名>
Nov 8 04:56:12 ホスト名 MailScanner[11565]: New Batch: Scanning 1 messages, 1026 bytes
Nov 8 04:56:12 ホスト名 MailScanner[11565]: Expired 1 records from the SpamAssassin cache
Nov 8 04:56:13 ホスト名 MailScanner[11565]: Virus and Content Scanning: Starting
Nov 8 04:56:15 ホスト名 MailScanner[11565]: Requeue: 1CB0532C04F.2148C to 88ED632C058
Nov 8 04:56:15 ホスト名 MailScanner[11565]: Uninfected: Delivered 1 messages
Nov 8 04:56:15 ホスト名 postfix/qmgr[11555]: 88ED632C058: from=<送信元>, size=1244, nrcpt=1 (queue active)
Nov 8 04:56:15 ホスト名 postfix/virtual[13569]: 88ED632C058: to=<あて先>, orig_to=<root>, relay=virtual, delay=5, status=sent (delivered to maildir)
Nov 8 04:56:15 ホスト名 postfix/qmgr[11555]: 88ED632C058: removed
 Re: SPAMチェックに一苦労 ( No.3 )
日時: 2006/11/09 03:27
名前: mojaxp 解説

もう一つ設定が残ってました。

MailScannerをインストールすると、/etc/cron.hourly に update_virus_scanners というスクリプトが入ります。
これが、/usr/bin の freshclam を呼び出して、clamAV のDBを更新します。
ただ、ディストリによってなのか、本体のclamd のインストール先が微妙に異なるようで、
/usr/sbin なのか /usr/bin なのかの違いまでは対応しきれていないようです。
つまり、freshclam があるところに、本体の clamd を探しにいくようなので、そこに無い場合は、
# which freshclam
/usr/bin/freshclam

# which clamd
/usr/sbin/clamd  ← こうなっている場合は、以下を

# cd /usr/bin
# ln -s /usr/sbin/clamd clamd



今頃になってですが、MailScanner をインストールするときにタイプする install.sh は、
以下のモジュールをコンパイル、インストール(rpm)します。(Ver 4.56.8-1 現在)

MailScanner-perl-MIME-Base64-3.05-5.src.rpm
perl-Archive-Zip-1.16-1.src.rpm
perl-Compress-Zlib-1.41-1.src.rpm
perl-Convert-BinHex-1.119-2.src.rpm
perl-Convert-TNEF-0.17-1.src.rpm
perl-DBD-SQLite-1.12-1.src.rpm
perl-DBI-1.50-2.src.rpm
perl-ExtUtils-MakeMaker-6.30-1.src.rpm
perl-File-Spec-0.82-1.src.rpm
perl-File-Temp-0.16-1.src.rpm
perl-Filesys-Df-0.90-1.src.rpm
perl-Getopt-Long-2.35-1.src.rpm
perl-HTML-Parser-3.54-1.src.rpm
perl-HTML-Tagset-3.03-1.src.rpm
perl-IO-stringy-2.108-1.src.rpm
perl-MIME-tools-5.420-1.src.rpm
perl-MailTools-1.71-1.src.rpm
perl-Net-CIDR-0.10-1.src.rpm
perl-Net-IP-1.24-1.src.rpm
perl-Storable-2.15-1.src.rpm
perl-Sys-Hostname-Long-1.4-1.src.rpm
perl-Sys-Syslog-0.18-1.src.rpm
perl-Time-HiRes-1.86-1.src.rpm
perl-TimeDate-1.16-3.src.rpm

以下はそのままインストールされます。

mailscanner-4.56.8-1.noarch.rpm
tnef-1.4.3-1.i386.rpm


標準のamavisd-newはインストールする際に、必要なモジュールも yum が集めてきますが、
MailScanner は、ま、提供モジュールとしては存在しないため、その他のこの類同様、通常ならシステムに
不足分モジュールがあることになるのですが、MailScanner に限っては、yum 等でかき集めてくる必要はありません。
これらは、MailScanner-4.56.8-1.rpm.tar.gz に入っています。

アンチウィルスソフトの設定に関しては、MailScanner が勝手に認識します。
しいて自分で設定する必要はありませんが、以上のように微調整は必要です・・・


ところで、実際、私以外に使っている人っているのだろうか?(^^ゞ
書き込んだ内容に関して、設定ミス等レスが無いところを見ると、いないのかな・・・

ともあれ、参考になりましたでしょうか?
 Re: SPAMチェックに一苦労 ( No.4 )
日時: 2006/11/09 05:26
名前: Johann
参照: http://www.geocities.co.jp/SiliconValley-Sunnyvale/1839/index.html

mojaxpさん

私はmailscannerを使っていませんが、開示いただいた手順は大変参考になります。
会社で買って遊んでるドメインが一つあるので、メールサーバーを
立てる時間が出来たらトライしてみようと思います。

ありがとうございました。
 Re: SPAMチェックに一苦労 ( No.5 )
日時: 2006/11/09 07:52
名前: 管理者

mojaxpさん、こんにちは。

貴重な情報をありがとうございます。
これだけで十分なコンテンツとなりそうです。(それとも、当サイトのコンテンツとして作成してもらえますか?(笑))
雑談掲示板に載っているだけでは勿体無いですね。
しかし、当サイトの全般的なアクセス数を見ると『雑談掲示板』はいつもTOP5に入っているのでレス数こそ少ないですが閲覧数は多いと思います。

> ところで、実際、私以外に使っている人っているのだろうか?(^^ゞ
> 書き込んだ内容に関して、設定ミス等レスが無いところを見ると、いないのかな・・・

推測ですが、こちらのスレッドを見ながら現在設定中の方がおられるのではないでしょうか?
しばらくするとレスが上がりそうな気がします。
当サイトの新コンテンツアップ時もしばらくは質問が上がってきません。
設定中や動作しなかったとしても、自分がどこか設定ミスをしているのではないか?と試行錯誤していると思います。
そうなってくると、このスレッドを何度も確認しに来るので参照数が一気に上がってきます。
これでmojaxpさんが疑問に思っている「ところで、実際、私以外に・・・・」がわかるでしょうね。
 Re: SPAMチェックに一苦労 ( No.6 )
日時: 2006/11/09 16:18
名前: mojaxp

管理者さん こんにちは

実際、自サイト備忘録にまとめてはいますが、こちらのサイトのように詳しく作るつもりが無いので(笑
気に入っていただけたら、コンテンツにしてみてはいかがでしょう?

というのも、本当に無いんですよね。MailScanner の解説サイト。

私がコレを知ったのは、Turbolinux を使っていた頃で、amavisd-new の rpm も無いという状態で、うっかり買ってしまった(笑)F-Secure Anti Virus は、amavisd-new ではなく、MailScanner のほうを薦めていたのと、F-Secure サイトで MailScanner から使うには…解説が載っていたためにコレを使うようになった。そんな感じです。
ただ、当時、X-MailScanner のメールヘッダを持つウィルス添付メールが横行していたらしく、自鯖管理者には不人気だったようで、さらっと拾える記事(google等)ではインストールはできても設定はできないぞ! という状態でした。

途中、FC5サーバは面倒になって amavisd-new を使ってたりしたのですが、FC6でたまたまバーチャルホストに躓いて、だったら postfix の設定にはできるだけ触れない MailScanner がイイ鴨と、再び使うようになった…そんなところです。

まだまだ細かい設定(微調整です)がありますが、それは自鯖備忘録に書いていきます。
あ、備忘録ページは今のところホームページビルダーの中にあるので(笑)外からは見れません。
 Re: SPAMチェックに一苦労 ( No.7 )
日時: 2006/11/09 22:48
名前: 管理者

mojaxpさん。

レス、ありがとうございます。
MailScannerの構築法を今後に考慮させていただきます(笑)。
暫くは本業が多忙な為、検証等に時間が掛かりますが有意義な情報を役に立たせて頂きたいと思います。
(構築法→当スレッドのリンクだったりして・・・(暴笑!・・・))

本レスを書く時に気付いたのですが、90程の参照数が190程になっていますね。
1日で100の参照は劇的と思います。
やはり、自サバ構築者の方はSPAMメールやウィルスに敏感なんですね。
私自身も不正アクセスやSPAM等も過敏になっています。過去何件かSPAMと誤判断されたリピータ様からのメールがあって、受信できなかった事が何件かあります。
ただし、誤SPAMとなっても一様受信はしていますのでできる限り返信はさせて頂いています。
SPAM判断は難しいですが、完全拒否も考え物ですね・・・
今後も課題の一つとなりそうです。
 Re: SPAMチェックに一苦労 ( No.8 )
日時: 2006/11/10 11:45
名前: mojaxp

あの……
私個人、「さぁさぁ、こんなもんがある。使ってみれ」というような気持ちではなく、
次のようなシステムを組んでいる場合、MailScanner のほうが適しているから、
自鯖オーナーさんでも、こういうシステムは別に珍しくないだろうな……多分、悩んでいる人も多いだろうな……
ということで書かさしていただきました。
基本的に自分のサイトでやりゃあいいんでしょうが、
現時点、公開していないのと、編集にもうしばらくかかるため、こちらの掲示板に書かさしていただいた次第です。
あえて引用は避けますが、お気に障ったことなどありましたら、陳謝致します。


さて本題ですが、sendmailは今だかつて触ったことが無いので、postfixに偏ります。
いわゆるバーチャルドメイン、平たく言えば、
複数のドメイン持つメールアドレスを、1つのMTAで送受信してしまおう…というものですが、
実際にドメインを複数持っている人もいるでしょう。でも、単独ドメインでの利用もアリです。
例えば、コンテンツによってメールアドレスを複数用意したい場合や、
家族や小規模事業主が家族や従業員のメールアドレスを抱えた場合です。
私のところは複数ドメインでコンテンツ毎、家族もメールアドレスがあります。
△XENで複数OSを運用して、単独のMTAを複数置く…という考えもアリかもしれません…

普通、メールアドレス=Linuxに限らずUser になり、/home/username を持ちますが、
沢山ユーザーを抱える方式には管理する上で限界があり、セキュリティ面を考えると、あまり好ましくありません。
そこで、バーチャルドメインを流用します。
MySQLを使って構築するバーチャルドメイン対応MTAではユーザー毎の/home/usernameは作りません。
メールアドレスオーナーが保有できるのは、メールボックスだけになります。

で、問題になるのがSPAMをどう扱うか……。
バーチャルドメインで動かした場合、
よく使う方法の procmail は使えないらしぃ(方法が探せないだけかもしれないが……)
この場合、オリジナルのパイプ(スクリプトを含む)を作って master.cfに噛ませる方法が楽なのですが、
ノーマルのメールもそうでないメールも、MTAと[amavisd、spamassassin]間の流れが同じで複雑になります。
「送信者→(POSTFIX)→amavisd-new→spamassassin→amavisd-new→(POSTFIX)→オリジナルのフィルタ→sendmail→(POSTFIX)→受信者」
※sendmailはMTAのsendmailではありません。
こんな感じです。
ここで、最初と最後のPOSTFIXを経由する部分、master.cfの設定を誤るとメールがMTAの中でループします。
この辺の解説は、postfixのドキュメント(英語)に詳しく書いてあります。

設定ミスやコンパイルが起因するそもそも出来ない等の理由による無用なトラブルを避け、
あっさりしたメールの流れを確保したい場合、MailScanner のほうが適している。そんなところです。
別に「バーチャルドメインでのMailScannerの利用」でなくても同じです。

以降の解説は、管理者さんのお薦めにより、自鯖で行います。
お騒がせしました。

■ その他

ページ先頭へ


Copyright(©)2004-2018 First home server construction. All Right Reserved.