Postfix の必須 smtp/smtpd と「必須ではない」の違いと設定

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_levelsmtp_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
    

背景:非常に高いセキュリティ基準を持つセキュリティ重視の企業向けですしかしまた、この設定では電子メールが失われないようにしたいです。

追伸:私は説明を読みました設定パラメータそして私の知識のほとんどはそこから来ています。

答え1

  1. に関してsmtp[d]_tls_[mandatory_]ciphers

はい。

  1. smtpd_tls_security_levelとの両方を may に設定した場合smtp_tls_security_level、便宜的な設定のみが関連し、必須の設定で何を設定したかは関係なくなるということですか?

はい。

  1. 安全でありながら公開メール サーバーを作成したい場合、次の構成 (使用される暗号化に関して) は問題ないでしょうか?

SSL を無効にして暗号を制限していますが、暗号化されていないトラフィックは引き続き許可されています。他のメール サーバーとの通信では、暗号化がまったくないよりは、暗号化が不十分なほうがよいと考えています。

論文を引用するには応用暗号強化 (ACH)によるより良い暗号:

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

指定された暗号スイートでは、サーバーは利用可能な最良の暗号を優先し、可能であれば Perfect Secrecy も優先し、不正な暗号を許可せずにすべての関連クライアントをサポートします。詳細については、リンク先の論文を参照してください。この論文には、理論を含む推奨事項に関する非常に詳細な情報が記載されています。上記の postfix セクションの説明は、私が寄稿したものです (他の多くの人によってレビューされています)。

関連情報