XMPPの最強のSPAM対策

電子メールの世界では毎日大量のスパムメールが飛び交っています。

Eメールアドレスを公開しようものなら即座にスパム業者に補足され、大量のゴミを送りつけてくるため、 いつしか人々はEメールアドレスをインターネットに公開することをためらうようになりました。

近年では一日に数百億通のスパムメールが飛び交っているそうです。 スパムフィルタリングという対症療法があるものの、根本的な原因として電子メール仕様(SMTP)そのものがSPAMに対して脆弱であると言えるでしょう。

XMPPではこの様な迷惑行為を完全に防ぐことが可能です。 つまり、あなたのXMPPアドレス(JID)を安心してインターネットに公開することができるのです!

今回はそんなXMPPでのSPAM対策を紹介します。

Spam - Monty Python's The Flying Circus

XMPPでのSPAM事情

数年前まではスパム業者がXMPPというマーケットに目を向けていなかったため、 公開しているアドレスでもSPAMを受信することは滅多になかったのですが、近年XMPP人口の増加とともにSPAM流通量が急増しています。

XMPPといえどスパムは送られてきます。 話が違うじゃないかと思われるかも知れませんが、XMPPではSPAMを完全に防ぐことが出来るので安心してください。

XMPPにはXEP-0016: Privacy Listsという拡張仕様があります。 この仕様では、XMPP通信の送信元や種類に基づいて受信するメッセージのルールを定義できます。

これにはコンタクトリストに登録している相手からのメッセージのみ受信するというようなルールも定義できるので、コンタクトリスト外のSPAMメッセージを完全にブロックできます。

XMPPでは通常会話する相手をコンタクトリストに登録してメッセージのやりとりを行うので、これは完璧なスパム対策となります。

とても便利な機能ですが、多くのXMPPクライアントはデフォルトで有効になっておらず、設定方法が解りにくいという理由であまり使われていません。

今回はこのプライバシーリストの設定方法を紹介します。

Psi での設定方法

Psi 0.15 を利用しているものとします。

まずアカウントを右クリックして「アカウントの変更」を選択、もしくは「一般」->「アカウント設定」からアカウントの変更画面を開きます。

アカウント設定画面には「プライバシー」タブがあるのでこれを選択し、「高度な設定」を開きます。 この時、サーバーにログインしている必要がありますのでステータスがオンラインの状態で設定を行ってください。

最初はプライバシーリストが空になっていると思いますので、 「新しいリスト」ボタンをクリックします。

適当な名前を付けます、ここでは「default」と名付けました。

作成したdefaultリストを選択したら、ルールの追加ボタンを押します。

まずは、コンタクトリストに登録されている相手からのメッセージを全て許可するルールです。 以下の様に設定してOKを押してください。

続いてプレゼンスの受信ルールです。 これを設定しないと、コンタクトリストへの追加処理を行うことが出来ません。 以下の様なルールを追加してください。

最後に、見知らぬ相手からのメッセージを拒否するルールです。

最終的にプライバシーリストは以下のように設定されているはずです。 日本語訳がいろいろと変なのは許してください。

最後に「有効なリスト」と「デフォルトリスト」にdefalutを指定して「適用」ボタンを押してください。

これで、サーバーの再接続を行うとプライバシーリストが有効になります。 一度ステータスを「オフライン」にして再度「オンライン」にしてみてください。

これ以降、コンタクトリストに登録されている相手からはメッセージが届き、それ以外の相手からのメッセージは届かなくなります。

すべてのXMPPサーバーがプライバシーリスト対応しているわけではないので注意してください。 もちろんXMPP.JP はプライバシーリストに対応していますので、あとはご利用になられているクライアントの機能をご確認して利用してください。

プライバシーリストはサーバー側に保存され処理されています。したがって利用されているXMPPクライアントがこの機能に対応していない場合でも、一度Psiで設定すれば全てのXMPPクライアントで有効になります。

プライバシーリストは誤った設定を行うと誰からもメッセージが届かなくなる可能性がありますので、十分動作確認を行うことをおすすめします。

ちなみにMUC(マルチユーザーチャット)を利用している場合は以下のルールも必要になります。