web-dev-qa-db-ja.com

Postfix必須のsmtp / smtpdと「必須ではない」の違いと構成

3つの質問:

  1. 私が間違っている場合は私を訂正してください:
    smtpd_tls_mandatory_ciphers =>着信必須TLS暗号化の設定
    smtpd_tls_ciphers =>着信便宜TLS暗号化の設定
    smtp_tls_mandatory_ciphers =>発信必須TLS暗号化の設定
    smtp_tls_ciphers =>発信オポチュニスティックTLS暗号化の設定
  2. 両方を設定した場合smtpd_tls_security_levelおよびsmtp_tls_security_levelからmayの場合、日和見的な設定のみが関連します。つまり、必須の設定で何を設定してもかまいません。
  3. 安全でありながらパブリックメールサーバーを作成したい場合、次の構成(使用される暗号化に関して)は問題ありませんか?現在TLSをサポートしているサーバーの数や、一般的なセキュリティレベルについてはよくわかりませんが、それでもほとんどのサーバーと通信できるようにしたいと考えています。

    smtpd_tls_mandatory_ciphers = high
    smtp_tls_mandatory_ciphers = high
    smtpd_tls_ciphers = high
    smtp_tls_ciphers = high
    smtp_tls_security_level = may
    smtpd_tls_security_level = may
    
    smtp_tls_protocols = !SSLv2, !SSLv3
    smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
    smtpd_tls_protocols = !SSLv2, !SSLv3
    smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
    
    smtp_tls_exclude_ciphers = aNULL, DES, RC4, MD5
    smtpd_tls_exclude_ciphers = aNULL, DES, RC4, MD5
    #hope this is enough since it is also added to the mandatory exclusions
    smtp_tls_exclude_ciphers = aNULL, DES, RC4, MD5
    smtpd_tls_exclude_ciphers = aNULL, DES, RC4, MD5
    

背景:これは、かなり高いセキュリティ基準を備えたセキュリティ指向の企業向けです[〜#〜]しかし[〜 #〜]この構成でメールが失われることも望んでいません。

PS:構成パラメーター の説明を読みました。また、私の知識のほとんどはここから得られます。

2
Akimiya
  1. smtp[d]_tls_[mandatory_]ciphersについて

はい。

  1. smtpd_tls_security_levelsmtp_tls_security_levelの両方をに設定した場合、日和見的な設定のみが関係します。つまり、必須の設定に何を設定してもかまいません。

はい。

  1. 安全でありながらパブリックメールサーバーを作成したい場合、次の構成(使用される暗号化に関して)は問題ありませんか?

SSLを無効にして暗号を制約していますが、暗号化されていないトラフィックは引き続き許可されます。他のメールサーバーとの通信では、暗号化がまったくないよりも暗号化が悪い方が良いと思います。

論文を引用するには Applied Crypto Hardening(ACH) by Bettercrypto

Postfixには5つの暗号の内部リストがあり、smtpd_tls_ciphersでそれらを切り替える可能性があります。ただし、多くのメールサーバーは古いプロトコルと暗号のみをサポートしているため、これはサーバー間接続のデフォルト値のままにしておきます。暗号化の誤りは、プレーンテキスト送信よりも優れていると考えています。 MUAへの接続の場合、TLSは必須であり、暗号スイートが変更されます。

メールクライアントへの接続では、暗号とプロトコルを制限することは非常に便利です。また、適切なものを優先することもできます。

MXおよびSMTPクライアントの構成:セクション2.3.1で説明したように、機会主義的な暗号化のため、プレーンテキストでの送信を避けるために他のメールサーバーと通信するための暗号またはプロトコルのリストを制限しません。

推奨される構成は次のとおりです。

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
# use 0 for Postfix >= 2.9, and 1 for earlier versions
smtpd_tls_loglevel = 0
# enable opportunistic TLS support in the SMTP server and client
smtpd_tls_security_level = may
smtp_tls_security_level = may
smtp_tls_loglevel = 1
# if you have authentication enabled, only offer it after STARTTLS
smtpd_tls_auth_only = yes
tls_ssl_options = NO_COMPRESSION

smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_mandatory_ciphers=high
tls_high_cipherlist=EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA
smtpd_tls_eecdh_grade=ultra

そしてこれはmaster.cfの場合:

submission inet n       -       -       -       -       smtpd
  -o smtpd_tls_security_level=encrypt
  -o tls_preempt_cipherlist=yes

指定された暗号スイートでは、サーバーは利用可能な最良の暗号を優先し、可能であれば完全な機密性も優先し、不正な暗号を許可せずに関連するすべてのクライアントをサポートします。詳細については、リンクされたペーパーを参照してください。理論を含む、推奨事項に関する詳細情報が記載されています。上で引用した接尾辞のセクションの説明は私によって提供されています(そして他の多くの人によってレビューされています)。

5
sebix