Postfix + MySQL + Postfix.Admin を導入

今まで借りてたさくらVPSが初代のものでそろそろ古いなーと思い、新しいVPSに移行しました。その際メールを移行するついでにバーチャルユーザーにしたいなと思い、Postfix.Adminを導入してみました。その時のメモを残しておきます。

ひとまず公式サイトからダウンロードします。
http://sourceforge.net/projects/postfixadmin/

htdocsの下などに解凍します。

DBを作成します。

CREATE DATABASE postfix;
GRANT ALL PRIVILEGES ON postfix.* TO 'postfix'@'localhost' IDENTIFIED BY 'postfixadmin';

config.inc.phpのDB設定を編集し、$CONF[‘configured’] = true;にします。

ブラウザからsetup.phpを呼び出し、パスワードを設定します。

$CONF[‘setup_password’]をconfig.inc.phpに書き加えます。この時既にあるやつはコメントします。

管理者を追加します。

追加されたら管理者でログインします。

ドメインを追加し、ユーザーを追加します。

次にPostfixの設定を行います。
バーチャル用のローカルユーザーを作成します。

例えばホームディレクトリが/home/virtualmail/とした場合、メールボックスは/home/virtualmail/[ドメイン名]/[ユーザー名]になります。
mkdir /home/virtualmail
useradd -d /home/virtualmail -s /sbin/nologin virtualmail
chown -R virtualmail:virtualmail /home/virtualmail
chmod -R 700 /home/virtualmail
UID,GIDは10000にしておく。

MySQLに接続する為の設定ファイルを用意する

vi /etc/postfix/mysql_virtual_alias_maps.cf
user = postfix
password = ********
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address
 
 
vi /etc/postfix/mysql_virtual_domains_maps.cf
user = postfix
password = ********
hosts = localhost
dbname = postfix
table = domain
select_field = domain
where_field = domain
additional_conditions = and active = '1'
 
 
vi /etc/postfix/mysql_virtual_mailbox_maps.cf
user = postfix
password = ********
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
 
 
vi /etc/postfix/mysql_virtual_mailbox_limit_maps.cf
user = postfix
password = ********
hosts = localhost
dbname = postfix
query = SELECT quota FROM mailbox WHERE username='%s' AND active = '1'

myhostname = xxxx.xxxx.xxxx
mydestinaion = $myhostname, localhost
inet_interface = all
inet_protocols = ipv4
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP Unknown

#Virtual Domain w/MySQL
local_transport = local
virtual_transport = virtual
virtual_mailbox_base = /home/vusers
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_uid_maps = static:10000
virtual_gid_maps = static:10000
virtual_minimum_uid = 10000

#SMTP-Auth
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
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes

#Quota w/VDA Patch
virtual_create_maildirsize = yes
virtual_maildir_extended = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_overquota_bounce = no
virtual_trash_count = no

#SMTPS
smtpd_use_tls = no
smtpd_tls_cert_file = /etc/pki/tls/certs/mail.pem
smtpd_tls_key_file = /etc/pki/tls/certs/mail.pem
smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache
master.cf

詳細設定は後ほど
submissionの箇所コメントを外す
smtpsの箇所コメントを外す

dovecotの設定を行う
http://wiki.tkr.mydns.jp/index.php?title=Linux%E9%96%A2%E9%80%A3/Mail%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AE%E6%A7%8B%E7%AF%89/Dovecot%E3%81%AE%E8%A8%AD%E5%AE%9A

/etc/dovecot/conf.d/10-mail.conf の maillocationを設定する。

※加筆中

コメントを残す