2012年4月5日木曜日

SMTPでの検査


2.3.1.1. HELO/EHLOの簡易な構文検査

これらの RFC 2821 違反のいくつかは、容易に検査でき、 送信側のホストがある種のラットウェアを 実行していることの明白なしるしにもなる。このような挨拶は拒否してよい --- すぐにでもよいし、例えば RCPT TO: コマンドのあとでもよい。

まず、ハロー挨拶に裸のIPアドレスがあったら、遠慮なく拒否しよう。 たとえあなたが RFC 2821 で定め、推奨し、 示唆するようなものはなんでも気前よく受け付けたいのだとしても、 IPアドレスを名前の代わりにするときは角括弧で囲まなければならないのだ。

特に、 あなたの IPアドレスで --- またはあなたのホスト名で --- 自分を紹介するようなホストには、 強い調子の拒否メッセージを発行してもいいだろう。 嘘をついていることは明らかだ。 この送信者の挨拶への応答では、 桁外れに長いSMTPトランザクションの遅延で足どめしておくのもいいだろう --- そう、数時間くらい。


どのように子供のカウンセラーは、クライアントのやる気を引き出すか

ちなみに私の経験では、 インターネット上の真っ当なサイトなら、他のインターネットサイトに自分を示すときに IPアドレスリテラル ([x.y.z.w] 表記) を使うことはない。 そんなことをすべきでもない --- インターネット上で直接メールを送信しているホストはすべて、 自身の有効な完全修飾ドメイン名を使うべきだ。 私が見かけるIPリテラルは、私のローカルエリアネットワークで、 私のサーバを送出用SMTPサーバ (スマートホスト) に使うように設定してある メール利用者エージェント (Ximian Evolution のような) が使っているものだけだ。 事実、私は自分のLANから来るリテラルしか受け付けない。

非修飾ホスト名 (ピリオドのないホスト名) は、拒否したほうがいいかもしれないし、 しないほうがいいかもしれない。 これが真っ当なホストであることはまずない (が、まったくないのではない --- 否定の否定でわかりにくいな)。


どのように販売員は、顧客の値が何であるかを得るん。

同様に、無効な文字を含むホスト名も拒否できる。 インターネットのドメインには、英数字とハイフンだけが有効な文字である --- ハイフンは最初の文字にはできない (アンダースコアも有効な文字とすることを検討したほういいかもしれない。 なぜなら、これは設定は間違っているが悪意の全然ない Windowsクライアントで、とてもよく見かけるからだ)。

最後に、始めにハロー挨拶を受け取っていないのに MAIL FROM: コマンドを受け取ったとき。 そう。礼儀をわきまえている人なら、まず挨拶するものだ。

私のサーバでは、上のいずれかの構文検査で失敗した挨拶は拒否する。 しかし、拒否は RCPT TO: コマンドの後まで行なわない。 この間、 それぞれのSMTPコマンド (HELO/EHLO, MAIL FROM:, RCPT TO:) の後に20秒のトランザクションの遅延をはさむ。


トレーススキップを開始する方法

2.3.1.2. ハロー挨拶をDNSで確認する

ホストは、少なくとも見た目にはもっともらしい挨拶を示してきた。 では今度は、与えられた名前をDNSで確認しよう。 次のようにすればできる:

この2つの検査のどちらかが成功すれば、その名前は確認できたことにする。

MTAに、この検査を実施する組み込みのオプションがあるかもしれない。 例えば、Exim (Appendix Aを見てほしい) では、 "helo_try_verify_hosts = *" を設定し、 "verify = helo" 条件に基づいて動作する ACL を作成するとよいかもしれない。

この検査は、処理時間とネットワーク資源の面で、 簡易な構文検査よりは少し高くつく。 それだけでなく、構文検査とちがい、 照合ができなかったことがいつもラットウェアのしるしになるわけではない --- いくつかの大規模なインターネットサイト (hotmail.com, yahoo.com, amazon.com のような) は頻繁に、確認できないハロー挨拶を示す。


私のサーバでは、 先立つ検査に基づいて送信者をトランザクションの遅延で足留めしていないときだけ、 ハロー挨拶のDNS検証をする。そして、この検査が失敗したら、 そこから後のSMTPコマンドごとに20秒の遅延をはさんでいる。 また、"X-HELO-Warning:" ヘッダを用意して 後でメッセージに付加し、SpamAssassin の得点を引き上げることで、 メッセージデータを受信した後の拒否が起こりやすくしている。



These are our most popular posts:

機能外要求とISO9126

そのためにも、私達ソフトウェアを開発する者は、ソフトウェア要求とは何なのかを正しく 理解しておかなければなりません。 .... 既存システムとの相互運用性は、新しくやりとり の方法が相手側に実装されることが少なく、機能外要求に既存の接続方法が指定され ます。 .... 修正内容は未知ですので、ソフトウェアが変更を受け入れられるような プログラミング言語、構造、アーキテクチャになっていることが ... エンドユーザが ソフトウェアを変更可能な場合、変更がしにくいソフトウェアは、ユーザにとっては操作が しにくいと感じます。 read more

JobStateReason (Java 2 Platform SE 5.0)

印刷サービスを実装する場合、通知する必要があるジョブ状態理由は特定の実装に 適応するものだけです。 ... ドキュメントデータの圧縮解除中にプリンタがエラーを検出 したため、ジョブがシステム側で中止されました。 ... ユーザと一致するユーザ、または ジョブ所有者のセキュリティグループのメンバなどの、一定の権限を持つエンドユーザ によって取り消さ .... この理由は、ファイルが存在しない、あるいはアクセス制御の問題 でアクセスが拒否されたなどの、ファイルアクセスに関するすべての問題に対応する ためのものです。 read more

IBM Cloud への SSH によるセキュアなアクセスを実装する

2012年1月20日 ... そして、既存のエンド・ツー・エンドのクライアント・サーバー間の SSH セキュリティー・ ソリューションを詳しく探り、このソリューションが実際の法的要件にどのように対処する かを調べます。 ... IBM ID が必要ですか? .... 重要なプロセスを、さまざまなハードウェア およびソフトウェア・コンポーネントからなる従来の社内システムから社外のデータ・ センターへと積極的 ... 潜在的クラウド・ユーザーが抱く懸念の 1 つは、データをセキュア な社内の場所から、社内ほど安全ではないかもしれない外部の場所に移す際 ... read more

WCF トラブルシューティング クイックスタート

これにより、トレース ファイル ビューアーで表示し、サービス内で発生することがある例外 に関する詳細情報を取得できるトレース ファイルが生成されます。 ... サービスの設計と 実装 ... クライアントは、セキュリティで保護されたセッションをサービスとの間に再度確立 して、後続のメッセージを送信するか、 ... を受け入れますが、その数に到達した後は、 現在実行中のセッションの 1 つが終了するまで新しいクライアント接続を拒否します。 ... その理由は、システム指定の例外型を使用すると、次のような状況が起こるためです。 read more

Related Posts



0 コメント:

コメントを投稿