CentOS 7でPostfixでメールサーバを構築

構築するOS環境はCentos7.2です。Webサービス内でメール送信処理が有りsmtpサーバと受信メールの転送を主としていますので多人数で利用するメールサーバとしてはそぐわない点もあるかもしれません。
それでは、設定を進めていきます。
Postfixのバージョン確認はpostconfコマンドで下記のように実行します。

$ postconf | grep mail_version
mail_version = 2.10.1

postfixのインストール

# yum install postfix cyrus-sasl-plain  cyrus-sasl-md5

設定ファイルmain.cfの編集

設定ファイルを編集します。

# vi /etc/postfix/main.cf

下記の箇所を変更します。

#myhostname = virtual.domain.tld
↓
myhostname = hogehoge.jp

#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
↓
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

#mydomain = domain.tld
↓
mydomain = hogehoge.jp

#myorigin = $myhostname
↓
#myorigin = $mydomain

inet_interfaces = localhost
↓
inet_interfaces = all

mynetworks = 127.0.0.1/32
↓
mynetworks = xxx.xxx.xxx.xxx/32,127.0.0.0/8

unknown_local_recipient_reject_code = 550
↓
unknown_local_recipient_reject_code = 450

#home_mailbox = Mailbox
↓
home_mailbox = Maildir/

smtpd_banner = $myhostname ESMTP $mail_name
↓
smtpd_banner = ESMTP MTA

また、末尾に以下を追記して保存します。

smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
relayhost =
smtpd_helo_required = yes
disable_vrfy_command = yes
strict_rfc821_envelopes = yes
allow_percent_hack = yes
swap_bangpath = yes
allow_untrusted_routing = no
smtpd_client_restrictions = permit_mynetworks, reject_unknown_client, permit
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname, reject_unknown_client, permit
smtpd_recipient_restrictions = permit_sasl_authenticated reject_unauth_destination permit_mynetworks
smtpd_sender_restrictions = reject_unknown_sender_domain, reject_sender_login_mismatch
smtpd_etrn_restrictions = permit_mynetworks, reject_invalid_hostname
resolve_numeric_domain = yes

postfixの起動と自動起動設定

# systemctl restart postfix
# systemctl enable postfix

dovecotのインストール(POP/IMAPサーバ)

続いて、POP/SMTPサーバのdovecotをインストールします。

# yum install dovecot

設定ファイルの編集

設定ファイルdovecot.confを編集します。

# vi /etc/dovecot/dovecot.conf

下記の箇所を変更します。

#protocols = imap pop3 lmtp
↓
protocols = imap pop3

設定ファイル10-mail.confを編集します。

# vi /etc/dovecot/conf.d/10-mail.conf

下記の箇所を変更します。
メールは各ユーザのディレクトリに保存されるようにします。

#mail_location =
↓
mail_location = maildir:~/Maildir

設定ファイル10-ssl.confを編集します。

# vi /etc/dovecot/conf.d/10-ssl.conf

下記の箇所を変更します。
暗号化は利用せず、POP(110番ポート)のみ接続許可とします。

#ssl = required
↓
ssl = no

ユーザディレクトリ配下にメールボックスを作成

rootディレクトリ配下にメールボックスを作成します。

# mkdir -p /root/Maildir/{cur,new,tmp}
# chown root:root -R /root/Maildir
# chmod 700 /root/Maildir

続いて、ユーザ作成時に自動的にメール用ディレクトリが作成されるようにします。

# mkdir -p /etc/skel/Maildir/{new,cur,tmp}
# chmod 700 /etc/skel/Maildir/
# ls -ld /etc/skel/Maildir

メールを利用するユーザの追加

sshログインなどシェルが利用できないように/sbin/nologinで追加します。

# useradd -s /sbin/nologin hoge

dovecotの自動起動と起動

# systemctl enable dovecot
# systemctl start dovecot

以上で設定は完了です。

DNSのTXTレコードでSPFレコードとDMARCを設定

メールが迷惑メール扱いされないようにDNSサーバにSPFレコードとDMARCを設定しておきます。

SPFレコード
hogehoge.jp. 300 IN TXT "v=spf1 +ip4:XXX.XXX.XXX.XXX ~all"

DMARCレコード
_dmarc.hogehoge.jp text = "v=DMARC1; p=none; rua=mailto:hoge@hogehoge.jp; ruf=mailto:hoge@hogehoge.jp”

(Visited 133 times, 1 visits today)