インストールガイド · 5 min read · Sep 24, 2025

SpamAssassin-ClamAV-Procmail-Howto

SpamAssassin-ClamAV-Procmail-Howto

Version 1.0
Author: Falko Timme

この文書は、SpamAssassin(SPAMフィルタリング用)とClamAV(ウイルス、トロイの木馬、ワームなどのフィルタリング用)をインストールし、procmailレシピを使用してそれらを呼び出す方法を説明しています。これは、SendmailまたはPostfixがローカルユーザーにメールを配信するシナリオに適しています。すべての*nixオペレーティングシステムで動作するはずです(パスなどに関してわずかな変更が必要な場合があります)。私はこれまでDebian Woodyでテストしました。

最終的には、SendmailまたはPostfixがローカルユーザーにメールを配信し、メールがprocmailに渡され、SpamAssassinとClamAVが呼び出されて、ユーザーの受信トレイに到着する前にメールがフィルタリングされるシステムが構築されます。ただし、SendmailとPostfixのインストールはこの文書ではカバーされていません。

このハウツーは実用的なガイドとして意図されており、理論的な背景はカバーされていません。それらはウェブ上の他の多くの文書で扱われています。

この文書は、いかなる種類の保証もなく提供されます!

ご注意: 42go ISP-Managerというサーバーコントロールパネルを使用している場合、このチュートリアルに従う必要はありません。なぜなら、42go ISP-ManagerにはSpamAssassinとClamAVが付属しており、両方とも42go ISP-Managerを通じて構成できるからです!

1 SpamAssassinのインストール

SpamAssassinをインストールする方法はいくつかあります。ここではそのうちの3つを説明します:

| 1. | Perlシェルを使用したインストール コマンドラインにrootとしてログインし、次のコマンドを実行してPerlシェルを起動します: perl -MCPAN -e shell Perlシェルを初めて実行する場合、いくつかの質問が表示されます。ほとんどの場合、デフォルトの回答で問題ありません。 ご注意: システムでファイアウォールを実行している場合、Perlシェルが必要なモジュールを遅延なく取得できるように、作業中にファイアウォールをオフにする必要があるかもしれません。その後、再度オンにできます。ここで説明する他の2つの方法と比較してPerlシェルの大きな利点は、新しいモジュールをインストールする際に依存関係を考慮することです。つまり、他のモジュールをインストールする際に前提条件のPerlモジュールが不足していることが判明した場合、Perlシェルはその前提条件モジュールをインストールするかどうかを尋ねます。その質問には「はい」と答えるべきです。次のコマンドを実行してSpamAssassinと他の必要なモジュールをインストールします: install HTML::Parser
install DB_File
install Net::DNS
(テストを有効にするように求められた場合は、いいえを選択)
install Digest::SHA1
install Mail::SpamAssassin
q
(Perlシェルを終了する) モジュールがすでにシステムにインストールされている場合、次のようなメッセージが表示されます: HTML::Parserは最新です。 モジュールの成功したインストールは次のようになります: /usr/bin/make install – OK | | 2. | ソースからのインストールご注意: SpamAssassinをソースからコンパイルする前に、前提条件のPerlモジュール(少なくともHTML::Parser)をインストールする必要があります。インストールされていない場合は、ここで説明した他の2つの方法のいずれかを使用してインストールするか、http://www.cpan.orgからソースを取得してコンパイルします。これは、ここでSpamAssassinのために説明されている手順に似ています。) cd /tmp
wget http://www.mirror.ac.uk/sites/spamassassin.taint.org/spamassassin.org
/released/Mail-SpamAssassin-2.63.tar.gz
(1行)
tar xvfz Mail-SpamAssassin-2.63.tar.gz
cd Mail-SpamAssassin-2.63
perl Makefile.PL
make
make install
| | 3. | Webminを使用したインストール システムにwebmin( http://www.webmin.com)がインストールされている場合、それを使用してPerlモジュールをインストールできます。webminにログインし、*Others -> Perl Modulesに移動してSpamAssassinをインストールします: エラーメッセージが表示される場合、これは主に前提条件のモジュールがシステムに不足しているためです。それらをインストールし(少なくともHTML::Parser*が必要です)、最初にインストールしようとしたモジュールを再度インストールしてみてください。 |

SpamAssassinは/usr/local/share/spamassassin/にインストールされます。

2 ClamAVのインストール

cd /tmp
groupadd clamav
useradd -g clamav -s /bin/false -c “Clam AntiVirus” clamav
wget http://heanet.dl.sourceforge.net/sourceforge/clamav/clamav-0.67.tar.gz
tar xvfz clamav-0.67.tar.gz
cd clamav-0.67
./configure –sysconfdir=/etc

ご注意: ./configure –helpは、利用可能なすべての構成オプションのリストを提供します。)

make
su -c “make install”

今、clamdを実行すると、エラーメッセージが表示されます:

ERROR: /etc/clamav.confの例の設定ファイルを編集してください。

少なくともExampleディレクティブを削除する必要があります。私の/etc/clamav.confは次のようになります:

| ## ## Clam AVデーモンの例の設定ファイル ## このファイルを編集する前にclamav.conf(5)マニュアルをお読みください。 ## # 以下の行をコメントアウトまたは削除します。 #Example # ロギングを有効にするにはこのオプションのコメントを外します。 # LogFileはデーモンを実行しているユーザーが書き込み可能でなければなりません。 # フルパスが必要です。 #LogFile /tmp/clamd.log # デフォルトでは、ログファイルは書き込みのためにロックされています - ロックは # clamdを複数回実行することから保護します(別のclamdを実行したい場合は、 # 設定ファイルをコピーし、LogFile変数を変更し、 # --config-fileオプションでデーモンを実行してください)。だから、 # このオプションのコメントを外さないでください。 #LogFileUnlock # ログファイルの最大サイズ。デフォルトは1Mbです。 # 0の値は制限を無効にします。 # メガバイトのサイズを指定するには'M'または'm'を使用できます(1M = 1m = 1048576バイト) # キロバイトのサイズを指定するには'K'または'k'を使用します(1K = 1k = 1024バイト)。 # バイト単位でサイズを指定するには修飾子を使用しないでください。 #LogFileMaxSize 2M # 各メッセージのログ時間。 #LogTime # システムロガーを使用します(LogFileと一緒に動作することができます)。 #LogSyslog # 詳細なロギングを有効にします。 #LogVerbose # このオプションを使用すると、リスニングしている # デーモン(メインスレッド)のプロセス識別子を保存できます。 #PidFile /var/run/clamd.pid # .dbファイルを含むディレクトリへのパス。 # デフォルトはハードコーディングされたディレクトリ(主に/usr/local/share/clamav、 # インストールオプションによって異なります)。 #DatabaseDirectory /var/lib/clamav # デーモンはローカルまたはネットワークモードで動作します。 # 現在、セキュリティ上の理由からローカルモードが推奨されています。 # ローカルソケットへのパス。デーモンは # 作成されたファイルのモードを変更しません(移植性の理由)。 # デーモンを実行するユーザーがアクセスできるディレクトリに作成することをお勧めします。 LocalSocket /tmp/clamd # 不正なシャットダウン後に古いソケットを削除します。 #FixStaleSocket # TCPポートアドレス。 #TCPSocket 3310 # TCPアドレス。 # デフォルトではINADDR_ANYにバインドしますが、 # おそらく賢明ではありません。 # 外部からの保護を提供するために、以下を有効にします。 #TCPAddr 127.0.0.1 # 保留中の接続のキューの最大長。 # デフォルトは15です。 #MaxConnectionQueueLength 30 # 有効にすると、入力ストリーム(STREAMコマンドを参照)は # スキャンの前にディスクに保存されます - これによりアーカイブ内のスキャンが可能になります。 #StreamSaveToDisk # この制限を超えた場合は接続を閉じます。 #StreamMaxLength 10M # 同時に実行されるスレッドの最大数。 # デフォルトは5で、典型的なワークステーションには十分です。 # サーバーマシンの場合はスレッド数を増やす必要があります。 #MaxThreads 10 # スレッド(スキャナー - 単一タスク)はこの時間(秒)後に停止します。 # デフォルトは180です。値が0の場合はタイムアウトが無効になります。 # セキュリティのヒント:無効にするのではなく、 # タイムアウトを増やしてください。 #ThreadTimeout 500 # スキャンされるディレクトリの最大深さ。 MaxDirectoryRecursion 15 # ディレクトリのシンボリックリンクをたどります。 # セキュリティのヒント:潜在的な問題を避けるために、 # ディレクトリ再帰制限を有効にする必要があります。 #FollowDirectorySymlinks # 通常のファイルのシンボリックリンクをたどります。 #FollowFileSymlinks # 内部チェックを行います(例:データベース構造の整合性を確認します) # デフォルトではclamdは3600秒(1時間)ごとに自分自身をチェックします。 #SelfCheck 600 # ウイルスが見つかった場合にコマンドを実行します。コマンド文字列内の%vと%fは # それぞれウイルス名と感染したファイル名に置き換えられます。 # # セキュリティ警告:ウイルスイベントコマンドが悪用されないようにしてください。 # 例:%fが使用されるときに特別なファイル名を使用すること。 # コマンドのフルパスを常に使用してください。 # この指令でファイルを削除/移動しないでください! #VirusEvent /usr/local/bin/send_sms 123456789 "VIRUS ALERT: %f: %v" # 選択したユーザーとして実行します(clamdはrootによって開始される必要があります)。 # デフォルトでは特権を放棄しません。 User clamav # 補助グループアクセスを初期化します(/etc/groupに # ユーザーが追加されます。clamdはrootによって開始される必要があります)。 #AllowSupplementaryGroups # バックグラウンドにフォークしないでください。デバッグに便利です。 #Foreground # libclamavでデバッグメッセージを有効にします。 #Debug ## ## メールサポート ## # メールファイルをスキャンする予定がある場合はこのオプションのコメントを外します。 ScanMail ## ## アーカイブサポート ## # アーカイブのスキャンを無効にするにはこの行のコメントを外します。 ScanArchive # デフォルトでは、組み込みのRAR解凍プログラムはデフォルトで無効になっていますが、 # コードがひどく漏れていますが、有効にするのは良い考えです。 #ScanRAR # 以下のオプションは、アーカイブボムによるサービス拒否攻撃からシステムを保護します。 # この制限を超えるアーカイブ内のファイルはスキャンされません。 # 0の値は制限を無効にします。 # 警告:unrarlibの実装により、RARアーカイブ内の全ファイル(1つずつ)が # メモリに解凍されます。だから、この制限を無効にしないでください(もちろん増やすことはできます!) ArchiveMaxFileSize 10M # アーカイブは再帰的にスキャンされます - 例:ZipアーカイブにRARファイルが含まれている場合、 # RARファイルも解凍されます(ただし、再帰制限が # 少なくとも1に設定されている場合)。このオプションで再帰レベルを設定できます。 # 0の値は制限を無効にします。 ArchiveMaxRecursion 5 # アーカイブ内でスキャンされるファイルの数。 # 0の値は制限を無効にします。 ArchiveMaxFiles 1000 # より少ないメモリを使用する遅い解凍アルゴリズムを使用します。このオプションは # bzip2解凍プログラムのみに影響します。 #ArchiveLimitMemoryUsage ## ## Clamuko設定 ## 警告:これは実験的なソフトウェアです。 ## システムがハングアップする可能性が非常に高いです!!! ## # Clamukoを有効にします。Dazuko(/dev/dazuko)は # 構成され、実行されている必要があります。 #ClamukoScanOnLine # Clamukoのアクセスマスクを設定します。 ClamukoScanOnOpen ClamukoScanOnClose ClamukoScanOnExec # インクルードパスを設定します(それらのすべてのファイルがスキャンされます)。 # 複数のClamukoIncludePathオプションを持つことができますが、各ディレクトリは # 別のオプションで追加する必要があります。すべてのサブディレクトリもスキャンされます。 ClamukoIncludePath /home #ClamukoIncludePath /students # 除外パスを設定します。すべてのサブディレクトリも除外されます。 #ClamukoExcludePath /home/guru # スキャンするファイルサイズを制限します(おそらく映画ファイルをスキャンしたくないでしょう)。 # 0の値は制限を無効にします。1Mbが適切です。 ClamukoMaxFileSize 1M # アーカイブサポートを有効にします。これはclamdセクションの制限を使用します。 #(このオプションはScanArchiveに依存せず、clamdでアーカイブサポートを無効にすることができます)。 # ClamukoScanArchive |

