Postfix 필수 smtp/smtpd와 "필수 아님" 차이점 및 구성

Postfix 필수 smtp/smtpd와 "필수 아님" 차이점 및 구성

세 가지 질문:

  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_levelmay, 필수 설정에서 무엇을 설정했는지는 중요하지 않습니다.
  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(암호화 강화) 적용~에 의해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

주어진 암호 모음을 사용하면 서버는 사용 가능한 최상의 암호를 선호하고 가능한 경우 완전 보안을 선호하며 잘못된 암호를 허용하지 않고 모든 관련 클라이언트를 지원합니다. 자세한 내용은 링크된 논문을 참조하세요. 이론을 포함하여 권장 사항에 대한 매우 자세한 정보를 제공합니다. 위에 인용된 접미사 섹션에 대한 설명은 제가 제공한 것입니다(그리고 다른 많은 사람들이 검토했습니다).

관련 정보