Plesk Obsidianリリース記念!Plesk最大7カ月無料キャンペーン

2011/11/11

【実証】メールサーバーの構築AtoZ (第2章)

GMOクラウド株式会社の芦田です。「【実証】メールサーバーの構築AtoZ (第1章)」では、GMOクラウド Publicの仮想サーバーを送信メールサーバー(SMTP)として構築する過程で、Postfixのインストールから起動、メール送信テストまでを紹介しました。 今回の記事では、メール送信時にSMTP-Authによる認証をできるようにした上で、SMTP-Auth認証を使わないクライアントからのメールの転送を行わないように設定する様子をご紹介します。

(2) SMTP-Authによる認証を有効にする

2.1 SMTP-Auth 認証の設定

上記の設定のままだと、メールの転送に対して特別に制限をかけていないので、スパム配信などに悪用される危険があります。そこで、今回はメール送信時にSMTP-Authによる認証をできるようにした上で、SMTP-Auth認証を使わないクライアントからのメールの転送を行わないように設定します。SMTP-Auth認証を有効にするには、先ほどの「/etc/postfix/main.cf」の最後あたりに次のような設定を追加してください。各設定項目の意味は表2.1.2にまとめました。

リスト2.1.1
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
broken_sasl_auth_clients = yes

表2.1.2項目

意味

smtpd_sasl_auth_enable SASLによるSMTP-Auth認証を利用するか否か
smtpd_sasl_local_domain ローカル認証のホスト名
smtpd_recipient_restrictions リレーの許可に関する設定
broken_sasl_auth_clients AUTHコマンドをサポートしないクライアントに対応させる

smtpd_recipient_restrictionsには、「permit_」または「reject_」でメールのリレーを許可するか否かを設定します。ここでは「permit_mynetworks」で自身のネットワーク内からのリレーを許可するとともに、「permit_sasl_authenticated」でSASLによる認証を行った場合にもリレーできるように設定しています。
一方で、「reject_unauth_destination」とすることで認証を行わない場合にはリレーを許可しないようにしています。 SMTP-Authの認証は、saslauthdというデーモンによって行うことができます。saslauthdはあらかじめインストールされているはずなので、これをサービスとして起動します。postfix本体と同様に、サーバーの起動時に自動で立ち上がるようにしておきましょう。

# /etc/rc.d/init.d/saslauthd start
# /sbin/chkconfig saslauthd on
プロンプト2.1.3
もしsaslauthdがインストールされていない場合には、cyrus-saslというパッケージをインストールすれば使えるようになります。
cyrus-saslは次のようにyumでインストールできます。
#yum -y install cyrus-sasl
プロンプト2.1.4

2.2 SMTP-Auth用のパスワードを、ログイン用のものと区別したい場合

上に書いた方法は、ログイン用のユーザー名とパスワードをSMTP-Authの認証にも利用するためのものです。SMTP-Auth認証 用のパスワードをログイン用のパスワードとは別のものにしたい場合には別の設定が必要になります。まず、saslauthdは使わないので停止します。
# /etc/rc.d/init.d/saslauthd stop
# /sbin/chkconfig saslauthd off
プロンプト2.2.1
そして「/usr/lib/sasl2/smtpd.conf」の内容を以下のように変更してください。
リスト2.2.2
pwcheck_method: auxprop
次に、SMTP-Auth用のパスワードを設定します。これはsaslpasswd2というコマンドを使って、次のように行います。mail.example.comの部分には自前の仮想サーバーのホスト名を指定してください。
# saslpasswd2 -c -u mail.example.com ユーザー名
Password: <ーパスワードを入力
Again (for verification): <ー確認用にパスワードを再入力
プロンプト2.2.3
また、最初に設定するときのみ、次のコマンドで/etc/sasldb2の所属グループを変更postfixに変更しておく必要があります。
# chgrp postfix /etc/sasldb2
プロンプト2.2.4
送信サーバーが設定できたので、次回は受信サーバーのインストールと、メールサーバーのスパム/ウィルス対策の設定について解説します。 「【実証】メールサーバーの構築AtoZ (第3章)」へ続きます。


コラム一覧へ