今、ClamAVのinitスクリプトを作成する必要があります( /etc/init.d/clamd):

| #!/bin/bash TMPDIR=/tmp PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin case "$1" in start) echo "ClamAVを起動しています..." if [ -S /tmp/clamd ]; then echo "ClamAVはすでに実行中です!" else /usr/local/bin/freshclam -d -c 10 --datadir=/usr/local/share/clamav /usr/local/sbin/clamd fi echo "ClamAVは現在稼働中です!" ;; stop) echo "ClamAVをシャットダウンしています..." array=(`ps ax | grep -iw '/usr/local/bin/freshclam' | grep -iv 'grep' | awk '{print $1}' | cut -f1 -d/ | tr ' ' ' '`) element_count=${#array[@]} index=0 while [ "$index" -lt "$element_count" ] do kill -9 ${array[$index]} let "index = $index + 1" done array=(`ps ax | grep -iw '/usr/local/sbin/clamd' | grep -iv 'grep' | awk '{print $1}' | cut -f1 -d/ | tr ' ' ' '`) element_count=${#array[@]} index=0 while [ "$index" -lt "$element_count" ] do kill -9 ${array[$index]} let "index = $index + 1" done if [ -S /tmp/clamd ]; then rm -f /tmp/clamd fi echo "ClamAVが停止しました!" ;; restart) $0 stop && sleep 3 $0 start ;; *) echo "使用法: $0 {start|stop|restart}" exit 1 esac exit 0 |

