- PR -

POP Before SMTP on qmail & xinetd

1
投稿者投稿内容
QQ-
会議室デビュー日: 2001/12/29
投稿数: 18
投稿日時: 2001-12-29 01:31
お世話になります。POP Before SMTP の構築をRedhat7.1で行おうとしています。
既にqmailが動作していて、xinetdからPOP3(110)とAPOP(1100)とSMTPが動いています。
「POPの導入とPOP Before SMTPによる不正中継対策」等を読んで設定しました。
モバイルでメールする場合以外にも、外部からこのサーバへのリモート配信&再転送するのに、
(なぜ、単にメールを受ける、すなわち外部からローカルへの配信まで出来なくなるのかは
いまでも疑問…) SMTPのリレー制限を解除しないと配信できないため、
スパム対策に利用するつもりです。

qmailの起動スクリプトには手をつけず、SMTPやPOPはxinetdから起動されています。
tcpラッパ機能もあるのでいいのですが、POP Before SMTPの設定で、xinetdの場合の
設定ファイルへの書き方が分からないのです。

tcpserver -v 0 110 /var/qmail/bin/qmail-popup [サーバのFQDN] /bin/checkpw \\
/var/qmail/bin/qmail-pop3d Maildir 2>&1 \\
| /var/qmail/bin/splogger pop3d 3 &

の部分を、/etc/xinetd.d/smtp

service smtp
{

disable = no
socket_type = stream
protocol = tcp
wait = no
user = qmaild
server = /var/qmail/bin/tcp-env
server_args = -r /var/qmail/bin/qmail-smtpd
env = RELAYCLIENT= #
log_on_failure = HOST RECORD
log_type = FILE /var/log/maillog

}

へ、どう書き換えて設定したらいいでしょうか?

なお、
http://www.atmarkit.co.jp/flinux/rensai/qmail02/qmail02a.html
で、「競合を起こさないようにサービスを停止しておく必要があります」と
書いてありますが、これはxinetdを使わずに、qmailの起動プログラムに
tcpserver…の記述をして使うことを意味しているのだと思いますが、
「該当セクションの中でdisable = noとします」と書かれていますが、
停止させるにはyesにするようなので、この部分の意味がわかりませんでした。
いずれにしても、xinetdのPOP3(APOP)とSMTPを停止させて、qmailの起動スクリプトに
設定してやっても、tcpserverの起動時に止まってしまい失敗するので、
なんとかxinetdの設定で起動できる方法を知りたく、どうかよろしくおねがいします。
足らない情報があれば追記します。
鶴長鎮一
ベテラン
会議室デビュー日: 2001/08/29
投稿数: 78
お住まい・勤務地: 東京都
投稿日時: 2002-01-11 09:34
「実用qmailサーバ運用・管理術」を担当させていただいております鶴長と申します。
まず、xinetdにおけるサービスを無効にする方法は、ご指摘の通り、設定ファイル中にて"disable=yes"になります。すみません。該当の箇所は修正させていただきたいとおもいます。

第2回「POP/IMAPサーバの構築と不正中継対策」でご紹介しましたPOP befire SMTPでは、tcpserverを前提にさせていただいております。ご存じのとおり、xinetdとtcpserverは同じ働きをするもののため、どちらか一つを選択することになり、xinetdを無効にしていただくように書かせていただきました(無効にする方法が間違っていることで、困惑させてしまったと反省しております)。
ご質問の、xinetdでPOP befire SMTPを実現する方法ですが、qmail+relay-ctrl+checkpasswordでは出来ません。tcpserverでqmailを利用する場合、アクセス制御に環境変数RELAYCLIENTを用いており、relay-ctlはこの値をPOPをフックに動的に更新しています。tcpserverならアクセス制御を動的に行えるというメリットを生かしたものです。それに対しxinetdではhosts.allow hosts.denyと、設定ファイル中におけるonly_from・no_accessフィールドで指定できるのみで、動的にこれらを変更するにはrelay-ctlとは別の仕組みが必要になるかと思いますが、そういったものは私の調べた限りでは見つかりませんでした。
もしお手数でなければ、tcpserverで起動した場合に途中で止まってしまうと症状につきまして、もう少し詳細をいただくことは出来ますでしょうか。
(xinetdの設定ファイル中のserver_argsを何とかすればできるのものなのか?どなたか実践された方はいますでしょうか)
_________________
McLaren
ぬし
会議室デビュー日: 2002/01/15
投稿数: 784
お住まい・勤務地: 東京
投稿日時: 2002-01-15 14:36
お世話になります。私も
 qmail+tcpserver+relay-ctrl+checkpassword
の運用を考えています。

redhat7.2をインストールしましたので、デフォルトでxinetdが有効になったままなのですが、tcpserverを動かしているのにxinetdも動いたままで支障はないのでしょうか。

なお、
 tcpserverはqmail専用で、
 xinetdはtelnetなどに使用しようと思っておりますが
支障はないのでしょうか。。

鶴長鎮一
ベテラン
会議室デビュー日: 2001/08/29
投稿数: 78
お住まい・勤務地: 東京都
投稿日時: 2002-01-17 13:17
同じサービスが、xinetd・tcpserverで有効になっていなければ大丈夫です。ご希望のqmailやimapはtcpserverで、proftpdやtelnetはxinetdでという使い方は出来ます。頑張ってみてください。
QQ-
会議室デビュー日: 2001/12/29
投稿数: 18
投稿日時: 2002-02-23 22:16
返信いただいていることに気がつかず遅くなって申し訳ありません。
現在既にxinetdでなくtcpserver起動でなんとか成功したため、
また、運用開始してしまったために、実験も出来ず詳細をご報告できません。
次回利用する機会があれば、そのときにはqmail+xinetdでのさまざまな方法の
具体例が登場していることと思い、期待しております。
ありがとうございました。
鶴長鎮一
ベテラン
会議室デビュー日: 2001/08/29
投稿数: 78
お住まい・勤務地: 東京都
投稿日時: 2002-02-24 01:12
返信がないのはうまくいっているからだと思っておりましたので、お気になさらないでください。tcpserverでうまくいっているようでしたらそのままでもいいかと思います。
> そのときにはqmail+xinetdでのさまざまな方法の具体例が登場していることと思い
このメッセージを牽制しているわけではないのですが.....ちょっとプレッシャーが
1

スキルアップ/キャリアアップ(JOB@IT)