Vine3.2でPOP Before SMTP |
| 2005/09/25 |
Vine3.2では、POP Before SMTPを準備するのに、qpopperのみrpmを再生成すれば可能のようなのでまとめました。
dracを使ったPOP Before SMTPです。
注意点として、設定している最中に不正中継されてしまうとマズいので、設定がすべて完了するまで 25,110番ポートを空けないようにしましょう。
必要なVineパッケージのインストール
POP Before SMTPで利用するパッケージをインストールします。
$ su -
# apt-get update
# apt-get install postfix dracd db4 db4-devel db4-utils pam-devel gdbm-devel
portmapの起動
portmapサービスを起動します。
# /etc/init.d/portmap start
サーバ起動時、portmapが起動されるようにしておきます。
# chkconfig portmap on
dracの設定
これを書いている時点では、初期値のままでいいようですが、念のために設定値を確認します。
# cat /etc/mail/dracd.allow
この時、「255.255.255.255 127.0.0.1」の1行だけ記述があるかを確認してください。
これで、dracの利用はlocalhostのみ許されるという意味です。
万一、「255.255.255.255 127.0.0.1」以外の設定がされているようなら、エディタでその行を削除してください。
dracのデータベースを消去する期間を設定します。この期間のみリレーが許されます。ここでは2分間に設定しています。
# emacs /usr/sbin/rc.dracd
| /usr/sbin/rpc.dracd -e 2 & | |
私は一時、この設定を忘れていたのでdb4に永久的にIPアドレスが保存され、不正中継されてしまいました。必ず設定してください。
dracサービスを起動します。
# /etc/init.d/dracd start
サーバ起動時にdracを起動させます。
# chkconfig dracd on
qpopperのインストール
-
qpopperがインストール済みなら、アン・インストールしておきます。
# rpm -e qpopper
# exit
-
qpopperのソースをVineサイトから取得します。これは一般ユーザーで行います。
$ apt-get source qpopper
-
エディタで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 ← この行を追加します。
|
リビルドします。
$ rpm -bb qpopper.spec
正常終了すると、rpmができているはずです。インストールします。
$ su
# cd ../RPMS/i386/
# rpm -Uvh qpopper-4.0.5-0vl2.1.i386.rpm
inetdの設定
-
/etc/hosts.allowを編集して、以下の行を追加します。
# emacs /etc/hosts.allow
-
inetデーモンを再起動します。
# /etc/init.d/inet restart
Postfixの設定
/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
|
動作確認
Win上などから、サーバへPOP認証してみます。
サーバ側で、次のようにしてみます。
# db_dump -p /etc/mail/dracd.db
この時、次のように返されることを確認します。
|
VERSION=3
format=print
type=btree
HEADER=END
192.168.0.2 ← 接続したクライアントのアドレス
1097475530 ← ここの数値は違うと思います
DATA=END
|
次に、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の設定を見直してください。
db_dumpでIPアドレスが表示されなくなったら、Windowsクライアントからどこか外部へメール送信してみてください。送信できないはずです。
一度、受信をしてdb_dumpでIPアドレスが記録された後だと、外部へメール送信できるはずです。これも調べてください。
ルータ設定
ルータは25番と110番ポートをサーバーにマッピングする必要があります。
不正中継のテスト
RBL.JPの「第三者中継チェック」をクリックします。
- 「ホスト名」にホスト名を入力して「Check」ボタンをクリックします。
- 何回かテストされます。結構、時間がかかるのでゆっくり待ちましょう。
- 「全てのテストが行われました, no relays accepted.」と表示されればテストは完了です。
APOPの設定
おまけですが、APOPの使い方を書いておきます。POP3と違ってAPOPではパスワードが暗号化されるので、APOPが使えるメール・クライアントを利用するのならAPOPでの運用が良いと思います。
以下のようにしてAPOPアカウントを作成したユーザーは、POPでのメール受信が出来なくなります。POPでメール受信するユーザーはAPOPアカウントの作成をしないようします。これでPOPとAPOPの併用が出来ます。
-
最初にqpopperのAPOP用DBを初期化します。
$ su
# /usr/sbin/popauth -init
「Really initialize POP authentication DB?」と表示されるので「y」を入力します。
-
ユーザごとに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を止めて、原因究明をしました。
したがって、たとえ英文のメールであっても、このような内容のメールが届いくこともありますので、注意することにしましょう。
なお、不正中継に気づかずに放置しておくと、ブラックリストにのります。
|