CyrusIMAPdとの連携運用
前提条件
- 動作試験環境: FreeBSD12.2および13.0
- 以下の観点からSASLAUTHDに依存しない。
- 今回スケーラビリティ(スケールアウト)は考慮しない。
- つまりsendmailとcyrus imapdは同一サーバー内に存在するものとし、双方をコンテナ化で分離しない。
- 認証(SMTP AUTH)は全てSASLDBを参照する。
- またSASLDBを参照するにあたって、sendmailおよびcyrus imapd双方に権限上のミスマッチは存在していない。
- よってSASLAUTHD導入による権限分けは不要である。
ports/mail/sendmail をインストールするが現時点(2021年03月23日)でいくらか不備がある。
cyruslookup.patch にはいくつかのバグがあり mail/sendmail: overhaul cyruslookup.patch にて修正依頼中。
- SSL回りの設定方法がいびつなので、これも修正していきたいです。
- 現在のsendmailのSSL証明書の指定方法がよろしくない。
- ECC暗号の使用がprime256v1のみに限定されている。
- milterをインストール(コンパイル)する順番(依存)が存在しているが、見えにくい。
- 設定目標としては以下の通りとする。
- バーチャルドメインでの運用を前提とし、サーバー側のアカウント等の情報と完全に独立させる。
- 従来の資料を読み解くと、この辺りが混在していて暗黙のウチに動作しているケース(エイリアスの適用など)があるが、今回それは一切許さない。
- サーバー側はサーバー側で(root宛のメールなど)、バーチャルドメイン側はバーチャルドメイン側で、切り離された環境を構築する。
- その効能の一つとして、cyrus imapd側で持つメールボックスの存在確認をリアルタイムで行えるようにする。
/etc/make.conf
以下の内容を追記する。
# for sendmail
mail_sendmail_SET= LA NIS SEM TLS DANE SASL SHMEM MILTER SMTPUTF8
mail_sendmail_SET+= SOCKETMAP BLACKLISTD CYRUSLOOKUP PICKY_HELO_CHECK
mail_sendmail_UNSET= BDB LDAP SASLAUTHD
/usr/local/etc/ports.conf
以下の内容を追記する。
mail/sendmail: CFLAGS=-O2 -pipe -DTLS_EC=2 -D_FFR_TLS_USE_CERTIFICATE_CHAIN_FILE -D_FFR_TLS_ALTNAMES -D_FFR_QUEUE_GROUP_SORTORDER
インストール
cd /usr/ports/mail/sendmail && make install