TOPへ  |  サービス利用方法(wiki)  |  雑談板  |  質問板(掲示板)  |  日記(はてな)  |  FileUpBoard  |  ゲストブック  |  i-shot  |  チャット  |  サーバー状態  |  リンク
Control Panel (SSL)  |   | 

« 各サーバースペック・情報 | メイン | MT設置しました »

2004年12月23日

FedoraCoreでPOP Before SMTP

今回は、FedoraCore上でPostfix2.x、qpopper、DRACを使用してメールサーバーをPOP Before SMTPに対応させる手順を紹介します。(2007年現在、もう少し簡単な方法がいくつかあるので参考として読んでいただければと思います)

用意するもの


1. 必要なパッケージの入手

qpopperの入手
QoppperはUNIX系OS上で利用できるPOP3サーバーで
Qpopperは、POP3プロトコル(ユーザーがPOP3クライアントを使用してメールにアクセスする方法を提供する)に用いられるサーバーとして 最も広く利用されています。Qpopperは最新の規格をサポートし、数多くの特徴を備えています。Qpopperは通常UNIXメール転送および sendmailやsmailといった配送エージェントと共に使用されます。Qpopperの目標は、セキュリティ、安定性、安全性、特徴、パフォーマンスです。
だそうです。
入手先→EUDORA - Qpopper Information

DRACの入手
DRACはDynamic Relay Authorization Control(動的配送認証制御)といい、
DRACはsendmailのためのリレー認証マップを更新するデーモンです。これは、スパム配送のような無関係なものを防ぎながらにして、 ユーザーに対して正当にメールをリレーできるようにします。ユーザーのIPアドレスはPOPサーバーもしくはIMAPサーバーを使用して 認証を完了するとすぐに追加されます。デフォルトではマップのエントリは以後30分保持され、また追加の認証によって更新されます。 POPサーバーへの定期的なメールの確認は、これに対して十分です。POPサーバーとSMTPサーバーは別のホストで稼動させる事ができます。
だそうです。
入手先→Dynamic Relay Authorization Control
(ダウンロードは「Obtaining the Source」リンクから辿ったページからできます(drac.tar.Z))

Postfixの入手
PostfixはFedoraCoreにパッケージとして含まれているため、ソースをダウンロードする必要はありません。
ただし、デフォルトのインストールオプションではインストールされないので、入っていない場合は apt for RPMを使用して

# apt-get install postfix

等とするか、FedoraCoreのサイトからRPMパッケージをダウンロードしてインストールしてください。

2. パッケージのインストール

パッケージの用意ができたら、インストールを行います。
最初はDRACのインストールを行います。
まず、パッケージを解凍します。
drac.tar.Zにはファイルが直接入っているのでディレクトリを作ったほうが良いです
$ mkdir drac
$ mv drac.tar.Z drac
$ cd drac
$ tar zxf drac.tar.Z

INSTALLファイルのFor Linuxの欄に書いてあるように、Makefileを書き換えます。
書き換えたものをこちらに置きましたので、必要で あれば使ってください。
書き換えが完了したらmakeします。

$ make
$ su
Password:
# make install

# make install-manというのがありますが、特に必要なければ行わなくても問題ありません。
そして、QpopperをDRACに対応させるために必要なdracのライブラリファイルをコピーします。

# cp libdrac.a /usr/lib
# exit

次にQpopperのインストールを行います。
qpopperは、httpd等と比べればアクセスの少ないデーモンなのでスーパーデーモン(xinetd等)を使用してポートの バインド(待ちうけ)を行わせ、メモリの節約をすることが多いのですが、今回は手間を省くためにスタンドアロンモード でインストールすることにします。

$ tar zxf qpopper4.0.5.tar.gz
$ cd qpopper4.0.5
$ ./configure --enable-standalone --with-drac
$ make
$ su
Password:
# make install

