CentOS sendmail でのメールアカウント独自管理 (auxprop)

2010/05/20
★★★

前回の記事では、CentOS で sendmail を利用したメールサーバー構築の方法を紹介した。
また、同記事では、承認されていないユーザーのメール送信を防ぐために、SMTP 認証を有効にした。

前回は、SMTP 認証の際に、対象のメールアカウントに対して、Linux アカウントのユーザー名とパスワードで認証する方法を紹介した。
この方法では、メールアカウントを発行するために、Linux ユーザーを作成する必要があり、メールサーバー専用に Linux を構築する場合では、ユーザーカウントの管理が煩雑となる。

今回の記事では、Linux アカウントとメールアカウントをマッピングせず、メールアカウントを独自に管理する方法を紹介する。

前回の設定 (CentOS 5.4 x64 のデフォルト設定 ) では、"saslauthd" デーモンを利用することにより、SMTP 認証を Linux アカウントをマップさせている。

"saslauthd" が起動していれば停止し、自動起動しないように設定する。

[root@centkun ~]# service saslauthd stop
[root@centkun ~]# chkconfig saslauthd off

メールアカウントを Linux アカウントにマップさせず、独自に管理するように設定する。
具体的には、"saslauthd" デーモンを利用せず、"auxprop" プラグインを利用し、SASL データベースでメールアカウントを管理するように設定する。

[root@centkun ~]# vi /usr/lib64/sasl2/Sendmail.conf
(*) x86 の場合は、"/usr/lib/sasl2/Sendmail.conf" を編集する。

(before) pwcheck_method:saslauthd
(after) pwcheck_method:auxprop

変更内容を保存する。

sendmail を再起動する。

[root@centkun ~]# service sendmail restart

メールアカウント "user007@masudaq.com" を新規作成する。

[root@centkun ~]# saslpasswd2 -u masudaq.com -c user007
Password:
Again (for verification):

メールアカウントの一覧を表示する。

[root@centkun ~]# sasldblistusers2
user007@masudaq.com: userPassword

既存メールアカウントのパスワードを変更する場合。"-u" オプションを指定しない。

[root@centkun ~]# saslpasswd2 -c user007
Password:
Again (for verification):

既存メールアカウントを削除する場合。"-d" オプションを指定する。

[root@centkun ~]# saslpasswd2 -u masudaq.com -d user007

前回の記事と同様に MTA を利用してメールの送信テストを実施する。

(*) ただし、今回紹介した方法 (auxprop) では、認証の際に、ドメイン名付きのアカウント名を指定しなければいけないことに注意する。
Outlook 2007 では、[メール サーバーへのログオン情報] の [アカウント名] に、"user007@masudaq.com" と指定する。
前回の記事で紹介した "saslauthd" を利用した方法では、"user007" と指定する。

次回の記事では、セキュアなメールサーバーの設定について紹介する予定だ。