[postfix]


この日記のはてなブックマーク数 このエントリーを含むはてなブックマーク

postfixadminをインストールすれば初心者でもGUIインターフェースにてメールアドレスの追加などができるようになります。postfixadminをインストールするにはPHPやMySQLが必要となるので、インストールされていなければまずこちらを先にインストールします。


# yum install mysql-devel mysql-server mysqlclient10 php-mysql
# yum install expect libtool-libs


postfixをmysql対応のものにupdateします。yumの設定を変えれば、yumでアップデート可能。


# vi /etc/yum.repos.d/CentOS-Base.repo


[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4


# yum update postfix postfix-pflogsumm


mysql対応になっているか確認

# postconf -m|grep mysql
mysql


postfixadminを取得

# cd /var/www/html
# wget http://high5.net/postfixadmin/download.php?file=postfixadmin-2.1.0.tgz
# mv ./download.php\?file\=postfixadmin-2.1.0.tgz postfixadmin-2.1.0.tgz
# tar xvzf ./postfixadmin-2.1.0.tgz
# mv postfixadmin-2.1.0 postfixadmin
# chown apache:apache -R ./postfixadmin
# cd ./postfixadmin


ファイルのパーミッションを設定

# chmod 640 *.php *.css
# cd admin/
# chmod 640 *.php .ht*
# cd ../images/
# chmod 640 *.png
# cd ../languages/
# chmod 640 *.lang
# cd ../templates/
# chmod 640 *.tpl
# cd ../users/
# chmod 640 *.php


postfixadminで使用されるテーブルを作成。デフォルトのユーザとパスワードはpostfix,postfixになります。

# mysql -u root < ./DATABASE_MYSQL.TXT


日本語の言語ファイルを取得

# cd /var/www/html/postfixadmin/languages
# wget http://www.ksknet.net/sample/ja.lang


設定ファイルを編集

# mv ./config.inc.php.sample ./config.inc.php
# vi ./config.inc.php


php.iniのmagic_quotes_gpcをOnにします。

# vi /etc/php.ini

magic_quotes_gpc = On


http://www.example.jp/postfixadmin/setup.phpにアクセスして環境確認。問題がなければsetup.phpを削除


# rm /var/www/html/postfixadmin/setup.php
# rm /var/www/html/postfixadmin/motd*


基本認証が有効となるようにapacheを設定

# vi /etc/httpd/conf.d/postfixadmin.conf


<Directory /var/www/html/postfixadmin/admin>
AllowOverride AuthConfig
</Directory>


postfixadminの.htaccess内にあるパスを環境に合わせます。デフォルトのユーザとパスワードはadmin,adminに設定されています。

# vi /var/www/html/postfixadmin/admin.htpasswd


AuthUserFile /var/www/html/postfixadmin/admin/.htpasswd
AuthGroupFile /dev/null
AuthName "Postfix Admin"
AuthType Basic

<limit GET POST>
require valid-user
</limit>


バーチャルドメインユーザを作成

# groupadd -g 10000 vuser
# useradd -g vuser -u 10000 -M vuser
# mkdir -m 771 /home/vuser
# chown -R vuser:vuser /home/vuser


postfix認証ファイルの設定

# cd /etc/postfix/postfixadmin
# touch mysql-virtual_alias_maps.cf mysql_virtual_domains_maps.cf mysql_virtual_mailbox.maps.cf
# vi ./mysql_virtual_alias_maps.cf


user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address


# vi ./mysql_virtual_domains_maps.cf


user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = domain
select_field = description
where_field = domain


# vi ./mysql_virtual_mailbox_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username


courier-imapをインストール (関連記事: Courier-IMAP)


# cd /usr/local/src
# wget http://www.ksknet.net/sample/courier-authlib-0.58-1.i386.rpm
# wget http://www.ksknet.net/sample/courier-imap-4.0.6-1.i386.rpm
# wget http://www.ksknet.net/sample/courier-authlib-mysql-0.58-1.i386.rpm
# rpm -ivh ./courier*


postfixの設定

# vi /etc/postfix/main.cf


local_transport = virtual
virtual_transport = virtual
virtual_mailbox_base = /home/vuser
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

smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination


courier authlibの設定

# vi /etc/authlib/authmysqlrc


MYSQL_SERVER localhost
MYSQL_USERNAME postfix
MYSQL_PASSWORD postfix
MYSQL_SOCKET /var/lib/mysql/mysql.sock
MYSQL_PORT 0
MYSQL_OPT 0
MYSQL_DATABASE postfix
MYSQL_USER_TABLE mailbox
MYSQL_CRYPT_PWFIELD password
MYSQL_UID_FIELD '10000'
MYSQL_GID_FIELD '10000'
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD '/home/vuser'
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD maildir


/etc/authlib/authdaemonrcを編集

# vi /etc/authlib/authdaemonrc


authmodulelist="authmysql"


authdaemonを使用するよう、/usr/lib/sasl2/smtpd.confを編集

# vi /usr/lib/sasl2/smtpd.conf


pwcheck_method: authdaemond
authdaemond_path: /var/spool/authdaemon/socket
mech_list: cram-md5 digest-md5 plain login
log_level: 3


authdaemonのソケットをpostfixユーザが読めるように、daemonグループにpostfixを追加

usermod -G daemon postfix


最後にapache, postfix, courier-authlib, courier-imapなどを再起動すればよい。


※ よくあるエラー

#config.inc.phpがなかったりパーミッションがおかしかったりした場合

failed to open stream: No such file or directory


# ホストのドメイン名とバーチャルドメインで指定したドメインが重複している。/etc/postfix/main.cfにドメインが直接記述されている場合には、これを削除すればよい。

do not list domain example.jp in BOTH mydestination and virtual_mailbox_domain



関連記事
postfix relayhost
smtpd_client_connection_rate_limit - 同一クライアントからの接続制限
smtpd_recipient_limit - 同時配信数の制限
fatal: unsupported dictionary type: sdbm
postfixadmin + mysql + courier-imapによるバーチャルドメイン
postfixadminでメールボックスが作成されない
fatal: execvp script_path: Permission denied
postfix - rblの参照
postfix + spamassassin
postfixでのsmtp auth
postfix + amavis + clamav のインストール(RPM編)
postfix - postalias
postfix - メールのサイズ制限
postfix - 基本設定
postfix - pop before smtp
postfix - MaildirとMailbox形式の切り替え
postfix - dracd.dbのエラー
postfix + amavis + clamのインストール
postfix - キューの削除
postfix - transport
postfix - 逆引きが引けないアドレスからのメールを拒否
広告