2006年9月2日土曜日

メール環境改革 - IMAP,POPサーバインストール

前回でメールがサーバまでは届くようになりましたが、
これをクライアント PC から読めなければどうしようもありません。
そこで IMAP,POPサーバ courier-imap を準備します。以下を実行します。


# emerge net-mail/courier-imap
# cd /etc/courier
# mkimapdcert
# mkpop3dcert
# rc-update add courier-imapd default
# rc-update add courier-imapd-ssl default
# rc-update add courier-pop3d default
# rc-update add courier-pop3d-ssl default
# /etc/init.d/ courier-imapd start
# /etc/init.d/ courier-imapd-ssl start
# /etc/init.d/ courier-pop3d start
# /etc/init.d/ courier-pop3d-ssl start


特定のマシンから imap4, pop3 へのアクセスを制限できるようにしておきます。
これは、パスワードクラックを仕掛けてくるマシンからのアクセスを排除する目的で行います。
まずアクセス制御データを生成するツールを準備します。
本当は courier-mta をインストールすれば簡単なのですが、
qmailと競合してしまうので半自動インストールをします。
以下を実行してください。


# cd /usr/portage/mail-mta/courier
# ebuild courier-0.46.20040816.ebuild unpack
# ebuild courier-0.46.20040816.ebuild compile
# cd /var/tmp/portage/courier-0.46.20040816/work/courier-0.46.20040816/courier
# mkdir /usr/lib/courier
# mkdir /usr/lib/courier/courier
# cp makedat /usr/lib/courier/courier
# cp makedatprog /usr/lib/courier/courier
# cd /usr/lib/courier/courier
# chmod 755 makedat


アクセス制御を有効にします。以下のように /etc/courier-imap/imapd, pop3d を編集します。


# cd /etc/courier-imap
# vi imapd
TCPDOPTS="-nodnslookup -noidentlookup"
↑の行を↓に変更
TCPDOPTS="-nodnslookup -noidentlookup -access=/etc/courier-imap/access.gdb"
# vi pop3d
TCPDOPTS="-nodnslookup -noidentlookup"
↑の行を↓に変更
TCPDOPTS="-nodnslookup -noidentlookup -access=/etc/courier-imap/access.gdb"


アクセス制御ファイル /etc/courier-imap/access を編集します。
このファイルの中身の各行が制御単位となり、IPアドレスと制御内容の間は1つのTABで区切ります。
例えば、10.0.0.1 からのアクセスを拒否するには以下のようにします。


# cd /etc/courier-imap
# vi access
中身を↓に変更(各行先頭の空白は削除)
127.0.0.1 allow
192.168 allow
10.0.0.1 deny
* allow


アクセス制御ファイル /etc/courier-imap/access.gdb を作成し、デーモンを再起動します。
/etc/courier-imap/access を変更した際に必ず行わなければならない処理です。
以下を実行してください。


# cd /usr/lib/courier/courier/
# ./makedat -src=/etc/courier-imap/access -tmp=/etc/courier-imap/access.tmp -file=/etc/courier-imap/access.gdb
# /etc/init.d/courier-imapd restart
# /etc/init.d/courier-imapd-ssl restart
# /etc/init.d/courier-pop3d restart
# /etc/init.d/courier-pop3d-ssl restart


ローカルアドレス(たとえば "192.168.*.*")からは無条件でメール送信が可能とすると便利。
以下を実行すればよい。


# echo '192.168.:allow,RELAYCLIENT="",RBLSMTPD=""' >> tcp.smtp
# tcprules /etc/tcp.smtp.cdb /etc/.tcp.smtp.tmp < /etc/tcp.smtp


ローカルアドレス以外からのメール送信のため smtp before pop(imap)を設定します。
以下を実行してください。


# emerge net-mail/relay-ctrl
# echo "*/15 * * * * root envdir /etc/relay-ctrl /usr/bin/relay-ctrl-age" > /etc/crontab
# echo 900 > /etc/relay-ctrl/RELAY_CTRL_EXPIRY
# vi conf-smtpd
↓追加(コメントアウトされているのでコメントインする)
QMAIL_TCPSERVER_PRE="${QMAIL_TCPSERVER_PRE} envdir /etc/relay-ctrl relay-ctrl-ctrl relay-ctrl-chdir"
QMAIL_SMTP_PRE="${QMAIL_SMTP_PRE} relay-ctrl-check"
# vi /etc/courier-imap/authdaemonrc
authmodulelist="${authmodulelist} relay-ctrl-allow" ← 最後に追加
# vi /etc/courier-imap/imapd
PRERUN="${PRERUN} envdir /etc/relay-ctrl relay-ctrl-chdir" ← 最後に追加
# vi /etc/courier-imap/imapd-ssl
PRERUN="${PRERUN} envdir /etc/relay-ctrl relay-ctrl-chdir" ← 最後に追加
# vi /etc/courier-imap/pop3d
PRERUN="${PRERUN} envdir /etc/relay-ctrl relay-ctrl-chdir" ← 最後に追加
# vi /etc/courier-imap/pop3d-ssl
PRERUN="${PRERUN} envdir /etc/relay-ctrl relay-ctrl-chdir" ← 最後に追加
# vi /etc/courier-imap/imapd
AUTHMODULES="authdaemon relay-ctrl-allow" ← 変更
# vi /etc/courier-imap/pop3d
AUTHMODULES="authdaemon relay-ctrl-allow" ← 変更
# /etc/init.d/svscan restart
# /etc/init.d/ courier-imapd restart
# /etc/init.d/ courier-imapd-ssl restart
# /etc/init.d/ courier-pop3d restart
# /etc/init.d/ courier-pop3d-ssl restart


ここまでやれば立派にメールサーバとして運用できます。
次回は補足事項を記述します。

0 件のコメント:

コメントを投稿