qmail-smtpd_uc version 0.0.4 ------------ qmail-smtpdにパッチをあて、 ・特定のRCPT TOを受ける/拒否するを決定します。 ・簡易的にユーザーが存在するかどうかのチェックを行います。 メールを受信するかどうかは 1)control/badrcpttoが存在する場合 このファイルに記述されたアドレスを拒否します。 記述方式はbadmailfromに従います。 2)通常qmailの受け取るアドレスを受け取ります。 3)control/goodrcpttoが存在する場合 このファイルに記述されたアドレスを受け取ります。 記述方式はbadmailfromに従います 4)control/goodlocalscheckが存在する場合 ローカルユーザーのチェックを行います。 i) control/badlocalscheckが存在する場合 このファイルに記述されたドメインのローカルユーザーチェックを行いません(許可されます) ii) control/locals、control/goodlocalscheckに記述されたドメインをローカルホストとして、 control/virtualdomainsに記述されたドメインをバーチャルホストとして メールアドレスが確実に存在しないことが判明した場合はメールの受信を拒否します。 5)拒否 を上から順にチェックされ、決定されます。 RCPT TOに@の無いアドレスが来た場合、そのアドレス@[そのホストのIPアドレス]というRCPT TO:が書かれたとして処理されます。 つまり、今までのように無条件での受信はしなくなります。 コンパイル・インストール方法: qmailのソースを展開した場所へqmail-smtpd_uc.patchとMakefile.add.qmail-smtpd_ucをコピー その後、ソースのある場所で # cp qmail-smtpd.c qmail-smtpd_uc.c # patch < qmail-smtpd_uc.patch # cp Makefile Makefile.uc # cat Makefile.add.qmail-smtpd_uc >> Makefile.uc # make # make -f Makefile.uc qmail-smtpd_uc # cp qmail-smtpd_uc /var/qmail/bin # chmod 755 /var/qmail/bin/qmail-smtpd_uc 今までqmail-smtpdを起動していたところをqmail-smtpd_ucが起動するように書き換えます。 注意事項 control/localsが読み込めない・users/cdbが存在しない以外が原因で読み込めない・ bin/qmail-getpwが実行できない等が生じるとメールを受け取りません。(設定ミスっぽいので) パーミッションなどの関連で home / .qmail dash ext の存在を確認できない場合、存在する物として扱われます。 ローカルアドレス判定方法 (qmail-sendでの変換規則適用) control/locals、control/goodlocalscheckにある物は、local部がそのまま、 control/virtualdomainsにある物は、変換後の物がlocal部として扱われます。 (qmail-lspawnでの変換規則適用) 確定したlocal部に対して、users/cdbを検索し、なければbin/qmail-getpwを実行してhome dash extを得ます (qmail-localでの変換規則適用) dashが空ならアドレスは存在すると仮定します。 そうでなければ、home /.qmail dash ext を検索します。 パーミッションなどの関連で home / .qmail dash ext の存在を確認できない場合、存在する物として扱われます。 無ければ、defaultを探します。 すべて無ければ、そのアドレスは存在しないとされます。 転載について このプログラム・テキスト等の転記・転載・再配布等は一切禁止します。 どうしても転載・転記・再配布等行いたい場合 ituki@fc.to までメールでご相談下さい。 著作権について Ituki Kirihara/NIはこのプログラムを使った事によって生じた一切の責任を負いません。 各自の責任で使用して下さい。 使用に関して、特に金銭的請求をすることはありません。 これらのプログラムの著作権は、Ituki Kirihara/NIが保有しています。 このプログラムにパッチを当てた物を公開する場合、パッチファイルとして公開して下さい。 (オリジナルの部分はなるべく公開しないで下さい) サポート メール ituki@fc.to にて受け付けております。バグ・意見等ありましたらどうぞ。 ただ、時間がないため、対応できるかはあやしいです(^_^; 以下の場所で関連情報等を公開しています http://fc.to/ituki/ このホームページは Ituki Kiriharaの趣味のページです(^_^; バージョン履歴 version 0.0.5 2002/08/01 badrcptto goodrcptto goodlocalscheck badlocalscheckの追加と改良 version 0.0.4 2002/08/01 内部バージョン version 0.0.3 2002/07/31 メールボックスが存在するか分からない場合は受信するように変更 version 0.0.2 2002/07/31 メールボックスがないときとリレー拒否を区別 version 0.0.1 2002/07/30 dashが空の時の処理を追加 version 0.0.0 2002/07/30 公開。 (c) Copyright 2002 Ituki Kirihara/NI All rights reserved. おまけ このパッチを当てると、ローカルメールしか扱わないマシンではrcpthostsを使う必要が無くなります。 空のgoodlocalscheckを作り、設定はlocalsとvirtualhostだけで行けるようになるはずです。 この時、rcpthostsは空のファイルを置いておけば良いです。(消すと大変なことに…)