#author("2021-10-03T08:27:50+00:00","","")
#author("2021-10-10T08:14:40+00:00","","")
[[Linuxめも]]

#contents

*Postfixインストール [#scc61a3c]

 # yum install postfix

 # vi /etc/postfix/main.cf

 myhostname = mail.example.com # FQDN
 mydomain = example.com # ドメイン
 #myhostname = example1.com # FQDN
 #mydomain = example1.com # ドメイン
 myorigin = $mydomain # 送信元アドレスに追加するドメイン
 inet_interfaces = all # 外部からも受け付ける
 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain # ローカルに配送するドメイン
 mynetworks_style = host # 他サーバの転送は受け付けない
 home_mailbox = Maildir/ # Maildir形式にする
 smtpd_banner = $myhostname ESMTP unknown # メールサーバソフト名を隠蔽
 
 # SMTP認証設定
 smtpd_sasl_auth_enable = yes
 smtpd_recipient_restrictions =
     permit_mynetworks
     permit_sasl_authenticated
     reject_unauth_destination
 
 message_size_limit = 10485760 # 受信メールサイズ上限(10MB)

 # vi /etc/postfix/master.cf

 smtp      inet  n       -       n       -       -       smtpd
 submission inet n       -       n       -       -       smtpd
   -o smtpd_sasl_auth_enable=yes

 # yum install cyrus-sasl
 # systemctl start saslauthd
 # systemctl enabled saslauthd

 # vi /etc/sasl2/smtpd.conf

 pwcheck_method: auxprop

 # systemctl restart postfix

25, 587ポートが開いていることを確認
 # ss -natup | grep master

* Dovecotインストール [#fabdba38]

 # yum install dovecot

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

 mail_location = maildir:~/Maildir # Maildir形式にする

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

 disable_plaintext_auth = no

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

 ssl = no

 # systemctl start dovecot
 # systemctl enable dovecot

110, 143ポートが開いていることを確認
 # ss -natup | grep dovecot

* バーチャルメールボックス設定 [#uc075c94]

 # groupadd -g 10000 mailuser
 # useradd -u 10000 -g mailuser -s /sbin/nologin mailuser

 # mkdir /var/spool/virtual
 # chown -R mailuser:mailuser /var/spool/virtual

 # vi /etc/postfix/main.cf

 virtual_mailbox_domains = example1.com, example2.com
 virtual_mailbox_base = /var/spool/virtual
 virtual_mailbox_maps = hash:/etc/postfix/vmailbox
 virtual_uid_maps = static:10000
 virtual_gid_maps = static:10000

仮想ユーザーの作成
 # vi /etc/postfix/vmailbox

 user1@examle1.com example1.com/user1/Maildir/
 user2@examle1.com example1.com/user2/Maildir/
 user1@examle2.com example2.com/user1/Maildir/
 user2@examle2.com example2.com/user2/Maildir/

 # postmap /etc/postfix/vmailbox
 # systemctl restart postfix

*Dovecot側の設定 [#r9a8315a]

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

 auth_mechanisms = cram-md5 plain
 !include auth-passwdfile.conf.ext
 !include auth-static.conf.ext

 # vi /etc/dovecot/conf.d/auth-passwdfile.conf.ext

 passdb {
   driver = passwd-file
   args = scheme=CRAM-MD5 username_format=%u /etc/dovecot/passwd
 }
 
 userdb {
   driver = passwd-file
   args = username_format=%u /etc/dovecot/passwd
 }

 # vi /etc/dovecot/conf.d/auth-static.conf.ext

 userdb {
   driver = static
   args = uid=10000 gid=10000 home=/var/spool/virtual/%d/%n
 }

 # systemctl restart dovecot

*仮想ユーザーのパスワードを設定する [#qef66577]

パスワードのハッシュ値を取得
 # doveadm pw

 # vi /etc/dovecot/passwd

 user1@examle1.com:{CRAM-MD5}うんたら

*SMTP認証用パスワード設定 [#bff5d725]

user1@exmaple1.com の場合
 # echo "password" | saslpasswd2 -p -u exmaple1.com -c user1

確認
 # sasldblistusers2

 # chgrp postfix /etc/sasldb2

削除する場合
 # saslpasswd2 -d user1 -u exmaple1.com

*不正中継拒否テスト [#q05c1761]

[[Open Relay Test:https://tools.appriver.com/OpenRelay.aspx]]

18種類のテストが行われ、全てで Relay NOT Accepted となればOK

*参考 [#e89da9bd]

メールサーバー構築(Postfix+Dovecot)~
https://centossrv.com/postfix.shtml

PostfixとDovecotでバーチャルメールボックスの設定をする~
https://qiita.com/dribble13/items/36847b944caed440d714

postfix+dovecotでバーチャルドメイン(バーチャルメールボックスを使用)~
https://www.server-memo.net/server-setting/postfix/postfix-virtualmailbox.html


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS