Submission over TLS 設定メモ

Postfixsubmission port (port 587) を使用する SMTP over TLS のサーバを立てた。
ついでにバーチャルドメイン回りの設定もやってみた。
OS は Ubuntu 8.04 LTS。
以下自分用覚え書きメモ。

 aptitude install postfix
  • インストール時選択肢
    • インターネットサイト
    • hoge.com
  • ユーザ fuga 作成
adduser --ingroup users fuga
#-------
mail_owner = postfix
mydomain = hoge.com
myorigin = $mydomain
mydestination = localhost, $mydomain
mynetworks = 127.0.0.0/8
unknown_local_recipient_reject_code = 550
#-------
inet_interfaces = all
append_dot_mydomain = no
#-------
alias_maps = hash:/etc/aliases
  • Maildir 形式
    • mkdir Maildir は不必要だった
home_mailbox = Maildir/
virtual_alias_domains = mail.hoge.com
virtual_alias_maps = hash:/etc/postfix/virtual_alias.hash
  • vi /etc/postfix/virtual_alias.hash
fuga@mail.hoge.com      fuga
  • OS に存在しないユーザ宛
virtual_mailbox_domains = mailbox.hoge.com
virtual_mailbox_base = /home/virtual_mailbox
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox.hash
virtual_minimum_uid     = 5000
virtual_uid_maps        = static:5000
virtual_gid_maps        = static:5000
    • vi /etc/postfix/virtual_mailbox.hash
hoge@mailbox.hoge.com mailbox.hoge.com/hoge/mailbox
fuga@mailbox.hoge.com mailbox.hoge.com/fuga/mailbox
  • newaliases コマンドで db 更新するファイル指定
alias_database = hash:/etc/aliases, hash:/etc/postfix/virtual_alias.hash, hash:/etc/postfix/virtual_mailbox.hash
  • sasl のインストール
aptitude install sasl2-bin libsasl2-2 libsasl2-modules
  • sasl アカウント作成
    • /etc/sasldb2 が作成される。パスワード変更も同様に。
saslpasswd2 -c -u hoge.com fuga
    • 削除
saslpasswd2 -d -u hoge.com fuga
    • 確認
sasldblistusers2 
  • db 権限変更および配置
chgrp postfix /etc/sasldb2
chmod 640 /etc/sasldb2
cp -a /etc/sasldb2 /var/spool/postfix/etc/
  • sasl パスワード方式設定
    • vi /usr/lib/sasl2/smtpd.conf
pwcheck_method: sasldb

#CRAM-MD5 に対応した MUA を使う場合
#mech_list: cram-md5

#PLAIN LOGIN しか 対応していない MUA を使う場合
mech_list: plain login
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_sasl_local_domain = $mydomain
smtpd_use_tls = yes
smtpd_tls_loglevel = 1
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/ssl/server.crt
smtpd_tls_key_file = /etc/ssl/server.key
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache
tls_random_source = dev:/dev/urandom
submission inet n       -       -       -       -       smtpd
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o smtpd_tls_security_level=encrypt
  • 最終的な main.cf
#-------
mail_owner = postfix
mydomain = hoge.com
myorigin = $mydomain
mydestination = localhost, $mydomain
mynetworks = 127.0.0.0/8
unknown_local_recipient_reject_code = 550
#-------
inet_interfaces = all
append_dot_mydomain = no
#-------
alias_maps = hash:/etc/aliases
#-------
home_mailbox = Maildir/
#-------
virtual_alias_domains = mail.hoge.com
virtual_alias_maps = hash:/etc/postfix/virtual_alias.hash
#-------
virtual_mailbox_domains = mailbox.hoge.com
virtual_mailbox_base = /home/virtual_mailbox
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox.hash
virtual_minimum_uid     = 5000
virtual_uid_maps        = static:5000
virtual_gid_maps        = static:5000
#-------
alias_database = hash:/etc/aliases, hash:/etc/postfix/virtual_alias.hash, hash:/etc/postfix/virtual_mailbox.hash
#-------
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_sasl_local_domain = $mydomain
#-------
smtpd_use_tls = yes
smtpd_tls_loglevel = 1
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/ssl/server.crt
smtpd_tls_key_file = /etc/ssl/server.key
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache
tls_random_source = dev:/dev/urandom
  • root alias
    • vi /etc/aliases
root: fuga
    • newaliases