このページでは自宅サーバーで使用するMTA、Sendmailの主設定ファイルsendmail.mcの記述について初心者/ビギナー向けに解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
Sendmailの設定

Sendmailについて

Sendmailのファイル構成

sendmail.mcの編集と設定

sendmail.cfの作成

受信するホスト名の設定

ホスト名毎のメールの振分け

メール転送設定の使い分け

受信/転送に関する設定

Sendmailのコントロール

連携するアプリケーション等


"/etc/mail/sendmail.mc"の編集

Sendmail の実際の設定ファイルは "/etc/mail/sendmail.cf" ですが、現在ではこのファイルを直接 テキスト エディタで編集することは滅多にありません。

Sendmailは TCP/IP が利用される以前から使われてきた、歴史の古い MTA です。

そのため、その当時から利用されてきた通信環境の設定までこの"/etc/mail/sendmail.cf"に含まれています。

なおかつ現在の多くの サーバー アプリケーション の設定ファイルのように普通の人が理解しやすい形では書かれていないため、現在では膨大で複雑な設定ファイルと化していて、直接編集することが非常に困難になってしまっている、というのがその理由です。

そこで現在では、SendmailをTCP/IP環境で利用する場合には、必要最低限の設定項目を解りやすく抜粋して作られている "/etc/mail/sendmail.mc" というテキストファイルを編集し、 コマンド 処理で"/etc/mail/sendmail.cf"を作成して用いるのが一般的な方法になっています。

まず、 サブネット 内の適当な クライアント機 から SSHクライアント で 構築中のLinuxサーバー に ログイン します SSHクライアントでサーバーに接続する(WBEL3) SSHクライアントでサーバーに接続する(CentOS3) SSHクライアントでサーバーに接続する(WBEL4) SSHクライアントでサーバーに接続する(CentOS4) SSHクライアントでサーバーに接続する(CentOS5) 。

それから su コマンドで アカウント を "root" に変更し、 cp コマンドでバックアップを作成した後、 nano エディタで "/etc/mail/sendmail.mc" を開きます nanoエディタでファイルを開く 。

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# cp /etc/mail/sendmail.mc /etc/mail/sendmail.mc.orgEnter
[root@web1 ~]# nano /etc/mail/sendmail.mcEnter

↓

nanoで/etc/mail/sendmail.mcを開く
nanoで"/etc/mail/sendmail.mc"を開く

"/etc/mail/sendmail.mc" は、Sendmailが動作中でも自由に書き換えることができます。

ただし、 WBEL や CentOS の サーバー アプリケーション は通常、設定ファイルを保存しただけでは設定は反映されません。もちろんSendmailもその例外ではありません。

サーバーアプリケーションの設定ファイルは、通常サーバーアプリケーションの起動時に参照されて読み込まれますから、設定ファイルの保存後にサーバーアプリケーションの再起動を行うか、設定ファイルの再読み込みのコマンドを実行しなければ、設定ファイルの修正は有効になりませんので注意してください。

Sendmailの再起動、設定ファイルの再読み込みについては、 Sendmailのコントロールについて で説明します。

Sendmailの構築に
役立つ一冊です
↓

"/etc/mail/sendmail.mc"の書式は、 「"dnl"から行末まではコメントとして無視される。」 という独特なものになっていますので、他の設定ファイルの一般的なコメントアウトと混同しないように気をつけてください。

この"/etc/mail/sendmail.mc"の中で、編集すべき点を以下に示します。

編集が終わったら、ファイルを保存してnanoエディタを終了してください nanoエディタを終了する 。

関連セクションへ 関連セクション・ メールサーバーの構築

このページの先頭へ↑

"sendmail.mc"の記述内容

以下、 "/etc/mail/sendmail.mc" の中で必要な設定内容について説明します。

ホスト外からの送信の許可設定

WBEL3 及び CentOS3 では 90行目 、WBEL4及びCentOS4では 105行目 、CentOS5では 117行目 あたりに記述があります。

デフォルト の Sendmail は、 ループバックアドレス 、つまり 構築中のLinuxサーバー から送信されるメールのみを受け付けるようになっています。

まずはこれを解除しなければ、 MUA からメールを送信することができません。

したがって該当する設定行

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

を、

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

と書き換えて、この設定を無効にしてください。

「どこからでも送信可能にするのは危険では?。」

と思われるかもしれませんが、具体的な設定は "受信/転送に関する設定" 受信/転送に関する設定 で行いますので心配ありません。

従ってここはとりあえず「全部許可」でOKです。

名前解決できないMTAからのリレーの禁止

WBEL3 及び CentOS3 では 123行目 、WBEL4及びCentOS4では 138行目 、 CentOS5では 149行目 あたりに記述があります。

