NO LIMIT ls. Wiki支部 さんのページそのままこのサーバーに設定。
本家サイトから Mail-SpamAssassin-3.2.5.tar.bz2をダウンロードしてくる。 なぜソースから入れるかっつーと、どうもlenny標準のものはiconvには対応していても 分かち書きには対応してないようなので、メール本文が日本語だとベイジアンフィルターの 精度が悪いらしい。
SpamAssassin関連実験場から spamassassin-3.2.5-ja-test1.patchと tokenizer.preをダウンロードしてくる。
# tar xvjf Mail-SpamAssassin-3.2.5.tar.bz2 # cd Mail-SpamAssassin-3.2.5 # patch -p1 < ../spamassassin-3.2.5-ja-test1.patch # perl Makefile.PL What email address or URL should be used in the suspected-spam report text for users who want more information on your filter installation? (In particular, ISPs should change this to a local Postmaster contact) default text: [the administrator of that system] と聞いてくるのでリターン # make # make test # make install
ディレクトリを作って分かち書きプラグインをロードするように設定。
# cd /etc/mail/spamassassin # cp /tmp/tokenizer.pre .
ユーザーの作成と学習用データの蓄積場所の作成。
# groupadd spamd # useradd -g spamd -s /bin/false -d /var/spool/spamassassin spamd # mkdir /var/spool/spamassassin # chown spamd.spamd /var/spool/spamassassin
さらにサイトの設定ファイルを編集。
# vi local.cf
----------------------------- # 文字コード正規化 normalize_charset 1 ## 20_body_tests.cfの再定義 score SUBJECT_EXCESS_BASE64 0 score WEIRD_QUOTING 0 ## 20_head_tests.cfの再定義 score FROM_EXCESS_BASE64 0 score GAPPY_SUBJECT 0 score SUBJECT_ENCODED_TWICE 0 score SUBJ_ILLEGAL_CHARS 0 ## 20_html_tests.cfの再定義 score HTML_COMMENT_8BITS 0 score OBFUSCATING_COMMENT 0 ## 20_meta_tests.cfの再定義 score UPPERCASE_25_50 0 score UPPERCASE_50_75 0 ## 20_phrases.cfの再定義 score OBSCURED_EMAIL 0 # ベイズ学習オプション bayes_path /var/spool/spamassassin/bayes bayes_file_mode 0644 # 自動ホワイトリストオプション auto_whitelist_path /var/spool/spamassassin/auto-whitelist auto_whitelist_file_mode 0644 rewrite_header Subject *****SPAM***** report_safe 0 required_score 6.0 -----------------------------
初期化スクリプト/etc/init.d/spamdを作成する。
------------------------------------- #!/bin/sh ### BEGIN INIT INFO # Provides: spamd # Required-Start: $local_fs $remote_fs $network $syslog # Required-Stop: $local_fs $remote_fs $network $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: spamassassin daemon ### END INIT INFO PATH=/usr/local/bin:$PATH LOGFILE=/var/log/spamd.log PIDFILE=/var/run/spamd.pid USER=spamd GROUP=spamd ECHO=echo case "$1" in start) $ECHO -n "starting spamd ... " spamd -d -s $LOGFILE -r $PIDFILE -u $USER -g $GROUP && $ECHO "[ OK ]" || $ECHO "[ NG ]" ;; stop) $ECHO -n "stopping spamd ... " kill `cat $PIDFILE` && $ECHO "[ OK ]" || $ECHO "[ NG ]" ;; restart) $0 stop sleep 3 $0 start ;; reload|refresh) $ECHO -n "refreshing spamd ... " kill -HUP `cat $PIDFILE` && $ECHO "[ OK ]" || $ECHO "[ NG ]" ;; *) echo "Usage: $0 { start | stop | restart | refresh }" exit 1 ;; esac exit 0 -------------------------------------
それを登録。
# chmod a+x spamd # update-rc.d spamd defaults # /etc/init.d/spamd start
初期学習を行う。このサイトの場合「げっちゅ」「つよさま」の2人は 全くメールを使っていない=100%スパムということなので、sa-learnコマンドで スパム学習させる。
# cd /var/mail # /usr/local/bin/sa-learn --spam --mbox < dl # /usr/local/bin/sa-learn --spam --mbox < ty
postfixの設定を行う。master.cfに以下の行書き加え。
smtp inet n - n - - smtpd -o content_filter=spamassassin spamassassin unix - n n - - pipe user=spamd argv=/usr/local/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
設定をロード。
# /etc/init.d/postfix reload