アーカイブ

2013 年 10 月 のアーカイブ

CentOS6.3にメールサーバ(SMTPサーバ)Sendmailを構築する

2013 年 10 月 10 日 コメントはありません

SendmailはUNIXで古くから使われてきたメールサーバソフトウェアです。オープンソース版のSendmailは数多くのディストリビューションに含まれていて、デファクトスタンダードのメールサーバーソフトウェアとして使用されてきました。

インストール

ほとんどのディストリビューションで、標準的にインストールされていると思います。

インストール確認

# yum list | grep sendmail
sendmail.x86_64 8.14.4-8.el6 installed
sendmail-cf.noarch 8.14.4-8.el6 installed

設定

Sendmailの設定方法。

設定ファイル
Sendmailの設定ファイルは、/etc/mailディレクトリに格納されています。

# ll /etc/mail
合計 280
-rw-r–r– 1 root root 92 5月 20 20:12 2009 Makefile
-rw-r–r– 1 root root 469 5月 20 20:12 2009 access
-rw-r—– 1 root root 12288 6月 9 10:00 2012 access.db
-rw-r–r– 1 root root 0 6月 9 10:00 2012 aliasesdb-stamp
-rw-r–r– 1 root root 233 4月 12 23:35 2007 domaintable
-rw-r—– 1 root root 12288 6月 9 10:00 2012 domaintable.db
-rw-r–r– 1 root root 5584 11月 12 04:36 2010 helpfile
-rw-r–r– 1 root root 64 4月 12 23:35 2007 local-host-names
-rw-r–r– 1 root root 997 4月 12 23:35 2007 mailertable
-rw-r—– 1 root root 12288 6月 9 10:00 2012 mailertable.db
-rwxr-xr-x 1 root root 2700 5月 20 20:12 2009 make
-rw-r–r– 1 root root 58439 11月 12 04:36 2010 sendmail.cf
-rw-r–r– 1 root root 58439 11月 12 04:36 2010 sendmail.cf.org
-rw-r–r– 1 root root 7237 10月 10 01:13 2013 sendmail.mc
-rw-r–r– 1 root root 7202 5月 20 20:12 2009 sendmail.mc.org
-rw-r–r– 1 root root 41521 11月 12 04:36 2010 submit.cf
-rw-r–r– 1 root root 941 11月 12 04:35 2010 submit.mc
-rw-r–r– 1 root root 127 4月 12 23:35 2007 trusted-users
-rw-r–r– 1 root root 1847 4月 12 23:35 2007 virtusertable
-rw-r—– 1 root root 12288 6月 9 10:00 2012 virtusertable.db

この中でメインの設定ファイルは「sendmail.cf」ですが、設定がとても複雑なため
通常はM4マクロ言語で「sendmail.mc」というファイルに設定を記述してから
実際の「sendmail.cf」ファイルを生成します。

sendmail.cfファイルの生成
「sendmail.mc」で設定を変更した際には、以下のコマンドを実行して「sendmail.cf」ファイルを生成します。

# m4 /etc/mail/sendmail.mc > /etc/sendmail.cf

sendmail.mcの設定

SMTP接続を外部から受ける設定
デフォルトでは、127.0.0.1のSMTPポート(25番ポート)でLISTENするように設定されています。
このままでは、他のネットワークから接続できないため、この設定を削除して全てのネットワークインターフェースのSMTPポートでLISTENするように設定変更します。
(※dnlを付けると、コメント行として見なされます。)

dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA’)dnl

ドメイン名の設定
メール送信時に設定されるドメイン名を設定します。

LOCAL_DOMAIN(`oss-lab.net’)dnl

設定を変更したら、m4マクロで、cfファイルを生成します。

メール受信ドメインの設定

/etc/mail/local-host-namesの設定
sendmailは、このファイルに設定されたドメイン宛のメールを自分宛のメールとして処理します。
このファイルに設定されていない宛先へのメールは他のMTAへリレーします。

# cat local-host-names
# local-host-names – include all aliases for your machine here.
oss-lab.net

アクセス制限

/etc/mail/accessの設定
どのネットワークからのアクセスを許可するか設定を行います。

# Check the /usr/share/doc/sendmail/README.cf file for a description
# of the format of this file. (search for access_db in that file)
# The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc
# package.
#
# If you want to use AuthInfo with “M:PLAIN LOGIN”, make sure to have the
# cyrus-sasl-plain package installed.
#
# By default we allow relaying from localhost…
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY

access.dbへの設定反映
以下のコマンドを実行して設定を反映します。

makemap hash /etc/mail/access.db < /etc/mail/access

Sendmail起動

設定が完了したら、Sendmailを起動します。

alternativesの設定
postfixがデフォルトのMTAとして設定されている場合があります。
以下のコマンドで、デフォルトのMTAとしてSendmailを選択します。

# alternatives –config mta

2 プログラムがあり ‘mta’ を提供します。

選択 コマンド
———————————————–
* 1 /usr/sbin/sendmail.sendmail
+ 2 /usr/sbin/sendmail.postfix

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:1

postfixサービス停止
postfixが起動している場合はサービスを停止します。

# service postfix stop

sendmailサービス開始

# service sendmail start

■参考ページ

http://futuremix.org/2003/05/sendmail
http://www.server-memo.net/server-setting/sendmail/sendmail-setting
http://www.ki.nu/software/cf/cf.html


カテゴリー: Linux, メールサーバ タグ: ,