chmod 755 /etc/init.d/clamd

今、ClamAVを起動します:

/etc/init.d/clamd start

ps auxを実行すると、clamdプロセス(ソケット/tmp/clamdを使用)と、最新のウイルス署名の更新を取得する責任があるfreshclamプロセスがいくつか表示されます。これらは/usr/local/share/clamavの下にあります。コマンド **

/usr/local/bin/freshclam -d -c 10 –datadir=/usr/local/share/clamav

は、clamd initスクリプト内で、freshclamが新しい署名を1日10回チェックすることを保証します。

ClamAVをブート時に起動するには、次のようにします:

ln -s /etc/init.d/clamd /etc/rc2.d/S20clamd
ln -s /etc/init.d/clamd /etc/rc3.d/S20clamd
ln -s /etc/init.d/clamd /etc/rc4.d/S20clamd
ln -s /etc/init.d/clamd /etc/rc5.d/S20clamd
ln -s /etc/init.d/clamd /etc/rc0.d/K20clamd
ln -s /etc/init.d/clamd /etc/rc1.d/K20clamd
ln -s /etc/init.d/clamd /etc/rc6.d/K20clamd

3 trashscanのインストール

trashscanは、procmailとClamAVの間の接続を作成するシェルスクリプトです(つまり、メールが到着すると、procmailが呼び出され、それ自体がtrashscanを呼び出してClamAVによってウイルスがスキャンされます)。これはClamAVに付属しています。

*cd /tmp/clamav-0.67/contrib/trashscan
tar xvfz trashscan-0.08.tar.gz
cd trashscan-0.08

  • cp -pf trashscan /usr/local/sbin/

今、/usr/local/sbin/trashscanの「Settinx」セクションのいくつかの変数を調整する必要があります。私の設定は次のとおりです:

