質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Dovecot

Dovecotとは、POPやIMAPサーバーを提供するMDA(メール配送エージェント)の一つです。

POP

POP(Post Office Protocol)とは、電子メールで使用される受信プロトコル(通信規約)です。SMTPで転送されたメールを一時的に保管し、そのメールをサーバから取り出す際に使用します。

SMTP

SMTP(Simple Mail Transfer Protocol)はIPネットワークでemailを伝送する為のプロトコルです。

Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

Q&A

1回答

1493閲覧

Postfix + Dovecot によるメールサーバ構築時の設定などについて

tk_flavor

総合スコア104

Dovecot

Dovecotとは、POPやIMAPサーバーを提供するMDA(メール配送エージェント)の一つです。

POP

POP(Post Office Protocol)とは、電子メールで使用される受信プロトコル(通信規約)です。SMTPで転送されたメールを一時的に保管し、そのメールをサーバから取り出す際に使用します。

SMTP

SMTP(Simple Mail Transfer Protocol)はIPネットワークでemailを伝送する為のプロトコルです。

Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

0グッド

1クリップ

投稿2019/01/24 16:58

編集2019/01/24 17:18

お世話になっております

現在、postfixとDovecotを利用して
稼動しているSTARTTLS?とpop3s?のメールサーバを新規作り変え中です
設定した人物はすでに退職しており、設定した意図などは誰もわかっていません。

smtp自体は内部LANのAPIサーバから当該メールサーバに25ポート接続で
各アカウントのMaildirディレクトリにメール送信します。
外部のユーザのメールソフトでpop3s(pop3)接続でメールを取りに来る仕組みで動いています。

現在稼動しているサーバ設定情報を洗い出ししているのですが
設定内容で不透明なところがありますので
下記で質問させてください
冗長ですが、お付き合い頂けますと幸いです。

  • バージョン情報:
postconf mail_version mail_version = 2.6.6
  • 証明書状態:
[root@test POSTFIX]# openssl s_client -connect localhost:587 -starttls smtp | openssl x509 -noout -dates depth=0 C = JP, ST = Tokyo, L = ****-ku, O = test_corporation, CN = aaa.test.com, emailAddress = postmaster@aaa.test.com verify error:num=18:self signed certificate verify return:1 depth=0 C = JP, ST = Tokyo, L = ****-ku, O = test_corporation, CN = aaa.test.com, emailAddress = postmaster@aaa.test.com verify error:num=10:certificate has expired notAfter=Dec 24 08:40:26 2018 GMT verify return:1 depth=0 C = JP, ST = Tokyo, L = ****-ku, O = test_corporation, CN = aaa.test.com, emailAddress = postmaster@aaa.test.com notAfter=Dec 24 08:40:26 2018 GMT verify return:1 250 DSN notBefore=Dec 26 08:40:26 2008 GMT notAfter=Dec 24 08:40:26 2018 GMT
  • STARTTLS?とpopsのための各設定

■/etc/postfix/main.cf

