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