|
|
メールサーバーの構築
|
メールサーバーについて電子メールシステムについてメールアカウントの作成POP/IMAPサーバーの設定Sendmailの設定Postfixの設定ユーザー認証によるメール送信SMTP AUTHの設定POP/IMAP before SMTP
dracによるPBS構築
|
メールを自由に転送する方法MTA の付加機能で最も重要なものの一つが メールの転送機能 です。 例えば、 "k_tanaka@obenri.com" や、 "webmaster@obenri.com" といったアドレス宛てのメールを ユーザーアカウント "tanaka" へ転送、あるいは ISP の自分のメールアドレス宛に転送、という使い方をすると非常に便利です。 もちろん1対1の転送だけではなく、複数の宛先に転送したり、コピーとして配信することもできます。 この機能は、 テキスト ファイルである "/etc/aliases" へ設定を記述し、 データベース 処理を行うことで実現することができます。 この仕組みはもともと Sendmail が実装していたものなのですが、その互換 アプリケーション である Postfix では、その機能を拡張する形で利用できるようになっています。 従って、この コンテンツ に従ってSendmailとPostfixが設定されていれば、どちらでも"/etc/aliases"を参照して動作しますので、どちらを利用する場合でも以下の設定方法を参照してください。 ただし、このパートで説明する "/etc/aliases" によるメールの転送は、受信するメールの "@" 以降の違いによる振分け、つまり複数の ホスト名 の運用である バーチャルホスト での運用には残念ながら対応していません。 これを行うには"/etc/aliases"による設定ではなく、Sendmail、Postfixの独自の設定を行う必要があります。
この機能を実装させたいときは、Sendmailをお使いの場合は
関連セクション・
Sendmailの設定
関連セクション・
Postfixの設定
"/etc/aliases"の設定
まず、
サブネット
内の適当な
クライアント機
から
SSHクライアント
で
構築中のLinuxサーバー
に
ログイン
します
それから
su
コマンド
で
アカウント
を
"root"
に変更し、
cp
コマンドでバックアップを作成した後、
nano
エディタで
"/etc/aliases"
を開きます
デフォルト の "/etc/aliases" には、既に WBEL や CentOS 自身に必要な多くの転送設定が記述されています。 以下にその一部を抜粋してみます。 |
|||||||||
最後の行は、
で設定を修正しているはずです。
|
"/etc/aliases"では、 "#" で始まる行はコメント行として設定からは無視されます。 一般書式は、 [転送元]: [転送先1],[転送先2],... となります。 後で データベース 化処理を行うときに順序は適切に変更されますので、記述する順序は気にする必要はありません。 |
|||||||||
| もちろん、これらの全てアプリケーションが動作している訳ではありませんし、動作をしていても必要なときしかレポートを送らないアプリケーションが大部分です。レポートメールであなたのメールボックスが溢れることはありません。 |
さて、既存の転送設定の大部分は、WBELやCentOS上で動作する アプリケーション が、動作レポートを "root" 宛てに送るためのものです。 もちろんこの部分には修正は不要ですから、必要な設定はファイルの末尾に追加してゆくようにします。 例えば、 "webmaster@obenri.com" 宛てのメールをすべて "tanaka@obenri.com" のメールボックスに転送してしまう場合は、 |
|||||||||
| 転送先が自 ホスト 宛ての場合、通常は "@obenri.com" は記述不要です。 |
と追加記述します。複数のメールボックスに転送する場合は、
のように、転送先を ",(カンマ)" で区切って設定します。 |
|||||||||
|
|
また、 ISP などから提供されているメールアドレス(つまり、 構築中のLinuxサーバー 宛てではないメール)へ転送する場合は、
と、完全なメールアドレスで記述します。
編集が終わったら、ファイルを保存してnanoエディタを終了してください
"/etc/aliases"を保存したら、 プロンプト から次の コマンド を実行してください。"/etc/aliases.db"が再構築されます。
"/etc/aliases.db"は、 Sendmail あるいは Postfix が一つの動作を行う毎に参照されますから、データベースの再構築後にこれらの MTA は再起動する必要はありません。データベースを再構築すると、直ぐに転送設定は反映されます。
関連セクション・
Sendmailの設定
関連セクション・
Postfixの設定
|
|||||||||
危険なメール転送設定メールの転送設定で注意しなければならないのは、 「メールループ」 です。 カンの良い方はもうお解かりかもしれませんが、例えば "/etc/aliases" で、
のような設定を行ってしまうと、この三つのアカウントのいずれかに送られたメールは、延々と転送を繰り返してしまうことになります。 もちろん、こういう設定は絶対行ってはいけません。 また、転送元と同名の アカウント のメールボックスにも同じメールを保存したい場合は注意が必要です。例えば、
のように記述すると、webmasterのみで上と同じようなメールループ現象が起こってしまいます。 こういう場合は転送元の同名の アカウント の先頭に "\" を付けて、 |
||||||||||
| 先頭に "\" が付けられた転送先のアカウントは、 "/etc/aliases.db" データベース 中で、同名の他のアカウントへの連携が行われなくなります。 |
のように記述してください。 もちろんこれは 苦肉の策 に過ぎず、根本的なメールループの対策にはなっていませんし、将来メールの利用者が増え、色々なパターンの転送設定を繰り返しすうちに「ついうっかりメールループになってしまった」ということにもなりかねません。 以下に、安全で管理のしやすいメールのアカウントの設定の方法を説明しましょう。
関連セクション・
Sendmailの設定
関連セクション・
Postfixの設定
|
|||||||||
メール転送設定を前提とした運用方針メールの転送設定で、設定ミスによる 「メールループ」 を起こさない最も確実な方法は、 「メールアドレスの名前には ユーザーアカウント の名前を直接使わない。」 ということに尽きるでしょう。 |
||||||||||
ここで注意しておくべきことは、作成したユーザーアカウント"00kimura"には、
SSH
による
ログイン
や、ローカルユーザーでの
FTPサーバー
へのログイン
を
許可してはいけない
ということです。
その理由については、以下のパートで説明します。 |
例えば、
"kimura@obenri.com"
というメールアドレスを設定する場合、
"kimura"
というユーザーアカウントを作成するのではなく、例えば
"00kimura"
のような別の名前のユーザーアカウントを作成しておき
のように設定します。 "kimura" という名称は、 "00kimura" というユーザーアカウントへメールを転送するための 窓口 に過ぎませんから、この場合 構築中のLinuxサーバー に"kimura"というユーザーアカウントを作成する必要はありません。 さてこの場合、 MUA では次のようにメールアカウントを設定することになります。 |
|||||||||
|
|
メールアドレス: kimura@obenri.com 受信メールサーバー(POP3): mail.obenri.com 送信メールサーバー(SMTP): mail.obenri.com アカウント名またはユーザー名: 00kimura
パスワード:
web1.obenri.comシステム上の00kimuraのパスワード
例えば、 Outlook Express の場合は、以下のように設定します。
MUAの設定例(Outlook Express「全般」)
MUAの設定例(Outlook Express「サーバー」) つまり、MUAに設定するメールアドレスの名前の部分と、 MRA でメールを受信するためのアカウント名が異なるわけですが、実用上は何の問題もありません。 この方法でメールアドレス用のアカウントを作成する場合少々手間がかかります。しかし、そのひと手間を惜しまないことで得られるいくつかのメリットがあります。 メールループに陥りにくいルールが作りやすい先頭に "00" の付いた ユーザーアカウント を、 「受信したメールの保存用アカウント」 として扱うように心がけることで、うっかりミスによるメールループを回避しやすくなります。 つまり、 "/etc/aliases" の記述で、 「転送元には絶対に"00"で始まるユーザーアカウントを記述せず、転送先には必ず"00"で始まるユーザーアカウントのみを記述する。」 という自分なりのルールを作ってしまうわけです。具体的には、
のように、記述の向かって左側には"00"で始まらない名前を、向かって右側には"00"で始まるユーザーアカウントを記述するようにルールを定めることになります。 このようにしてしまえば、メールは必ず [転送元]→[転送先]の一回限りの転送 で終了しますから、メールループを確実に回避することができるはずです。 ユーザーが勝手に転送設定を行うことができないメールの転送設定は、 "/etc/aliases" だけで行われるものではありません。 |
|||||||||
| もちろん、この方法で転送できるのは、そのユーザーアカウント宛てのメールだけです。 |
実は、各 ユーザーアカウント の ホームディレクトリ 以下に、転送先の アカウント やメールアドレスを記述した ".forward" という テキスト ファイルを置いておくことでも転送が可能になります。 各ユーザーは、 SSHクライアント などから 構築中のLinuxサーバー へのリモート ログイン 、あるいはローカルユーザーとして FTPクライアント からのデータの アップロード が許可されていれば、自分のホームディレクトリに".forward"ファイルを設置することが可能です。 つまりこの仕組みはメールを利用する各ユーザーが、管理者に依頼することなく転送設定を行えるようにするためのものです。 ただし、今説明中の方法に従えば、 構築中のLinuxサーバー のシステム上には "kimura" というユーザーアカウントは存在せず、ホームディレクトリそのものがありませんから、"kimura"に対しての転送設定はできません。 従って転送設定はユーザーアカウント "00kimura" に対してのみ可能ということになります。 例えば、 "/home/00kimura/.forward" に |
|||||||||
| ".forward" の書式は、 [転送元] を省く以外は "/etc/aliases" と同じです。 |
と記述すれば、 kimura@obenri.com 宛てに送られてきたメールは、"/etc/aliases"の設定に従って"00kimura"を経由し、更にこの設定で kimura@ispdomain.com に全て転送されることになります。 ただ、このユーザーが「kimura@obenri.comにもメールを保存したい。」と考え、本来ならば、
と記述しなければならないところを、
と記述してしまったり、更にうっかりが重なって、
とでも記述しようものなら間違いなくメールループが発生してしまうことになります。 こういったトラブルを未然に防ぐ最も良い方法は、 「ユーザーにメール転送の設定を任せない」 ことです。 |
|||||||||
|
|
ただ、".forward"の利用を完全に禁止してしまうと、その利用方法がよく解っている人にとっては不便です。 また、何よりもあなた自身がこの便利な仕組みを利用できなくなってしまいます。
そこで、利便性と
セキュリティ
を両立するために、"00"で始まるユーザーアカウントは、
「メールの受信専用のアカウント」
と決めて、
SSH
によるリモートログインや、
FTP
によるアップロードの許可を与えないようにしてしまいます
要するに、信頼の置けないユーザーに対しては、".forward"を設置する手段を与えないようにするわけです。 これで".forward"の機能は有効にしたまま、メールループの危険を避けることができようになります。 ところが逆に、web コンテンツ のスペースを貸し出すような場合には、そのユーザーアカウントに対してFTPによるデータアップロードの許可は最低限与えなければなりません。 例えばそういう目的でユーザーアカウント "nakai" を作成した場合でも、自動的にメールアドレス nakai@obenri.com が設定されてしまうことになります。 当然このユーザーはFTPを使って".forward"の設置が可能ですから、同じメールループの問題を抱えることになってしまいます。 こういう場合には、"nakai"が書き換えできない パーミッション で、予めホームディレクトリに、空白の".forward"ファイルを作成しておけば安心です。 こうすれば、"nakai"はどうがんばってもメールの転送設定ファイルを設置することができなくなります。 ファイルは "root" アカウントから作成するのが簡単です。
他にもいくつか対処方法はありますが、これが一番簡単で確実な方法だと思います。
関連セクション・
Sendmailの設定
関連セクション・
Postfixの設定
|
|
|
サブミッションポートの設定
<<Previous
|
Next>>
メールサーバーのコントロール
|
| このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。 |
| ”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。 |