Solaris 10に付属のsendmailのバージョンは8.13.7または8.13.8で、milterオプション付きでビルドされているため、sendmailを入れ替えることなくそのまま使うことができる。
# /usr/sbin/sendmail -bi -d0 Version 8.13.8+Sun Compiled with: DNSMAP LDAPMAP LOG MAP_REGEX MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NDBM NETINET NETINET6 NETUNIX NEWDB NIS NISPLUS PIPELINING SCANF STARTTLS TCPWRAPPERS USERDB USE_LDAP_INIT XDEBUG ============ SYSTEM IDENTITY (after readcf) ============ (short domain name) $w = www2 (canonical domain name) $j = www2.mvs.co.jp (subdomain name) $m = mvs.co.jp (node name) $k = www2.mvs.co.jp ======================================================== |
sendmailのコンパイル情報が表示される。“MILTER”オプションがついているので、このsendmailではmilterを使用できる。
3.1 sid-milterソースの入手
以下のURLから入手する。
バージョンは、0.2.14 (2007年2月1日現在)。
3.2 コンパイルとインストール
Solaris 10をEntire Distributionでインストールすれば、プログラムのコンパイルに必要な開発ツールやライブラリは揃っている。実際にコンパイルするには、必要なツールが起動されるようにPATHを正しく設定する。
# PATH=/usr/sfw/bin:/usr/ccs/bin:/usr/local/bin:/usr/bin:/usr/sbin # export PATH # gzcat sid-milter-0.2.14.tar.gz | tar xvf - # cd sid-milter-0.2.14 # sh Build # cd obj.SunOS.5.10.sun4/sid-filter # cp sid-filter /usr/local/libexec/ |
Buildスクリプトでインストールもできるが、milterプログラム以外もインストールされてしまうので、プログラム本体をコピーしてもよい。
3.3 sid-filter を動かす
インストールしたsid-filterを起動する。オプションなしで起動すると、使用できるオプションが表示される。
# /usr/local/libexec/sid-filter sid-filter: usage: sid-filter -p socketfile [options] -a peerlist list of hosts to ignore -A auto-restart -D softfail DNS errors -d domlist domains to always pass -f don't fork-and-exit -h prepend identifying header -H name hostname to use in headers -l log activity to system log -L level libmarid log level -M text rejection message -P pidfile file to which to write pid -r level set rejection level -q quarantine instead of rejecting -t test-only mode -T secs DNS timeout -u userid change to specified userid -V print version number and terminate |
sendmailとの通信はソケットを使用する。
# /usr/local/libexec/sid-filter -l -p local:/var/run/sid-filter -P /var/run/sid-filter.pid -r 0 -t |
きちんと動かすためには、rcスクリプトを用意して自動起動する。
rcスクリプトの例
#!/sbin/sh # #ident "@(#)sid-filter 1.0 2006/11/15 miz" milter="/usr/local/libexec/sid-filter" milter_domain="www2.mvs.co.jp" milter_sock="local:/var/run/sid-filter" milter_pid="/var/run/sid-filter.pid" milter_flags="-l -h -r 0 -t" milter_opt="${milter_flags} -p ${milter_sock} -P ${milter_pid} -d ${milter_domain}" case "$1" in start) exec $milter $milter_opt ;; stop) pkill sid-filter rm -f /var/run/sid-filter ;; *) echo "Usage: $0 { start | stop }" exit 1 ;; esac exit 0 |
3.4 sendmail.cfを作る
SMTPフィルターを呼び出すようにsendmail.cfを作成してインストールする。Solaris 10にはm4 cfが付属しているので、簡単に作成できる。
# cd /etc/mail/cf/cf # cat www2.mc divert(-1) # # divert(0)dnl VERSIONID(`@(#)www2.mc 1.0 (miz) 06/21/2004') OSTYPE(`solaris8')dnl DOMAIN(`solaris-antispam')dnl INPUT_MAIL_FILTER(`sid-filter',`S=local:/var/run/sid-filter,F=T,T=R:2m')dnl
↑ この行を追加
MAILER(`local')dnl MAILER(`smtp')dnl |
mcファイルを修正したらsendmail.cfを作成し、sendmailを再起動する。
# make www2.cf # cp www2.cf /etc/mail/sendmail.cf # svcadm restart sendmail |
《PREV》 |