| #!/bin/bash # # TrashScan v0.08; ウイルスのためにメールをスキャン # ZapCoded by Trashware; 13.10.2002 # Email: [email protected] # Web: http://trashware.mirrorz.com # PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin # --------------------------------------- Begin Settinx ---------------------------------------- # SCANDIR=$HOME/tmp # ウイルススキャン用の一時ディレクトリ。 # セキュリティ:ここに公開アクセス可能なディレクトリを定義しないでください!!! # $HOME/tmpは適切です。 #DECODER=metamail # デコーダー:「metamail」または「uudeview」 #DECODPRG=metamail # デコーダーへの絶対パス:metamail DECODER=uudeview # デコーダー:「metamail」または「uudeview」 DECODPRG=/usr/local/bin/uudeview # デコーダーへの絶対パス:uudeview VSCANPRG=/usr/local/bin/clamscan # ウイルススキャナーへの絶対パス VSCANOPT="--quiet --tempdir=$HOME/tmp --recursive --max-files=500 \ --max-space=30M --unzip=/usr/bin/unzip --unrar=/usr/bin/unrar \ --unarj=/usr/bin/unarj --zoo=/usr/bin/zoo --lha=/usr/bin/lha \ --jar=/usr/bin/unzip --tar=/bin/tar --tgz=/bin/tar" # ウイルススキャナーのパラメータ。 # セキュリティ:--tempdir定義のために公開アクセス可能なディレクトリを選択しないでください!!! # --tempdir=$HOME/tmpは適切です。 VSCANVEX=1 # ウイルスが見つかった場合のウイルススキャナーの終了コード # VSCANSUSP=mail.virus # 疑わしいメールを保存するファイル(see # procmail.trashscan) FORMAIL=formail # formailへの絶対パス PROCMAIL=procmail # procmailへの絶対パス SENDMAIL=sendmail # sendmailへの絶対パス CAT=cat # catへの絶対パス GREP=grep # grepへの絶対パス LOGGER=logger # loggerへの絶対パス LOGPRIO=mail.warn # loggerのログレベル MKDIR=mkdir # mkdirへの絶対パス RM=rm # rmへの絶対パス SED=sed # sedへの絶対パス [email protected] # ウイルス警告メッセージの受信者 [email protected] # ウイルス警告メッセージの送信者 [email protected] # 連絡先(ウイルス警告のメール本文に表示されます) # ---------------------------------------- End Settinx ---------------------------------------- # |

スクリプトの最初にPATH変数を設定したことに注意してください:

PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin

これにより、trashscanが必要とするほとんどのプログラム(例:formailprocmailsendmail)の絶対パスを指定する必要がなくなります。

VSCANOPTは、さまざまな圧縮形式のファイルを解凍するために必要なプログラムへのパスを指定します(メールに圧縮された添付ファイルが付いている場合、例:zip、tar.gz)。すべてのプログラムが必要なわけではありませんが、少なくともunziptarがインストールされていることをお勧めします(インストールされていない場合は、http://www.rpmfind.netで*unzip*と*tar*を検索し、適切なパッケージをインストールしてください。

rpm -ivh name-of-package.rpm

Debianを使用している場合、次のようにするだけです:

apt-get install unzip tar )。

ウイルスが見つかった場合に通知を受け取る人の正しいメールアドレスを指定してください。

4 uudeviewのインストール

trashscanは、メールメッセージをデコードするプログラムが必要です。上記のtrashscan設定で、trashscanが使用する uudeviewを指定しましたので、今からインストールします。

cd /tmp
wget http://www.fpx.de/fp/Software/UUDeview/download/uudeview-0.5.19.tar.gz
tar xvfz uudeview-0.5.19.tar.gz
cd uudeview-0.5.19
./configure
make
make install

5 Procmailの設定

procmailは通常、ほとんどのディストリビューションにデフォルトでインストールされているため、ここではprocmailのインストールについては触れません。

which procmailを実行して、procmailがどこにあるかを確認します(私の場合は/usr/bin/procmailです)。

