Home> QmailによるImap4サーバ構築とBeforeSMTP設定

QmailによるImap4サーバ構築とBeforeSMTP設定

  • 2003年6月12日 21:08

Courier-imapとrelay-ctrlを使って安全なImap4サーバの構築をする

QMailによるIMAP4サーバーのインストール方法。

まず、QMailをインストールしてPOPとSMTPによる送受信が出来るようにします。

IMAP4をインストールします。 サーバーとして「Courier-imap」をインストールしました。
今回はシステム上のユーザをメールアカウントとして、認証には/etc/passwdのみを使う形でのインストール方法を選択しました。

まず以下のコマンドを一般ユーザで実行してください。

$ ./configure --without-authmysql --without-authldap
$ make
$ make check

※RedHatやFedora Coreでエラーが出る場合は --whith-redhatをつけるとうまくいく場合があります。

次に以下のコマンドをrootユーザで作業します。

# make install
# make install-configure

これでインストールは完了しました。/usr/lib/courier-imap/libexec/に設定ファイルが/usr/local/libexec/に実行スクリプトファイルがインストールされています。

IMAP4を起動してみましょう。起動には/usr/local/libexec/imapd.rcを実行します。

#/usr/lib/courier-imap/libexec/imapd.rc start ←起動
#/usr/lib/courier-imap/libexec/imapd.rc stop ←停止

システムを再起動のさいにいちいちコマンドで起動するのはめんどくさいので自動起動の設定をします。

標準添付の起動スクリプトを/etc/rc.d の下にコピーします。

# cp /usr/lib/courier-imap/libexec/imapd.rc /etc/rc.d/rc.imapd

/etc/rc.d/rc.local に以下を追加します。

#IMAP4 Stat if [ -x /etc/rc.d/rc.imapd ]; then
echo -n "Starting IMAP server."
/etc/rc.d/rc.imapd start
fi

OutlookExpress等のIMAPサーバー対応のメーラーで動作確認して完了です。

「POP before SMTP」「IMAP before SMTP」 のインストール方法

現在のメールサーバー設定だと自宅からのネットワーク環境からのみしかメール送受信が出来ない為、 会社や出先でもメール送受信できるようにします。

*** before SMTP」の実現に「relay-ctrl」のソフトウェアをインストールします。
「relay-ctrl-3.0」以降を動作させるためには「daemontools」も必要になるため,こちらもインストールします。

まず「daemontools」をインストールします。

$ tar xzvf daemontools-0.76.tar.gz
$ cd admin/daemontools-0.76
$ su
password:
# package/install

※RedHat9やFedora Coreはエラーが出ますので、下記のように直してインストールしてください。
解凍したdaemontools-0.76内のsrcディレクトリに移動してその中のerror.hを開き先頭部分の3行目を修正します。
「extern int errno;」を「#include <errno.h>」と変更します。

以上でインストール完了です。

次に「relay-ctrl」をインストールします。

$ tar xvzf relay-ctrl-3.1.1.tar.gz
$ cd relay-ctrl-3.1.1
$ vi conf-man
/usr/local/man ←/var/local/share/manに変更
Man pages will be installed in subdirectories of this directory. An
unformatted man page foo.1 will go into .../man1/foo.1.

$ make
# ./installer

./installer コマンドを入力後何も表示されませんが、インストールはされています。
relay-ctrl用のスプールディレクトリと設定ファイル用のディレクトリを作成し,パーミッションの変更を行います。

# mkdir /var/spool/relay-ctrl
# mkdir /var/spool/relay-ctrl/allow
# mkdir /etc/relay-ctrl
# chmod 700 /var/spool/relay-ctrl
# chmod 777 /var/spool/relay-ctrl/allow

次に,設定ファイル用のディレクトリ「/etc/relay-ctrl」に「RELAY_CTRL_DIR」というファイルを作成する。 そののち作成したスプールディレクトリを記述し、relay-ctrl-allowをsetuidプログラムして動作させるためにパーミッションの変更を行います。

# echo "/var/spool/relay-ctrl/allow" > /etc/relay-ctrl/RELAY_CTRL_DIR
# chmod u+s /usr/local/bin/relay-ctrl-allow

POPサーバへアクセスのあったIPアドレスファイルが「/var/spool/relay-ctrl/allow/」以下に作成されます。
これを 自動的に削除しないため,cronを利用して自動的に消去するように設定します。

# crontab -e

* * * * * /usr/local/bin/envdir /etc/relay-ctrl /usr/local/bin/relay-ctrl-age

以上を記述して保存します。

