Postfixをソースからインストール
Postfixで、taRgreyな感じのサーバを立ててみたところ、はまった箇所をメモしておく。
qmail+vpopmailからの移行を考えているので、qmail+vpopmailを残しつつ、Postfixを導入して、SMTPサーバを置換する。
- ソースコードのMakefile作成時、sasl関連のライブラリの場所を指定する必要有り。最初何もせずに-lsasl2と-DUSE_SASL_AUTH -DUSE_CYRUS_SASLだけでコンパイルしたら、SMTP-AUTHでsaslが見つからないようでエラーになった。原因が分からなかったのでCentOSのSRPMを持ってきて、中の.specファイルを調べると、ヘッダとライブラリフォルダが指定されてた。
- '-DDEF_MAILQ_PATH=\"/usr/bin/mailq.postfix\"'系の定義を使うとき、外側のクォートをダブルクォートにしていたが、それだとコンパイルでエラーになる。シングルクォートを使うとOK。
最終的に使ったのは以下。(TLSサポートと、SASLサポートを組み込む)
make makefiles CCARGS='-DDEF_MAILQ_PATH=\"/usr/bin/mailq.postfix\" -DDEF_NEWALIAS_PATH=\"/usr/bin/newaliases.postfix\" -DDEF_SENDMAIL_PATH=\"/usr/sbin/sendmail.postfix\" -DUSE_TLS -I/usr/include/sasl -DUSE_SASL_AUTH -DUSE_CYRUS_SASL' \ AUXLIBS='-lssl -lcrypto -L/usr/lib64/sasl2 -lsasl2' (実際には一行で入力)
TLSでバーチャルホスト向けに、複数の証明書を使いたい場合。master.cfで以下のように。
# ========================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # ========================================================================== 127.0.0.1:smtp inet n - y - - smtpd 127.0.0.2:smtp inet n - y - - smtpd -o smtpd_tls_cert_file=/etc/ssl/certs/hogehoge.crt -o smtpd_tls_key_file=/etc/ssl/certs/hogehoge.key
面倒なのは、バーチャルホストに割り当てるIPごとに証明書を指定してやる必要があるのと、SMTPサービスが設定したIPごとになるので、新しくIPを増やした場合(かつTLS不要な場合)に、設定を増やす必要がある点。
(デフォルトで使う証明書はmain.cfで指定してるけど、master.cfに持ってきてもいいかも、と思った。)