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

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

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

SASLは、コネクションベースのプロトコルにおける認証サポートの追加や、データセキュリティのためのフレームワーク。既存のライブラリ・仕組みを再利用することが可能で,ユーザーに対しチャレンジ・レスポンス認証といった安全な認証方式を提供できます。

Dovecot

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

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

SMTP

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

Postfix

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

Q&A

解決済

3回答

26886閲覧

postfixでメール送信ができない【CentOS7】

narga

総合スコア12

SASL

SASLは、コネクションベースのプロトコルにおける認証サポートの追加や、データセキュリティのためのフレームワーク。既存のライブラリ・仕組みを再利用することが可能で,ユーザーに対しチャレンジ・レスポンス認証といった安全な認証方式を提供できます。

Dovecot

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

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

SMTP

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

Postfix

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

0グッド

0クリップ

投稿2015/10/24 16:21

編集2015/10/25 09:27

CentOS7を使っています。
メールソフトのThunderbirdを使ってメール送信をしたいと思っておりますが、うまく行きません。

インストール済み
postfix 2.10.1-6
dovecot 2.2.10-4
cyrus-sasl-lib-2.1.26-17.el7.x86_64
cyrus-sasl-plain-2.1.26-17.el7.x86_64
cyrus-sasl-md5-2.1.26-17.el7.x86_64
cyrus-sasl-2.1.26-17.el7.x86_64
##Thunderbirdの設定
ドメインはexample.comとします。
新しくcontactというユーザーを作ったとします。
# sasldblistusers2と打つと
contact@example.com: user Password
と返ってきます。

IMAPサーバー
サーバ名 mail.example.com
ポート 143
接続 STARTTLS / 通常のパスワード保護
ユーザ名 contact

SMTPサーバー
サーバ名 mail.example.com
ポート 587
接続 STARTTLS / 通常のパスワード保護
ユーザ名 contact@example.com

以上がThunderbird上の設定です。

postfixでメール送信ができない

試しにヤフーメールに送ろうと試みたところ上手く行きませんでした。

Mail Delivery SystemMAILER-DAEMON@example.comから以下の様なメールが届きました。

This is the mail system at host mail.example.com.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

The mail system

hogehoge@yahoo.co.jp: host mail.example.com[160.1.1.xx] said: 554 5.7.1
<tk2-100-160xx.vs.hogefuga.jp[160.1.1.xx]>: Client host rejected: Access
denied (in reply to RCPT TO command)

Reporting-MTA: dns; mail.example.com
X-unknown-Queue-ID: 33C8A2118956
X-unknown-Sender: rfc822; contact@example.com
Arrival-Date: Sun, 25 Oct 2015 17:41:04 +0900 (JST)

Final-Recipient: rfc822; hogehoge@yahoo.co.jp
Original-Recipient: rfc822;hogehoge@yahoo.co.jp
Action: failed
Status: 5.7.1
Remote-MTA: dns; mail.example.com
Diagnostic-Code: smtp; 554 5.7.1 <tk2-100-160xx.vs.hogefuga.ne.jp[160.1.1.xx]>:
Client host rejected: Access denied

メールの受信の方はthunderbird上でもできました。
また、コンソール上で# mailコマンドを使うと送信できました。

ですが、thunderbirdから送信ができません。

ユーザー名、パスワードは正しいですし、# firewall-cmd --list-ports --zone=publicと打つと110/tcp 465/tcp 25/tcp 587/tcp 143/tcp 995/tcp 993/tcpと返ってきます。
なのに認証に失敗してしまいます。
saslauthdは、起動させても停止させても上手くいきませんでした。今は停止させています。

いろいろと調べましたが上手くいきませんでした。

証明書は以下のサイトの手順で作りました。
server-setting.info/centos/private-ca-cert.html

以下のサイトの手順でポート開放もしました。
server-setting.info/centos/dovecot-starttls-ssltls.html

master.cf とmain.cf の設定は以下のとおりです。
pastebin.com/CwSiSAZJ
pastebin.com/YL84mg0X

smtpd.conf や maillog、dovecotの設定ファイルは以下のとおりです。
wgf.jp/stext/4137

お力を貸していただきたいです。よろしくお願いします。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2015/10/24 16:23

ログの情報を追記してください
退会済みユーザー

退会済みユーザー

2015/10/24 16:38 編集

ログの中を見なければ、送信できないという不具合の原因なんて特定できませんよ。 ドメイン部分はexample.com にでも置き換えてあればいいけど、それ以外を隠されては回答不能です。
narga

2015/10/24 16:41 編集

ログというのは/var/log/messagesの中身でよろしいでしょうか?初心者ですみません
退会済みユーザー

退会済みユーザー

2015/10/24 16:44

/var/log/maillog はありませんか?
narga

2015/10/24 16:49

あります、少々お待ちください。追記致します。
narga

2015/10/24 16:57

とりあえず過去数時間分のログを追記しました。http://wgf.jp/stext/4137 です。ご確認お願い致します。
退会済みユーザー

退会済みユーザー

2015/10/24 17:03

tail -f /var/log/maillog で開き、thundarbird で接続、新しく出力された部分のみ記載してください。
narga

2015/10/24 17:15 編集

tail -f の分も wgf.jpに記載致しました。ご確認お願い致します。あまり決定的な原因はないみたいです…
退会済みユーザー

退会済みユーザー

2015/10/24 17:15

送信に失敗している部分のログないですけど…
narga

2015/10/24 17:18 編集

送信に失敗したのは24日のお昼~23時頃までです。
退会済みユーザー

退会済みユーザー

2015/10/24 17:21

だから、最新の失敗ログを出してくれと言っているんです
narga

2015/10/24 17:25

すみません、そういうことでしたか。最新の失敗ログを載せました。ご確認お願い致します。
guest

回答3

0

ベストアンサー

/var/log/maillog で、

warning: SASL authentication problem: unable to open Berkeley db /etc/sasldb2: Not a directory

とのことですので、/etc/sasldb2 ファイルが postfix プロセスから読めないのだと思います。
パーミッション、オーナー、グループを 640 root mail などにするといいと思います。

他にもログに warning が出ているので、一つ一つ調べて解決した方がいいと思います。

投稿2015/10/25 02:58

TaichiYanagiya

総合スコア12141

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

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

TaichiYanagiya

2015/10/25 03:00

なお、/etc/sasl2/smtpd.conf で "pwcheck_method: auxprop" としているので、saslauthd は利用せず、直接 /etc/sasldb2 を参照します。
narga

2015/10/25 06:57

ご回答ありがとうございます。`ls -la /etc/sasldb2`と打つと`-rw-r----- 2 root postfix 12288 10月 25 15:29 /etc/sasldb2`と返ってくるので、パーミッションの設定はOKだと存じます。sasldb2 を参照しているのでsaslauthdは停止しても問題ないんですね。
TaichiYanagiya

2015/10/25 07:38

すみません。maillog の古いところを見ていました。 /etc/sasldb2 のパーミッションは問題ないようです。 設定を見直したところ、/etc/sasldb2 で認証するのであれば、main.cf の下記設定は不要です。 > smtpd_sasl_type = dovecot > smtpd_sasl_path = private/auth もし、dovecot auth を利用するのでしたら、ユーザー名はドメインなしになると思います。
narga

2015/10/25 08:02

紛らわしくてすみません。古いログを消しました。`smtpd_sasl_type = dovecot`, `smtpd_sasl_path = private/auth` をそれぞれコメント化してメール送信してみたところ、エラーログが増えました。wgf.jp の方に追記致しました。よろしくお願い致します。
TaichiYanagiya

2015/10/25 08:15

「unable to open Berkeley db /etc/sasldb2」がまた出ていますね。 SELinux はどうでしょうか? # getenforce # ls -lZ /etc/sasldb2
narga

2015/10/25 08:19

`# getenforce`と打ったところ`Disabled`と、`# ls -lZ /etc/sasldb2`と打ったところ`-rw-r----- root postfix ? /etc/sasldb2` と返ってきました。
TaichiYanagiya

2015/10/25 08:37

SELinux は無効ですか。アテがはずれました。 再現できていないのですが、chroot 環境になっているのかもしれません。 master.cf で chroot の列を「n」にするとどうでしょうか? (変更前) submission inet n - - - - smtpd (変更後) submission inet n - n - - smtpd
TaichiYanagiya

2015/10/25 08:51

/var/spool/postfix/etc という **ファイル** があると、「warning: SASL authentication problem: unable to open Berkeley db /etc/sasldb2: Not a directory」が出ました。
narga

2015/10/25 09:40 編集

返信が遅れて申し訳ありません、master.cf でchrootの列を n にしたところ、エラーログに大きく変化が出てきました。質問内容および wgf.jp の方に追記致しました。unable to open Berkeley db /etc/sasldb2 というエラーは無くなりました。度々ですがよろしくお願い致します。
TaichiYanagiya

2015/10/25 11:24 編集

114.0.0.x からの接続については AUTH PLAIN で認証に成功していますが、from, to が空のようです。from, to に正しいアドレスを設定すれば送信できると思います。 (追記) あ、ログを転記するときに空にしているのですか? (追記2) master.cf の submission のオプションに "-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject" が必要です。smtps も同様。
narga

2015/10/25 11:54

返信ありがとうございます。どうやら「<」と「>」の記号がHTMLタグと認識されてしまい、表示がされてなかったようです。実際は、user=<contact>,from=<contact@example.com>,to=<hogehoge@yahoo.co.jp>になっています。 `-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject`を有効にしましたが、送信はできませんでした。その時のログもあまり変わっていないようです。wgf.jp の方に追記致しました。
narga

2015/10/25 12:17 編集

すみません、もう1度コンソール上でログを見なおしてみたのですが、from=<> と空になっている部分もありました。to=, user= の部分は空ではありませんでした。 追記)エラーログの<>を修正致しました。
TaichiYanagiya

2015/10/25 13:17

ログは、キューに入っているメールメッセージを(relayhost である)自身の 587 番ポートに転送しようとして、ここで認証されないため拒否されています。 main.cf の「relayhost= [mail.example.com]:587」を削除してください。 114.0.0.x から認証に成功してキューに入ったものを、relayhost に転送せず、そのまま送信すればいいです。
narga

2015/10/25 13:23

relayhost を消したら送信できました!本当にありがとうございました。迷惑メール扱いにもなっていなくて安心しました。長々とお付き合い頂き感謝致します。
guest

0

smtpd_sasl_local_domain = $myhostname は以下ではないでしょうか?
smtpd_sasl_local_domain = $mydomain

投稿2015/10/24 20:14

over

総合スコア4309

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

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

narga

2015/10/25 06:38

ご回答ありがとうございます。smtpd_sasl_local_domain = $mydomain に変更しましたが、変化はありませんでした。wgf.jp の方にもログを追記致しました。
guest

0

Oct 25 02:19:53 tk2-100-160xx postfix/smtpd[5414]: warning: unknown[114.0.0.x]: SASL PLAIN authentication failed:
Oct 25 02:20:01 tk2-100-160xx postfix/smtpd[5414]: warning: unknown[114.0.0.x]: SASL LOGIN authentication failed: UGFzc3dvcmQ6
Oct 25 02:20:20 tk2-100-160xx postfix/smtpd[5414]: warning: unknown[114.0.0.x]: SASL PLAIN authentication failed: UGFzc3dvcmQ6
Oct 25 02:20:24 tk2-100-160xx postfix/smtpd[5414]: warning: unknown[114.0.0.x]: SASL LOGIN authentication failed: UGFzc3dvcmQ6

この部分を見てわかるように、SASL で認証が失敗していますね。

saslauthdは、起動させても停止させても上手くいきませんでした。今は停止させています。

停止させているとのことですが、起動させないことには動くわけもありません。
また、起動しても動かないという現象ですが、おそらくSASLの設定ミスという可能性が高い。

まずはSASLを起動し、再度送信を試みて、また、ログを出力です。

投稿2015/10/24 17:32

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

narga

2015/10/24 17:41

お付き合い頂きありがとうございます。saslauthdを起動し、enable にしました。その後のログを出力しましたが、あまり変化は無いみたいです… wgf.jp の方にも追記致しました。
退会済みユーザー

退会済みユーザー

2015/10/24 17:43

同時刻の /var/log/messages の内容もお願いします。
narga

2015/10/24 18:24 編集

同時刻のmessagesをwgf.jpの方に追記致しました。あまり手がかりは無いみたいです..メール送信の前後で/var/log/messagesにログが出力されることはありませんでした。
narga

2015/10/24 18:31

ありがとうございます。 www.mk-mode.comのログが出たことは無いです。 KosukeさんはMySQLを使われているんですね。1度その設定を試してみます。本当に自分でトライ&エラーするしかないですね..
退会済みユーザー

退会済みユーザー

2015/10/24 18:35

なかなか、メールサーバーの設定って繰り返し行うものではないので、コーディングと違って設定とか覚えてはいないですからね… 毎回自分も苦労してます。
narga

2015/10/24 18:45

確かにその通りですね。Kosukeさんのような経験者でも苦労するほどなんですね。情報を探してもほとんど英語ばかりでなおさら大変です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問