make installを実行した際に/usr/local/man/man8が存在しないとエラーが出る場合があります。その場合はconfigureで prefixを/usr/sbinにするか、/usr/local/manディレクトリを作成する事で解決できます。

3. 設定

インストールが終了したら、設定を行います。
まず、dracの起動スクリプトを作成します。
以下のようなファイルを/etc/rc.d/init.d/dracdとして作成してください(prefixを変えた場合はそれに応じて変えるか、 パスが通っていれば絶対パスで指定する必要はありません)。
これは、dracを解凍した中にあるdracd-setup.linuxと同等です。
#!/bin/sh -
# Put this file into /etc/rc.d/init.d/dracd
# and link it intot he run levels you want to use it
# by doing "ln -s  /etc/rc.d/init.d/dracd /etc/rc.d/rc.<runlevel>/S99dracd"
#
#このファイルを/etc/rc.d/init.d/dracdへ置いてください。
#そして、それを使いたいランレベルへ以下を実行しリンクしてください。
#"ln -s  /etc/rc.d/init.d/dracd /etc/rc.d/rc.<runlevel>/S99dracd"

# dracd-setup

# Source function library.
. /etc/rc.d/init.d/functions

# See how we were called.
case "$1" in
  start)
        echo -n "Starting rpc.dracd daemon: "
        daemon /usr/local/sbin/rpc.dracd -i -e 10&
        echo
        touch /var/lock/subsys/rpc.dracd
        ;;
  stop)
        echo -n "Stopping rpc.dracd daemon: "
        killproc /usr/local/sbin/rpc.dracd
        echo
        rm -f /var/lock/subsys/rpc.dracd
        ;;
  *)
        echo "Usage: dracd {start|stop}"
        exit 1
esac
exit 0

rpc.dracdの起動オプションはmanによると
OPTIONS
       -i             起動時にデータベースを初期化します。

       -e expire      有効期限を設定します。有効期限はエントリがデータベースの中に残る時間(分)です。
                      初期値では30分にセットされます。

       dbfile         違うファイル名のデータベースを使います。

とあります。
デフォルトでは30分ですが、ここでは10分とすることにします。
起動スクリプトを/etc/rc.d/init.d以下に作成したら、ランレベルに合わせてファイルをコピーします。
おそらく、サーバーであれば3で起動していると思います(/etc/inittabを確認すれば現在の設定値が分かります)。
# ln -s  /etc/rc.d/init.d/dracd /etc/rc.d/rc.3/S99dracd

これで、ランレベル3で起動した場合には起動時にrpc.dracdが動作するはずです。
そして、最後にrpc.dracdを起動してみます。
# /etc/rc.d/init.d/dracd start


次にQpopperの起動の設定をします。
こちらも起動スクリプトを作成しても良いのですが、オプションが特にないので/etc/rc.localに記述してしまうのが 手っ取り早いでしょう。
/etc/rc.localに以下の行を追加します。
/usr/local/sbin/popper -S -s

これで、qpopperがスタンドアロンモードで動作し、ログはsyslogに出力されるようになります。

そして、起動します。
# popper -S -s

メッセージは何も出ませんが起動しています。

最後に、Postfixとdracが連携するよう設定します。
Postfixのmain.cfファイルに以下のような設定を追加してください。
smtpd_recipient_restrictions =
	permit_mynetworks
	permit_auth_destination
	check_client_access btree:/etc/mail/dracd
	reject_unauth_destination
	reject

Postfixを再起動します。
# /etc/rc.d/init.d/postfix restart

これでPostfixのリレーが/etc/mail/dracd.dbファイルに基づいて行われるようになります。

以上でFedoraCore上でのPostfix, Qpopper, DRACを使用してのメールサーバーの構築は完了です。

投稿者 xabre : 2004年12月23日 15:29

コメント

コメントしてください




保存しますか?


Copyright © 2003-2008 PF-X.NET All rights reserved.