従来からあったPOPTを先ほどインストールしたQpopperに置き換えます。popサーバープログラムは常に常駐するSendmailなどのMTAとは異なり、TCP経由で起動するデーモンです。つまり、アクセス制限はTCP Wrapperの設定となります。
qpopperはpopと同様にinetdから起動されるので従来のipop3dの変わりに qpoper が起動するように修正しなければなりません。
pop-3の1行を削除し、以下に置き換えます。
pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d 削除
↓
pop-3 stream tcp nowait root /usr/sbin/tcpd popper -s -p 1
pop-3の部分は今までport110で提供していたipopをpopperに置き換えています。
この例では起動オプション-p 1でAPOPのみ対応になっています。その他の起動オプションについてはMANUAL.pdfを参照して下さい。21ページからRun Time Command-Line Optionsについての表があります。
今までのPOPの記述を削除し、以下に置き換えます。
popper : ALL
外部にサービスを認めるのでALLとします。この設定ではローカルユーザーも外部ユーザーもAPOPをサポートしたメーラが必要になります。
Qpopperには専用のパスワードを作成する機能があります。従来のLinuxのアカウントのパスワードとは異なったパスワードが設定できるため、セキュリティ面で優れています。
APOP専用のパスワードを作成します。
パスワードを答えます。先に説明したSASLによるSMTP認証の場合、ユーザー、パスワードは自由に設定できましたが、こちらはLinuxにアカウントのあるユーザーに対し、APOP用のパスワードを作成する点が異なります。ここで作成されたパスワード情報は、
/etc/pop.auth に格納されます。
登録されているAPOPユーザーの情報を確認するには
登録したユーザーを削除するには
その他については
ローカルユーザーにはメーラを限定したくない場合、すなわち従来通りPOP-3によるサービスを提供したい場合です。この場合は外部から要求に対してはAPOPのみ、ローカルユーザーからはPOP3・APOP併用という設定が可能です。
先ほどのpop-3の箇所を次のように変更します。
pop-3 stream tcp nowait root /usr/sbin/tcpd popper -s -p 1 (変更前)
↓
pop-3 stream tcp nowait root /usr/sbin/tcpd popper -s -p 2 (変更後)
起動オプション -p 2 にすることでAPOPとPOPの両方に対応することが出来ます。しかし、このままでは外部のユーザーもPOPが利用出来ることになります。
外部からの接続要求はAPOPのみに限定させる方法として、host.allowを以下のように修正します。
popper : ALL EXCEPT 192.168.0. : twist PATH=/usr/sbin; exec popper -s -p 1
popper : 192.168.0.
192.168.0. 以外はAPOPのみとして起動し、192.168.0. のローカルユーザーはinetd.confに記述された起動オプションでpopperが起動することになります。 このようにTCPから起動されるデーモンはホスト毎に起動オプションを使い分ける事が可能です。
ローカルユーザーがPOPによる接続を求めてきた際は APOPのパスワードは参照されず、Linuxユーザーのパスワードが利用されることになるので注意して下さい。
このようにしておけば、ローカルユーザーが普段からAPOP認証を行っておれば、ノートパソコンなどで出先から接続する場合もそのままの設定で接続できる ことになるので用途によっては大変便利です。また、ローカルユーザーに対してはMUAを限定する必要もなく従来通りメールの受信が行えます。
POP、SMTPとも暗号化による認証をサポートしました。いずれもSSLは利用していませんので外部からOutlookやNetscapeを利用することが出来ません。
この条件をサポートするメーラーとして Becky!2 と Winbiff は利用できるはずですが、Becky!2に関してはSMTP認証が上手くいきません。これはsendmailとの相性があるようでpostfixなどでは 問題は起きないようです。Becky!作者曰く、次期バージョンでこの問題を回避してくれるそうです。Winbiffは問題なく動作しました。
POP,APOPの両方を認め、SMTPに関しては/etc/mail/accessで192.168.0.に対しSMTP認証なしで利用できるようになっていますので、メーラを限定する必要がありません。
外部ネットワークからの接続 | APOP | SMTP + SASL |
---|---|---|
Winbiff (WIN) | ○ | ○ |
bekky2.007 (WIN) | ○ | × |
bekky2.008 (WIN) | ○ | ○ |
ARENA2.1.1 (MAC) | ○ | ○ |
ローカルユーザー | 外部ネットワーク | |||||||||||||||
POP3 | 全て許可 | 禁止 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
APOP | 許可 |
ローカルユーザー | 外部ネットワーク | |||||||||||||||
SMTP | 全て許可 | 禁止 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SMTP+SASL | 許可 |
メールサーバーにアカウントを持つユーザーにメールが届いた場合、他のメールアドレスへ転送する方法を紹介します。
taro@mydmain.homeip.net
宛てに届いたメールを他のメールアドレスへ転送したいとします。sendmailの場合、ユーザーディレクトリに以下のファイルを作成し、転送先のメールアドレスを記入するだけで、転送が可能です。sendmailは メールアカウントを作成するためにユーザーのホームディレクトリを作成する必要ありませんが、メール転送を行いたい場合、ホームディレクトリを作成してお く必要があります。
taro のホームディレクトリが /home/taro であれば、
/home/taro/.forward
ファイルを作成し、転送したいメールアドレスを記述するだけです。 転送されない場合はmail.logを参照して下さい。HOMEディレクトリにグループ書き込みが許可されている場合は、エラーを出すので注意が必要です。