CentOS メールサーバー sendmail の設定

2010/05/02
★★★

今回は、CentOS でメールサーバーを構築する方法を紹介する。
特に今回は、送信メールサーバー (MTA) のデファクト スタンダードである "sendmail" のインストール、設定について紹介する。
受信メールサーバー (POP3/IMAP) の構築については、別の記事で紹介する予定だ。

"sendmail"、"sendmail-cf" をインストールする。

[root@centkun]# yum install -y sendmail
[root@centkun]# yum install -y sendmail-cf

"sendmail.mc" を編集する。

[root@centkun]# vi /etc/mail/sendmail.mc

"sendmail.mc" では、"dnl" の行は、コメントになる。

すべての IP アドレスでリッスンするよう変更する。

(before) DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
(after) DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl

マスカレード設定。送信元メールアドレスのドメイン名を指定する。

(before) dnl MASQUERADE_AS(`mydomain.com')dnl
(after) MASQUERADE_AS(`masudaq.com')dnl

エンベローブのマスカレード設定。エンベロープの送信元 "envelope from" もマスカレード設定で指定したドメインにする。

(before) dnl FEATURE(masquerade_envelope)dnl
(after) FEATURE(masquerade_envelope)dnl

"root" ユーザーのメールアドレスも MASQUERADE_AS で指定したドメイン名を利用する。(これは、必須ではない。後にテストで利用する利便性のために設定)。

(before) EXPOSED_USER(`root')
(after) dhl EXPOSED_USER(`root')dnl

SMTP 認証 (SMTP AUTH) を行うよう設定する。
(*) この例では、SMTP 認証に "LOGIN"、 "PLAIN" 認証が利用できるように設定している。"LOGIN"、 "PLAIN" 認証は、BASE64 でエンコードされるものの、パスワードが平文で送信されてしまうのでインターネットを介しての SMTP 認証( "LOGIN"、"PLAIN") 通常利用しない。インターネット経由の場合は、SMTPs(SMTP over SSL) を利用する。

(before) dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
(before) dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
(after) TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
(after) define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

"sendmail.mc" の変更内容を保存する。

SMTP 認証を有効にするために "saslauthd" を起動する。(認証アカウントを Linux アカウントにマップさせず、独自管理したい場合は、こちらの記事を参照。)

[root@centkun]# service saslauthd start

"sendmail.cf" を生成する。

[root@centkun]# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

sendmail を再起動する。

[root@centkun]# service sendmail restart

"system-config-securitylevel" で SMTP のポートを開放する。

[root@centkun]# system-config-securitylevel

[カスタマイズ] -> [受信を許可] で、[メール(SMTP)] をチェックする。 [OK] -> [OK] で設定を保存する。

ここで、伝統的なメールクライアント "mail" コマンドで動作確認を行う。

自分 (root) 宛てにメールを送る。メール本文の入力は、"." (ピリオド)、[Enter]、[Enter] と連続してタイプして終了する。

[root@centkun]# mail root
Subject: test mail
Hello, sendmail!!
.
Type [Enter]
Type [Enter]
Cc:

メールを確認する。

[root@centkun]# mail -d
user = root, homedir = /root
Mail version 8.1 6/6/93. Type ? for help.
"/var/spool/mail/root": 1 messages 1 new
>N 1 root@masudaq.com Sun May 2 12:36 xx/xxxx "test mail"
&

対話モードになるので、"N 1" のメールを参照する。

& 1 [Enter]
Message 1: From root@masudaq.com Sun May 2 12:36:45 2010
Date: Mon, 3 May 2010 15:56:10 +0900
From: root@masudaq.com
To: root@masudaq.village
Subject: test mail
 
Hello, sendmail!!

&

mail を終了する。

& q
Saved 1 message in mbox

ホームディレクトに "mbox" というファイルが生成されていることを確認する。

[root@centkun]# ls ~
xxxx xxxx mbox

ちなみにこの "mbox" ファイルは、平文でメールが格納されているので、テキストリーダーで内容を参照可能。
[root@centkun]# less ~/mbox

これで、ローカルでのテストは完了した。

"sendmail"、"saslauthd" を自動起動するように設定する。

[root@centkun]# chkconfig sendmail on
[root@centkun]# chkconfig saslauthd on

次に LAN 内の Windows クライアントから、STMP サーバーの送信テストを行う。ここでは、MUA(メールクライアント) として、Outlook 2007 を利用する。もちろん、他の MUA を利用しても構わない。用する。もちろん、他の MUA MUA の設定を行う前に、テストユーザー "user001"(任意) を作成する。

[root@centkun]# useradd user001
[root@centkun]# passwd user001 user001
[root@centkun]# passwd user001
Changing password for user userRetype new UNIX password:
passwd: all authentication tokens updated successfully.

Windows クライアントで、Outlook 2007(任意) を起動する。

[ツール] メニューから、[アカウント設定] -> [新規] で、[新しい電子メール アカウントの追加] ダイアログを起動する。

[Microsoft Exhange、POP3、IMAP、または HTTP] を選択、[次へ]。

[サーバー設定または追加のサーバーの種類を手動で構成する] をチェックし、[次へ]。

[インターネット電子メール] を選択し、[次へ]。

[新しい電子メール アカウントの追加] ダイアログの [インターネット電子メール設定] より以下の値を入力する。

新しい電子メール アカウントの追加 ダイアログ 

[名前] : user001 (任意)
[電子メールアドレス]: user001@masudaq.com [アカウント[アカウントの種類]: POP3 (今回は、SMTP のテストなので適当な値を指定してもよい。)
[受信メール サーバー]: 192.168.1.222  (今回は、SMTP のテストなので適当な値を指定してもよい。)
[送信メール サーバー]: 192.168.1.222 (sendmail サーバーを指定する。クライアントから名前解決可能であれば、ホスト名でもよい。)
[アカウント名]: user001
[パスワード]: *******

[詳細設定] ボタンをクリックする。[送信サーバー] タブを選択し、[送信サーバー (SMTP) は認証が必要] にチェックをいれる。さらに、[受信メール サーバーと同じ設定を使用する] を選択し、[OK] ボタンをクリックする。

新しい電子メール アカウントの追加 ダイアログ 詳細設定 

[次へ] -> [完了] で [新しい電子メール アカウントの追加] ダイアログを終了する。

[閉じる] をクリックし、[アカウント設定] ダイアログを閉じる。

[ファイル] メニューより、[新規] -> [メッセージ] でメッセージ作成画面を起動する。

[アカウント] ボタンより、[user001@masudaq.com] を選択する。これを忘れたらテストにならないので注意する。

[宛先] には、受信メールサーバーの設定は行っていないため、user001@masudaq.com 以外の受信可能なメールアドレスを指定する。その他の項目は、任意の値でよい。

[送信] ボタンよりメールを送信する。メールが正しく送信されたことを確認する。

[宛先] に指定したメールアドレスのメールボックスを参照し、メールが正しく届いていることを確認する。

次回は、受信サーバー (POP、IMAP) の設定方法を紹介する予定だ。

コメント (0)

コメントの投稿