« 今日はSpammerの活動日だったようです。 | メイン | 春は一番、木枯らしは一号と呼ぶ理由 »

2007年11月18日

qmail+vpopmailにchkuser2.0を適用する >>メールサーバ 

qmail+vpopmailにchkuser2.0を適用しました。

vpopmail環境ですと
| /var/vpopmail/bin/vdelivermail '' delete
とか、.qmail-defaultに記載しておけば、溜め込まずに削除してくれますが、Qmailである以上は、一度メールを受け付けてしまいます。
そのせいで「なんでもメールを送れる」と思い込んで大量に送ってきてしまいます。

たぶんBackScatter狙いなのでしょう。

そういうことで、chkuser2.0を導入することにしました。

相変わらずMakefileやらなんやらは書き換えないとコンパイルエラーが発生します。
手でプログラムを追い、ひたすら修正をかけます。

コンパイルが通ったのはいいのですが、どうもうまく動かないというか、何でもAcceptしてしまっている。

調べたところ、
chkuser.cの

if (!stralloc_cats (&tmp_path, "/.qmail-default")) DIE_NOMEM();
if (!stralloc_0 (&tmp_path)) DIE_NOMEM();

read_char = 0;
fd_file = open_read (tmp_path.s);
if (fd_file != -1) {
read_char = read (fd_file, read_buf, sizeof(read_buf) - 1);
close (fd_file);
if (read_char < 0) read_char = 0;
}
read_buf[read_char] = 0;

if ( strstr(read_buf, CHKUSER_BOUNCE_STRING) == NULL ) {
retstat = CHKUSER_OK_NOCHECKDOMAIN;
break;

}

とかが関係していて、ファイルが読めない状況だったら何でもAcceptというプログラムソースになっているんですね。
1)vpopuserで、qmail-smtpdを動かすようにしておくこと
2)vpopuserでrw の権限がないといけない
vpasswd
vpasswd.cdb
.vpasswd.lock

とか。
合わせて bounce-no-mailbox と書いてなければ動作しないのとかもdeleteに合わせてしまいました。

・・・なんですけど、CHKUSER_ENABLE_UIDGID という設定が、chkuser_settings.h にありまして、これを使うようにすれば一発です。
設定・ソース追って・make & tryで 10時間ぐらい格闘してたというのは内緒です。ナイショだよ。

で、chkuserをかける分、処理負荷が上がってます。
正直、トレードオフとしていいのか悩めますが、無理だと理解すればネットワークトラフィックが徐々に減っていくでしょうから、しばらく様子見です。

世界中からなので、2~3ケ月ぐらいは最低でも覚悟しておかないと。

twitterこの記事をTwitterでみんなに教える。

投稿者 debizoh : 2007年11月18日 08:06



トラックバック

現在、この記事はトラックバックを受け付けておりません。


コメント

現在、この記事はコメントを受け付けておりません。