Postfixでメール送信サーバを作ろう!
ここでは、Postfixのインストール手順を掲載しています。
※CentOS 7のサポートは2024年6月をもって終了していますが、旧コンテンツとしてこちらのページは残しておきます。
メール送受信の仕組み
手紙を出すとき、通常[ポスト]→[最寄りの郵便局]→[宛先最寄りの郵便局]→[宛先郵便受け]の順に手紙が配送されます。
電子メールも同様に、[送信]→[送信用サーバ(SMTPサーバ)]→[受信用サーバ(POP/IMAPサーバ)]→[受信]の流れとなります。
つまり、電子メールの送受信には、送信用と受信用それぞれのサーバが必要です。
今回は送信用サーバにPostfix、受信用サーバにDovecotを使いたいと思います。
Postfixとは…?
Postfixはオープンソースで開発されている送信用サーバ(SMTPサーバ)です。
SMTPとはSimple Mail Transfer Protocolの略で、メール送信のときに使われるルールのことです。SMTPではメールの送信に認証作業がありません。なので、SMTP-AUTHを利用して送信前に認証を行い、不正中継を防止します。
Postfixの設定
CentOS 7にはPostfixがもともとインストールされています。
まずはPostfixの設定を行います。
[root@co7 ~]# vi /etc/postfix/main.cf
#myhostname = host.domain.tld
↓
myhostname = www.mhserv.info
#mydomain = domain.tld
↓
mydomain = mhserv.info
#myorigin = $mydomain
↓
myorigin = $mydomain (@以下にドメインを付加する)
#inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
inet_interfaces = localhost
↓
inet_interfaces = all (外部からのメール受信を許可する)
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost
mydestination = $myhostname, localhost.$mydomain, localhost
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
↓
#mydestination = $myhostname, localhost.$mydomain, localhost (ドメイン宛てのメール受信を許可する)
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#home_mailbox = Maildir/
↓
home_mailbox = Maildir/ (メールの保存形式をMaildirに設定)
#smtpd_banner = $myhostname ESMTP $mail_name
↓
smtpd_banner = $myhostname ESMTP unknown (メールサーバ名を非表示に設定)
また、最後尾にSMTP-AUTH用の設定を書き込みます。
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $mydomain
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
SMTP-AUTHの有効化
SMTP-AUTHに必要なsaslauthdを起動します。
[root@co7 ~]# yum -y install cyrus-sasl cyrus-sasl-plain
インストール:
cyrus-sasl.x86_64 0:2.1.26-24.el7_9 cyrus-sasl-plain.x86_64 0:2.1.26-24.el7_9
完了しました!
[root@co7 ~]# systemctl enable --now saslauthd
Created symlink from /etc/systemd/system/multi-user.target.wants/saslauthd.service to /usr/lib/systemd/system/saslauthd.service.
設定が終わったら、Postfixを再起動して、設定を反映させます。
[root@co7 ~]# systemctl restart postfix
メール用ユーザの追加
今回はメールの送受信に、CentOSのアカウントを使用します。SSHにログインしない形でメール送信用のユーザアカウントを作成しておきます。
ここでは、仮に「test」ユーザーを作成します。
[root@co7 ~]# useradd -s /sbin/nologin test
[root@co7 ~]# passwd test
ユーザー test のパスワードを変更。
新しいパスワード:アカウントパスワード
新しいパスワードを再入力してください:パスワード再入力
passwd: すべての認証トークンが正しく更新できました。
続いて、SASL認証を行うユーザーを登録します。
ドメイン名、ユーザー名、パスワードはご自身の環境に合わせて変更してください。
[root@co7 ~]# saslpasswd2 -u ドメイン名 -c ユーザー名
Password:アカウントパスワード
Again (for verification):パスワード再入力
[root@co7 ~]# chmod 640 /etc/sasldb2
[root@co7 ~]# chgrp postfix /etc/sasldb2
[root@co7 ~]# /usr/sbin/sasldblistusers2
test@mhserv.info: userPassword
上記の通り、作成したユーザーが表示されれば、登録作業は完了です。
ファイアウォールの設定
続いてファイアウォールの設定を行います。
Postfixへアクセスできるよう、ファイアウォールで許可をしてあげます。
[root@co7 ~]# firewall-cmd --permanent --add-service=smtp
success
[root@co7 ~]# firewall-cmd --reload
success
OP25B対策について
OP25B(Outbound Port 25 Blocking)についてはこちらを参考に設定してください。
Dovecotの設定へと続きます。
今回新しく登場したコマンド
[広告]
トップページ
CentOS 7
○準備
○仮想化準備(VMware)
○仮想化準備(Hyper-V)
○仮想化準備(Proxmox)
○基本操作
○導入
○セキュリティ対策
○Dynamic DNS
○NTPサーバ
○データベース
○WEBサーバ
○FTPサーバ
○メールサーバ
○DNSサーバ
○ブログシステム
○オンラインストレージ
○その他