- - PR -
qmail+vpopmail環境で、送信時に差出人メールアドレスが実在するかチェックしたい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-03-05 13:36
debian3.1 上で、qmail tcpserver vpopmail の組み合わせで
メール環境を構築しています。 (@itの記事を参考にさせていただきました) 不正利用防止に、vchkpwにてPOP before SMTPを実装しています。 この環境下で、POP before SMTPの仕様上の問題なのか(?)、 正常にPOP受信できた場合、POP受信できたマシンからは、 送信元を偽ってメールが送信できてしまうことが判明しました。 具体的には、test1@example.jpというメールアドレスで クライアントからPOP受信が行われた場合、 このクライアント上で test1@example.jp が差出人のメールが送れるのは 問題ありませんが、このクライアントから、一定時間以内であれば test2@example.jp という設定されていない(存在しない) メールアドレスが差出人のメールも送れてしまいます。 CGIを設置できる人間は限定できているので、大量の迷惑メールを 送信する直接のリスクは少ないと思われますが、よりセキュリティを より強固に設定したい場合に、差出人が実在するかどうかを、メールをサーバの 外部へ転送処理を行う前にチェックする方法はありますでしょうか? ご教授よろしくお願いします。 |
|
投稿日時: 2007-03-06 15:05
こんにちはpunkです.
#なんかこの内容どっかのMLで見たような・・・ SMTP Authではだめでしょうか? |
|
投稿日時: 2007-03-06 17:10
> SMTP Authではだめでしょうか?
SMTP Authでも、結局、存在するIDとPWDの組み合わせで、存在しない差出人メールアドレスの送信が できてしまう、と考えられるわけです。(未導入のため、想像ですが・・・) Yahoo!メールをPOPメールとして使う場合、差出人を存在しないアカウントに変更して送信すると エラーが返され、送信できません。やりたいことは、シンプルに、この機能をqmail+vpopmailへ 実装したい、ということです。 よろしくお願いします。 |
|
投稿日時: 2007-03-06 17:48
punkです.
yahooの場合はwebmailなので,比較は難しいと思います.もしwebmailでも良いのであれば話は別ですが. qmailで実装するのであれば,qmail-smtpd.cをいじれば可能でしょう. #qmail自体をHackするのがどうかと思いますが #qmail-smtpd.cのvoid smtp_mail(arg)ってところをいじってみる ただ,MTA->MTAの場合があるので,送信用のポートが必要になると思います. Client -> (587)Server[OKならsmtproutesで流す] -> (25)SMTP 追記:上記をする場合,smtp authは必須です. [ メッセージ編集済み 編集者: punk 編集日時 2007-03-06 17:54 ] |
|
投稿日時: 2007-03-06 17:54
こんにちは。
From が偽装できるのは割と当たり前の話なので… qmail では絶対、そんなのを阻止する機能はないでしょうね。 単に送信者がローカルに存在するか、のチェックであれば、qmail-queue のラッパープログラムを作れば良いと思います。 POP before SMTP のチェックを通った場合に tcpserver に、特定の環境変数を設定させて、その環境変数が設定されている場合は、ラッパーが送信者チェックを行う、と。 ( 環境変数が設定されていない場合は、オリジナルの qmail-queue を exec すれば良し ) なお、「認証を通った人」=「from のアドレス」のチェックまでやりたいのならば、そもそも POP before SMPT は向きませんので、SMTP AUTH が前提となりますが、上述のようなラッパーが作れるかどうかは何とも… ( vchkpw の動作が分かれば何とかなるかも ) |
|
投稿日時: 2007-03-06 18:48
punkです.
debianで思い出したけど,mailfrontってのでいろいろ出来るって聞いたことがあったような気がする. http://untroubled.org/mailfront/ 参考になれば. |
1