メール(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


戻る