Postfixによるメールサーバ構築 その3 (Postfixの設定)

Postfixによるメールサーバ構築 (Postfix+MySQL+Dovecot+postfixadmin)

バーチャルドメインで受けたメールを処理するユーザの設定と、Postfixの設定を行います。
MySQLの認証IDパスワードはpostfixLr9WNUJKとしています。適宜変更してください。

groupadd -g 10000 vuser
useradd -g vuser -u 10000 vuser
mkdir /mail
chown vuser:vuser /mail
chmod 771 /mail
cd /etc/postfix/
cat <<EOF > mysql_virtual_alias_maps.cf
user = postfix
password = Lr9WNUJK
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address
EOF
cat <<EOF > mysql_virtual_domains_maps.cf
user = postfix
password = Lr9WNUJK
hosts = localhost
dbname = postfix
table = domain
select_field = domain
where_field = domain
additional_conditions = and active = '1'
EOF
cat <<EOF > mysql_virtual_mailbox_maps.cf
user = postfix
password = Lr9WNUJK
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
EOF
cat <<EOF > mysql_virtual_mailbox_limit_maps.cf
user = postfix
password = Lr9WNUJK
hosts = localhost
dbname = postfix
table = mailbox
select_field = quota
where_field = username
EOF
chown root:postfix mysql_virtual_*
chmod 640 mysql_virtual_*

Postfixの設定

main.cfを編集してPostfixの設定を行います。Spam CopのRBLを利用していますが、必要ない場合はsmtpd_client_restrictionsの行を削除するかコメントアウトしてください。

cp /etc/postfix/main.cf /etc/postfix/main.cf.org
vi /etc/postfix/main.cf
-------------------------------------------------------------------------------
myhostname = mail.example.com
mydomain = example.com
#myorigin = $mydomain
myorigin = $myhostname
#inet_interfaces = localhost
inet_interfaces = all
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydestination = $myorigin
#relay_domains = $mydestination
relay_domains = $mydestination
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP unknown
local_transport = local
virtual_transport = virtual
virtual_mailbox_base = /mail
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_alias_domains = $virtual_alias_maps
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 10000
virtual_uid_maps = static:10000
virtual_gid_maps = static:10000
maximal_backoff_time = 800s
minimal_backoff_time = 100s
bounce_queue_lifetime = 60m
maximal_queue_lifetime = 60m
#mailbox_size_limit = 1024000000
message_size_limit = 20480000
#virtual_mailbox_limit = 51200000
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_overquota_bounce = yes
virtual_mailbox_limit_inbox = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_local_domain = $myhostname
smtpd_client_restrictions = reject_rbl_client bl.spamcop.net
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
-------------------------------------------------------------------------------

SpamCopのRBLによるスパム対策をsmtpd_client_restrictionsで設定しています。

サブミッションポート587番ポートを開く設定をmaster.cfに記述します。
submissionの行のコメントを外すだけでOKです。

vi /etc/postfix/master.cf
-------------------------------------------------------------------------------
smtp      inet  n       -       n       -       -       smtpd
submission inet n       -       n       -       -       smtpd
-------------------------------------------------------------------------------

Postfixによるメールサーバ構築 (Postfix+MySQL+Dovecot+postfixadmin) 【最初の記事】