このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
linux:ubuntu:spamassassin [2009/12/12 02:11] njviwemz 作成 |
linux:ubuntu:spamassassin [2010/07/11 19:23] (現在) admin |
||
---|---|---|---|
行 1: | 行 1: | ||
+ | ~~DISCUSSION: | ||
+ | |||
+ | |||
====== SpamAssassinのインストールと設定 ====== | ====== SpamAssassinのインストールと設定 ====== | ||
環境:Ubuntu 8.04 Server | 環境:Ubuntu 8.04 Server | ||
+ | |||
+ | postfix + courier-IMAP | ||
+ | |||
===== インストール ===== | ===== インストール ===== | ||
行 15: | 行 21: | ||
===== 設定 ===== | ===== 設定 ===== | ||
+ | |||
+ | * SpamAssassin 全体の設定ファイル / | ||
+ | * ロードするモジュールを記述 / | ||
+ | * 各ユーザのスパムルール $HOME/ | ||
+ | |||
+ | * / | ||
+ | |||
+ | |||
+ | ==== デーモンの設定 ==== | ||
+ | |||
+ | / | ||
+ | |||
+ | $ sudo vi / | ||
+ | |||
+ | デフォルトではデーモンとして起動しないようになっている。" | ||
+ | |||
+ | # Change to one to enable spamd | ||
+ | #ENABLED=0 | ||
+ | ENABLED=1 | ||
+ | |||
+ | 他のブログでは " | ||
+ | |||
+ | * --create-prefs : 各ユーザの設定ファイルを作成する | ||
+ | |||
+ | OPTIONS=" | ||
+ | |||
+ | Spamassassin のルールを自動更新する。 | ||
+ | |||
+ | #CRON=0 | ||
+ | CRON=1 | ||
+ | |||
+ | |||
+ | Spamassassin を再起動 | ||
+ | |||
+ | $ sudo / | ||
+ | |||
+ | こんなエラーがでたが、もう一度再起動したら出なかった。。。ま、いいか。 | ||
+ | |||
+ | Restarting SpamAssassin Mail Filter Daemon: No / | ||
+ | |||
+ | ==== Spamassassin の設定 ==== | ||
+ | |||
+ | プラグインファイルを編集。 | ||
+ | |||
+ | $ sudo vi / | ||
+ | |||
+ | 言語推定プラグインを使用する。 | ||
+ | |||
+ | # TextCat - language guesser | ||
+ | # | ||
+ | #loadplugin Mail:: | ||
+ | loadplugin Mail:: | ||
+ | |||
+ | |||
+ | ==== 個人設定ファイル ==== | ||
+ | |||
+ | 個人設定ファイルを用意する。 | ||
+ | |||
+ | $ mkdir ~/ | ||
+ | $ touch ~/ | ||
+ | |||
+ | ~/ | ||
+ | |||
+ | whitelist_from *hoge.ne.jp | ||
+ | |||
+ | とすると、ホワイトリストの設定ができる。 | ||
+ | |||
+ | |||
+ | ==== スパムメールを入れるフォルダを用意 ==== | ||
+ | |||
+ | スパムメール専用のメールフォルダを作成。フォルダは Thunderbird などのメールクライアントからでも作れる。 | ||
+ | |||
+ | 以下のコマンドで作ったフォルダがなぜか Thunderbird から見れなかったので、結局 Thunderbird で作ったフォルダを使うことにした。 | ||
+ | |||
+ | $ / | ||
+ | |||
+ | * オプション | ||
+ | * -f : 既存のメールディレクトリにフォルダを作成 | ||
+ | * Spam : 作成するフォルダの名前(任意の名前) | ||
+ | * ~/Maildir/ : 既存のメールディレクトリの場所 | ||
+ | |||
+ | ついでにスパムメールと誤判定されたメールを入れるフォルダを作成。 | ||
+ | |||
+ | $ / | ||
+ | |||
+ | |||
+ | ==== Spamassassin にメールを処理させる ==== | ||
+ | |||
+ | |||
+ | Spamassassin は通常 procmail から呼び出され、スパム判定を行った後に再度 procmail でスパムメールを他のフォルダに振り分ける。 | ||
+ | |||
+ | まずは、postfix が受信したメールを procmail に処理させなければならないのだが、方法を2つ見つけた。 | ||
+ | |||
+ | - procmail を postfix のメールを振り分ける外部プログラムとして postfix の設定ファイルに記述する | ||
+ | - .forward ファイルでメールを procmail に転送する | ||
+ | |||
+ | 最初の方法は設定ファイルを書き換えるので root 権限が必要。2番目の方法はユーザが自分で設定できる。 | ||
+ | |||
+ | 個人的趣味では2番目かなぁ。 | ||
+ | |||
+ | === 外部プログラムに登録する方法 === | ||
+ | |||
+ | $ sudo vi / | ||
+ | |||
+ | 以下を追加 | ||
+ | |||
+ | mailbox_command = / | ||
+ | |||
+ | postfix を再起動 | ||
+ | |||
+ | $ sudo / | ||
+ | |||
+ | |||
+ | === .forward ファイルを使う方法 === | ||
+ | |||
+ | ホームディレクトリに .forward ファイルを作成する。 | ||
+ | |||
+ | $ vi ~/.forward | ||
+ | |||
+ | 以下を記述 | ||
+ | |||
+ | " | ||
+ | | ||
+ | * 「ユーザ名」 の部分は振り分けを行うユーザネームに変更 | ||
+ | |||
+ | |||
+ | ==== procmail から Spamassassin を呼び出して振り分け ==== | ||
+ | |||
+ | procmail の設定に関しては詳細を省く。 | ||
+ | |||
+ | $ vi ~/ | ||
+ | |||
+ | 下記を追加する。 | ||
+ | |||
+ | # メールヘッダー中に「 X-Spam-*** 」の記述がなければ spamassassin を起動します | ||
+ | :0fw | ||
+ | *!^X-Spam.* | ||
+ | |spamassassin | ||
+ | |||
+ | # メールヘッダー中に" | ||
+ | # スパムディレクトリにメールを格納 | ||
+ | :0 | ||
+ | * ^X-Spam-Status: | ||
+ | ._Spam/ | ||
+ | |||
+ | |||
+ | ===== Spamassassin をテストする ===== | ||
+ | |||
+ | GTUBE と呼ばれる特殊な文字列をメールで送信すると、強制的にスパムとして扱われる。以下が GTUBE 文字列 | ||
+ | |||
+ | XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X | ||
+ | |||
+ | これを送信して、スパム専用フォルダに振り分けられていればOK。 | ||
+ | |||
+ | |||
+ | ===== スパムメールを学習させる ===== | ||
+ | |||
+ | スパムメール学習させる。スパムメールを学習させるコマンド。 | ||
+ | |||
+ | $ / | ||
+ | |||
+ | スパムメールと誤判定されたメールを学習させるコマンド。 | ||
+ | |||
+ | $ / | ||
+ | |||
+ | * 「ユーザ名」は自分のユーザネームに置き換える | ||
+ | |||
+ | とりあえずやってみる。 | ||
+ | |||
+ | $ / | ||
+ | Learned tokens from 2 message(s) (3 message(s) examined) | ||
+ | |||
+ | 先ほど作成した " | ||
+ | |||
+ | $ ls ~/ | ||
+ | bayes_seen | ||
+ | |||
+ | 2つのファイルが作成されていた。 | ||
+ | |||
+ | このコマンドをシェルスクリプトにして cron で毎日実行する。以下のようなスクリプトを作る。" | ||
+ | |||
+ | < | ||
+ | #! /bin/sh | ||
+ | |||
+ | # | ||
+ | # Spamassassin spam learn script | ||
+ | # | ||
+ | |||
+ | SPAM_DIR=" | ||
+ | NOT_SPAM_DIR=" | ||
+ | |||
+ | SA_LEARN="/ | ||
+ | |||
+ | |||
+ | # check program and directories | ||
+ | |||
+ | if [ ! -d $SPAM_DIR ]; then | ||
+ | echo " | ||
+ | exit 1 | ||
+ | elif [ ! -d $NOT_SPAM_DIR ]; then | ||
+ | echo " | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | if [ ! -x $SA_LEARN ]; then | ||
+ | echo " | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | |||
+ | # learn spam mails | ||
+ | echo " | ||
+ | $SA_LEARN --spam $SPAM_DIR | ||
+ | |||
+ | # learn NOT-spam mails | ||
+ | echo " | ||
+ | $SA_LEARN --ham $NOT_SPAM_DIR | ||
+ | </ | ||
+ | |||
+ | * 「スパム専用フォルダへのフルパス」: | ||
+ | |||
+ | パーミッションを変更して実行可能に | ||
+ | |||
+ | $ chmod 755 ./ | ||
+ | |||
+ | crontab に登録する。 | ||
+ | |||
+ | $ crontab -e | ||
+ | |||
+ | 午前3時に実行するならこんな感じで | ||
+ | |||
+ | 0 3 * * * test -x / | ||
+ | |||
+ | 実行結果をメールしてほしくないなら | ||
+ | |||
+ | 0 3 * * * test -x / | ||
+ | |||
+ | |||
+ | * 参考URL | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | |||