qmail + Courier-imap on CentOS5

投稿日:

マシンの引っ越し。
ついでということで、いままでVineLinux2.6r4で運用していたサーバをVMware上のCentOS 5.0に移行。

HostOSは、VineLinux4.1。GuestOSはCentOS 5.0
あっさり動作して「楽でいいぞー!」と喜んだのが間違い。orz

いくつもの壁にぶつかることになった。
iptablesでGuestOSに開ける穴は、とうぜん、HostOSにも開けないといけない。

qmailやCourierの環境構築もgccやいろんなバージョンアップのせいで、Vineと同じ設定で動作するも
のなし。

まあ、ここで苦労しておけば「あとは5年は戦える」はず。

(1) qmail のmake

errnoの扱いをちょっと変えないといけない。 error.hをちょっと変える。
extern int errno;

この行を

#include <errno.h>

(2)courier の setup

Vineではrpmが用意されていたが、CentOSでは標準のDovecotがあるせいか、rpmはない。 また、Coureirはversion upして、courier-imap本体のほかに専用のauthdaemonが別プロセスとして必 要になった。

面倒なので、CentOS標準のexim+Dovecotにするかと思いきや、qmailの個人でaliasできる機能や、POP before SMTPや、Maildirが捨てられず、無理矢理移行するこに。

rpmはない。すべて、自分でgetして、makeする。
いいたいことはひとつ。Courierの開発者のみなさん、暗号ロジックをひとつひとつ自分で実装するの
は偉いけど、configureは1回で済むようにしてください。
サブモジュール18個すべてでconfigureを実行すると、bogomips: 2384.18のマシンではそれだけ20分>かかります。make自体は4分くらいなのに。。。。

%  tar xvfl ~hato/courier-authlib-0.59.3.tar.bz2
% cd courier-authlib-0.59.3
% ./configure --without-authuserdb  --without-authldap  --without-authcustom --without-authvchkpw --without-authpgsql
% wget http://prdownloads.sourceforge.net/courier/courier-imap-4.1.3.tar.bz2
% tar xvfl courier-imap-4.1.3.tar.bz2
% cd courier-imap-4.1.3
% export CPPFLAGS=-I/usr/local/include
% ./configure  --enable-unicode=iso-2022-jp --with-redhat% make

ここで問題。courierでrelay-ctrlに対応する方法がわからない。
google先生でもだめ。ということで、qmailのほうに手をいれて、SMTP AUTHにする。
#なんのためにcourierを使うのかわからなくなってきた。。。

(3) qmail-vidaの設定

qmail-vida-0.53 をsetup。~ 以下のサイトを参考にする。thx。

qmail + qmail-vida で SMTP-AUTH

その後、/etc/rc.d/init.d/qmailに以下の記述を足す。
これで、SMTP AUTH(平文パスワード)をSSL上である程度安全に運用できる。

# Start smtp AUTH(SSL)
ALLOWPLAIN=""; export ALLOWPLAIN
DOMAINOWNER=""; export DOMAINOWNER

/usr/local/bin/tcpserver -sRpv -x /etc/tcp.smtp.cdb \\
-n /var/service/qmail-smtpd-ssl/cert.pem 0 smtps \\
/var/qmail/bin/qmail-smtpup yuzu.gr.jp /bin/checkpassword \\
/var/qmail/bin/qmail-smtpd \\
2<&1 | /var/qmail/bin/splogger smtpd 4 &

(4) daemontools の setup

% tar xzvf daemontools-0.76.tar.gz
% cd admin/daemontools-0.76
% su
# ./package/install

(5)ctrl-relay の setup

% tar xvzf relay-ctrl-3.1.1.tar.gz
% cd relay-ctrl-3.1.1
% make
% su
# ./installer

次は、環境の作成。

# 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
# echo "/var/spool/relay-ctrl/allow" > /etc/relay-ctrl/RELAY_CTRL_DIR
# chmod u+s /usr/local/bin/relay-ctrl-allow

(6)checkpasswd の setup

% tar xvfz checkpassword-0.90.tar.gz
% cd checkpassword-0.90
% make
% su
% make setup