SMTP-AUTH
smtp-authを入れました。Cyrus SASLのインストール、sendmailの再コンパイル、sendmail.cfの調整、認証情報の調整という手順です。
Cyrus SASLのインストール
sendmailで認証するにはCyrus SASLを使うようです。まずCyrus SASLをインストール。ソースはftp://ftp.andrew.cmu.edu/pub/cyrusにあります。最新はcyrus-sasl-2.1.22.tar.gzでした。Solarisでのインストール奮闘記は2007年4月16日のエントリを参照してください。
>|| $ /usr/local/bin/tar -zxvf cyrus-sasl-2.1.22.tar.gz $ cd cyrus-sasl-2.1.22 $ ./configure --prefix=/usr --with-openssl=/usr/local/ssl --enable-digest $ /usr/local/bin/make # /usr/local/bin/make install
SASLの設定ファイルを編集
CyrusSASLを使って認証する場合、いろんな認証方法が使えます。CRAM-MD5,DIGEST-MD5以外の認証方法を使って認証するばあいは、SASLの設定ファイルSendmail.confを用意する必要があります。たとえばPLAIN認証でPAMで認証する場合はこんなの。
# cat /usr/lib/sasl/Sendmail.conf pwcheck_method:pam
今回はDIGEST-MD5を使うつもりなので、このファイルは用意しません。
sendmailを再コンパイル
sendmailがSASLを使って認証できるようにsendmailをコンパイルしなおします。コンパイル時に認証するm4マクロファイルに以下の3行を追加。SASLのインクルードファイルの場所とSASLをつかうようフラグを指定します。
define(`confINCDIRS', `-I/usr/include/sasl') APPENDDEF(`confENVDEF', `-DSASL=2') APPENDDEF(`conf_sendmail_LIBS', `-lsasl2')
m4のマクロファイルは通常だと devtool/Site/site.OSの名前.m4ってファイルですね。
編集したら再コンパイル、リンク、インストール。
$ sh Build -c # sh Build install
実際に起動してみて確認。
$ ./obj.SunOS.5.9.sun4/sendmail/sendmail -d0.1
Version 8.14.1
Compiled with: DNSMAP LOG MAP_REGEX MATCHGECOS MILTER MIME7TO8 MIME8TO7
NAMED_BIND NDBM NETINET NETINET6 NETUNIX NIS NISPLUS PIPELINING
SASLv2 SCANF XDEBUG
/etc/mail/submit.cf: line 41: invalid V line vendor code: "Sun"
WARNING: RunAsUser for MSP ignored, check group ids (egid=10, want=25)============ SYSTEM IDENTITY (after readcf) ============
(short domain name) $w = hoge
(canonical domain name) $j = hoge.hoge.co.jp
(subdomain name) $m = hoge.co.jp
(node name) $k = hoge
========================================================can not chdir(/var/spool/clientmqueue/): Permission denied
Program mode requires special privileges, e.g., root or TrustedUser.
SASLv2ってのが入っていればOK。
sendmail.cfの調整
sendmail.cfを編集して認証を有効にします。sendmail.cfの元になっているm4のマクロファイルに以下の2行を追加してsendmail.cfを作成。
TRUST_AUTH_MECH(`DIGEST-MD5')dnl define(`confAUTH_MECHANISMS', `DIGEST-MD5')dnl
今回の目的は外部からのリレーを許すので、TRUST_AUTH_MECHで認証方式を指定します。編集したらsendmail.cfを作成、/etc/mailにcpしてsendmailを起動。
$ cd sendmail-8.14.1/cf/cf (sendmail.mcを編集) $ /usr/local/bin/make sendmail.cf # cp ./sendmail.cf /etc/mail # /etc/init.d/sendmai start
sendmailが起動したら自分に25番でtelnetして確認。
telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 hoge.hoge.co.jp ESMTP Sendmail 8.14.1/8.14.1; Mon, 4 Jun 2007 15:38:09 +0900 (JST) EHLO www 250-hoge.hoge.co.jp Hello localhost [127.0.0.1], pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-EXPN 250-VERB 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-AUTH DIGEST-MD5 250-DELIVERBY 250 HELP
250-AUTH DIGEST-MD5ってのが出ていればOK。認証情報などの調整については次回。