|
|
|
|
サーバーのセットアップ
|
|
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
コマンドでバックアップを作成した後、
pico
エディタで
"/etc/mail/access"
を開きます
↓
picoで"/etc/mail/access"を開く "/etc/mail/access"は、行頭に "#" を記述するとコメント文として無視されますから、自分で説明を入れたり、一時的に設定を無効にする場合などに利用してください。 |
||||||
|
|
書式は、対象となるIPアドレスまたはドメイン名を向かって左側に記述し、スペースまたはタブで区切って右側にアクセス制御キーワードを記述します。 例えば、
と記述すると、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"の設定とデータベース化デフォルト の "/etc/mail/access" からコメント文を除くと、次のようになっているはずです。
つまり、 構築中のLinuxサーバー 上で動作する httpd やその他の アプリケーション から送信されるメールのみ、他の MTA に転送許可されています。 これに、自宅内の同じ サブネット "192.168.100.0/24" の中にある ホスト機 の MUA を使って、任意のメールアドレス宛にメール送信を可能にするには、
と設定します。 単独の IPアドレス ではなく、サブネット単位で ホスト を指定するときは、このように オクテット 単位で ネットワーク部 を指定し、 ホスト部 を省略します。 プレフィックス長 形式や サブネットマスク 形式は記述できません。 一般的にはこれ以外の設定を行う必要はありませんが、例えば頻繁にスパムメールを送ってくるMTAがある場合は、
と設定します。 |
|||||
|
|
このように設定すると、ホスト名 "*.spam.com からの転送を拒否することができます。 もちろん、ホストを特定できるのであれば、記述は FQDN でもIPアドレスでも構いません。
"/etc/mail/access"の設定例と動作イメージ図
設定が終了したら保存して
picoエディタ
を閉じ
この変換作業を行っても"/etc/mail/access"はそのまま残りますので、バックアップをとる必要はありません。 |
|||||
| "makemap" コマンド を "-v" オプション付きで実行すると、 "key=","val=" で処理内容を確認することができます。 |
このようにして作成された"/etc/mail/access.db"は、 Sendmail が一つの動作ごとに参照するデータベースですから、設定を反映するためにSendmailを再起動する必要はありません。データベースを作成すれば即動作に反映されるようになります。
関連セクション・
メールサーバーの構築
|
|
メール転送設定の使い分け
<<Previous
|
Next>>
Sendmailのコントロール
|
| このサイトに対するご意見、ご要望、苦情、泣き言、献上品、資金援助などがございましたら こちら からお寄せください(お返事できなかったらごめんなさい)。もちろん リンクフリー です。趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。 |
| ”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。 |