Postfix ile giden SMTP için şifrelemeyi zorlamak


22

Postfix'e giden postayı şifrelemesini nasıl söyleyeceğini bilen var mı?

Resepsiyonda şifrelemeyi kullanacak şekilde yapılandırdım, ancak giden postayla yapamıyorum. Bu benim main.cfdosyam:

smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = smtpd
transport_maps = hash:/etc/postfix/transport

# tls config
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.pem
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.pem
smtpd_tls_CAfile = /etc/postfix/ssl/smtpd.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

Yanıtlar:


30

smtp_tls_security_level = şifreleyin veya smtp_enforce_tls = evet

Belirli hedefler için smtp_tls_policy_maps kullanabilirsiniz

smtp_use_tls = evet ve smtp_enforce_tls = evet kullanımdan kaldırıldı. 2.3 ve sonrası Postfix ile bunun yerine smtp_tls_security_level kullanın.

Unutmayın: TLS şifrelemesinin güçlendirilmesi, TLS yapılandırılmamış SMTP ana bilgisayarı için posta teslim sorunlarına neden olabilir. Sunucu, yapılandırılmış TLS ile yalnızca dahili sunucunuza posta göndermek için kullanılıyorsa, bu durumda sorun olmaz. Ancak sunucu postaları genel sunuculara göndermek için kullanılıyorsa, tüm sunucuların TLS desteğine sahip olduğunu varsayamazsınız. Bu durumda smtp_tls_security_level = may kullanın


1
Sanırım sadece mailclient yazılımından gönderen posta sunucusuna zorlamak istiyor.
Posta

4

Fikir, kullanıcıları e-posta istemcilerini şifreli giden smtp sunucusuyla yapılandırmaya zorlamaktır. Şimdiki conf ile Thunderbird onlara smtp sunucusuyla düz metin halinde iletişim kurma seçeneğini bıraktı ...

Kaynak kodu yeniden derlemeden Thunderbird'deki seçeneği devre dışı bırakamazsınız, ancak şifrelemeyi zorlamak için postfix stmpd daemon'u (istemcilerinizden posta alan) yapılandırabilirsiniz. Bunu yapmak için, eski seçeneklerin karşılığı olan smtpd_tls_security_level = encrypt kullanın , smtpd_use_tls = yes ve smtp_enforce_tls = yes . smtpd_tls_security_level = şifreleyin ve smtp_enforce_tls = yes , smtpd_tls_auth_only = evet anlamına gelir

Postfix dokümantasyonundan smtpd_tls_security_level = encrypt ile ilgili

Zorunlu TLS şifrelemesi: SMTP istemcilerine STARTTLS desteğini duyurun ve istemcilerin TLS şifrelemesini kullanmalarını isteyin. RFC 2487'ye göre, bu halka açık bir SMTP sunucusu olması durumunda UYGULANMAMALIDIR . Bunun yerine, bu seçenek yalnızca özel sunucularda kullanılmalıdır.

Genel sunucu kullanıyorsanız, 25 / tcp bağlantı noktasında e-posta şifrelemesini zorlayamazsınız. Daha iyi bir çözüm smtpd daemon port 25 / tcp postfix ile müşterilerinizden posta teslimini devre dışı bırakmak ve postfix gönderim arka planını etkinleştirmektir (bu, yalnızca 587 / tcp portunda çalışan RFC 4409'da açıklanan yerel müşterilerinizden posta almak için kullanılan özel postfix smtpd daemonudur ) . Bu set yapmak için olabilir = smtpd_tls_security_level ve çıkarın permit_sasl_authenticatedgelen smtpd_recipient_restrictions . In master.cfgönderme cini hakkında yorumsuz hattı:

submission inet n       -       n       -       -   submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_recipient_resrictions=permit_sasl_authenticated,reject

1

Merak ediyorum, TLS kullanmadığını nasıl söylüyorsunuz? Smtp_tls_loglevel (smtpd_tls_loglevel'den farklı) için varsayılan değer 0'dır, bu nedenle varsayılan olarak Postfix'in günlüklerinde giden postalar için TLS anlaşması hakkında hiçbir şey görmezsiniz.

Smtp_tls_loglevel = 1 veya daha yüksek ayarlarsanız, bir mesaj gönderilirken kayıt defterinde bunun gibi bir satır görmelisiniz:

Mar 7 22:28:10 raf sonrası / smtp [27400]: müşteri tarafı TLS motorunu başlattı

Tembel olduğumu itiraf ediyorum, ancak bunun dışında (ve yukarıda ms'in notları) config bana bir bakışta iyi gözüküyor.


1
Simon’ın tüm postaları TLS kullanarak şifrelenmeye zorlamak istediğini anladım. smtp_use_tls = yes, uzak sunucu destekliyorsa TLS'nin postfix kullanımına izin verir (smtp_use_tls = yes, smtp_tls_security_level = may ile eşdeğerdir). Giden posta TLS kullanılarak şifrelenmişse, uygun mesaj posta günlüğüne yerleştirilmelidir. Smtp_ * seçeneklerinin smtpd_ * 'dan farklı postfix daemon'ları için haklısınız (smtpd_ * uzak sunuculardan posta almak için, smtp_ * uzak sunuculara teslimat postaları için).
sumar

Aslında sorunun biraz belirsiz olabileceğini düşünüyorum. En azından Simon'ın Postfix'in TLS gerektirmesini isteyip istemediğini ya da sadece alıcının sunucusu destekliyorsa kullanmasını söyleyemem.
Jlupolt

1
Sözlerin için teşekkürler, muhtemelen beni iyi açıklamadım. Fikir, kullanıcıları e-posta istemcilerini şifreli giden smtp sunucusuyla yapılandırmaya zorlamaktır. Şimdiki conf ile, Thunderbird onlara smtp sunucusuyla düz metin olarak iletişim kurma seçeneğini bıraktı ... Bundan kaçınmak mümkün mü? Şimdiden teşekkürler, Simon.
Simon

TLS'nin aktif olup olmadığını belirlemenin kolay yolu, alıcı taraftaki ham mesaja bakmak ve Kimlik Doğrulama-Sonuçlara bakmaktır: domainkeys = neutral (no sig); Bu, TLS kullanmadığını gösterir
Scott Stensland
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.