メール(SMTP)サーバー設定
##############################################################################
● メールサーバー(Postfix)設定
1) Postfixがインストールされているかチェック
[root@localhost ~]# rpm -qa | grep postfix
postfix-2.6.6-2.2.el6_1.i686 <-- インストールされている
2) インストールされていない場合はインストールする
[root@localhost ~]# yum -y install postfix
3) メールサーバー切り替え設定
[root@localhost ~]# alternatives --config mta
2 プログラムがあり 'mta' を提供します。
選択 コマンド
-----------------------------------------------
1 /usr/sbin/sendmail.postfix
*+ 2 /usr/sbin/sendmail.sendmail
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:1
sendmail を停止する
[root@localhost ~]# service sendmail stop
4) /etc/postfix/main.cf の編集(変更箇所のみ記述)
[root@localhost ~]# vi /etc/postfix/main.cf
:
:
myhostname = www.gusuku.org <--- 自ホスト名(外部から見たホスト名)
:
:
mydomain = gusuku.org <--- 自ドメイン名
:
:
myorigin = $mydomain
:
:
inet_interfaces = all
:
:
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
:
:
local_recipient_maps = unix:passwd.byname $alias_maps
:
:
mynetworks_style = subnet
:
:
# SSHなどで接続するとクライアントのアドレスがlocalhost[::1] とかになってしまい
# けられてしまうので、mynetworks に localhost を入れること
mynetworks = 192.168.1.0/24, 127.0.0.0/8, localhost
:
:
# ここは mynetworks を使用するようにした
relay_domains = $mydestination, $mynetworks
:
:
#alias_maps = hash:/etc/aliases
#--- mailmanを使わない場合は上の行を有効にして下の行をコメントアウトする
#--- mailmanを使う場合は下の行を有効にして上の行をコメントアウトする
alias_maps = hash:/etc/aliases, hash:/etc/mailman/aliases
:
:
#alias_database = hash:/etc/aliases
#--- mailmanを使わない場合は上の行を有効にして下の行をコメントアウトする
#--- mailmanを使う場合は下の行を有効にして上の行をコメントアウトする
alias_database = hash:/etc/aliases, hash:/etc/mailman/aliases
:
:
mail_spool_directory = /var/spool/mail
:
:
smtpd_banner = $myhostname ESMTP unknown
# 追加(メールBOXのサイズとメールのサイズの制限を大きくする)
mailbox_size_limit = 512000000
message_size_limit = 102400000
allow_mail_to_commands = alias,forward,include
masquerade_domains = gusuku.org
プロバイダで25番ポートをブロックしている場合の設定
# --- for Outgoing Port25 Blocking --- start ---
# --- for YahooBB ----
#relayhost = [ybbsmtp.mail.yahoo.co.jp]:587
#smtp_sasl_auth_enable = yes
#smtp_sasl_password_maps = hash:/etc/postfix/isp_auth
#smtp_sasl_security_options = noanonymous
#--- for au One ---
#relayhost = [relay-mta.auone-net.jp]:25 <---使えなくなった
#上の中継サーバーが使えなくなったので、下記の中継サーバーを使用する
#YahooBBと同じような設定となった(認証が必要)
relayhost = [msa.ae.auone-net.jp]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/isp_auth
smtp_sasl_security_options = noanonymous
# --- for Outgoing Port25 Blocking --- end ---
SMTP-AUTH 用の設定
上記のOutgoing Port25 Blockingで設定する項目と同じ項目が有るので、
どちらかを有効にする
# -- for SMTP-Autha Start
smtp_sasl_auth_enable = yes
# 暗号化なしの場合
smtpd_sasl_security_options = noanonymous
# 暗号化有りの場合
#smtpd_sasl_security_options = noanonymous,noplaintext
#smtpd_sasl_authenticated_header = yes
#smtpd_sasl_path = private/auth
#smtpd_sasl_local_domain = $mydomain
#smtpd_sasl_type = dovecot
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
# -- for SMTP-Auth End
# -- read account block
#disable_vrfy_command = yes
# -- no SMTP AUTH mailer
broken_sasl_auth_clients = yes
今回は pop-before-smtp は使わないのでコメントアウトして置く
# -- for pop-before-smtp Start
#smtpd_recipient_restrictions = permit_mynetworks,reject_non_fqdn_recipient,
# check_client_access hash:/etc/postfix/pop-before-smtp,
# reject_unauth_destination
# -- for pop-before-smtp End
今回は postgrey は使わないのでコメントアウトして置く
# for Rgrey (S25R + greylisting) Start
#smtpd_restriction_classes = check_greylist
#check_greylist = check_policy_service inet:127.0.0.1:10023
#
#smtpd_recipient_restrictions = permit_mynetworks,
# reject_unauth_destination,
# check_client_access regexp:/etc/postfix/check_client_fqdn
# permit
# for Rgrey (S25R + greylisting) End
5) サブミッションポートでのSMTP受信を受け付ける場合は master.conf を編集
デフォルトは以下のようになっているので
smtp inet n - n - - smtpd
#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
次の用に変更(コメントを外す)
smtp inet n - n - - smtpd
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
6) SMTP AUTH で外部から接続できるように saslauthd を起動する
[root@localhost ~]# service saslauthd start
再起動後も自動起動されるように以下のコマンドを実行
[root@localhost ~]# chkconfig saslauthd on
確認
[root@localhost ~]# chkconfig --list saslauthd
【注意】TCPポート 587 で受信できるようにファイアウォールの設定と
ルーターの設定(フィルタとポートマッピング)を直しておくこと
7) Outgoing Port25 Blocking 用の中継サーバーのパスワードファイルを作成
[root@localhost ~]# vi /etc/postfix/isp_auth
下の1行のみを記述して保存する
[msa.ae.auone-net.jp]:587 ユーザーID:パスワード
postmap コマンドを使用し、パスワードファイルから検索データベースを作成する。
[root@localhost ~]# postmap hash:/etc/postfix/isp_auth
/etc/postfix/isp_auth.db データベースファイルが作成される。
8) /etc/sasl2/smtpd.conf の設定
(暗号化なしの場合は以下のようになっていること)
[root@localhost ~]# cat /etc/sasl2/smtpd.conf
pwcheck_method: saslauthd
mech_list: plain login
(暗号化有りの場合は以下のようになっていること)
[root@localhost ~]# cat /etc/sasl2/smtpd.conf
pwcheck_method: auxprop
mech_list: cram-md5 digest-md5
暗号化有りの場合は sslauthd は不要
9) エイリアス設定とメーリングリストのファイル作成
/etc/aliases を編集
[root@localhost ~]# vi /etc/aliases
以下をコメントアウトする
#info: postmaster
以下を追加する
root: henoheno <---管理者のログイン名
all-user: :include: /etc/postfix/all-user.lst <--- 一斉同胞送信用
一斉同報送信をする場合は /etc/postfix の下に送信対象のユーザーを列記したファイルを追加する
[root@localhost ~]# vi /etc/postfix/all-user.lst
送信対象のユーザー名を列記する
user01
user02
:
:
10) エイリアスファイルをDBに反映する
[root@localhost ~]# newaliases
11) デーモン起動設定
[root@localhost ~]# chkconfig postfix on
12) postfix を起動する
[root@localhost ~]# service postfix start
13) サーバー移行時は以下のファイルをコピーする
/var/spool/mail
/etc/aliases
/etc/postfix/main.cf
/etc/postfix/master.cf
/etc/postfix/isp_auth
戻る