web-dev-qa-db-ja.com

SMTPプレーンテキスト認証を無効にしてOSX 10.10YosemiteのServer.appに固執するにはどうすればよいですか。

最近、Server.appを実行しているOS X 10.10Yosemiteに置き換えたSMTPリレーサーバーがあります。これはSMTPのみのリレーとして実行されており、LANからのホストのみがリレーを介してリレーアウトできるようにします。これは、サブネットからのすべてのメールが、Sender Policy Framework(SPF)などのドメインの検証済みホストから正しく送信されるようにするためです。

リレーアウトの設定は非常に簡単でした。 OS X Serverでのメールサービスの無効化 に関するAppleのドキュメントに従って、次のことを行いました。

Sudo serveradmin settings mail:global:skip_enable_service_check = yes
Sudo serveradmin settings mail:imap:enable_imap = no
Sudo serveradmin settings mail:imap:enable_pop = no
Sudo serveradmin settings mail:imap:enable_sieve = no
Sudo serveradmin stop mail
Sudo serveradmin start mail

これにより、SMTPのみが実行され、メールサービスを再起動または再起動した後もケースが維持されます。 SMTPリレーサーバーのホスト名は、リレー先のドメインのサブドメインであるため、/Library/Server/Mail/Config/postfix/main.cfを変更して、「mydestination」から$myhostname$mydomainを削除する必要がありました。結果の行は次のようになります。

mydestination = localhost.$mydomain, localhost

これも機能し、Server.appは変更を認識して保持します(Sudo serveradmin settings mail:postfixを実行して確認)。同じことがmynetworks行の微調整にも当てはまり、リレーが受け入れられるサブネットを制限します。

私が経験している問題は、smtpd_pw_server_security_options行への変更(具体的には、LOGINおよびPLAIN認証タイプの削除)が固執せず、デフォルト(以下を含む)に戻らないことです。メールサービスの開始時に不要なプレーンテキスト認証タイプ)。 Mac OS X ServerのApple固有のpostfixオプション に関するAppleのドキュメントは、LOGINおよびPLAINオプションをスキップすることが有効であることを示唆しています。

私が試してみました:

  1. smtpd_pw_server_security_options/Library/Server/Mail/Config/postfix/main.cfに対する前述の変更
  2. Apple固有の接尾辞オプションのドキュメントに記載されているように、Sudo serveradmin settings mail:postfix:smtpd_use_pw_server = noを実行すると(mail:postfix:smtpd_use_pw_serverはYosemiteでは空の辞書のようです)
  3. Sudo serveradmin settings postfix:smtp_sasl_auth_enable = yesを実行しています(Yosemiteではデフォルトで「no」になっているため、Appleこのオプションの機能を上記のmail:postfix:smtpd_use_pw_serverオプションから交換しただけだと思います)
  4. serveradminを使用してmail:postfix:smtpd_pw_server_security_options配列からloginplain要素を削除します(例:Sudo serveradmin settings mail:postfix:smtpd_pw_server_security_options:_array_index:2 = delete)が、CharlesEdgeが彼のkyrptedブログで言及しているように OS X Serverの「serveradminsettings」エントリの削除 についての投稿、その機能は壊れているようです。また、これらの設定は/Library/Server/Mail/Config/MailServicesOther.plistやその他の.plistに反映されていないため、手動で変更することはできません。

プレーンテキスト認証設定を部分的に選択されたチェックボックス(おそらくIMAPが無効になっているため)から完全に選択解除されたチェックボックスに切り替えることにより、Server.appを使用してプレーンテキスト認証を一時的に無効にしましたが、一貫性がなく、メールサービスを再起動した後も固執しません。

OS XでServer.appを使用しないようにアドバイスすることを除いて、どんな提案や解決策も大歓迎です。これは、私がここに入ることができない理由でAppleの製品をドッグフードしなければならないすべてのAppleショップ向けです。当然のことながら、プレーンテキスト認証を有効のままにしておくことも、明らかなセキュリティとPCI DSSコンプライアンス上の理由からのオプションではありません。

4
morgant

Server.appを介してSMTPプレーンテキスト認証を無効にすることはできますが、うまく機能しません(確かに、メールサービスの再起動や再起動には耐えられず、突っついているときに失われることもあります)。 Server.app内)。一時的な回避策として、「PLAIN」と「LOGIN」のプレーンテキストSMTP認証が再度有効になった場合に少なくとも自動的に通知できることに気付きました。

私はその仕事をする次の簡単なbashスクリプトを作成しました:

#!/bin/bash

# 
# smtp_plaintext_auth_check - check to see if plaintext auth is supported by SMTP service and warn if it is
# 
# v0.1   2015-03-12 - Morgan Aldridge <http://serverfault.com/users/13496/morgant>
#                     Initial version.
# 

admin_emails="[email protected]"
debug=false

Host=$(hostname)
date=$(date +%Y-%m-%d-%H%M)

plaintext_auth_enabled=false

# check via serveradmin to see if plaintext auth is allowed by the SMTP server
if $debug; then echo "Checking Mail service to see if SMTP plaintext auth is supported..."; fi
while IFS= read -r line; do
    if [[ "$line" =~ (plain|login) ]]; then
        if $debug; then echo "  Found '${BASH_REMATCH[1]}' SMTP auth method which is plaintext!"; fi
        plaintext_auth_enabled=true
    fi
done <<< "$(serveradmin settings mail:postfix:smtpd_pw_server_security_options)"

# if plaintext auth is enabled, notify admins
if $plaintext_auth_enabled; then
    if $debug; then echo "Notifying admins via email that SMTP plaintext auth IS supported. That's bad!"; fi
    mail -s "Error on $Host: SMTP plaintext auth is allowed! $date" $admin_emails <<-EOM
        ERROR on $Host: SMTP plaintext auth appears to be allowed by the Mail service! This is a security risk and against PCI DSS compliance!

        Please resolve ASAP!
    EOM
else
    if $debug; then echo "Phew, SMTP plaintext auth doesn't appear to be supported. That's good."; fi
fi

繰り返しますが、これは回避策であり、SMTPプレーンテキスト認証をプログラムで無効にすることを強くお勧めします。

2
morgant