Postfixというソフトウェアを使用して、送信用メールサーバーを構築します。
環境
CentOS 7.2.X
Postfix 2.10.x
1.Potfixのインストール確認
Postfixがインストールされているか確認します。
※CentOS7は、最初からPostfixがインストールされています。
[root@ ~]# yum list installed | grep postfix postfix.x86_64 2:2.10.1-6.el7 @base
2.Postfixのアップデート
Postfixがインストールされていることを確認後、アップデートします。
[root@ ~]# yum -y update postfix
3.Postfixの設定ファイルをバックアップ
Postfixの設定ファイルmain.cfとmaster.cfをバックアップします。
[root@ ~]# cd /etc/postfix [root@ postfix]# cp -p main.cf main.cf_backup [root@ postfix]# cp -p master.cf master.cf_backup
4.Postfixの設定ファイル編集
Postfixの設定を変更します。
設定するには、/etc/postfix/main.cfを編集します。
[root@ ~]# vi /etc/postfix/main.cf
myhostnameの項目とmydomainの項目にホスト名とドメイン名を追加します。
example.comというドメイン名を使用する場合、ホスト名に「mail.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 = mail.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 = 127.0.0.1」の行頭に#を追加し、この行を無効にします。
# 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 = 127.0.0.1
IPv6に対応していない場合は、以下の設定にします。
「inet_protocols = all」の行頭に#を追加し、この行を無効にします。
その下に「inet_protocols = ipv4」を追加します。
# Enable IPv4, and IPv6 if supported #inet_protocols = all inet_protocols = ipv4
独自ドメイン宛のメールを受信できるように設定します。
「mydestination = $myhostname, localhost.$mydomain, localhost」の行頭に#を追加し、この行を無効にします。
「mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain」を追加します。
# See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS". # #mydestination = $myhostname, localhost.$mydomain, localhost #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, # mail.$mydomain, www.$mydomain, ftp.$mydomain mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
スプールをMaildir形式に指定します。
「#home_mailbox = Maildir/」行頭にある#を削除して、この行を有効にします。
# "Maildir/" for qmail-style delivery (the / is required). # #home_mailbox = Mailbox home_mailbox = Maildir/
メール送信用サーバーとして使用できるようにする為、SMTP認証の設定をします。
ファイルの末尾に下記の2行を追加します。
smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes
以上で、main.cfの編集完了です。
5.Submissionポート設定
Submissionポート(587番ポート)を設定します。
設定するには、/etc/postfix/master.cfを編集します。
[root@ ~]# vi /etc/postfix/master.cf
下記のハイライト部分の行頭にある#を削除します。
# # Postfix master process configuration file. For details on the format # of the file, see the master(5) manual page (command: "man 5 master"). # # Do not forget to execute "postfix reload" after editing this file. # # ========================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # ========================================================================== smtp inet n - n - - smtpd #smtp inet n - n - 1 postscreen #smtpd pass - - n - - smtpd #dnsblog unix - - n - 0 dnsblog #tlsproxy unix - - n - 0 tlsproxy submission inet n - n - - smtpd # -o syslog_name=postfix/submission # -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes # -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING #smtps inet n - n - - smtpd # -o syslog_name=postfix/smtps # -o smtpd_tls_wrappermode=yes # -o smtpd_sasl_auth_enable=yes # -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING
以上で、master.cfの編集完了です。
6.ユーザ毎のメール用ディレクトリ自動作成
ユーザを追加した際、ユーザのホームディレクトリにメール用ディレクトリが自動で作成されるように設定します。
[root@ ~]# mkdir -p /etc/skel/Maildir/{new,cur,tmp} [root@ ~]# chmod -R 700 /etc/skel/Maildir/
7.SASLの設定
cyrus-saslをインストールして、SMTP認証ができるようにします。
[root@ ~]# yum -y install cyrus-sasl
SASLの起動と自動起動を設定します。
[root@ ~]# systemctl start saslauthd [root@ ~]# systemctl enable saslauthd
8.SMTP認証の設定
/etc/sasl2/smtpd.confの設定ファイルでsaslauthdをauxpropに変更し、cram-md5を追記します。
※cram-md5を優先にするため、plainより前に追記します。
[root@ ~]# vi /etc/sasl2/smtpd.conf pwcheck_method: auxprop mech_list: cram-md5 plain login
9.Postfixを再起動
Postfixを再起動します。
[root@ ~]# systemctl restart postfix
Postfixの設定は以上です。
次はDovecotの設定とメール専用ユーザの追加です。