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

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

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

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

Postfix

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

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

解決済

1回答

344閲覧

RPI4 / Let's Encrypt /My Dns / Postfix & Dovecotで外部送信可能なメールアカウントを作成したい

tarita

総合スコア1

Dovecot

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

Postfix

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

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

1クリップ

投稿2024/07/08 07:06

実現したいこと

利用環境:

  • Raspberry Pi 4 Bullseye 6.1.21-v8+
  • Postfix ver.: 3.5.24
  • Dovecot ver.: 2.3.13
  • Let's Encrypt :設定済(現在はポート80は不要なため閉じています)
  • My DNS : mail.example.com / TXT : v=spf1 include:mail.example.com -all 設定済

RPI内ではメール送受信が問題なく完了しますが、Gmail宛など外部宛先にメールを送信できるようにしたいです。

発生している問題・分からないこと

Sasl認証をDovecot側に入れ、Postfix側(Main.cf)で読み込むようにしていますが、エラーメッセージが発生します。

エラーメッセージ

error

1postfix/smtp[55493]: fatal: specify a password table via the smtp_sasl_password_maps' configuration parameter

該当のソースコード

Main.cf

1smtpd_banner = $myhostname ESMTP unknown 2biff = no 3append_dot_mydomain = no 4readme_directory = no 5compatibility_level = 2 6smtpd_tls_cert_file = fullchain.pem 7smtpd_tls_key_file = privkey.pem 8smtpd_tls_security_level = encrypt 9smtpd_tls_CAfile = $smtpd_tls_cert_file 10smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache 11smtpd_sasl_auth_enable = yes 12smtpd_sasl_path = private/auth 13smtpd_sasl_type = dovecot 14smtpd_sasl_security_options = noanonymous 15smtp_tls_security_level = encrypt 16smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache 17smtp_tls_loglevel = 1 18smtp_tls_CAfile = $smtpd_tls_CAfile 19smtp_sasl_auth_enable = yes 20smtp_sasl_path = private/auth 21smtp_sasl_type = dovecot 22smtp_sasl_security_options = noanonymous 23smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination 24myhostname = mail.example.com 25alias_maps = hash:/etc/aliases 26alias_database = hash:/etc/aliases 27myorigin = /etc/mailname 28mydestination = 29relayhost = [$myhostname]:587 30mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 10.1.1.0/24 31home_mailbox = Maildir/ 32mailbox_size_limit = 0 33recipient_delimiter = + 34inet_interfaces = all 35inet_protocols = all 36virtual_mailbox_domains = $myorigin 37virtual_mailbox_base = /var/vmailbox 38virtual_mailbox_maps = hash:/etc/postfix/vmailboxlist 39virtual_uid_maps = static:5000 40virtual_gid_maps = static:5000

10

1<中略> 2 unix_listener /var/spool/postfix/private/auth { 3 mode = 0666 4 user = postfix 5 group = postfix 6 }

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

Dovecot側のパスワードファイルを直接読み込み:形式が異なり読み込めず
/etc/dovecot/conf.d/auth-passwdfile.conf.ext:
args = scheme=argon2id username_format=%u  [password保管場所] 
→設定していても効果なし。再設定しても同様に効果なし。
port 587 :ポート開放済 (-A INPUT -p tcp -m multiport --dports 587,993,995 -j ACCEPT)

補足

特になし

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

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

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

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

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

CHERRY

2024/07/08 10:56

> fatal: specify a password table via the smtp_sasl_password_maps' configuration parameter smtp_sasl_password_maps の設定はどのようになっていますか? また、 > relayhost = [$myhostname]:587 relayhost は、どこに向いているのでしょうか。
tarita

2024/07/09 02:44

コメントありがとうございます。 smtp_sasl_password_maps:こちらはDovecot側のリストを読み込んでほしいので設定していません。 Relayhost:25番ポートに来たものを587番ポートにRelayしてほしいと思い記載しており、Myhostnameは名称通り自分自身を指しています。(ChatGPTで確認したのですが、誤りのようですね・・・)
guest

回答1

0

ベストアンサー

(Postfix から見て)受信(smtpd_)と送信(smtp_)の設定がごっちゃになっています。

受信の設定

Postfix 標準では 25 番ポートで待ち受ける smtpd プロセスの設定を main.cf で、必要に応じて 465, 587 番ポートを master.cf で上書き設定します。

smtpd_tls_security_level = encrypt ↓ smtpd_tls_security_level = may

暗号化に対応していない MTA は今どき少ないと思いますが、SMTP の規約で、平文でも受け取れるようにする必要があります。
なので、may にします。
465, 587 番ポートを暗号化必須にしたいのであれば、master.cf で上書き設定します。

smtpd_sasl_auth_enable = yes smtpd_sasl_path = private/auth smtpd_sasl_type = dovecot smtpd_sasl_security_options = noanonymous (変更なし)

SMTP-Auth が有効になります(25, 465, 587 番ポート共通) 。
認証は dovecot の認証を利用します。

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination (変更なし)

接続元IPアドレスが $mynetworks に含まれている、または、SMTP-Auth 認証に成功した場合、メールリレー(≒送信)を許可します。
これとは別に、$mydestination, $relay_domains, $virtual_ などで許可されているドメイン宛のメールを受け取ります。

その他、受信ドメインの DNS MX レコードを設定します。

送信の設定

smtp_sasl_auth_enable = yes smtp_sasl_path = private/auth smtp_sasl_type = dovecot smtp_sasl_security_options = noanonymous ↓ (不要)

外部の MTA で認証が必要な場合、smtp_sasl_auth_enable = yes とします。
この場合、smtp_sasl_password_maps の設定が必要です(ログが意味するところ)。
通常、ドメインの DNS MX で指定されている MTA (25 番ポート)は認証なしで受け取れるはずですので、設定は不要です。

relayhost = [$myhostname]:587 ↓ (不要)

自分自身にループしませんか? 不要です。

My DNS : mail.example.com / TXT : v=spf1 include:mail.example.com -all 設定済

include の意味を間違えていませんか?
a:mail.example.com を意図しているのではないでしょうか?

投稿2024/07/08 12:57

TaichiYanagiya

総合スコア12173

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

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

tarita

2024/07/09 02:42

回答ありがとうございます!smtpdとsmtpについて、ChatGPTなどでも確認していたのですがよくわからず・・・ smtpの箇所をご指摘のように削除したところsmtp_sasl_password_mapsのエラーは解消されました。 ありがとうございます! なお、Relayhostについては、元回線が25番ポートをブロックしているため、自身の587にリレーするように記載したつもりでいました。 Relayhostを空欄にするとGmail宛など、mail.log上でConnection timed out とタイムアウトのエラーが発生してしまうのですが、これはmyDNS側で設定すべきものでしょうか? 勝手がわからず質問ばかりで申し訳ありません。
tarita

2024/07/09 03:01

なお、MyDNSの設定としては以下です。 * A * AAAA * TXT mail.example.com / TXT : v=spf1 include:mail.example.com -all * TXT example.com / TXT : v=spf1 include:example.com -all (どのタイミングでmail.ありとmail.なしが動くかわからなかったので一旦両方入れてます。)
TaichiYanagiya

2024/07/09 03:12

外向け 25 番ポートが禁止(OP25B)されているのであれば、その環境ではメールサーバーは運用できないと思います。 gmail アカウントを持っているのであれば、smtp_sasl_password_maps を使って [smtp.gmail.com]:587 (認証あり)経由でメールを送信することができるかもしれませんが、From が自身の gmail アドレスに限定されます。 SPF も間違っています。
tarita

2024/07/09 06:41

うーんなるほど・・ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問