Vine3.2でPOP Before SMTP

2005/09/25

Vine3.2では、POP Before SMTPを準備するのに、qpopperのみrpmを再生成すれば可能のようなのでまとめました。

dracを使ったPOP Before SMTPです。 注意点として、設定している最中に不正中継されてしまうとマズいので、設定がすべて完了するまで 25,110番ポートを空けないようにしましょう。


必要なVineパッケージのインストール

  1. POP Before SMTPで利用するパッケージをインストールします。
    $ su -
    # apt-get update
    # apt-get install postfix dracd db4 db4-devel db4-utils pam-devel gdbm-devel

portmapの起動

  1. portmapサービスを起動します。
    # /etc/init.d/portmap start
  2. サーバ起動時、portmapが起動されるようにしておきます。
    # chkconfig portmap on

dracの設定

  1. これを書いている時点では、初期値のままでいいようですが、念のために設定値を確認します。
    # cat /etc/mail/dracd.allow
    この時、「255.255.255.255 127.0.0.1」の1行だけ記述があるかを確認してください。
    これで、dracの利用はlocalhostのみ許されるという意味です。
    万一、「255.255.255.255 127.0.0.1」以外の設定がされているようなら、エディタでその行を削除してください。
  2. dracのデータベースを消去する期間を設定します。この期間のみリレーが許されます。ここでは2分間に設定しています。
    # emacs /usr/sbin/rc.dracd
    /usr/sbin/rpc.dracd -e 2 &
    私は一時、この設定を忘れていたのでdb4に永久的にIPアドレスが保存され、不正中継されてしまいました。必ず設定してください。

  3. dracサービスを起動します。
    # /etc/init.d/dracd start
  4. サーバ起動時にdracを起動させます。
    # chkconfig dracd on

qpopperのインストール

  1. qpopperがインストール済みなら、アン・インストールしておきます。
    # rpm -e qpopper
    # exit
  2. qpopperのソースをVineサイトから取得します。これは一般ユーザーで行います。
    $ apt-get source qpopper
  3. エディタでSPECを変更します。
    $ cd ~/rpm/SPECS/
    $ emacs qpopper.spec
    まず、取得したリリース番号を少しだけ変えます。

    これを書いている時点では「0vl2」だったので「0vl2.1」に変更しました。こんな感じで「.1」などと追加します。
    Version: 4.0.5
    Release: 0vl2.1 ← 変更します。

    dracを使うように、オプションを追加します。
    %build
    CFLAGS="$RPM_OPT_FLAGS" ./configure \
       --prefix=/usr \
       --enable-bulletins=/var/spool/mail/bulletins \
       --enable-specialauth \
       --with-pam=qpopper \
       --with-popuid=pop \
       --enable-apop=/etc/pop.auth \ ← 「 \」を追加します。
       --enable-drac ← この行を追加します。

  4. リビルドします。
    $ rpm -bb qpopper.spec
  5. 正常終了すると、rpmができているはずです。インストールします。
    $ su
    # cd ../RPMS/i386/
    # rpm -Uvh qpopper-4.0.5-0vl2.1.i386.rpm

inetdの設定

  1. /etc/hosts.allowを編集して、以下の行を追加します。
    # emacs /etc/hosts.allow
    in.qpopper: ALL
    		
  2. inetデーモンを再起動します。
    # /etc/init.d/inet restart

Postfixの設定

  1. /etc/postfix/main.cfを編集します。
    ここでは「HOST.DOMAIN.COM」というホスト名であると仮定していますので、この部分はご自身の環境に合わせてください。
    以下以外は適宜、変更してください。デフォルト値でもとりあえず使えます。
    # emacs /etc/postfix/main.cf
    mydomain = DOMAIN.COM
    myhostname = HOST.DOMAIN.COM
    mydestination = $myhostname, localhost.$mydomain $mydomain
    mynetworks = 127.0.0.0/8 check_client_access btree:/etc/mail/dracd
    relay_domains = $mydestination

動作確認

  1. Win上などから、サーバへPOP認証してみます。
  2. サーバ側で、次のようにしてみます。
    # db_dump -p /etc/mail/dracd.db
    この時、次のように返されることを確認します。
    VERSION=3
    format=print
    type=btree
    HEADER=END
    192.168.0.2 ← 接続したクライアントのアドレス
    1097475530 ← ここの数値は違うと思います
    DATA=END
  3. 次に、5分ほど待ちます。そして、もう一度、db_dumpを実行します。
    # db_dump -p /etc/mail/dracd.db
    VERSION=3
    format=print
    type=btree
    HEADER=END
    DATA=END
    このように、さきほどのIPアドレスが消えていればdracやqpopperの設定はOKです。
    IPアドレスが残るようなら、もう一度、dracの設定を見直してください。
  4. db_dumpでIPアドレスが表示されなくなったら、Windowsクライアントからどこか外部へメール送信してみてください。送信できないはずです。
    一度、受信をしてdb_dumpでIPアドレスが記録された後だと、外部へメール送信できるはずです。これも調べてください。

ルータ設定

ルータは25番と110番ポートをサーバーにマッピングする必要があります。


不正中継のテスト

  1. RBL.JPの「第三者中継チェック」をクリックします。
  2. 「ホスト名」にホスト名を入力して「Check」ボタンをクリックします。
  3. 何回かテストされます。結構、時間がかかるのでゆっくり待ちましょう。
  4. 「全てのテストが行われました, no relays accepted.」と表示されればテストは完了です。

APOPの設定

おまけですが、APOPの使い方を書いておきます。POP3と違ってAPOPではパスワードが暗号化されるので、APOPが使えるメール・クライアントを利用するのならAPOPでの運用が良いと思います。

以下のようにしてAPOPアカウントを作成したユーザーは、POPでのメール受信が出来なくなります。POPでメール受信するユーザーはAPOPアカウントの作成をしないようします。これでPOPとAPOPの併用が出来ます。

  1. 最初にqpopperのAPOP用DBを初期化します。
  2. $ su
    # /usr/sbin/popauth -init
    「Really initialize POP authentication DB?」と表示されるので「y」を入力します。
  3. ユーザごとにAPOPアカウントを作成します。
    # /usr/sbin/popauth -user USER_NAME
    パスワードを2回聞かれるので、入力します。

不正中継されたら

うちは設定を間違えてしまい、不正中継されましたのでその時のことを最後に書きます。

不正中継というと、SPAMが大量に送られてくると思っていましたが、うちはそうではありませんでした。 一応、POP Before SMTPにはなっているため、特定のホストのみ、不正中継を許している状態でしたので助かりました。

私の場合、30分に1回だけ不正中継のメールが送信されるのです。ログを見ると2個所から送られているようです。 正確な周期で送られていましたので、おそらく何らかのプログラムを使って送っているのでしょう。

では、どうして不正中継されているのが発覚したかと言うと、次のようなメールが届いたからです。

件名: Spam
本文: Are you a spammer? (I found your email on a spammer website!?!)

とりあえず、すぐにpostfixを止めて、原因究明をしました。

したがって、たとえ英文のメールであっても、このような内容のメールが届いくこともありますので、注意することにしましょう。

なお、不正中継に気づかずに放置しておくと、ブラックリストにのります。
Black list DB checkで、ブラックリストにのってしまったかを確認しておきましょう。

Copyright©2001-2019 釣ったよ! All Right Reserved.    sg@tsuttayo.jpn.org