モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

FairUCEの導入テスト

FairUCEをインストールしてみました。
しかし実稼働はさせていませんので、スパム対策の効果はレポートできませんが、インストール時の注意や動作イメージなど、その他の点について書いてみます。


まず、なぜ実稼働はさせなかったかというと、ここがとても気になったからです。

Enabling the submission protocol, if users relay mail through your server:
submission is designed to run authenticated smtp on port 587. If you are running FairUCE, it is HIGHLY reco
mmended you enable this port and tell your users to use it to send mail... otherwise FairUCE may challenge m
ail sent from one user to another.

submission(587ポート)でメール送信するようにしとかないと、うちのサーバの場合、このメールサーバを利用している全ユーザが、メールが送れなくなってしまいます。(正確には、いちいち確認メールが届く)
なので、だいぶ苦労してインストールしたんですが、結局使わないことにしました。

インストールについて

FairUCEはインストールが結構大変です。まず、動作環境を整えるのが結構大変。また、インストーラらしきシェルスクリプトがついてきますが、configure;make;make install で済むようなしろものではないです。あくまで必要な環境が揃っているかを確認してくれるスクリプト、です。


動作環境と必要なもの

  • Postfix-2.1 以上
  • SSL の動いているWebサーバ (apache + mod_ssl)
  • PHP4 以上
  • Java-1.4 以上
  • JavaMail
  • mod_auth_external
  • 最近の whois にある2つのファイル "tld_serv_list" "ip_del_list"


うちのサーバ機には Java 入れていなかったし、SSLは動かしていませんでした。
apache に mod_ssl や mod_auth_external 入れる必要があったんで、これを機にapache-1.3.33 + mod_ssl-2.8.22 + mod_perl-1.29 + php-4.3.11 と一番新しい安定バージョンにアップデートしたんですが、これがいろいろと骨が折れました。

install.sh は、bash だと上手く動かなので、/bin/zsh を指定してやることで動かしました。
あと、read -s となってるところも、-s オプションが無いと言われたので、このへんを修正。
`hostname`でホスト名で決め打にされてしまうので、外部向けの名前を設定してやる、などの修正を行いました。

FairUCE が動いた後、Postfix 側の設定を変更して、FairUCE を SMTP Proxy として中継するように修正する必要があります。

また、ユーザのメールアドレスとそれに対応するアカウント名を fairuce-users に追加して、一度そのメールアドレスで FairUCE のWebインターフェイスからログインし、その人のホームディレクトリに設定ファイルを作り、その後その設定ファイルを管理者が編集して、fairuce/fairuce.conf の最初の行を Enabled true にしないといけません。

どんなふうに動くのか

FairUCEのスパムフィルタの仕組みは、実は postgrey+FQDNパッチのものと、とても似ています。


おおざっぱに言うと FairUCE では、

  • エンベロープFromのドメインを引いて、接続元のIPがそこに属しているかで1次チェック。(ちょっと自信なし。ソース読めれば良いんだけどオープンソースじゃないんだよね。)
  • 一致しないものについては、エンベロープFromに対し(これもちょっと自信が無い)確認メールを送り、人間がその返信を受け取ったら、メールに書いてあるURLでWebサーバに接続してもらうことで2次チェック。


postgrey+FQDNパッチ では、

  • 接続元のFQDNで、プロバイダ接続っぽいかパターンマッチで1次チェック。
  • 一度リジェクトして再送してくれるか確認(greylisting)することで2次チェック。


という感じです。
Webサーバに接続してもらって最終確認を出来るようになっているため、メールデーモンだけでなく、httpdPHPSSL まで必要になってきてるわけです。

気になったところ

  • 怪しいものについては折り返しで確認メールが出されるが、詐称している先にメールが届いてしまう。→自分がスパマーになるんでは?(これを誤解して攻撃とか言われていた)
  • 確認メールが来ても、送信者にスパムと思われて、結構見逃されることがありそう。
  • submission を利用しないと、外の接続から正規ユーザがメールを出すものまではじかれてしまう。(うちのサーバにとってはこれが致命的だった)
  • メールサーバ上でWebサーバも動かさなければならない。(プロバイダなどでは大抵別サーバにしており、セキュリティ上心理的に、あんまり他のデーモンまで動かしたくない)
  • 動作に必要なものが結構たくさんある。
  • インストールが大変で、わかりにくい。


でも、エンベロープFromのドメインからあやしい接続かどうかを判別する、というアイデアは使えると思いました。


(関連)

alphaWorks : FairUCE : Overview
http://d.hatena.ne.jp/stealthinu/20050324/p1 [pc][spam]FairUCEについての誤解
http://d.hatena.ne.jp/stealthinu/20050323#p3 [pc][spam]FairUCE