Sendmail で SMTP AUTH を設定してテストする
Environment
- Red Hat Enterprise Linux (RHEL)
- Sendmail
Issue
- Sendmail で SMTP AUTH を設定してテストするには
Resolution
1. SMTP AUTH を設定します。
- yum コマンドまたは update コマンドを実行して以下のパッケージをインストールします。
cyrus-sasl-gssapi
cyrus-sasl-md5
cyrus-sasl
cyrus-sasl-plain
cyrus-sasl-devel
- "saslauthd" サービスを起動します。
# service saslauthd start
# chkconfig saslauthd on
- /etc/mail/sendmail.mc で、以下の行のコメント化を解除します。
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN'')dnl
define(`confAUTH_MECHANISMS'', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN
PLAIN'')dnl
- m4 コマンドを実行して、sendmail.cf ファイルを再構築します。
# cp /etc/mail/sendmail.mc /etc/mail/sendmail.mc.orig
# cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.orig
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
- sendmail および saslauthd を再起動します。
# service saslauthd restart
Stopping saslauthd: [ OK ]
Starting saslauthd: [ OK ]
# service sendmail restart
Shutting down sendmail: [ OK ]
Shutting down sm-client: [ OK ]
Starting sendmail: [ OK ]
Starting sm-client: [ OK ]
2. SMTP AUTH のテスト
-
コマンドラインから SMTP AUTH をテストするには、有効なユーザー名およびパスワードが必要になります。以下のコマンド例では、ユーザー名 "test" とパスワード "redhat" が使用されています。
-
ユーザー名とパスワードに対して base64 エンコードの文字列を生成します。
# echo -ne "\0test\0redhat" | base64
AHRlc3QAcmVkaGF0
- Telnet で上述のエンコード文字列を使用して SMTP AUTH をテストします。
# telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is ''^]''.
220 dhcp.redhat.com ESMTP Sendmail 8.12.10/8.12.10; Wed, 24 Mar 2004
13:03:57 -0500
hello test
250-dhcp.redhat.com Hello localhost.localdomain [127.0.0.1], pleased to
meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
250-DELIVERBY
250 HELP
auth plain AHRlc3QAcmVkaGF0
235 2.0.0 OK Authenticated
quit
221 2.0.0 dhcp.redhat.com closing connection
Connection closed by foreign host.
- 注意: RHEL 5 以降を使用している場合は
pam_stack.so
モジュールを削除してください。
/etc/pam.d/smtp の場合:
#%PAM-1.0
auth include password-auth
account include password-auth
Diagnostic Steps
可能性のある問題としては、postfix もインストールされた場合 (既知のバグ)、postfix は必要な pam smtp 認証ファイルを削除します。そして、そのファイルがないと sendmail の SMTP-AUTH が失敗します。以下のファイルが存在するかどうか、その中に以下のデータがあるかどうかを確認します。 (システムに postfix をインストールしており、検証時、そしてこれを認識するためのテスト時に、この問題を修正する必要がありました。)
# cp /etc/pam.d/smtp.postfix /etc/pam.d/smtp
# cat /etc/pam.d/smtp
#%PAM-1.0
auth required pam_stack.so service=system-auth
account required pam_stack.so service=system-auth
#
この問題に対応するために以下の bugzilla が作成されました。
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.
Comments