SMTP AUTHによるリレー制御
sendmail 8.10以降では、SASLをベースにしたRFC2554に定義しているSMTP AUTHをサポートします。 redhat9 では、標準でインストールされるCyrus-saslライブラリを利用し実装可能です。
/etc/mail/auth-info ファイルは特に作成しなくても動作します。詳しくは、sendmailのドキュメントを参照してください。
[更新:2007年3月8日]
今までと同じカーネルバージョンでsendmailを再コンパイルする場合、obj.Linux.2.4.**.**ディレクトリを削除してから、Buildしてください。
[更新:2012年5月18日]
PLAINだけで認証させる場合、SMTP AUTHユーザとパスワードをLinuxユーザ/パスワードと合わせる必要があります。セキュリティ的には甘いので利用には注意が必要です。
[更新:2016年7月19日]
CentOS系列でのインストール方法を追加しました。
CentOS系列での導入方法
(1) cyrus-sasl-md5のインストール
yum install cyrus-sasl-md5
(2) インストール準備
cd /usr/local/src/sendmail-8.13.6/ vi devtools/Site/site.config.m4 [新規作成] ----------------------------------------------- APPENDDEF(`confENVDEF', `-DSASL=2') APPENDDEF(`conf_sendmail_LIBS', `-lsasl2') -----------------------------------------------
(3) 掃除
make clean rm -rf obj.Linux.****
(4) インストール
sh Build sh Build install
(5) 設定
cd cf/cf/ vi sendmail.mc [3行追加] ------------------------------------------------------------------- TRUST_AUTH_MECH(`LOGIN PLAIN CRAM-MD5 DIGEST-MD5')dnl define(`confAUTH_MECHANISMS', `LOGIN PLAIN CRAM-MD5 DIGEST-MD5')dnl define(`confDEF_AUTH_INFO', `/etc/mail/auth-info')dnl ------------------------------------------------------------------- make sendmail.cf cp sendmail.cf /etc/mail/
(6) 認証メカニズムの設定
vi /usr/lib/sasl2/Sendmail.conf ------------------------------------------------------------------- [変更前] pwcheck_method:saslauthd ↓ [変更後] pwcheck_method:auxprop mech_list:cram-md5 digest-md5 plain login ※saslauthd・・・SASL独自のパスワードデータベースsasldbを用意して認証に利用する方法 ※auxprop・・・UNIXユーザー認証共通でPAMやshadowを利用する方法 -------------------------------------------------------------------
(7) sendmailの再起動
/etc/rc.d/init.d/sendmail restart
(8) 確認
sendmail -d0.1 -bv root | grep SASL ------------------------------------------------------------------- NAMED_BIND NETINET NETUNIX NEWDB PIPELINING SASLv2 SCANF USERDB -------------------------------------------------------------------
(9) 認証用ID、パスワードの設定
/usr/sbin/saslpasswd2 smtpauth ← 認証用ID ********* ← パスワード入力
(10) 認証用ID、パスワードの確認
/usr/sbin/sasldblistusers2 smtpauth@XXX.XX.XX: userPassword
(11)「(9)」で作成した認証IDと同じユーザとパスワードを設定
useradd -g 50 smtpauth passwd smtpauth *********
(12) メールクライアント(Windows Live Mail など)で動作確認
Red Hat Linux系列での導入方法
(インストールの準備)
# cd /usr/local/src/sendmail-8.12.10/ # vi devtools/Site/site.config.m4(新規) APPENDDEF(`confENVDEF', `-DSASL') APPENDDEF(`conf_sendmail_LIBS', `-lsasl')
(掃除)
# make clean # rm -fr obj.linux.****
(インストール)
# sh Build # sh Build install
(設定)
# cd cf/cf/ # vi sendmail.mc(追加) TRUST_AUTH_MECH(`LOGIN PLAIN CRAM-MD5 DIGEST-MD5')dnl define(`confAUTH_MECHANISMS', `LOGIN PLAIN CRAM-MD5 DIGEST-MD5')dnl define(`confDEF_AUTH_INFO', `/etc/mail/auth-info')dnl # make sendmail.cf # cp sendmail.cf /etc/mail/
(起動)
# /etc/rc.d/init.d/sendmail restart
(確認)
# sendmail -d0.1 -bv root | grep SASL NETINET NETUNIX NEWDB PIPELINING SASL SCANF USERDB XDEBUG
(認証用ID、パスワードの設定)
# /usr/sbin/saslpasswd ユーザ名
(認証用ID、パスワードの確認)
# /usr/sbin/sasldblistusers user: ユーザ名 realm: サーバホスト名 mech: DIGEST-MD5 user: ユーザ名 realm: サーバホスト名 mech: PLAIN user: ユーザ名 realm: サーバホスト名 mech: CRAM-MD5
(認証用ID、パスワードの削除)
# saslpasswd -d ユーザ名