これから、testuserというユーザーのためにprocmailを設定する方法を示します。彼のホームディレクトリは/home/www/web1/user/testuserの下にあります。このパス内のディレクトリ(/home/home/www/home/www/web1/home/www/web1/user/home/www/web1/user/testuser)のいずれも、グループまたはワールド書き込み可能でないことを確認してください。
それらは rwxr-xr-x(または755)の権限を持っている必要があります。さもなければ、procmailは正しく動作しない可能性があります!

最初に、testuserにメールが到着したときにprocmailが呼び出されるように、ファイル/home/www/web1/user/testuser/.forwardを作成する必要があります。
その内容は次のとおりです:

| "|/usr/bin/procmail -f-" |

chown testuser /home/www/web1/user/testuser/.forward
chmod 600 /home/www/web1/user/testuser/.forward

次に、ファイル/home/www/web1/user/testuser/.procmailrcを作成します。これは、procmailがレシピ(すなわち、実行するコマンド)を探すファイルです。明確さのために、単純にこのファイルにメインレシピを含めます:

| ## MAILDIR=$HOME/Maildir/ ## DEFAULT=$MAILDIR INCLUDERC=/home/www/web1/user/testuser/.antivirus.rc INCLUDERC=/home/www/web1/user/testuser/.html-trap.rc INCLUDERC=/home/www/web1/user/testuser/.spamassassin.rc |

ご注意: メールが/home/www/web1/user/testuser/Maildir/の下に保存される場合は、最初の2行のコメントを外してください。

最初のレシピは/home/www/web1/user/testuser/.antivirus.rcです:

| # # TrashScanのためのprocmail設定:ZapCoded by Trashware; 13.10.2002 # # [ ... ] # ------------------------------------------------------------------------------------- # # ウイルススキャンセクション ... # # ------------------------------------------------------------------------------------- # # 1. TrashScanを実行 :0 * multipart * !^X-Virus-Scan: | /usr/local/sbin/trashscan # 2. タグ付けされたウイルスメールをフィルタリング :0: * ^X-Virus-Scan: Suspicious /dev/null |

/home/www/web1/user/testuser/.html-trap.rcについては以下で説明しますので、2つ目のレシピは/home/www/web1/user/testuser/.spamassassin.rcです:

| # SpamAssassinサンプルprocmailrc # # メールをspamassassinにパイプします(spamc/spamdの組み合わせを使用している場合は、'spamassassin'を'spamc'に置き換えます) # 条件行は、250 kB未満のメッセージのみがSpamAssassinによって処理されることを保証します。 # ほとんどのスパムは数kを超えないため、大きなメッセージを扱うことは # SpamAssassinをひざまずかせる可能性があります。 :0fw * < 256000 | /usr/local/bin/spamassassin --prefs-file=/home/www/web1/user/testuser/.user_prefs # スパムとしてタグ付けされたすべてのメール(例:設定された閾値を超えるスコアを持つ)は # "/dev/null"に移動されます。 #:0: #* ^X-Spam-Status: Yes #/dev/null # procmailのバグを回避:stderrの出力は"F"を"From"から削除します。 # これを再追加します。 :0 * ^^rom[ ] { LOG="*** From_ヘッダーからFを削除しました!修正中。 " :0 fhw | sed -e '1s/^/F/' } |

これにより、すべてのメールが受け入れられ、スパム(スパムとしてマークされ、ユーザーのメールクライアントによってソートされる可能性があります)が受け入れられます。この戦略は、SpamAssassinがメールを正しく識別することを確認するまでの最初の段階で推奨されます。スパムを削除したい場合は、次の.spamassassin.rcを使用してください:

| # SpamAssassinサンプルprocmailrc # # メールをspamassassinにパイプします(spamc/spamdの組み合わせを使用している場合は、'spamassassin'を'spamc'に置き換えます) # 条件行は、250 kB未満のメッセージのみがSpamAssassinによって処理されることを保証します。 # ほとんどのスパムは数kを超えないため、大きなメッセージを扱うことは # SpamAssassinをひざまずかせる可能性があります。 :0fw * < 256000 | /usr/local/bin/spamassassin --prefs-file=/home/www/web1/user/testuser/.user_prefs # スパムとしてタグ付けされたすべてのメール(例:設定された閾値を超えるスコアを持つ)は # "/dev/null"に移動されます。 :0: * ^X-Spam-Status: Yes /dev/null # procmailのバグを回避:stderrの出力は"F"を"From"から削除します。 # これを再追加します。 :0 * ^^rom[ ] { LOG="*** From_ヘッダーからFを削除しました!修正中。 " :0 fhw | sed -e '1s/^/F/' } |

次に、ファイル/home/www/web1/user/testuser/.user_prefsを作成します。ここにはtestuserのSpamAssassin設定が含まれます:

| # SpamAssassinユーザープリファレンスファイル。 # 'perldoc Mail::SpamAssassin::Conf'を参照して、調整可能な詳細を確認してください。 #* #* 注意:このファイルは、ユーザーの #* ディレクトリにコピーされるまでSpamAssassinによって読み込まれません。 #* 実行時に、ユーザーがすでにホームディレクトリにプリファレンスを持っていない場合、 #* それがコピーされ、パーソナライズされたカスタマイズを行うことができます。 #* サイト全体のデフォルトを変更したい場合は、 #* /etc/spamassassinまたは/etc/mail/spamassassinにファイルを作成してください。 ########################################################################### # メールがスパムと見なされるまでのヒット数。 required_hits 5.0 rewrite_subject 1 subject_tag *SPAM* |

SpamAssassinは、各メールに対してスパムかどうかを判断するためにいくつかのテストを実行します。各テストは、そのメールに特定のポイントを割り当てます(テストが肯定的な場合)。ポイントが加算されます。required_hitsは、メールがスパムと見なされるポイントの量です。5.0は開始するのに適切な値です。

rewrite_subjectが1の場合、メールがスパムと見なされると、そのメールの件名にsubject_tagの値がタグ付けされ、testuserのメールクライアントによって適切な.spamassassin.rcが選択された場合にソートされることができます。

6 メールサニタイザーの設定

メールサニタイザー( http://www.impsec.org/email-tools/procmail-security.html)は、コンテンツフィルターの一種を形成するprocmailレシピのセットです。たとえば、HTMLメール内の悪意のあるjavascriptコードを無効にし、疑わしい添付ファイルの名前を変更することができます(例:example.exeはexample.12345DEFANGED-exeに名前が変更され、Windowsで単純にダブルクリックして開くことができなくなります。最初にディスクに保存し、その後意識的に名前を変更する必要があります。受信者は、添付ファイルを開くべきかどうかを考えさせられます)。

cd /tmp
wget http://www.impsec.org/email-tools/html-trap.procmail.gz
gunzip html-trap.procmail.gz
echo ‘PATH=”/usr/bin:$PATH:/usr/local/bin”‘ > /home/www/web1/user/testuser/.html-trap.rc
echo ‘SHELL=/bin/sh’ >> /home/www/web1/user/testuser/.html-trap.rc
cat html-trap.procmail >> /home/www/web1/user/testuser/.html-trap.rc

7 設定をテストする

.exe添付ファイル、サンプルSPAM、およびサンプルウイルス(もしあれば)をtestuserに送信することで、設定をテストできます。

受信したメールのヘッダーを確認してください。次の行が含まれているはずです:

X-Security: MIMEヘッダーはserver1.example.comでサニタイズされました 詳細についてはhttp://www.impsec.org/email-tools/sanitizer-intro.htmlを参照してください。 $Revision: 1.140 $Date: 2004-02-11 20:47:43-08

X-Virus-Scan: TrashScan v0.08によってスキャンされました server1.example.comで

X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on server1.example.com

リンク

SpamAssassin: http://www.spamassassin.org/

ClamAV: http://www.clamav.net/

Procmail: http://www.procmail.org/

Email Sanitizer: http://www.impsec.org/email-tools/procmail-security.html

この文書の元の場所:

http://www.falkotimme.com/howtos/spamassassin_clamav_procmail/

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。