このWebサイト ひつじ帳 は、管理者がWEB関連の技術をまとめた備忘録サイトです。 Linux,CentOS,PHP,MySQL,Blogger,JavaScript,CSS について記録しています。

さくらのVPS/メール/Postfix(PostfixAdmin対応) 設定

[ さくらVPS/メール ]

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 ~]#

  • [ メール不正中継確認 ]

[ PostfixAdmin インストール・設定 ] へ続く

0 件のコメント:

人気記事

アーカイブ

このブログを検索