PostgreSQL の設定
postfix 用のユーザー・データベースの作成
[root@www10000xx ~]# su - postgres
-bash-4.1$
-bash-4.1$ psql -U postgres
psql (8.4.13)
"help" でヘルプを表示します.
postgres=# CREATE ROLE postfix WITH LOGIN PASSWORD 'パスワード'; ## ←★ ロール(接続ユーザー)を作成する
CREATE ROLE
postgres=#
postgres=# CREATE DATABASE postfix OWNER postfix; ## ←★ データベースを作成する
CREATE DATABASE
postgres=# \q ## ←★ psql プログラムを終了する
-bash-4.1$
##■ 接続確認
-bash-4.1$ psql -h localhost -U postfix -d postfix
ユーザ postfix のパスワード: ## ←★ "postfix"ユーザーのパスワードを入力する
psql (8.4.13)
"help" でヘルプを表示します.
postfix=> \q ## ←★ psql プログラムを終了する
-bash-4.1$
-bash-4.1$ exit ## ←★ "root"ユーザーに戻る
[root@www10000xx ~]#
Postfix 設定
/etc/postfix/master.cf 編集
##■ 設定ファイル バックアップ
[root@www10000xx ~]# cp -a /etc/postfix/master.cf /etc/postfix/master.cf.org
[root@www10000xx ~]#
##■ viエディタでファイル編集する
[root@www10000xx ~]# vi /etc/postfix/master.cf
----------------------------------------
#submission inet n - n - - smtpd
# -o smtpd_tls_security_level=encrypt
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
##▼ ↓ デフォルトではコメントアウトされている為、追記する
submission inet n - n - - smtpd
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
#smtps inet n - n - - smtpd
# -o smtpd_tls_wrappermode=yes
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
##▼ ↓ デフォルトではコメントアウトされている為、追記する
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
----------------------------------------
##■ 上書き保存して編集終了
:wq
[root@www10000xx ~]#
/etc/postfix/main.cf 編集
##■ 設定ファイル バックアップ
[root@www10000xx ~]# cp -a /etc/postfix/main.cf /etc/postfix/main.cf.org
[root@www10000xx ~]#
##■ viエディタでファイル編集する
[root@www10000xx ~]# vi /etc/postfix/main.cf
----------------------------------------
##■ 追加(自FQDN名を指定)
#myhostname = host.domain.tld
#myhostname = virtual.domain.tld
##▼ ↓ デフォルトではコメントアウトされている為、追記する
myhostname = www10000xx.sakura.ne.jp
##■ 追加(自ドメイン名を指定)
#mydomain = domain.tld
##▼ ↓ デフォルトではコメントアウトされている為、追記する
mydomain = www10000xx.sakura.ne.jp
##■ 追加(ローカルからのメール送信時の送信元メールアドレス@以降にドメイン名を付加)
#myorigin = $myhostname
#myorigin = $mydomain
##▼ ↓ デフォルトではコメントアウトされている為、追記する
myorigin = $mydomain
##■ 変更(外部からのメール受信を許可)
inet_interfaces = localhost
##▼ ↓ 変更する
inet_interfaces = all
##■ 変更(自ドメイン宛メールを受信できるようにする)
mydestination = $myhostname, localhost.$mydomain, localhost
##▼ ↓ 変更する
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
##▼ 追加(メールボックス形式をMaildir形式にする)
#home_mailbox = Mailbox
#home_mailbox = Maildir/
##▼ ↓ デフォルトではコメントアウトされている為、追記する
home_mailbox = Maildir/
##■ 追加(メールサーバーソフト名の隠蔽化)
#smtpd_banner = $myhostname ESMTP $mail_name
#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
##▼ ↓ デフォルトではコメントアウトされている為、追記する
smtpd_banner = $myhostname ESMTP unknown
##■ 最終行に下記を全て追記する
disable_vrfy_command = yes
message_size_limit = 10240000
sender_canonical_maps = hash:/etc/postfix/canonical
## SMTPD
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/dovecot-auth
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
## SMTPD(SSL)
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/pki/tls/certs/localhost.crt
smtpd_tls_key_file = /etc/pki/tls/private/localhost.key
## Virtual
virtual_transport = virtual
virtual_minimum_uid = 100
virtual_uid_maps = static:505
virtual_gid_maps = static:505
virtual_mailbox_base = /home/vmail/vhosts
virtual_mailbox_domains = pgsql:/etc/postfix/pgsql_virtual_domains_maps.cf
virtual_alias_maps = hash:/etc/postfix/virtual_alias_maps, pgsql:/etc/postfix/pgsql_virtual_alias_maps.cf
virtual_alias_domains = $virtual_alias_maps
virtual_mailbox_maps = pgsql:/etc/postfix/pgsql_virtual_mailbox_maps.cf
## Virtual Mailbox Limit
virtual_mailbox_limit = 0
virtual_mailbox_limit_maps = pgsql:/etc/postfix/pgsql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_overquota_bounce = yes
virtual_mailbox_limit_inbox = yes
----------------------------------------
##■ 上書き保存して編集終了
:wq
[root@www10000xx ~]#
/etc/postfix/canonical 編集
※ Return-Path のユーザー名が "apache" の場合 "root" に設定する
##■ 設定ファイル バックアップ
[root@www10000xx ~]# cp -a /etc/postfix/canonical /etc/postfix/canonical.org
[root@www10000xx ~]#
##■ viエディタでファイル編集する
[root@www10000xx ~]# vi /etc/postfix/canonical
----------------------------------------
##■ 最終行に追記する
apache root
----------------------------------------
##■ 上書き保存して編集終了
:wq
[root@www10000xx ~]#
#■ 編集後の内容を postmap コマンドでデータベースに変換(反映)する
[root@www10000xx ~]# postmap /etc/postfix/canonical
[root@www10000xx ~]#
Postfix から PostgreSQL へ接続する設定
pgsql_virtual_domains_maps.cf 新規作成
##■ viエディタでファイルを新規作成する
[root@www10000xx ~]# vi /etc/postfix/pgsql_virtual_domains_maps.cf
--------------------------------------------------
hosts = localhost
user = postfix
password = PostgreSQLのパスワードを記述する
dbname = postfix
query = SELECT domain FROM domain WHERE domain = '%s' AND backupmx = false AND active = true
--------------------------------------------------
##■ 保存して編集終了
:wq
[root@www10000xx ~]#
pgsql_virtual_alias_maps.cf 新規作成
##■ viエディタでファイルを新規作成する
[root@www10000xx ~]# vi /etc/postfix/pgsql_virtual_alias_maps.cf
--------------------------------------------------
hosts = localhost
user = postfix
password = PostgreSQLのパスワードを記述する
dbname = postfix
query = SELECT goto FROM alias WHERE address = '%s' AND active = true
--------------------------------------------------
##■ 保存して編集終了
:wq
[root@www10000xx ~]#
pgsql_virtual_mailbox_maps.cf 新規作成
##■ viエディタでファイルを新規作成する
[root@www10000xx ~]# vi /etc/postfix/pgsql_virtual_mailbox_maps.cf
--------------------------------------------------
hosts = localhost
user = postfix
password = PostgreSQLのパスワードを記述する
dbname = postfix
query = SELECT maildir || 'Maildir/' FROM mailbox WHERE username = '%s' AND active = true
--------------------------------------------------
##■ 保存して編集終了
:wq
[root@www10000xx ~]#
pgsql_virtual_mailbox_limit_maps.cf 新規作成
##■ viエディタでファイルを新規作成する
[root@www10000xx ~]# vi /etc/postfix/pgsql_virtual_mailbox_limit_maps.cf
--------------------------------------------------
hosts = localhost
user = postfix
password = PostgreSQLのパスワードを記述する
dbname = postfix
query = SELECT quota FROM mailbox WHERE username = '%s' AND active = true
--------------------------------------------------
##■ 保存して編集終了
:wq
[root@www10000xx ~]#
ファイルの権限を変更する
##■ グループ名を postfix に変更する
[root@www10000xx ~]# chown root:postfix /etc/postfix/pgsql_*
[root@www10000xx ~]#
##■ パーミッションを 644 から 640 へ変更する
[root@www10000xx ~]# chmod 640 /etc/postfix/pgsql_*
[root@www10000xx ~]#
virtual_alias_maps 新規作成
##▼ ファイル新規作成
[root@www10000xx ~]# touch /etc/postfix/virtual_alias_maps
[root@www10000xx ~]#
##▼ 変更内容を反映する(データベース化)
[root@www10000xx ~]# postmap /etc/postfix/virtual_alias_maps
[root@www10000xx ~]#
Postfix 再起動
[root@www10000xx ~]# service postfix restart
postfix を停止中: [ OK ]
postfix を起動中: [ OK ]
[root@www10000xx ~]#
以上で、設定完了です。
Postfix 設定内容を確認する
[root@www10000xx ~]# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
disable_vrfy_command = yes
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
message_size_limit = 10240000
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydomain = www10000xx.sakura.ne.jp
myhostname = www10000xx.sakura.ne.jp
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
relay_domains = $mydestination
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sender_canonical_maps = hash:/etc/postfix/canonical
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_banner = $myhostname ESMTP unknown
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_path = private/dovecot-auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_tls_cert_file = /etc/pki/tls/certs/localhost.crt
smtpd_tls_key_file = /etc/pki/tls/private/localhost.key
smtpd_use_tls = yes
unknown_local_recipient_reject_code = 550
virtual_alias_domains = $virtual_alias_maps
virtual_alias_maps = hash:/etc/postfix/virtual_alias_maps, pgsql:/etc/postfix/pgsql_virtual_alias_maps.cf
virtual_gid_maps = static:505
virtual_mailbox_base = /home/vmail/vhosts
virtual_mailbox_domains = pgsql:/etc/postfix/pgsql_virtual_domains_maps.cf
virtual_mailbox_limit = 0
virtual_mailbox_limit_inbox = yes
virtual_mailbox_limit_maps = pgsql:/etc/postfix/pgsql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_mailbox_maps = pgsql:/etc/postfix/pgsql_virtual_mailbox_maps.cf
virtual_minimum_uid = 100
virtual_overquota_bounce = yes
virtual_transport = virtual
virtual_uid_maps = static:505
[root@www10000xx ~]#
- [ メール不正中継確認 ]
0 件のコメント:
コメントを投稿