1,000円を切る低価格で登場、「さくらのVPS」をチェック――サーバー構築編 10ページ

外部からメールを送信できるようにする(SMTP AUTHの設定)

 SMTPサーバーとPOP3/IMAP4サーバーを稼働させ、別のマシンからメールの送受信を行えるようにする場合、先に解説したSMTPサーバーの設定に加え、外部のメールソフトからVPS経由でVPS外にメールを送信できるようにする設定が必要だ。このとき、スパマーなどがVPSを「踏み台」にして迷惑メール送信を行わないよう、なんらかの認証機構を有効にしておく必要もある。ここでは、メールの送信前にユーザー名とパスワードを用いた認証を行う「STMP AUTH」を使用する方法を解説しておこう。

 まず「sendmail.mc」ファイルを開き、「dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl」および「dnl define(`confAUTH_MECHANISMS’, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl」という部分の行頭にある「dnl 」を削除して有効にする。

dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
(上の2行を次のように変更)
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

 続いて認証に必要な「saslauthd」サービスを起動し、最後にsendmailサービスを再起動する。

$ sudo /sbin/service saslauthd start  ←saslauthdを起動
$ sudo /sbin/chkconfig saslauthd on  ←システムの起動時にsaslauthdが自動起動するよう設定
$ sudo /sbin/service sendmail restart  ←sendmailを再起動

 以上で設定は完了だ。telnetコマンドでSMTPに使用する25番ポートにアクセスし、正しく動作しているかを確認しておこう。

$ telnet localhost 25  ←localhostの25番ポートに接続
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 www****u.sakura.ne.jp ESMTP Sendmail 8.13.8/8.13.8; Tue, 14 Sep 2010 14:45:34 +0900
ehlo localhost  ←利用できる機能を確認
250-www****u.sakura.ne.jp 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 LOGIN PLAIN  ←LOGINおよびPLAIN認証によるSMTP AUTHが利用可能
250-DELIVERBY
250 HELP
quit  ←終了
221 2.0.0 www****u.sakura.ne.jp closing connection
Connection closed by foreign host.

SMTP AUTHで「DIGEST-MD5」や「CRAM-MD5」を使用する

 SMTP AUTHの「LOGIN」や「PLAIN」認証ではパスワードが暗号化されずにやりとりされるため、容易に盗聴できるという問題がある。そのため、これらを利用する場合は後述するSMTPS(SMTP over SSL)による暗号化通信を利用したい。また、もし何らかの事情でSMTPSが利用できない場合は、「DIGEST-MD5」や「CRAM-MD5」といったセキュリティの高い認証方式を使用することをお勧めする。

 「DIGEST-MD5」および「CRAM-MD5」認証を利用するための設定は、次のようになる。まず、「cyrus-sasl-md5」パッケージをインストールする。

$ sudo yum install cyrus-sasl-md5

 「LOGIN」や「PLAIN」認証ではパスワードとしてログインパスワードを利用できるが、CRAM-MD5認証を使用するには「saslpasswd2」コマンドであらかじめユーザーごとに別途SMTP AUTH用のパスワードを設定しておく必要がある。たとえばユーザー「foobar」のパスワードを設定するには、次のようにする。

$ sudo /usr/sbin/saslpasswd2 -c foobar
Password:   ←設定するパスワードを入力
Again (for verification):   ←同じパスワードを再入力

 最後に、saslauthdとsendmailを再起動すれば完了だ。

$ sudo /sbin/service saslauthd restart
$ sudo /sbin/service sendmail rerestart