アクセスしてきたIPアドレスのデータを保持する時間(送信を許可する時間)は,設定ファイルのディレクト「/etc/relay-ctrl」に 「RELAY_CTRL_EXPIRY」というファイルを作成し,指定することができます。

vi /etc/relay-ctrl/RELAY_CTRL_EXPIRY 

600 ←10分間送信を許可する。

のように,ファイルに秒数を指定して保存します。
デフォルトは15分?となっているようです。

また,事前にPOPサーバもしくはIMAPサーバへのアクセスを行わなくても送信を許可するIPアドレスは, 同様に「/etc/relay-ctrl」以下に「RELAY_CTRL_RELAYCLIENT」というファイルを作成し,以下のように記述して設定します。

allow,RELAYCLIENT='IPアドレス'

以上で「relay-ctrl」の設定は完了です。

次に「relay-ctrl」の起動設定方法です。
SMTP/POPサービス起動スクリプトを以下のようにします。

SMTPサービス起動スクリプト
#!/bin/sh
echo -n 'qmail-smtpd starting.'
↓ここから改行なしで入力
/usr/local/bin/envdir /etc/relay-ctrl /usr/local/bin/tcpserver -u qmaild -g nofiles 0 25 /usr/local/bin/relay-ctrl-check /var/qmail/bin/qmail-smtpd &

POPサービス起動スクリプト
#!/bin/sh
echo -n 'qmail-pop3d starting. '
↓ここから改行なしで入力
/usr/local/bin/envdir /etc/relay-ctrl /usr/local/bin/tcpserver 0 110 /var/qmail/bin/qmail-popup "メールサーバー名" /bin/checkpassword /usr/local/bin/relay-ctrl-allow /var/qmail/bin/qmail-pop3d Maildir &

※APOPサービスを起動する場合は「/bin/checkpassword」の部分を「/bin/checkapoppw」に変更します。

次にIMAPサービスの起動スクリプトを以下のようにします。
「/usr/local/libexec/authlib」に「/usr/local/bin/relay-ctrl-allow」のシンボリックリンクを張ります。

# ln -s /usr/local/bin/relay-ctrl-allow /usr/local/libexec/authlib

「/usr/local/etc/imapd」を編集する。「AUTHMODULES」にrelay-ctrl-allowを追加して保存する。

エディターで「/usr/local/etc/imapd」を編集します。
エディターが起動したら,「/AUTHMODULES」などとして該当箇所をサーチし,AUTHMODULESに「"relay-ctrl-allow"」を追加して保存する。

#
#  authdaemon
#
# The default is set during the initial configuration.
#

AUTHMODULES="authdaemon" ←ここを編集

AUTHMODULES="authdaemon relay-ctrl-allow" ←こちらに修正

/etc/rc.d/rc.imapdをエディターで編集します。

_STARTTLS=$IMAPDSTARTTLS ; export IMAP_STARTTLS ; \
TLS_PROTOCOL=$TLS_STARTTLS_PROTOCOL ; \
↓下2行を追加する。
/usr/local/bin/envdir /etc/relay-ctrl \
/usr/local/bin/relay-ctrl-chdir \
↑ 
/usr/local/libexec/couriertcpd -address=$ADDRESS \

QmailとIMAPを再起動します。

動作確認方法...

OutLookExpressでメール設定をおこないテストメールを作成して送信のみを行います。

受 信者の 1 人がサーバーによって拒否されたため、メッセージを送信できませんでした。 拒否された電子メール アドレス : age@sample.com 件名 'test', アカウント : '192.168.0.2', サーバー : '192.168.0.2', プロトコル : SMTP, サーバーの応答 : '553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)', ポート : 25, セキュリティ (SSL): なし, サーバー エラー : 553, エラー番号 : 0x800CCC79

上記のエラーが表示されたら正常に動作しています。メール受信動作をしてからメール送信動作をしてメールが送信されることを確認してください。

もし送信されたら先に受信動作を行っている可能性があります。「/var/spool/relay-ctrl/」にクライアントのIPアドレスが表示されているか確認します。 表示されている場合は消えてから、もう一度送信のみのテストを行います。
もし、IPアドレスが表示されていないにも関わらず送信される場合は「/var/log/messages」ログを見てエラーが無いか確認してください。

最後に不正中継チェックをして設定は終わりです。

トラックバック:0

TrackBack URL for this entry
http://blog1.papanda.jp/cgi-bin/mt-tb.cgi/19
Listed below are links to weblogs that reference
QmailによるImap4サーバ構築とBeforeSMTP設定 from Linux備忘録

コメント:0

Comment Form

Index of all entries

Home> QmailによるImap4サーバ構築とBeforeSMTP設定

カテゴリ
アーカイブ
購読
Powerd By

Return to page top