|
|
Sendmailの設定
|
SendmailについてSendmailのファイル構成sendmail.mcの編集と設定sendmail.cfの作成受信するホスト名の設定ホスト名毎のメールの振分けメール転送設定の使い分け受信/転送に関する設定Sendmailのコントロール連携するアプリケーション等 |
受信、転送を許可するホストの設定
Sendmail
は、任意の
ホスト
からのメールを受信するとき、その宛先のメールアドレスの
"@"
以降が
"/etc/mail/local-host-names"
の記述と一致する場合は自ホスト内への保存を試み
この働きはMTAにとって最も重要なものですが、この設定を誤ると不正なスパムメールの 「配信の踏み台」 にされる可能性がありますので、仕組みをきちんと理解して設定を行う必要があります。 MTAは通常、メールの受け入れの許可、転送の許可について、メールの送信元のホストの IPアドレス または ドメイン名 で判別することができるようになっています。 Sendmailではその制御を行うのに、 "/etc/mail/access.db" という バイナリ の データベース ファイルを参照します。 "/etc/mail/access.db"は、 テキスト ファイルである "/etc/mail/access" の内容を、 "makemap" コマンド でバイナリ型に変換して作成されますから、実際に編集を行うのはこの"/etc/mail/access"となります。
まず、
cp
コマンドでバックアップを作成した後、
nano
エディタで
"/etc/mail/access"
を開きます
↓
WBEL3,CentOS3,WBEL4,CentOS4のデフォルトの"/etc/mail/access"
CentOS5のデフォルトの"/etc/mail/access" "/etc/mail/access"は、行頭に "#" を記述するとコメント文として無視されますから、自分で説明を入れたり、一時的に設定を無効にする場合などに利用してください。 |
||||||||
|
|
書式は、対象となるIPアドレスまたはドメイン名を向かって左側に記述し、スペースまたはタブで区切って右側にアクセス制御キーワードを記述します。 さて、上のように "/etc/mail/access" の内容は、WBEL3、CentOS3、WBEL4、CentOS4のものとCentOS5のものでは少し記述内容が異なります。 本来、 ディストリビューター が推奨する "/etc/mail/access" の基本書式は、
[タグ]:[パラメータ] [アクセス制御キーワード]
です。つまりCentOS5の
が正式な書き方です。 この例では[タグ]が "Connect" となっていますが、これは[パラメータ]である "localhost.localdomain" ホスト名 または IPアドレス と解釈して動作させるための明示的な指定を意味します。 ただし[タグ]が省略された場合には "Connect" が設定されているものとみなされて動作しますから、WBEL3、CentOS3、WBEL4、CentOS4の "/etc/mail/access" に記述されている
は、設定としてはCentOS5のそれと全く同じになります。 [タグ]には "Connect" の他に "From" と "To" を指定することが可能で、主にスパムメール対策として有効に利用することができますが、これについてはこのページの最後に説明します。 とりあえずここでは、 "/etc/mail/access" の記述について Connect: を省略した書式で説明しますが、[タグ]を記述する書式が デフォルト になっているCentOS5をご利用の方は、以下の設定の各行の先頭に Connect: を付加して記述するほうが望ましいと思われます。 さて記述例ですが、
と記述すると、Sendmailは、 「IPアドレス"192.168.100.101"のホストのMUAからのメールの受信と、他のMTAへの転送を許可する。」 という動作をします。また、
と記述すると、 「 FQDN "*.obenriclient.com"のホストのMUAからのメールの受信を拒否する。」 という動作をします。 アクセス制御キーワードはいくつかの種類がありますが、少しわかり難いかもしれませんので図解してみます。 "OK"〜受信と自ホストへの保存のみ許可デフォルト の設定です。 明示的に設定を行わない場合は、自動的に任意のホストに "OK" が設定されたものとみなされます。 この場合、 |
||||||||
|
メールはユーザーがMUAから発信するだけでなく、Sendmailと同じホスト上で動作する他の
アプリケーション
(例えば
httpd
から送信されるフォームメールなど)
からも発信されます。
この場合の送信元のホストはいうまでもなく "localhost" として扱われ、 "/etc/mail/access" の制御を受けます。 |
キーワードに"OK"が指定(あるいは無指定)されたときのSendmailの動作 のように、Sendmailは MUA や MTA からの受信を受け入れ、自ホストへの保存動作を試みます。 メールの宛先が自ホストではない場合には、Sendmailは受信そのものを拒否し、送信元にその旨のメッセージを送り返します。 つまりこの設定では、 「他のMTAへの転送は行わない」 ので、先に説明した "local-host-names" で指定されていないメールアドレス宛てのメールは、一切扱わないことになります。 "RELAY"〜受信と自ホストへの保存と他ホストへ転送を許可上の "OK" の動作に加えて、他の ホスト へのメールの転送を許可します。 |
||||||||
| MUA は クライアント アプリケーション ですから、MTAからのメールの転送先ではありえません。 |
ここでいう「他のホスト」とは、正確には 「他のホストからメールの受け入れが可能な MTA 」 ということになります。
キーワードに"RELAY"が指定されたときのSendmailの動作 Sendmail は、"RELAY"キーワードで指定されたホスト(MTAまたはMUA)からのメールを受信すると、その宛先が "local-host-names" で指定されたもの以外の場合、 DNSサーバー を利用してメールの宛先の 名前解決 を行い、自身以外のMTAへの転送を試みることになります。 |
||||||||
|
|
実際のところ、ほとんどのインターネット利用者は ISP から提供されたメールアドレスを使用しているはずですから、あなたが 構築中のLinuxサーバー 上のSendmailを使って友人などにメールを送りたい場合、あなたが使うMUAに対して"RELAY"を設定する必要があります。 ただし、自分の管理下にないMTAやMUAに対しては、 絶対に"RELAY"を設定してはいけません。 もしもそういう設定をしてしまうと、 構築中のLinuxサーバー は スパムメールの発信基地 にされてしまうかもしれないからです。
スパマーは自分で設置したMTAから直接スパムメールを発信するわけにはいきませんから
そしてもし 構築中のLinuxサーバー がスパムメールの発信基地にされてしまったら、あなたのメールサーバーそのうちブラックリストに挙げられ、多くのMTAから受信拒否されてしまうことになるでしょう。 "REJECT"〜受信を拒否する(エラー表示)ホスト からの受信を拒否し、送信元にエラーを表示させる動作を行うキーワードです。 頻繁にスパムメールを送りつけてくる MTA などに設定します。 "550 [メッセージ]"〜受信を拒否する(エラー+メッセージ表示)動作は"REJECT"と同じですが、エラーとともに[メッセージ]を送信します。 "DISCARD"〜受信メールを破棄する(エラー非表示)ホスト からの受信メールを破棄し、送信元にエラーを表示させないためのキーワードです。 この動作を行われると、送信元にとっては「正常にメールが送信できた。」と錯覚することになりますから、正当なユーザーにとってはかなり迷惑な設定になります。 また、未熟なスパマーが「スパムメールの踏み台」が見つかったと錯覚する恐れもありますから、一般的には使用すべきキーワードではありません。
関連セクション・
メールサーバーの構築
|
||||||||
"/etc/mail/access"の設定とデータベース化WBEL3 、 CentOS3 、WBEL4、CentOS4の デフォルト の "/etc/mail/access" からコメント文を除くと、次のようになっているはずです。
またCentOS5では、
となっているはずです。つまり、 構築中のLinuxサーバー 上で動作する httpd やその他の アプリケーション から送信されるメールのみ、他の MTA に転送許可されています。 これに、自宅内の同じ サブネット "192.168.100.0/24" の中にある ホスト機 の MUA を使って、任意のメールアドレス宛にメール送信を可能にするには、WBEL3、CentOS3、WBEL4、CentOS4では、
CentOS5では、
と設定します。 単独の IPアドレス ではなく、サブネット単位で ホスト を指定するときは、このように オクテット 単位で ネットワーク部 を指定し、 ホスト部 を省略します。 |
|||||||||
|
|
一般的にはこれ以外の設定を行う必要はありませんが、例えば頻繁にスパムメールを送ってくる "*.spam.com" という ホスト名 のMTAがある場合は、WBEL3、CentOS3、WBEL4、CentOS4では、
CentOS5では、
と設定します。 もちろん、ホストを特定できるのであれば、記述は FQDN でもIPアドレスでも構いません。
"/etc/mail/access"の設定例と動作イメージ図
設定が終了したら保存して
nanoエディタ
を閉じ
この変換作業を行っても"/etc/mail/access"はそのまま残りますので、バックアップをとる必要はありません。 |
||||||||
| "makemap" コマンド を "-v" オプション付きで実行すると、 "key=","val=" で処理内容を確認することができます。 |
このようにして作成された"/etc/mail/access.db"は、 Sendmail が一つの動作ごとに参照するデータベースですから、設定を反映するためにSendmailを再起動する必要はありません。データベースを作成すれば即動作に反映されるようになります。
関連セクション・
メールサーバーの構築
|
||||||||
"/etc/mail/access"中に記述できるタグについてこのページの最初のほうで説明したとおり、本来 "/etc/mail/access" へは、 CentOS5 の デフォルト の形式である、
[タグ]:[パラメータ] [アクセス制御キーワード]
のように記述することが推奨されています。 |
|||||||||
|
|
設定可能なタグは以下の三つです。 Connect: [パラメータ]を ホスト名 または IPアドレス とみなして動作します(省略可)。 From: [パラメータ]を差出人のメールアドレスとみなして動作します。 To: [パラメータ]を受信者のメールアドレスとみなして動作します。 例えば、
と設定を追加すると "spam@obenrispam.com" を差出人とするメールの受信を拒否することができますし、
と設定するとホスト名の部分に "obenrispam.com" を持つメールすべてを受信拒否し、
と設定すると "spam" というユーザー名を持つメールアドレスからのメールのすべてを受信拒否することができます。 タグに "To" を用いる場合は[パラメータ]が宛先に変わるだけで設定の意味は同じです。 |
||||||||
|
例えば
MUA
として
"Outlook Express"
をお使いの場合、アカウント設定で
電子メールアドレス(M):
を書き換えたり、
返信アドレス(Y):
を書き加えたりするだけで簡単に差出人のメールアドレスを誤魔化すことができます。
これは本物の郵便を出すときに、ウソの差出人を書いてもちゃんと相手に届くのと同じことですね。 |
ただし電子メールを出すときの差出人の署名や表示上の宛先は、実際には自己申告のようなものですからいくらでも偽装が可能です。 従って "From:" や "To" を利用した迷惑メールの処理は、送信元のホスト名やIPアドレスのように簡単には偽装のできない情報を元に制御を行う "Connect" タグによる処理に比べると遥かに実効性は低くなりますので過信は禁物です。 また、 "/etc/mail/access" での受信、リレー制御は過剰に設定すると必要なメールまで送受信できなくなるミスを犯す危険がありますので、必要最小限のシンプルな設定にとどめておくことをお勧めします。
関連セクション・
メールサーバーの構築
|
|
|
メール転送設定の使い分け
<<Previous
|
Next>>
Sendmailのコントロール
|
| このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。 |
| ”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。 |