メール環境再構築 - smtp認証の設定

Last Modified: 2004.02.18

5. smtp認証の設定
Fumihiko Kimura's Homepageを参考にさせて頂きました。
ここも自信がないので、あくまで参考にして下さい。
m4プリプロセッサを用いたsendmailの設定が終了していることが前提です。
TurboLinux 7 ServerのsendmailはSASLを有効にしてコンパイルしてあるので、だいぶ楽になりました。

1. SASLがインストール済みであることの確認

sendmailのsmtp認証は、SASLを用いて行われる。
rpm -qa | grep saslコマンドで、インストール済みであることを確認する。
  • cyrus-sasl-1.5.24-15
  • cyrus-sasl-devel-1.5.24-15

2. .mcファイルの編集

m4プリプロセッサを用いたsendmailの設定で使用したkkoba.mcを編集する。

 [root@linux /root]# cd /usr/lib/sendmail-cf/cf
 [root@linux cf]# vi kkoba.mc

kkoba.mcを編集した部分は、以下の通り。
既に編集済みの分も含め、 dnlで始まる行はコメントなので、省略する。

 divert(-1)dnl

 VERSIONID(`linux setup for Turbolinux')dnl
 OSTYPE(`linux')dnl
 define(`confDEF_USER_ID',`8:12')dnl
 undefine(`UUCP_RELAY')dnl
 undefine(`BITNET_RELAY')dnl
 dnl define(`confAUTO_REBUILD')dnl
 define(`confTO_CONNECT', `1m')dnl
 define(`confTRY_NULL_MX_LIST',`true')dnl
 define(`confDONT_PROBE_INTERFACES',`true')dnl
 define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
 define(`LOCAL_MAILER_ARGS',`procmail -Y -a $h -d $u ')dnl
 define(`STATUS_FILE', `/var/log/sendmail.st')dnl
 define(`UUCP_MAILER_MAX', `2000000')dnl
 define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
 FEATURE(`mailertable',`hash -o /etc/mail/mailertable')dnl
 FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable')dnl
 FEATURE(`redirect')dnl
 FEATURE(`always_add_domain')dnl
 FEATURE(`use_cw_file')dnl
 FEATURE(`local_procmail')dnl
 FEATURE(`access_db')dnl
 FEATURE(`blacklist_recipients')dnl

 MAILER(`smtp')dnl
 MAILER(`local')dnl

 define(`confTO_QUEUERETURN', `1d')dnl
 define(`confTO_QUEUERETURN_NORMAL', `1d')dnl
 define(`confTO_QUEUERETURN_URGENT', `1d')dnl
 define(`confTO_QUEUERETURN_NONURGENT', `1d')dnl
 define(`confTO_QUEUEWARN', `1h')dnl
 define(`confTO_QUEUEWARN_NORMAL', `1h')dnl
 define(`confTO_QUEUEWARN_URGENT', `1h')dnl
 define(`confTO_QUEUEWARN_NONURGENT', `1h')dnl
 define(`confTO_IDENT', `0s')dnl

 TRUST_AUTH_MECH(`LOGIN PLAIN CRAM-MD5 DIGEST-MD5')dnl                <--- a)追加
 define(`confAUTH_MECHANISMS', `LOGIN PLAIN CRAM-MD5 DIGEST-MD5')dnl  <--- a)追加
 FEATURE(`no_default_msa')dnl                                         <--- b)追加
 DAEMON_OPTIONS(`Port=25, Name=MSA, M=E')dnl                          <--- b)追加
  • 各々の意味は、Fumihiko Kimura's Homepageを読むか、 英語の/usr/lib/sendmail-cf/READMEを読むこと。
  • a)は、利用する認証方式の追加。LOGIN(Outlook用)、PLAIN(Netscape用)
  • b)は、Port25のみでsendmailがlistenするために追加

3. sendmail.cfの作成

m4プリプロセッサを利用して、sendmail.cfを作成
完成したsendmail.cfを、/etc/mailにコピー。/etcではなく/etc/mailであることに注意。

 [root@linux /root]# cd /usr/lib/sendmail-cf/cf
 [root@linux cf]# m4 ../m4/cf.m4 kkoba.mc > sendmail.cf
 [root@linux cf]# cp sendmail.cf /etc/mail

4. /etc/mail/accessを編集

/etc/mail/accessを編集し、認証を行わせるためにClient PCのIPを無効にする。

 localhost   RELAY
 127.0.0.1   RELAY
 172.25.0.2  RELAY
 # 172.25.0.3  RELAY  <--- 無効にしたClient PCのIP

5. 認証DBの設定

標準でSASLが利用する/etc/sasldbが、LOGIN認証をサポートしていないようなので、/etc/passwdを利用することにする。
/usr/lib/sasl/Sendmail.confを以下の内容で作成する。

 pwcheck_method: shadow   <--- /etc/passwd(shadow形式)を利用する。

/etc/sasldbには、LOGIN以外の認証用のユーザ名とパスワードを設定する。
以下は、メールアドレスがtoto@kkoba.com用のユーザ設定の例。

 [root@linux /root]# saslpasswd -u kkoba.com toto
 Password:
 Again (for verification):

 [root@linux /root]# chmod 600 /etc/sasldb           <--- アクセス権を変更
 
 [root@linux /root]# sasldblistusers                 <--- 登録されたか確認
 user: toto realm: kkoba.com mech: DIGEST-MD5
 user: toto realm: kkoba.com mech: PLAIN
 user: toto realm: kkoba.com mech: CRAM-MD5
"-u kkoba.com"の指定は必要ない場合が多いとの事だが、私の環境では必要だった。

6. sendmailを再起動する


 [root@linux /root]# /etc/init.d/sendmail restart

7. 認証が有効になっているかの確認


 [root@linux /root]# telnet localhost 25
 Trying 127.0.0.1...
 Connected to localhost.localdomain.
 Escape character is '^]'.
 220 linux.kkoba.com ESMTP Sendmail 8.11.4/8.11.4; Thu, 18 Oct 2001 01:39:12 +0900
 ehlo kkoba.com                              <--- 入力
 250-linux.kkoba.com Hello localhost.localdomain [127.0.0.1], pleased to meet you
 250-ENHANCEDSTATUSCODES
 250-EXPN
 250-VERB
 250-8BITMIME
 250-SIZE
 250-DSN
 250-ONEX
 250-XUSR
 250-AUTH LOGIN PLAIN CRAM-MD5 DIGEST-MD5    <--- 有効な認証方式
 250-HELP
 quit                                        <--- 入力
 221 2.0.0 linux.kkoba.com closing connection
 Connection closed by foreign host.

参考 - SASLに対応していないsendmailの再コンパイル

TurboLInux Server 6.5のsendmailはSASLに対応していないので、再コンパイルする必要がある。
TruboLinuxのFTPサイトから、sendmail-8.11.4-4.src.rpmを入手し、rpmコマンドでインストールする。 ftp://ftp.turbolinux.co.jp/pub/TurboLinux/stable/untested/6/SRPMS

/usr/src/turbo/SOURCESにsendmail-8.11.4.tar.gzファイルができるので、ファイルを展開する。

 [root@linux /root]# cd /usr/src/turbo/SOURCES
 [root@linux SOURCES]# tar zxvf sendmail.8.11.4-4.tar.gz


/usr/src/turbo/SOURCES/sendmail-8.11.4/devtools/Siteに、site.config.m4を以下の内容で作成する。

 APPENDDEF(`confENVDEF', `-DSASL')
 APPENDDEF(`conf_sendmail_LIBS', `-lsasl')

コンパイル後、インストールする。

 [root@linux /root]# cd /usr/src/turbo/SOURCES/sendmail-8.11.4
 [root@linux sendmail-8.11.4]# make
 [root@linux sendmail-8.11.4]# make install



<Prev Top Next>
Copyright(C) 2001-2003 Katsuyuki Kobayashi.
このサイトへのリンクや引用時はメール頂戴
webmaster@kkoba.com