名前解決とメールのリレー でも説明したとおり、逆引きの 名前解決 のできないメールサーバーからメールのリレーを受け入れることは、 構築中のLinuxサーバー にとって セキュリティ 上の問題があるだけでなく、スパムメールの横行に手を貸すことにもなりますからできるだけ避けなくてはなりません。

しかし デフォルト の "/etc/mail/sendmail.mc" では、

FEATURE(`accept_unresolvable_domains')dnl

と、 「名前解決できない MTA からのメールの受け入れを許可する。」 という設定になっていますから、これを、

dnl FEATURE(`accept_unresolvable_domains')dnl

と、無効化することをお勧めします。

この設定を行うだけで、かなりの割合のスパムメールの受信を拒否することができるようになります。

もちろん、この設定によって名前解決による FQDN を持たないMTAからのメールはすべて受信拒否しますから、不正なものではないけれども、 設定が不完全なMTA からのメールも一部巻き添えになるかもしれません。

とはいえ、スパムメールの脅威に比べれば、それは「些細な不都合」に過ぎないと思われます。

送信するメールのサイズの制限(追加)

デフォルト の Sendmail は、受信するメールのサイズに制限がありません。

極論すれば、 構築中のLinuxサーバー でメールボックス用に充分な ハードディスク の容量が確保されていれば、100 MB でも 1GBでも送信は可能ということになります。

ただ、それは送信先のメールアドレスのメールボックスが 構築中のLinuxサーバー 上にある場合に限って、という条件がつきます。

一般に ISP から提供されるメールアドレスでは、メールボックスのサイズはせいぜい50MB〜100MB程度です。

例えばあなたがそのメールアドレス宛てに、500MBの巨大なメールを送ったとしたらどうなるでしょう。

当然相手の MTA は容量オーバーで受信拒否しますから、そのメールは「受信不可」のメッセージとともに 構築中のLinuxサーバー 上のあなたのメールボックスに格納されます。

そしてあなたは自分の MUA で、その巨大な「送れなかったメール」を延々と受信しなければならなくなります。

送らなければならない容量が大きいときは、例えば FTPサーバー や Webサーバー 、あるいは郵便や宅配便などを利用するべきでしょう。

このように、メールシステムはその仕組み上、大きなデータを送るための手段としては不適当です。どんなに大きくても50MB、通常は10〜20MB程度とし、それ以上の容量のデータを送る場合は別の手段を考えるべきでしょう。

ただ、いくら気をつけていても、ファイルの容量を見間違えてうっかり大きなデータを送ってしまうことはあり得ますから、ここはMTAに取り扱い容量の制限を設けてミスに対処するべきでしょう。

この設定はもともと"/etc/mail/sendmail.mc"には記述がありませんから、以下のように新規に追加記述します。

define(`confMAX_MESSAGE_SIZE',`10000000')dnl
設定値は、メールの送受信のためのヘッダなどが付いたときの容量になりますから、実際に送ることができる容量は、設定値よりも少し小さめになります。

赤 で示した数値が、MTAが取り扱うメールの容量の上限になります。単位はバイトです。

例えばこの場合は10MBが上限に設定されます。

何にせよ、物理的に上限があるものに対しては、「無制限」という設定は一般にするべきではありません。

同時に送信できるメールコピーの上限数(追加)

MUA は普通、大勢の相手に同じ内容のメールを一度に送信する機能を持っています。

これはメールシステムの持つ大きなメリットの一つですが、逆に スパムメール の大量発信に悪用される恐れもあるといえます。

サーバーサイドアプリケーション を利用して、多くの読者にメールマガジンなどを発信するような場合は別ですが。

一般的なメールの利用方法であれば、メールのコピーを配信するにしてもせいぜい30〜50通くらいが常識的なところではないでしょうか。

この設定はもともと "/etc/mail/sendmail.mc" には記述がありませんから、以下のように新規に追加記述します。

例えば50通に制限したい場合は、

define(`confMAX_RCPTS_PER_MESSAGE', `50')dnl

と追加記述してください。

デフォルト では 無制限 ですので、万一の場合を考えて必ず何らかの値を設定しておくようにしましょう。

このディレクティブは、万が一 構築中のLinuxサーバー がメールの不正中継に使われたり、あるいは サブネット 内の他の ホスト機 が コンピュータウイルス に感染して、大量のウイルス付きメールを発信しようとする場合に、最低限の防御手段となります。

必ず自分の利用方法に見合ったパラメータを設定するようにしてください。

サブミッションポートの有効化

Outbound Port25 Blocking に対応する サブミッションポート の設定については、その意味をきちんと理解していただく意味で別途こちら サブミッションポートの設定について に詳しく解説しています。

必要に応じて参照してください。

関連セクションへ 関連セクション・ メールサーバーの構築

このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。
Powered by Apache
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。
www.centos.org - The Community ENTerprise Operating System