web-dev-qa-db-ja.com

SMTPサーバーでリレーするようにsendmailを構成する

私はubuntuディストリビューションを使用しています。

そして、私はaptでsendmailをインストールし、/etc/mail/sendmail.mcを編集して、行を追加しました

define(`SMART_Host', `ssl0.ovh.net')
FEATURE(`authinfo')

行の前

define(`_USE_ETC_MAIL_')dnl

また、認証を構成しました(/ etc/mail/authinfo):

AuthInfo:ssl0.ovh.net "U:[email protected]" "P:123456" "M:PLAIN"

m4 sendmail.mc >sendmail.cfおよびservice sendmail restartを実行します

テストするためのファイルを作成しましたemail.txt

To: [email protected]
From: [email protected]
Subject: Foo Bar

Hello
(empty line)

そして私はそれをテストします:cat email.txt | /usr/lib/sendmail -bm -t -v

そしてそれは失敗します:

[email protected]... Connecting to [127.0.0.1] via relay...
[email protected]... Deferred: Connection refused by [127.0.0.1]

外部のSMTPサーバー(ssl0.ovh.net)ではなく127.0.0.1に接続するのはなぜですか?

1
felix46r

Sendmailは、set root uidプログラムとしてインストールされていました。セキュリティリスクを回避するため、Sendmail-8.12 +は(デフォルトで)セットroot uidプログラムとしてインストールされなくなりました。

非rootユーザーによって実行されたsendmailは、127.0.0.1:25でroot特権で実行されているsendmailデーモンにメッセージを渡します。 root以外のユーザーが実行するSendmailは、/etc/mail/submit.cfではなく/etc/mail/sendmail.cfを使用します。

https://www.sendmail.com/sm/open_source/security/secure-install/


ルートとしてsendmail.cf構成をテストするには、以下のコマンドを実行します(-Amを追加したテストコマンド)。

cat email.txt | /usr/lib/sendmail -Am -bm -t -v
1
AnFi