【CentOS7】PostfixとDovecotでパスワード認証付きのメールサーバ構築 Part1 Postfix編

MW

PostfixとDovecotを使用したメールサーバの構築手順を書きます。

最近は構築後の運用でも手間のかかるオンプレミスメールサーバは絶滅危惧種で何かしらのメールサービスを使うことがほとんどだと思います。

自分で1からメールサーバを立てることはめっきり少なくなっていると思いますが参考までに記事にします。

 

長くなるので1記事目はPostfixの構築のみにフォーカスを当てます。

環境

OS : CentOS7(RHEL7)

概要 : 平文を使ったID/PW認証付きのメールサーバ構築

認証方法 : Dovecot SASL

使用ポート : SMTP(TCP:25) , POP3(TCP:110)

 

Postfixの構築手順

Postfixのインストール

# yum -y install postfix

Postfixの設定

main.cfの設定

# vi /etc/postfix/main.cf
myhostname = mx.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all #デフォルト値(127.0.0.1だと自分からしかメールが送れなくなるのでallに変更)
inet_protocols = ipv4 #使用プロトコルをipv4に限定
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain #ローカル配送の対象を指定
mynetworks = 127.0.0.1, 192.168.0.0/16 #メールリレーを許可するネットワークを指定(基本的には送信元のネットワークを記載)
home_mailbox = Maildir/ #メールボックスの形式を指定。最近はMaildir方式が主流
local_recipient_maps = unix:passwd.byname $alias_maps #存在しないユーザ宛のメールを受け取らなくす
message_size_limit = 30720000 #1通のメールの最大サイズ指定(バイト)デフォルトは10MBで今回は30MBに変更
smtpd_banner = $myhostname ESMTP #SMTP接続時にPostfixのバージョン等を表示させなくする
smtp_tls_security_level = may #encryptならTLS強制、mayならTLSが使えない場合は平文に変更(今はSTARTTLSが推奨なので極力メールは暗号化する)
smtp_tls_loglevel = 1 #サマリーログのみ出すように
smtp_tls_CAfile = /etc/pki/tls/cert.pem #TLSメール用の鍵を指定する

最後に以下のコマンドでPostfixのコンフィグに問題がないことを確認します。

# postfix check

Maildirの雛形作成

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

Maildir形式に対応する為にひな形となるディレクトリを作成し権限を付与します。

パスワード認証を行わない単純な送信専用サーバであればこれにて設定完了です。

 

SMTP-AUTH設定

# vi /etc/postfix/main.cf
smtpd_sasl_auth_enable = yes #SMTP-AUTHの使用を宣言
smtpd_sasl_security_options = noanonymous #匿名接続を拒否
smtpd_sasl_type = dovecot #dovecotの認証機能を利用
smtpd_sasl_path = private/auth
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination  #mynetworks,sasl認証をクリアしたものはメールリレー許可、ほかは拒否

サービス起動

# systemctl start postfix
# systemctl enable postfix

動作テスト

### テストユーザ作成
# useradd test01
# passwd test01
### 送信テスト
# telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 mx.example.com ESMTP
EHLO mx.example.com #自分のホスト名を入力
250-mx.example.com
250-PIPELINING
250-SIZE 30720000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
MAIL FROM:<test01@example.com> #送信元のメールアドレスを入力
250 2.1.0 Ok
RCPT TO:<test01@example.com> #宛先のメールアドレスを入力(インターネットに出れるのであれば自分でなくて実際に存在するものでもOK)
250 2.1.5 Ok
DATA //メール本文の設定
354 End data with .
Test Mail #メール本文の中身
. #ピリオドで本文入力終了
250 2.0.0 Ok: queued as D36317AA13
quit #Quitで脱出
221 2.0.0 Bye
Connection closed by foreign host.

これでとりあえずPostfixとして最低限動作していることが確認できます。

次の記事でDovecotを構築しメールの送受信ができる環境を作っていきます。

最新情報をチェック!