Postfixの設定(CentOS 6)

Postfix というソフトウェアを使用して、メールサーバーを構築します。

環境

CentOS 6.10
CentOS 7はこちら

1.Postfixのインストール

Postfixをインストールします。
root権限でコンソールに yum -y install postfix と入力し、Enterキーを押します。
インストールが開始され、Complete!という文字が表示されれば完了です。

[root@ ~]# yum -y install postfix (Postfixのインストール)

2.Postfixの設定ファイル編集

Postfixに関する設定ファイルを編集します。
コンソールに vi /etc/postfix/main.cf と入力し、Enterキーを押します。
画面が切り替わり、設定ファイル(main.cf)の内容が表示されます。

[root@ ~]# vi /etc/postfix/main.cf (Postfix設定ファイルの編集)

設定ファイルの編集を行うので、編集モードに切り替えてください。
myhostnameの項目とmydomainの項目にホスト名とドメイン名を設定します。
例として、example.comというドメイン名を使用する場合、両方ともexample.comを設定します。

# INTERNET HOST AND DOMAIN NAMES
#
# The myhostname parameter specifies the internet hostname of this
# mail system. The default is to use the fully-qualified domain name
# from gethostname(). $myhostname is used as a default value for many
# other configuration parameters.
#
#myhostname = host.domain.tld
#myhostname = virtual.domain.tld
myhostname = example.com
# The mydomain parameter specifies the local internet domain name.
# The default is to use $myhostname minus the first component.
# $mydomain is used as a default value for many other configuration
# parameters.
#
#mydomain = domain.tld
mydomain = example.com

inet_interfacesの項目に利用するインタフェースを設定します。
「inet_interfaces = all」の行頭にある#を削除して、この行を有効にします。
さらに、「inet_interfaces = localhost」の行頭に#を追加し、この行を無効にします。

# The inet_interfaces parameter specifies the network interface
# addresses that this mail system receives mail on. By default,
# the software claims all active interfaces on the machine. The
# parameter also controls delivery of mail to user@[ip.address].
#
# See also the proxy_interfaces parameter, for network addresses that
# are forwarded to us via a proxy or network address translator.
#
# Note: you need to stop/start Postfix when this parameter changes.
#
inet_interfaces = all (行頭 # を削除)
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost (行頭に # を追加)

IPv6に未対応の為、以下の設定にします。

# Enable IPv4, and IPv6 if supported
#inet_protocols = all
inet_protocols = ipv4

スプールをMaildir形式に指定します。

# "Maildir/" for qmail-style delivery (the / is required).
#
#home_mailbox = Mailbox
home_mailbox = Maildir/ (行頭 # を削除)

メール送信用サーバーとして使用できるようにする為、SMTP認証の設定をします。ファイルの末尾に以下の3行を追加します。

smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated, reject_unauth_destination

編集は以上です。Escキーを押して編集モードを終了し、:wqを入力して設定を保存します。

3.CRAM-MD5方式によるSMTP認証を行う場合

CRAM-MD5方式でSMTP認証を行う場合には、別途設定が必要です。
コンソール画面に vi /etc/sasl2/smtpd.conf と入力し、Enterキーを押します。画面が切り替わり、設定ファイル(smtpd.conf)の内容が表示されます。

[root@ ~]# vi /etc/sasl2/smtpd.conf (設定ファイルの編集)
pwcheck_method: saslauthd
mech_list: plain login cram-md5 (パラメータを追記)

編集は以上です。Escキーを押して編集モードを終了し、:wqを入力して設定を保存します。

4.CRAM-MD5認証用のアカウント作成

CRAM-MD5認証用のアカウント・パスワードは、SSH・FTP・POP3・IMAP4の認証時に参照される情報とは別に管理されるため、管理者アカウント・ユーザアカウントのパスワードとは別にCRAM-MD5認証用のアカウントとパスワードを作成する必要があります。

[root@ ~]# saslpasswd2 -u ホスト名 アカウント名
Password: (パスワード)
Again (for verification): (パスワード)

例として、ホスト名がexample.comで、sakuraというCRAM-MD5認証用のアカウントを作成する場合は以下のコマンドを実行します。

[root@ ~]# saslpasswd2 -u example.com sakura
Password: (パスワード)
Again (for verification): (パスワード)

作成した認証用アカウント情報をPostfixが参照できるように、以下のコマンドを実行します。

[root@ ~]# chown postfix /etc/sasldb2

5.Postfixの起動

コンソールに service postfix start と service saslauthd start を入力し、Postfixと送信時認証に使うsaslauthdを起動させます。
また、サーバーの再起動時に自動起動するよう設定します。

[root@ ~]# service postfix start (Postfixの起動)
[root@ ~]# chkconfig postfix on (Postfixの自動起動設定)
[root@ ~]# service saslauthd start (saslauthdの起動)
[root@ ~]# chkconfig saslauthd on (saslauthdの自動起動設定)

6.Submissionポート設定

SPAMメール対策でOP25B(任意のホストのTCP25番ポートへの接続がブロックされる仕組み)を実施しているプロバイダから接続する場合、 標準設定のままではVPSを送信用SMTPサーバーとして使用できない場合があります。このような場合はSubmissionポートの設定を行うことで回避することが出来ます。

PostfixでSubmissionポートを使用する設定を行います。
コンソール画面に vi /etc/postfix/master.cf と入力し、Enterキーを押します。画面が切り替わり、設定ファイル(master.cf)の内容が表示されます。

[root@ ~]# vi /etc/postfix/master.cf (設定ファイルの編集)

master.cfファイルの下記個所を編集します。
※「-o」の前に書かれている半角スペースは必要な記述のため削除しないで下さい。

# Postfix master process configuration file. For details on the format
# of the file, see the master(5) manual page (command: "man 5 master").
#
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
#       (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp   inet n   -   n   -   -   smtpd
submission inet n   -   n   -   -   smtpd (行頭 # を削除)
# -o smtpd_enforce_tls=yes
-o smtpd_sasl_auth_enable=yes (行頭 # を削除)
-o smtpd_client_restrictions=permit_sasl_authenticated,reject (行頭 # を削除)

編集は以上です。Escキーを押して編集モードを終了し、:wqを入力して設定を保存します。
以下のコマンドを実行し、書き換えた内容を反映させます。

[root@ ~]# service postfix reload

上記の設定後、メールソフトのSNTPポート番号を587番に変更してメールの送信が行えることを確認します。