SPAM assassin and sendmail

http://www.stackasterisk.jp/tech/systemManagement/spamassassin01_02.jsp
サイトさんを参考に作業をした様だ。(感謝感謝)

rpm版のsendmailにはデフォルトでMILTERが組み込まれますが、ソース版の場合はデフォルトでは組み込まれません。MILTERを組み込むにはサイト独自のコンパイル環境を定義するsite.config.m4ファイルを編集する必要があります。sendmail-8.12.11 ディレクトリ下にdevtools/Siteディレクトリがあります。ここにsite.config.m4ファイルを新規作成、以下のように APPENDDEF 行を書き込んで保存します。」
とあるが、利用したsendmail 8.13はmilterサポートが入っている様だった。(未確認)

# cd /usr/local/src/ sendmail-8.12.11
# vi devtools/Site/site.config.m4
APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER')

次に再コンパイルをおこないます。通常のコンパイルと異なり再コンパイルの場合は./Build に"-c"オプションを付加して実行します。

# ./Build -c
Making all in:
/usr/local/src/sendmail-8.12.11/libsm
Configuration: pfx=, os=Linux, rel=2.6.5-1.358, rbase=2, rroot=2.6.5-1, arch=i686, sfx=, variant=optimized
Clearing out existing /usr/local/src/sendmail-8.12.11/obj.Linux.2.6.5-1.358.i686/libsm tree
Using M4=/usr/bin/m4
Creating /usr/local/src/sendmail-8.12.11/obj.Linux.2.6.5-1.358.i686/libsm using /usr/local/src/sendmail-8.12.11/devtools/OS/Linux
Including /usr/local/src/sendmail-8.12.11/devtools/Site/site.config.m4
Making dependencies in /usr/local/src/sendmail-8.12.11/obj.Linux.2.6.5-1.358.i686/libsm

(中略)

cc -O2 -I. -I../../include  -DMILTER     -c -o main.o main.c
cc -O2 -I. -I../../include  -DMILTER     -c -o alias.o alias.c

(中略)

install -c -o bin -g bin -m 444 vacation.0 /usr/man/man1/vacation.1
make[1]: Leaving directory `/usr/local/src/sendmail-8.12.11/obj.Linux.2.6.5-1.358.i686/vacation'

 コンパイルが終了したらインストールします。

# ./Build install

 無事にMILTERが組み込まれているか確認してみます。Compiled with: の中に MILTER があり、組み込めているのが確認できます。

# /usr/sbin/sendmail -d0.10
Version 8.13.1
 Compiled with: DNSMAP LOG MAP_REGEX MATCHGECOS MILTER MIME7TO8 MIME8TO7
                NAMED_BIND NETINET NETINET6 NETUNIX NEWDB PIPELINING SASLv2
                SCANF STARTTLS TCPWRAPPERS USERDB
    OS Defines: ADDRCONFIG_IS_BROKEN HASFCHOWN HASFCHMOD
                HASGETDTABLESIZE HASINITGROUPS HASLSTAT HASNICE HASRANDOM
                HASRRESVPORT HASSETREGID HASSETREUID HASSETRLIMIT HASSETSID
                HASSETVBUF HASURANDOMDEV HASSTRERROR HASUNAME HASUNSETENV
                HASWAITPID IDENTPROTO NEEDSGETIPNODE REQUIRES_DIR_FSYNC
                USE_DOUBLE_FORK USE_SIGLONGJMP
Kernel symbols: /boot/vmlinux
     Conf file: /etc/mail/submit.cf (default for MSP)
     Conf file: /etc/mail/sendmail.cf (default for MTA)
      Pid file: /var/run/sendmail.pid (default)
Canonical name: XXXXXXXXXXXXXXXXXXXXXXXXXXXX
 UUCP nodename: XXXXXXXXXXXXXXXXXXXXXXXXXXXX
        a.k.a.: XXXXXXXXX
        a.k.a.: localhost
        a.k.a.: localhost.localdomain
        a.k.a.: [127.0.0.1]
     Conf file: /etc/mail/submit.cf (selected)
      Pid file: /var/run/sm-client.pid (selected)

============ SYSTEM IDENTITY (after readcf) ============
      (short domain name) $w = XXXXXX
  (canonical domain name) $j = XXXXXXXXXXXXXXXXXXXXXXXXXXX
         (subdomain name) $m = XXXXXXXXXXXXXXXX
              (node name) $k = XXXXXXXXXXXXXXXXXXXXXXXXXXXX
========================================================

Recipient names must be specified

 次にspamass-milterを使用するためにcf ファイルを編集します。INPUT_MAIL_FILTER行が新たに追加する箇所です。

# cd /usr/local/src/sendmail-8.12.11/cf/cf/
# vi sendmail.mc
divert(0)dnl
VERSIONID(`$Id: spamassassin01_02.jsp,v 1.20 2005/07/15 12:11:57 motomatu Exp $')
OSTYPE(linux)dnl
DOMAIN(generic)dnl
FEATURE(`access_db', `hash -T<TMPF> /etc/mail/access')dnl
FEATURE(`relay_mail_from')dnl
INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass.sock,, F=, T=C:15m;S:4m;R:4m;E:10m')
MAILER(local)dnl
MAILER(smtp)dnl

 以下のコマンドでsendmail.mc からsendmail.cfを生成します。

# ./Build sendmail.cf

 できたsendmail.cfをインストールします。実際には以下のコマンドでsendmail.cfとsubmit.cfが/etc/mailディレクトリにコピーされます。

# ./Build install-cf

Mail-SpamAssassin

 次にMail-SpamAssassinをインストール。rpmを使ってバイナリを直接インストールした模様。

# rpm -q spamassassin
spamassassin-2.64-0vl2

 次にspamass-milter をインストール。rspamass-milter を使用するにはspamass-milterに先立ってlibmilter.aをインストールする必要があります。/usr/local/src/ sendmail-8.12.11/下にlibmilterディレクトリがあるので移動してコンパイルします。

# cd ./libmilter/
# ./Build ?c

 コンパイルが済んだらインストールします。

# ./Build install

2_3_3.spamass-milter
 最後にspamass-milterをインストールします。インストールは./configure、make、make installの手順です。

# cd /usr/local/src/
# tar zxvf spamass-milter-0.2.0.tar.gz
# cd spamass-milter-0.2.0
# ./configure
# make
# make install