smtpd_tls_cert_file=/etc/pki/tls/certs/*.pem smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = $myhostname smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination smtpd_use_tls = yes smtpd_tls_cert_file = /etc/pki/tls/certs/mail.pem smtpd_tls_key_file = /etc/pki/tls/certs/mail.pem content_filter=smtp-amavis:[127.0.0.1]:10024

■/etc/postfix/master.cf

smtp inet n - n - - smtpd submission inet n - n - - smtpd # -o smtpd_tls_security_level=encrypt # -o smtpd_sasl_auth_enable=yes # -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING #smtps inet n - n - - smtpd # -o smtpd_tls_wrappermode=yes # -o smtpd_sasl_auth_enable=yes # -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING

■/etc/dovecot/conf.d/10-ssl.conf

ssl_cert = </etc/pki/tls/certs/mail.pem ssl_key = </etc/pki/tls/certs/mail.pem

■/etc/dovecot/conf.d/10-master.conf

inet_listener imaps { #port = 993 #ssl = yes

sslが無効になっていますのでpo3sログインは出来ていないのかと思います

■/etc/sasl2/smtpd.conf

pwcheck_method: saslauthd mech_list: plain login

tls/ssl設定がありましたが
昨年12月で証明書が切れています。
証明書はオレオレの自己証明書のようです

[root@test POSTFIX]# openssl x509 -noout -dates -in /etc/pki/tls/certs/mail.pem notBefore=Dec 26 08:40:26 2008 GMT notAfter=Dec 24 08:40:26 2018 GMT

ここから下記、質問事項になります。

質問1.STARTTLSかSMTP over SSL/TLSで稼動しているのかについて

main.cfやmaster.cfには
smtpd_tls_security_levelの設定は入っていませんので
SMTP over SSL/TLSではなく
STARTTLSの設定が有効になっていると考えていいでしょうか

10-master.confで

#ssl = yes

となっているのでpo3sログインは出来ていない解釈でいいのでしょうか

質問2.STARTTLSで使用するポート情報について

Postfix(SMTP) サーバには STARTTLSの設定が入っているようですが
自己証明書の期限が切れています
確認のためにtelnetコマンドを実行したところ
250-STARTTLS
STARTTLSはサポートされているようです
ですが下記のようにメールサーバ内で稼動しているサービスポートは465ポートは稼動していませんが
587ポートが稼動しています
また、
上位のロードバランサーとfirewall
では465ポートが開放されていますが、587ポートが開放されていません
サーバ内では
STARTTLSの465ポートが稼動していなく、
submissionの587ポートが稼動しています。

この状態ではsmtpは、実質startsslでサービスは動いてはいなく
25ポートで稼動している認識になるのでしょうか

[root@test postfix]# netstat -atlnp|grep 465 tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 6465/snmpd [root@test postfix]# netstat -atlnp|grep 587 tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 6729/master tcp 0 0 :::587 :::* LISTEN 6729/master
[root@test POSTFIX]# telnet localhost 25 Trying ::1... Connected to localhost. Escape character is '^]'. 220 aaa.test.com ESMTP unknown EHLO aaa.test.com 250-aaa.test.com 250-PIPELINING 250-SIZE 327680000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN
[root@test postfix]# telnet localhost 587 Trying ::1... Connected to localhost. Escape character is '^]'. 220 aaa.example.co.jp ESMTP unknown EHLO aaa.example.co.jp 250-aaa.example.co.jp 250-PIPELINING 250-SIZE 327680000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN

もちろん25ポートは使われています
10025はamavisdポートです

[root@test postfix]# netstat -atlnp|grep 25 tcp 0 0 127.0.0.1:10025 0.0.0.0:* LISTEN 6729/master tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 25945/sshd tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 6484/smtpd

質問3.証明書が切れている状態でのpop3sログインについて

証明書有効期限が切れている・#ssl = yesの状態で
クライアントユーザが995ポートでpop3sログインが出来ていたと仮定して、
現在の証明書が切れている状態でもユーザ影響が出ないでpop3ログインが出来るものなのでしょうか

tcpdumpで110ポートを見るとpop3での接続が確認出来ます、dovecot: pop3-loginしているようです
現行設定を踏襲するならば、外部のユーザからpops(995)接続させる設定でいいのでしょうか

Oct 28 00:54:56 AAAA1111 postfix/smtpd[30306]: disconnect from unknown[***.***.***.***] Oct 28 00:54:56 AAAA1111 dovecot: pop3-login: Login: user=<g-after>, method=PLAIN, rip=***.*.***.***, lip=***.***.***.***, mpid=30798, TLS

tcpdumpで995ポートを見るとpop3sでの接続が確認出来ます

17:18:05.260645 IP 1**.***.***.***.43290 > AAAA1111.aaa.test.com.pop3s: Flags [.], ack 1, win 115, options [nop,nop,TS val 2129660067 ecr 1701431993], length 0 17:18:05.260765 IP 1**.***.***.***.43290 > AAAA1111.aaa.test.com.pop3s: Flags [F.], seq 1, ack 1, win 115, options [nop,nop,TS val 2129660068 ecr 1701431993], length 0 17:18:05.261420 IP AAAA1111.aaa.test.com.pop3s > 1**.***.***.***.43290: Flags [.], ack 2, win 114, options [nop,nop,TS val 1701431995 ecr 2129660068], length 0 17:18:05.265431 IP AAAA1111.aaa.test.com.pop3s > 1**.***.***.***.43290: Flags [F.], seq 1, ack 2, win 114, options [nop,nop,TS val 1701431999 ecr 2129660068], length 0

質問4.STARTTLS用の証明書作り方について

postfix側に入れる証明書は
例えば、apacheに入れている証明書とkeyファイルを入れる事で
問題なかったでしょうか
postfix専用のSSLの作り方があれば教示ください

質問5.STARTTLSの証明書を使用する場合のクライアント側メーラーに証明書をインポートする必要があるのか

STARTTLSの証明書を使用する場合
この証明書をクライアント側のメーラにインポートする必要はあるのでしょうか

現在稼動しているメールサーバにテストアカウント作成して、
このテストアカウントをメーラーに追加しようとしているのですが
画像のように毎回、警告メッセージが出ます。

この警告は有効期限切れの証明書のためだからでしょうか
もしくわ、自己証明書のためでしょうか
そもそも、メールサーバへの証明書を自己証明書を採用する場合
クライアント側メーラーに証明書をインポートする必要があるのでしょうか

イメージ説明

質問6.メーラー設定でアカウント追加する時の設定について

FireWallのポート開放設定とサーバ内のサービスポート情報から
popは995ポート
smtpは25ポート
で稼動しているであろうと仮定する場合、
メールサーバに新規アカウントを作成し、outlookのメーラーでこの新規アカウントを追加して
メール送受信試験を行うと下記のようなエラー表示となります。
メーラ側への設定内容を教示頂けますと幸いです

イメージ説明
イメージ説明

質問7.よりセキュアな作りにするなら?

SMTP over SSL/TLSの方がいいのでしょうか

宜しくお願い致します

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

まず、 dovecot の設定は doveconf -n で default 設定との差分が出るのでそれを参考にすればよい

これは POPS ではなく IMAPS の設定

inet_listener imaps { #port = 993 #ssl = yes

質問1.STARTTLSかSMTP over SSL/TLSで稼動しているのかについて
=> postfixとdovecotの役割を理解していなくアドバイスがしにくい
STARTTLS は SMTP の STARTTLS 機能か? POP3 の STARTTLS か?
SMTPの STARTTLS なのであれば、それは送信時のものか?受信時のものか?
もしSMTPであればなぜ dovecot の 10-master.conf の設定を質問に書いているか?

質問2.STARTTLSで使用するポート情報について
465portは 通常 SMTP over SSL/TLS で使用するため、STARTTLS は 25/587 port で稼働していればよい
外部から 465 , 587 port に接続ができなければ 25 port でしか当然サービスできていない

質問3.証明書が切れている状態でのpop3sログインについて
telnet や メーラーで確認すれば稼働していることは一目瞭然ではないでしょうか
HTTPSでも証明書の期限がきれていても表示できますよね。同じです。クライアントが許可すればいい話

質問4.STARTTLS用の証明書作り方について
同じです。certbot などで用意すればよいのではないでしょうか

質問5.STARTTLSの証明書を使用する場合のクライアント側メーラーに証明書をインポートする必要があるのか
自己証明書を使いたいのであればインポートしたほうがいいでしょうね。しなくてもクライアントで許可すればいい話だと思います。

質問6.メーラー設定でアカウント追加する時の設定について
saslauthd を使っているようですが、そちらの設定等は問題ありませんか?

質問7.よりセキュアな作りにするなら?
送受信の smtp starttls に対応
tls_high_cipherlist の設定を追加
ssl,tls1.0,tls1.1無効、tls1.3 に対応
VRFY、ETRN などのコマンドの無効化
DKIM署名、spf,dkim,dmarcの検証、ついでにspamcheckするなら rspamd のインストール
OSとメールアカウントの非共通化
postfix から dovecot へのメールの格納は LMTPに変更し、dovecot-pigeonhole(sieve)を使えるようにして
IMAPSに対応すれば sieve でメールのフィルタリングができて便利

など、パッと思いつくだけでこれだけあります。
もう少しソフトウェアごとの機能、仕組みなどを理解することに時間をさいたほうがいいと思います

投稿2019/01/24 22:27

編集2019/01/24 22:48
scsi

総合スコア2840

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tk_flavor

2019/01/25 17:37 編集

ご回答ありがとうございます。 質問1 STARTTLSかSMTP over SSL/TLSのどちらで稼働しているのか? ⇒こちらですが、メールサーバ内でnetstatコマンドで見ると465ポートは起動していませんでした。 telnet localhost 25を実行すると、250-STARTTLS が表示される事から、STARTTLSで動いているであろうと考えています。 10-master.confの記載をした事は私側で混同していました。失礼しました。 そこで、dovecotについて改めて確認させて下さい ■1. /etc/dovecot/dovecot.confでのprotocols設定は下記のようにコメントアウトされています #protocols = imap pop3 lmtp pop3s imaps この状態ですと、デフォルト値が使われるようになるのかと思っていまして、 受信用プロトコルサービスが起動する事になるのでしょうか? netstatで110ポート、143ポート、465ポート、993ポート、995ポート 受信用プロトコルサービスが起動しています。 ■2. /etc/dovecot/conf.d/10-ssl.conf #ssl = yes 有効を表す、yesがコメントアウトされていまして、この状態ですとデフォルト設定のSSLが有効(yes) にっている考えていいのでしょうか ■3. /etc/dovecot/conf.d/10-master.confのpop3設定では下記のように 110ポートと995ポートを利用しない、非SSL設定となっているようなのですが 1.で質問した、全受信用プロトコルが起動しているのは何故なのでしょうか service pop3-login { inet_listener pop3 { #port = 110 } inet_listener pop3s { #port = 995 #ssl = yes } } 110ポートと995ポートはコメントアウトとなっていますが、 netstatでの確認ではこの2つのポートが起動していることになっています。 これは、 /etc/dovecot/dovecot.conf で protocols項目はデフォルト値が指定されて 110と995が起動している しかし、起動はしているが 10-master.confではssl起動がnoなので 実質、非SSLで995ポートが稼働しており、外部ユーザは110ポートでメールを受信が出来ている事で いいのでしょうか 外部ユーザにはメーラー設定説明では995ポートで設定するように案内していたみたいでして 995接続が出来ない時は勝手に110ポートでメールを受ける仕組みなのでしょうか ------------------------------------------------------------------------------------------------ また、 /etc/dovecot/conf.d/10-master.confに下記の設定があります。 これは、SMTP-AUTHの実装のSASLをDovecot の SASL ライブラリの認証ソケットファイルとして 紐づける解釈でいいのでしょうか # Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix } # ls -F /var/spool/postfix/private/auth /var/spool/postfix/private/auth= 認証ソケットファイルが作成されているのは確認が出来ています しかし、postfixのmain.cf(または、master.cf)に smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth のDOVECOT SASL用?の設定が入っていませんので SMTP認証にはDOVECOT SASLを利用しない解釈でいいでしょうか ですが、結局、/etc/dovecot/conf.d/10-master.confファイルの中で service pop3-login { inet_listener pop3 { #port = 110 } inet_listener pop3s { #port = 995 #ssl = yes のように非sslとされているので、# Postfix smtp-auth設定も意味を成さないのではないのかと思っています。。。 ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ この事から、FWで587が開放されていないのでsmtp認証は25ポートで受付している メール受信用プロトコルは10-master.confで非sslなので 110ポートで接続を受け付けている事になるのでしょうか ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ ■質問6.について >メーラー設定でアカウント追加する時の設定についてsaslauthd を使っているようです saslauthdデーモンが起動していない状態でした。 /etc/pam.d/dovecotファイルで account sufficient pam_access.so の設定が入っていないようでしたのでPAM認証設定は有効でないと解釈していまして SASL2認証なのかと想像しています。 ここまでの経緯から SMTP認証方法はSASL2で実行 いろいろわかりにくい説明かもしれませんが、 ご確認・ご回答頂けますと幸いです
scsi

2019/01/25 19:40 編集

あとは自分で調べて考えて自分で判断して進めるといいかと思います!それが仕事だと思います!期限があるなら移行を外部に発注することも考えましょう。サーバの設定から動作を把握出来ないようでは十中八九事故りますよ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問