« 今日は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ケ月ぐらいは最低でも覚悟しておかないと。
トラックバック
現在、この記事はトラックバックを受け付けておりません。
コメント
現在、この記事はコメントを受け付けておりません。