***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 ユーザ名
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 ユーザ名