|
|
メールサーバーの構築
|
メールサーバーについて電子メールシステムについてメールアカウントの作成POP/IMAPサーバーの設定Sendmailの設定Postfixの設定ユーザー認証によるメール送信SMTP AUTHの設定POP/IMAP before SMTP
dracによるPBS構築
|
王道を行くなら"Pop-before-smtp+Dovecot"でPBS少し思想的な話になりますが、 メールサーバー のようにいくつもの サーバー アプリケーション を組み合わせてひとつのシステムを作り上げるような場合、動作実績を重視して、古くても完成度の高いアプリケーションを組み合わせる方法と、多少は構築に手間を要してもできるだけ現行のアプリケーションを利用して将来に備える、という二つの選択肢があります。
POP/IMAP before SMTP
を構築する方法として、
これらは POP/IMAP before SMTP を構成するうえでは比較的簡単なのですが、もう長くバージョンアップされていないDRACや、新しいディストリビューションでは採用が見送られることの多くなったUW IMAPを利用しているため、将来性を考えればあまりお勧めできない手段といえるでしょう。 このページでは構築に多少の手間はかかりますが、 WBEL4 、 CentOS4 及びCentOS5についてその将来性を重視して、可能な限り現行のサーバーアプリケーションを用いたPop-before-smtpの構築方法について説明します。 ポイントは Dovecot を MRA として用いることです。 RHEL およびその クローン OS であるWBELやCentOSでは、標準で添付されるMRAとしては、OSのバージョン番号 "4" からはDovecotが採択されています。 つまりDovecotは現在のところRHEL系ディストリビューションの標準MRAとしての地位を得ているといえます。 一方、 RHL の時代から RHEL、WBEL、CentOSのOSのバージョン番号 "3" までは、構成がシンプルで扱いが簡単なUW IMAPが標準でした。 しかし企業の基幹サーバーにも使用されるRHELでは近年、より高度な機能が求められるようになった結果、RHEL4からは標準MRAの座をDovecotに明け渡すことになったというわけです。 つまりDovecotを利用して POP/IMAP before SMTP を構築するということは、現時点では将来的に有利な選択と考えられるわけです。
Dovecotを用いてPOP/IMAP before SMTPを実装するには、
Pop-before-smtpは Perl で記述された スクリプト ですから、動作については ディストリビューション の アーキテクチャ に依存しません。
http://popbsmtp.sourceforge.net/
(英語ページ)
Pop-before-smtpは MRA がメールの受信要求の際に記録する ログ ファイルの情報を読み取り、パスワード認証によってメールの受信に成功したログデータを探し出してその要求元の IPアドレス を データベース に一定時間登録します。 |
|||||||||||
|
|
メール受信の要求元が メールサーバー とは別の サブネット の場合、Pop-before-smtpはそのサブネットの外側(通常は WAN 側)の ゲートウェイアドレス を要求元のIPアドレスとして登録します。 つまり、 NAT + IPマスカレード 環境下にある外部のサブネットからでも、結果として同じように動作するようになります。
通常、
MUA
から
SMTP
によるメールの送信要求を受けた
MTA
は、
Sendmail
の場合は
"/etc/mail/access.db"
Pop-before-smtpを用いる場合は、これに加えてSendmailやPostfixに対して、 「ついでにPop-before-smtpの作成したデータベースを参照して、そこに登録されているIPアドレスからの送信も転送許可で受け付けなさい。」 という設定を行っておきます。 これで「任意の ノード (つまり外出先)からの自由なメールの送信。」が可能になる、というわけです。 さて、公式の ディストリビューター から RPM の形で供給される Pop-before-smtpは、UW IMAPでの利用が デフォルト になっていますから、インストール後に色々な設定を施す必要がありますが、 ソース からインストールする場合と比べればそれでも間違いが少なく、うまくいかなかったときの収拾が容易ですので、ここではRPM形式のPop-before-smtpを利用してのPOP/IMAP before SMTPの構築を解説します。
関連セクション・
Sendmailの設定
関連セクション・
Postfixの設定
|
|||||||||||
Pop-before-smtpについて〜入手方法などPop-before-smtpは、 ソース プログラムを、 から ダウンロード し、手動で インストール することもできますが、先に説明したとおりここでは RPM として作成済みの
pop-before-smtp-1.33-1.noarch.rpm
を使用します。 上の公式ページからは比較的新しいバージョンのpop-before-smtpのソースプログラムしかダウンロードできなくなってますから、インターネット上を検索して適当なダウンロードサイトサイトを見つけてダウンロードします。 例えば、 国立大学法人 北陸先端科学技術大学院大学 の アノニマスFTP サーバーの からダウンロードすることができますから、 クライアント機 上から、 をクリックしてダウンロードし、 FTPクライアント を使って 構築中のLinuxサーバー に アップロード すればOKです。 |
||||||||||||
|
|
または、 SSHクライアント で 構築中のLinuxサーバー にログインし、 wget コマンド で直接 構築中のLinuxサーバー にダウンロードする方法もあります。
現在のところ(2008年5月)、WBELやCentOSにはPop-befor-smtpは標準添付されていませんので、
yum
でシステム全体を
アップデート
しても
ただ、後々標準添付される可能性がないともいえませんから、自動アップデートの対象からはずしておくと良いでしょう。
nanoエディタ
で
"/etc/yum.conf"
を開き
|
|||||||||||
| 右の例では割愛していますが、既に他のrpmについて同じようにあなた自身が記述しているかもしれません。 |
これで、yumによるpop-before-smtpのアップデートが行われる可能性はなくなりました。
関連セクション・
Sendmailの設定
関連セクション・
Postfixの設定
|
|||||||||||
Pop-before-smtpのセットアップ以下、 Pop-before-smtp の インストール と設定、動作確認について説明します。 Pop-before-smtpのインストール
基本的なインストール作業は、
UW IMAP
とPop-before-smtpを利用した
POP/IMAP before SMTP
の構築で説明したものと同じですから、
|
||||||||||||
|
|
MTA に Postfix を利用する場合は、更にPostfixが自分自身の動作に利用する データベース BerkeleyDB のためのモジュールもインストールしておきます。
Pop-before-smtpと、その実行に必要なPerlのモジュールをインストールしたら、pop-before-smtpデーモンを起動してみます。
これでPop-before-smtpのインストールは終わりです。 Pop-before-smtpを構成するファイル"pop-before-smtp-1.33-1.noarch.rpm" から Pop-before-smtp を インストール すると、以下のように必要なファイルが配置されます。
"Pop-before-smtp"を構成するファイル一覧 Pop-before-smtpの本体プログラムは"/usr/sbin/pop-before-smtp"ですが、通常はこれを直接呼び出すことはないでしょう。 実際にはこの"/usr/sbin/pop-before-smtp"を用いて、起動や終了を容易にコントロールできるように記述された スクリプト である "/etc/rc.d/init.d/pop-before-smtp" を用います。 また"/etc/rc.d/init.d/"の シンボリックリンク が"/etc/init.d/"になっていますので、スクリプトは "/etc/init.d/pop-before-smtp" でも呼び出すことができます。 例えば、 |
|||||||||||
"/etc/rc.d/init.d/"
には
パス
が通っていません
から、パスを省略して実行することはできません。
|
"/etc/init.d/pop-before-smtp start" →pop-before-smtpの起動 "/etc/init.d/pop-before-smtp stop" →pop-before-smtpの停止 という使い方になります。 Pop-before-smtpの デフォルト の動作は、本体である Perl スクリプト "/usr/sbin/pop-before-smtp" に記述されていますが、通常はこれを編集することはありません。 設定作業は設定の変更を行うために予め準備されている "/etc/pop-before-smtp-conf.pl" に対して行います。 "/etc/postfix/pop-before-smtp.db" 及び "/etc/mail/popauth.db" が、 MRA 、すなわち Dovecot への受信要求の成立によって自動で作成される IPアドレス の データベース です。 このデータベースはMTAとして Postfix を利用する場合は "/etc/postfix/pop-before-smtp.db" 、 Sendmail を利用する場合は "/etc/mail/popauth.db" を使用することになります。 ちなみにこのデータベースの位置や名称は "/etc/pop-before-smtp-conf.pl" を書き換えることで任意に変更可能ですし、もちろんPostfixとSendmailで共用することも可能です。ただしここではPop-before-smtpの作法に従って別々のデータベースを利用するケースで説明していきます。 Pop-before-smtpの設定についてPop-before-smtp の設定は、 "/etc/pop-before-smtp-conf.pl" に対して行います。 |
|||||||||||
|
|
ただし、 "pop-before-smtp-1.33-1.noarch.rpm" からPop-before-smtpを インストール すると、 デフォルト の"/etc/pop-before-smtp-conf.pl"は UW IMAP での利用を前提にした簡単な内容になっていますから、これを様々な形式の MRA と MTA への設定例が記述されたテンプレート "/usr/share/doc/pop-before-smtp-1.33/pop-before-smtp-conf.pl" と入れ替えます。
root
アカウント
で
ログイン
した状態で、
cp
コマンドでバックアップを作成した後、
cat
コマンドと
出力のリダイレクト
↓
nanoで"/etc/pop-before-smtp-conf.pl"を開く 設定内容は、使用する MTA が Sendmail か Postfix かで一部異なります。 SendmailとPostfixに共通するPop-before-smtpの設定1.Pop-befor-smtp専用の ログ の出力先の設定(29行目) Pop-before-smtpの動作のログは、 デフォルト では通常の メールサーバー のログファイル "/var/log/maillog" に一緒に記録されるようになっています。 ただ、メールサーバーの利用頻度が増えてくると、大量のメールログの中にPop-before-smtpの動作ログが埋もれてしまい、動作の不具合が起こったときにチェックし難くなります。 そこでデフォルトの記述である、
のコメント記号 "#" をはずし、
とすると、Pop-before-smtpの動作に関するログが、専用のログファイル "/var/log/pop-before-smtp" に記録されるようになります。 もちろんこの場合でも "/var/log/maillog" にも同じ動作ログが記録されます。 2.データベースファイルの指定(32行目) Pop-before-smtpが出力する IPアドレス の データベース ファイルの指定です。 デフォルトでは先に説明したとおり、 "/etc/postfix/pop-before-smtp.db" となります。 設定ファイル中では、 |
|||||||||||
| データベースファイルの末尾の ".db" は自動的に付加されますので記述する必要はありません。 |
となっており、デフォルトのパラメータがそのままコメント化されているだけですから、 MTA として Postfix を利用する場合でも明示的に有効化する必要はなく、コメント化されたままでOKです。 ただしこのデータベースの出力先やファイル名を任意に変更したい場合は、先頭のコメント記号 "#" をはずして、 絶対パス で記述することになります。 例えば、 MTA として Sendmail を使用する場合のデフォルトのデータベースは "/etc/mail/popauth.db" となりますから、
と記述すれば良いことになるのですが、実際にはSendmailを利用する場合でも設定はデフォルトのままで構いません。 何故かというと、実は現在編集中の "/etc/pop-before-smtp-conf.pl" には、後半にPostfixとSendmailのそれぞれに最適化された設定がまとめて記述してあり、Sendmailに関する記述の中には上の "$dbfile = '/etc/mail/popauth';" が含まれているため、ここで強いて設定を有効化しておく必要はない、というわけです。 3.IPアドレスのデータベース上の保持時間(38行目) データーベースへの保持時間が短すぎると、受信操作から直ぐに送信作業を行わなければならなくなりますので、 MUA の使い勝手は悪くなります。ただ、あまり長くしすぎると逆にセキュリティ上の問題が出てきます。 従って、短くて 5分 、長くても 30分 程度が妥当なところでしょう。 |
|||||||||||
| $grace の単位は秒ですので、敢えて 30*60 と記述して、値の変更を「分」単位で行えるように配慮しているわけですね。 |
デフォルトでは30分に設定されていて、設定ファイル中の記述も、
と、デフォルト値でコメント化されています。 この値を変更したい場合は、先頭のコメント記号 "#" をはずし、 "30" の部分を指定したい「分」の値に書き換えてください。 例えば10分に指定したいときは、
と記述します。 4.Dovecotのログデータの参照先の指定(41行目) |
|||||||||||
| データベースは、Postfixでは "/etc/postfix/pop-before-smtp.db" 、Sendmailでは "/etc/mail/popauth.db" となります。 |
Pop-before-smtpはシステム上のメールのログデータの中から MRA の動作に関する部分を監視して、受信要求が成功したIPアドレスをデータベースに追加し、先に説明した "$grace" の時間が経過するとそのIPアドレスをデータベースから削除します。 ここではその参照先のログデータを格納しているファイルを指定します。 設定ファイルの中では、
とデフォルト値でコメントアウトされていますから、Pop-before-smtpは WBEL や CentOS のデフォルトのメールログファイル "/var/log/maillog" を参照して動作するようになっています。 |
|||||||||||
|
|
デフォルト値ですからそのままにしておいても構いませんが、ここは明示的に、
とコメント記号 "#" をはずして有効化しておくことをお勧めします。 メールサーバー 関係の動作ログは、通常 MTA や MRA などをひっくるめて "/var/log/maillog" に記録されるようになっていますが、そのログデータを利用して動作するPop-before-smtpでは先に説明した "$logto" のように "/var/log/maillog" とは別に記録しておくのが望ましいものがあります。 従ってPop-before-smtpの構築では、特にログに関する設定は「何を何処に記録するように設定したか」ということだけは明確にしていたほうが混乱が少なくなる、というのがその理由です。 5.解析するログデータパターンの設定(追加記述) メールの受信要求が行われたときに サーバー 上でMRAが出力するログデータのパターンはMRAの種類ごとに異なります。 Pop-before-smtpはMRAが出力するログデータを解析して動作する アプリケーション ですから、その使用にあたっては、解析すべきログデータのパターンを予めPop-before-smtpに教えておかなければなりません。 設定は、 "$pat" に対して 正規表現 で指定します。 設定ファイルの中には、様々なMRAのログパターンに合わせた設定例が 97行目〜181行目 にかけて すべてコメントアウトされた形で 記述されています。 つまり明示的な "$pat" の設定が存在しないわけですが、その場合は最初の設定例である、
すなわちMRAとして UW IMAP を用いる場合のログパターンがデフォルトになります。 ところで残念なことに、この中にはMRAとしてDovecotを使う場合の記述例がありませんから、改めて記述しなければなりません。 WBEL4 、 CentOS4 のDovecotをMRAとして利用する場合の "$pat" の記述は以下のようになります。 |
|||||||||||
| 赤字の部分はただの覚書ですからなくても構いません。 |
CentOS5のDovecotをMRAとして利用する場合の "$pat" の記述は以下のようになります。
記述位置はどこでも構いませんが、できれば 97行目〜181行目 の記述例の最初か最後あたりが間違えにくくて良いでしょう。 |
|||||||||||
| ログデータは "/var/log/maillog" に記録されます。 |
ちなみに、後ほど説明する内容で設定を行ったDovecotに対して、 POP3 で受信作業に成功したときにDovecotが出力するログデータは、WBEL4やCentOS4では、
CentOS5では、
IMAP4 の場合WBEL4やCentOS4では、
CentOS5では、
のようになりますが、これが上の "$pat" の正規表現でマッチすることは正規表現の書式がわからなくても「なんとなく」理解できると思います。 Sendmailを使用するときのPop-before-smtpの設定MTA として Sendmail を利用する場合の設定は、 "/etc/pop-before-smtp-conf.pl" 中の 352行目〜419行目 、
に記述があります。 |
|||||||||||
|
|
ただしこの範囲は先頭の "=cut " で無効化されてますから、開始行と終了行の "=cut " をそれぞれ削除して、Sendmailに関する設定を有効にします。
もちろん、 Postfix を使用する場合はここの部分の設定を有効化してはいけません。 また、このSendmailに関する設定の中の 378〜382行目 あたりに以下の記述があります。
ここにデフォルトで記述されている "127.0.0.8/8" と "192.168.1.1/24" の二つのネットワークからの受信要求については、Pop-before-smtpはリレー許可 データベース である "/etc/mail/popauth.db" にその IPアドレス を登録しないようになっています。
Sendmailの受信と転送に関する設定
つまり自 ホスト を示す ループバックアドレス と、それが接続している サブネット については、わざわざPop-before-smtpによって制御する必要はありませんから、Pop-before-smtpの動作負荷を減らすためにこのような設定が存在するわけです。 従って本来この部分の設定は現在構築中のLANの プライベートIPアドレス に合わせて、
と設定を変更しておくべきです。 |
|||||||||||
|
実際にはPop-before-smtpは受信元のIPアドレスをすべからく検査し、この部分の設定と比較してデータベースに登録するかどうかを判定しているわけですから、データベースに登録されなくても
きちんと動作はしています
。
ただ通常のログに動作履歴が残らないので、動作していないように 見える だけです。 |
ただしこのように正しく、というより作法どおりに設定してしまうと、LAN内の MUA からのメールの受信要求に対してはPop-before-smtpは見かけ上動作はしませんから、動作確認を行うには WAN 側、つまり外出先などからメールを受信してみなければならないことになります。 これではちょっと面倒ですので、以下に説明するPop-before-smtpの動作確認が取れるまでは元の設定のままにしておき、LANからの受信操作で動作を確認した後に設定を変更するようにしましょう。
ただしここの部分の設定はあくまで、「Sendmailの
"/etc/mail/access.db"
あまり神経質になる必要はありません。 Postfixを使用するときのPop-before-smtpの設定MTA として Postfix を利用する場合の設定は、 "/etc/pop-before-smtp-conf.pl" 中の 233行目〜258行目 、
に記述があります。 ただしこの範囲は先頭の "=cut " で無効化されてますから、開始行と終了行の "=cut " をそれぞれ削除して、Postfixに関する設定を有効にします。
もちろん、 Sendmail を使用する場合はここの部分の設定を有効化してはいけません。 さて、このPostfixに関する設定領域には、先に説明したSnedmailの 378〜382行目 に相当する設定部分がありません。 |
|||||||||||
正確にいうとPop-before-smtpは、Postfixの設定値を出力する
"postconf"
コマンド
の実行結果から
"mynetworks"
の値を取得します。
|
なぜかというと、Pop-before-smtpはPostfixと連動して使用するときは
"/etc/postfix/main.cf"
の中の
"mynetworks"
のパラメータを参照し
|
|||||||||||
|
つまりこのページで説明する方法で、Pop-before−smtpを用いる場合、リレー許可ホストの設定を
"mynetworks_style"
で設定すると、この部分の連携がうまくいきません。
必ず "mynetworks" で設定するようにしてください。 |
従って "/etc/postfix/main.cf" 中の "mynetworks" が、
と設定されていれば、 構築中のLinuxサーバー 自身"127.0.0.0/8"と、それが接続している LAN "192.168.100.0/24"内の ホスト からのメールの受信については "/etc/postfix/pop-before-smtp.db" には登録されないということです。 実際の運用上はもちろんこの設定がベターです。 ただし最初からこのよう設定してしまうと、LAN内 MUA からのメールの受信要求に対してはPop-before-smtpは見かけ上動作はしませんから、動作確認を行うには WAN 側、つまり外出先などからメールを受信してみなければならないことになります。 |
|||||||||||
|
|
これではちょっと面倒ですので、以下に説明するPop-before-smtpの動作確認が取れるまでは、
のように設定しておき、LAN内からの受信操作について動作確認した後に設定を変更するようにします。 Pop-before-smtpの設定の有効化
設定ファイルの内容を変更したら"/etc/pop-before-smtp-conf.pl"を保存し、nanoエディタを閉じてください
設定を変更した場合は、pop-before-smtpを再起動する必要があります。 まだpop-before-smtpを起動していないときは、
でpop-before-smtpを起動してください。既に起動しているときは、
で再起動を行ってください。
Pop-before-smtpの起動、停止、再起動などの操作については、
関連セクション・
Sendmailの設定
関連セクション・
Postfixの設定
|
|||||||||||
Pop-before-smtpと連携するときのDovecotの設定
Dovecot
の一般的な説明については
MRA として普通にDovecotを使用する場合と異なり、Dovecotを Pop-before-smtp と連携させて使用する場合には、 "/etc/dovecot.conf" に対していくつかの追加設定が必要になります。
またDovecotは日々改良が行われている
アプリケーション
ということもあって、
yum
でシステム全体を
アップデート
しようとすると
これによってログデータの形式などが変更になってしまうと、Pop-before-smtpとの連携がとれなくなってしまう可能性があります。
そこで
nanoエディタ
で
"/etc/yum.conf"
を開き
|
||||||||||||
| 右の例では割愛していますが、既に他のrpmについて同じようにあなた自身が記述しているかもしれません。 |
これで、yumによるdovecotのアップデートが行われる可能性はなくなりました。 "/etc/dovecot.conf"の設定(WBEL4,CentOS4)1.利用可能にする受信プロトコルの設定 WBEL4 及び CentOS4 とも 14行目あたり に記述があります。 デフォルト は、
となっています。 |
|||||||||||
|
|
例えば、POP3とIMAP4の利用を有効にするには次のように編集してください。
もしもどちらかのプロトコルしか使用しない場合は、 "pop3" か "imap" のどちらか一方だけを記述しておけばOKです。 2.リッスンポートの設定 WBEL4 及び CentOS4 とも 22行目あたり に記述があります。 デフォルト は、
となっています。 この "listen" は、受信要求を受け付ける IPアドレス と ポート番号 を制御するパラメータです。 デフォルトは 「IPv4とIPv6のすべてのIPアドレスとすべてのポート番号で、POP3とIMAP4の受信要求に答える。」 という設定になっています。 しかし実際の運用で セキュリティ 上問題になる WAN 空間からの接続要求については ルーター によって適切に制御されますから、ここで強いて制限をかける必要はありません。デフォルトのままでOKです。 ちなみに、意図的にアクセス制限を加ようとしてこの設定を変更すると、ログデータの形式そのものが変わってしまうことがあり、せっかく設定した Pop-before-smtp のログデータの読み取りパターンと一致しなくなることがありますので注意してください。 3.ログデータの出力先の設定 WBEL4 及び CentOS4 とも 56行目あたり 、及び 59行目あたり に記述があります。 デフォルト は、それぞれ、
及び、
となっています。 ちなみに "log_path =" は クライアント からの受信要求のログ、 "info_log_path =" は Dovecot 自身の動作ログの出力先となります。 Dovecotのデフォルトのログデータの出力先は "/var/log/maillog" なので明示的に設定する必要はありませんが、備忘録として明示的に設定しておきたいところではあります。 しかしここでは 設定を行わないようにします 。 Dovecotはログデータの出力先を明示しない場合、 syslogd というシステム上のログデータを包括的に扱う デーモン の仕組みを利用してログデータを出力しますが、明示的に設定を行うとDovecotが単独でログデータを出力します。 従って、 "log_path = /var/log/maillog" と明示的に設定してしまうと、ログデータの出力先は変わりませんがログデータの出力パターンが変わってしまい、せっかく設定した Pop-before-smtp のログデータの読み取りパターンと一致しなくなってしまうからです。 "/etc/dovecot.conf"の設定(CentOS5)1.利用可能にする受信プロトコルの設定 17行目あたり に記述があります。 デフォルト は、
となっています。 例えば、POP3とIMAP4の利用を有効にするには次のように編集してください。
もしもどちらかのプロトコルしか使用しない場合は、 "pop3" か "imap" のどちらか一方だけを記述しておけばOKです。 2.リッスンポートの設定 27行目あたり から記述があります。 この "listen" は、受信要求を受け付ける IPアドレス と ポート番号 を制御するパラメータです。 デフォルト は、
とコメント化されていますが、デフォルトで 「IPv4とIPv6のすべてのIPアドレスとすべてのポート番号で、POP3とIMAP4の受信要求に答える。」 という設定になっています。 しかし実際の運用で セキュリティ 上問題になる WAN 空間からの接続要求については ルーター によって適切に制御されますから、ここで強いて制限をかける必要はありません。デフォルトのままでOKです。 |
|||||||||||
|
|
ちなみに、意図的にアクセス制限を加ようとしてこの設定を変更すると、ログデータの形式そのものが変わってしまうことがあり、せっかく設定した Pop-before-smtp のログデータの読み取りパターンと一致しなくなることがありますので注意してください。 3.ログデータの出力先の設定 58行目あたり 、及び 61行目あたり に記述があります。 デフォルト は、それぞれ、
及び、
となっています。 ちなみに "log_path =" は クライアント からの受信要求のログ、 "info_log_path =" は Dovecot 自身の動作ログの出力先となります。 Dovecotのデフォルトのログデータの出力先は "/var/log/maillog" なので明示的に設定する必要はありませんが、備忘録として明示的に設定しておきたいところではあります。 しかしここでは 設定を行わないようにします 。 Dovecotはログデータの出力先を明示しない場合、 syslogd というシステム上のログデータを包括的に扱う デーモン の仕組みを利用してログデータを出力しますが、明示的に設定を行うとDovecotが単独でログデータを出力します。 従って、 "log_path = /var/log/maillog" と明示的に設定してしまうと、ログデータの出力先は変わりませんがログデータの出力パターンが変わってしまい、せっかく設定した Pop-before-smtp のログデータの読み取りパターンと一致しなくなってしまうからです。 Dovecotの再起動と起動設定
設定ファイルの内容を変更したら"/etc/dovecot.conf"を保存し、nanoエディタを閉じてください
設定が終わったら プロンプト から、Dovecotの起動・停止 スクリプト を使ってDovecotを起動します。
"/etc/dovecot.conf" の内容を変更したときは、Dovecotを停止して起動しなおすか、再起動する必要があります。 Dovecotの停止、再起動は、以下のように行います。
MRAは必要に応じて起動すべきものではなく、 メールサーバー を利用するときは常に稼動させておく必要のあるアプリケーションです。 従ってDovecotは 構築中のLinuxサーバー の起動時に自動的に起動するように設定しておきましょう。 方法は ntsysv コマンド で設定画面を開き、 dovecot デーモン にチェックを入れておくだけです。
"dovecot"を"ntsysv"で自動起動登録する 以上でDovecotの基本的な動作設定は完了です。
関連セクション・
Sendmailの設定
関連セクション・
Postfixの設定
|
|||||||||||
DovecotとPop-before-smtpの連携の確認MTA を Pop-before-smtp に対応させる前に、ひとまず Dovecot とPop-before-smtpの連携がうまくいくかどうかをチェックしてみましょう。
まずDovecotと、Pop-before-smtpが稼動していることを確認してください。もし稼動していなければ前のパートの説明、または
次にPop-before-smtpによって登録される、リレー許可対象の クライアント の IPアドレス を調べてみましょう。 リレー許可対象のIPアドレスが動的に登録される データベース ファイルは バイナリ 形式ですので、 テキスト エディタなどで開くことはできません。 |
||||||||||||
|
この
コンテンツ
に推奨の方法で
インストール
CentOS5
では、データベースユーティリティがインストールされていない可能性があり、その場合はユーティリティに含まれる
db_dump
が使用できません。
db_dump を使えるようにするには プロンプト から、 "yum install db4-utils" を実行してユーティリティをインストールしてください。 |
そこでバイナリのデータベースファイルの内容をテキストで表示する "db_dump" などの コマンド を使ってデータベースの内容を確認する必要があります。 このページ前半で説明したとおり、データベースは使用する MTA によって異なり、 Postfix → "/etc/postfix/pop-before-smtp.db" Sendmail → "/etc/mail/popauth.db" となります。 ただデータベースの内容には相違点はありませんから、ここではMTAとしてPostfixを使用しているものとし、データベースとして"/etc/postfix/pop-before-smtp.db"を使用しているケースで説明します。 ひとまず、以下のようにコマンドを実行してみてください。
現在表示されているのは、データベースのパラメータのみで、IPアドレスの登録は何も行われていません。 |
|||||||||||
| 実際にメールが ダウンロード されなくても構いません。認証されればそれでOKです。 |
では、
そしてもう一度"/etc/postfix/pop-before-smtp.db"の中を確認すると、
と、受信作業を行ったホスト機のIPアドレスが登録されているはずです。 |
|||||||||||
|
この時間は結構アバウトです。
10分に設定していても、データベースからIPアドレスが消えるまで実際には15分〜25分くらいかかることもあります。 |
そして前のパートで設定した IPアドレスの保持時間 が経過するのを待って、もう一度"/etc/postfix/pop-before-smtp.db"の内容を確認してみてください。登録が消えて、空っぽの状態に戻っているはずです。 これが確認できれば、DovecotとPop-before-smtpの連携はOKということになります。
関連セクション・
Sendmailの設定
関連セクション・
Postfixの設定
|
|||||||||||
SendmailとPop-before-smtpとの連携の設定Sendmail が "/etc/mail/popauth.db" を参照し、その中に保持されている IPアドレス の ホスト からのメールの中継許可を行うには、 "/etc/mail/sendmail.mc" の末尾に以下の設定を追記し、改めて "/etc/mail/sendmail.cf" を作成する必要があります。
この黒字の部分を追加すれば良いのですが、このまま "/etc/sendmail.cf" の作成を実行してもエラーになります。
エラーメッセージからもお分かりのとおり、この場合の "m4" の実行には、 "/usr/share/sendmail-cf/hack/popauth.m4" というファイルが必要となります。 |
||||||||||||
|
|
このファイルはSendmailにPop-before-smtpが生成した データベース を参照させるための、 "/etc/mail/sendmail.cf" を作成するのに必要な "/etc/mail/sendmail.mc" のサブスクリプトファイルです。 これはPop-before-smtpの公式サイト、
http://popbsmtp.sourceforge.net/
(英語ページ)
の、
http://popbsmtp.sourceforge.net/popauth.m4
(スクリプトファイル)
から入手できます。 上のファイルを クライアント機 上に保存して、 FTPクライアント を使って 構築中のLinuxサーバー に アップロード し、 mv コマンドを使って "/usr/share/sendmail-cf/hack/" 以下にファイルを移動すればOKです。 または、 wget コマンド で直接 構築中のLinuxサーバー にダウンロードする方法もあります。 準備ができたらもう一度 "/etc/sendmail.cf" の作成を実行してください。今度はきちんと実行できるはずです。 以上でSendmailの必要な設定は終わりました。
編集が終わったら、Sendmailの再起動
以下に "/etc/mail/sendmail.mc" に追加記述する部分だけのコピー&ペースト用の テキスト ファイルを掲載しますので、必要ならば利用してください。
"/etc/mail/sendmail.mc"の実際の編集の方法、"/etc/mail/sendmail.cf"の作成方法については、
関連セクション・
Sendmailの設定
関連セクション・
Postfixの設定
|
|||||||||||
PostfixとPop-before-smtpとの連携の設定Postfix が "/etc/postfix/pop-before-smtp.db" を参照し、その中に保持されている IPアドレス の ホスト からのメールの中継許可を行うには、 "/etc/postfix/main.cf" に以下の設定を追記する必要があります。
この設定は本来一行に記述すべきものを、 ",(カンマ)" で区切ったものです。 従って、"/etc/postfix/main.cf"の記述ルールに従って、2行目以降の行の先頭には必ず スペース を入れなければならない点に注意してください。 以下にコピー&ペースト用の テキスト ファイルの掲載しますので、必要に応じて利用してください。 |
||||||||||||
|
"smtpd_recipient_ restrictions" ディレクティブの詳細についてはこちら
を参考にしてください。
|
実際の"/etc/postfix/main.cf"の編集方法については、
編集が終わったら、Postfixの再起動
関連セクション・
Sendmailの設定
関連セクション・
Postfixの設定
|
|||||||||||
POP/IMAP befor SMTPの動作確認POP/IMAP before SMTP を含めた メールサーバー の、理想的なメールリレー環境をまとめてみると、 A. 構築中のLinuxサーバー を含む "192.168.100.0/24" からの送信メールは、無条件で他の MTA への転送を受け付ける。 B. 構築中のLinuxサーバー 及び "192.168.100.0/24" 以外からの送信メールは、POP/IMAP before SMTPによって受信操作が成立した場合にのみ一定時間だけ他のMTAへの転送を受け付ける。 ということになります。 つまり、この状態でのPOP/IMAP before SMTPのテストは、B.の条件にある場所、例えば外出先から "xxxx@obenri.com"以外の メールアドレス宛てに、 1.送信しても拒否されることを確認する。 2.メールの受信作業を行う。 3.送信できることを確認する。 4.設定時間経過後に、再び送信しても拒否されることを確認する。 という手順で行えば良いことがわかります。
外出するのが億劫な方は、使用している
MTA
が
Sendmail
の場合は
"/etc/mail/access"
の内容
|
||||||||||||
CentOS5
の
"/etc/mail/access"
の記述には、先頭に
"Connect:"
が付いているはずです
。もちろんそのままでOKです。
また "/etc/mail/access" を編集した後は必ず データベース 化処理
を行ってください。
|
に、
Postfix
の場合は
"/etc/postfix/main.cf"
の
"mynetworks"
ディレクティブ
|
|||||||||||
"/etc/postfix/main.cf"
を修正した後は、必ずPostfixの再起動または設定の再読み込み
を行ってください。
|
に変更してください。 すると、それぞれのMTAは ループバックアドレス から送信されるメールのみを他のMTAに転送するように設定が変更されます。 つまり動作としては、 |
|||||||||||
|
|
A'. 構築中のLinuxサーバー 自身からの送信メールは、無条件で転送を受け付ける。 B'. 構築中のLinuxサーバー 以外からの送信メールは、POP/IMAP before SMTPによって受信操作が成立した場合にのみ一定時間だけ転送を受け付ける。 という状態になりますから、POP/IMAP before SMTPのテストは前に説明した1.〜4.を自宅の LAN 内の ホスト機 から行うことができます。 もちろんこの方法では間接的にしか動作確認はできていないように思えるかもしれませんが、POP/IMAP before SMTPが正常に動作することさえ確認できれば大丈夫です。 要はPOP/IMAP before SMTPの影響範囲がWAN空間かLAN空間かの違いに過ぎませんから、設定範囲を変更してもきちんと動作するのは間違いないからです。 動作確認のテストが終わったら忘れずに設定を元に戻しておきましょう。
関連セクション・
Sendmailの設定
関連セクション・
Postfixの設定
|
|
|
Next>>
SquirrelMailの設定
|
| このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。 |
| ”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。 |