Postfix ve SSL ile Sanal Alanlar


21

Birden fazla sanal etki alanını barındırmak için Postfix posta sunucusu kurulumum var ( xxx.comve yyy.com).

Kullanıcılar giden posta sunucularını mail.xxx.comve olarak yapılandırır mail.yyy.com. Tüm posta sunucuları aynı fiziksel Postfix sunucusuna başvurur (aynı IP, bu Linux sunucusunda çalışan tek Postfix örneği).

Postfix smtpd_tls_cert_fileyapılandırma seçeneği için hangi SSL sertifikasına ihtiyacım var ?

Yoksa mail.xxx.comkullanıcılara giden sunucuları olarak kullanmaları için tek bir sertifika yyy.comkullanmalı mail.xxx.commıyım? Bu, ayrı sanal sunucuların yanılsamasını bozar.

[Not: alanlar tamamen ayrıdır. Bunlar ortak bir kökü paylaşan birden fazla alt alan adı değildir].

Yanıtlar:


10

Yoksa mail.xxx.com için tek bir sertifika kullanmalı ve yyy.com kullanıcılarına giden sunucu olarak mail.xxx.com'u kullanmalarını mı söylemeliyim?

Evet, nihayetinde bunu yapmanız veya birden fazla CommonNameveya SubjAltNameözniteliğe sahip bir sertifika kullanmanız gerekir .

Postfix'in istemcinin hangi ana bilgisayar adını istediğini bilmesi mümkün değildir. Hostİstenen etki alanını belirten HTTP / 1.1 başlığı gibi bir şey yoktur ve Postfix henüz SNI'yi desteklememektedir .

Posta sunucunuz için iki farklı etki alanına sahip olmak istiyorsanız smtpd, iki ayrı ağ arabirimi / IP adresi üzerinde iki örnek çalıştırmanız gerekir . Genellikle "tarafsız" bir alan adı seçer ve kullanıcılarınıza bunu kullanmasını söylersiniz.


19

Aslında ... Her etki alanının geçerli bir SSL sertifikası kullanmasını istiyorsanız, 2 çözümünüz vardır: çoklu etki alanı sertifikası kullanın veya her etki alanını benzersiz bir IP üzerinde ayarlayın. İlk çözüm korkunç: bu sertifikalar genellikle oldukça pahalıdır (ucuz olanları bulabilmenize rağmen), aynı sertifikada sertifikalandırmak istediğiniz tüm alanları listelerler ve en önemlisi, yalnızca bir kez verilirler, bu nedenle sadece bir yeni alan tamamen yeni bir sertifika almak demektir.

Daha iyi çözüm, her etki alanını kendi IP'sine yerleştirmek ve ardından her sertifikayı kendi IP'siyle eşleştirmektir.

Postfix'de bunu nasıl yapacağınız aşağıda açıklanmıştır.

İlk olarak her etki alanı için sertifikalarınızı / etc / postfix / dizinine yerleştireceksiniz (ayrıca / etc / postfix / ssl / dizinini de oluşturabilirsiniz ) Not: .pem sertifika dosyalarını kullanan Plesk kullanıyorum, ancak .key ve .cer dosyaları (.pem dosyaları bu sırayla .key ve .cer dosyasının birleşimidir)

sonra, / etc / postfix / içindeki master.cf dosyasını değiştirmeniz gerekir

Aslında, benim gibi görünüyordu (muhtemelen ben sunucu kurduktan sonra son 3 IP ekledi çünkü:

1.1.1.1- unix - n n - - smtp -o smtp_bind_address=1.1.1.1 -o smtp_bind_address6= -o smtp_address_preference=ipv4

2.2.2.2- unix - n n - - smtp -o smtp_bind_address=2.2.2.2 -o smtp_bind_address6= -o smtp_address_preference=ipv4

smtp inet n - n - - smtpd
smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes
submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticate d,reject -o smtpd_sender_restrictions=

3.3.3.3- unix - n n - - smtp -o smtp_bind_address=3.3.3.3 -o smtp_bind_address6= -o smtp_address_preference=ipv4

4.4.4.4- unix - n n - - smtp -o smtp_bind_address=4.4.4.4 -o smtp_bind_address6= -o smtp_address_preference=ipv4

5.5.5.5- unix - n n - - smtp -o smtp_bind_address=5.5.5.5 -o smtp_bind_address6= -o smtp_address_preference=ipv4

Şimdi, her sertifikayı ilgili IP'sine bağlamak için aşağıdakileri yapın:

1.1.1.1- unix - n n - - smtp -o smtp_bind_address=1.1.1.1 -o smtp_bind_address6= -o smtp_address_preference=ipv4

2.2.2.2- unix - n n - - smtp -o smtp_bind_address=2.2.2.2 -o smtp_bind_address6= -o smtp_address_preference=ipv4

3.3.3.3- unix - n n - - smtp -o smtp_bind_address=3.3.3.3 -o smtp_bind_address6= -o smtp_address_preference=ipv4

4.4.4.4- unix - n n - - smtp -o smtp_bind_address=4.4.4.4 -o smtp_bind_address6= -o smtp_address_preference=ipv4

5.5.5.5- unix - n n - - smtp -o smtp_bind_address=5.5.5.5 -o smtp_bind_address6= -o smtp_address_preference=ipv4

#smtp inet n - n - - smtpd
#smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes
#submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions=

1.1.1.1:smtp inet n - n - - smtpd -o smtpd_tls_cert_file=/etc/postfix/cert1.pem -o smtpd_tls_key_file=/etc/postfix/cert1.pem
1.1.1.1:smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_tls_cert_file=/etc/postfix/cert1.pem -o smtpd_tls_key_file=/etc/postfix/cert1.pem
1.1.1.1:submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions= -o smtpd_tls_cert_file=/etc/postfix/cert1.pem -o smtpd_tls_key_file=/etc/postfix/cert1.pem

2.2.2.2:smtp inet n - n - - smtpd -o smtpd_tls_cert_file=/etc/postfix/cert2.pem -o smtpd_tls_key_file=/etc/postfix/cert2.pem
2.2.2.2:smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_tls_cert_file=/etc/postfix/cert2.pem -o smtpd_tls_key_file=/etc/postfix/cert2.pem
2.2.2.2:submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions= -o smtpd_tls_cert_file=/etc/postfix/cert2.pem -o smtpd_tls_key_file=/etc/postfix/cert2.pem

3.3.3.3:smtp inet n - n - - smtpd -o smtpd_tls_cert_file=/etc/postfix/cert3.pem -o smtpd_tls_key_file=/etc/postfix/cert3.pem
3.3.3.3:smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_tls_cert_file=/etc/postfix/cert3.pem -o smtpd_tls_key_file=/etc/postfix/cert3.pem
3.3.3.3:submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions= -o smtpd_tls_cert_file=/etc/postfix/cert3.pem -o smtpd_tls_key_file=/etc/postfix/cert3.pem

4.4.4.4:smtp inet n - n - - smtpd -o smtpd_tls_cert_file=/etc/postfix/cert4.pem -o smtpd_tls_key_file=/etc/postfix/cert4.pem
4.4.4.4:smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_tls_cert_file=/etc/postfix/cert4.pem -o smtpd_tls_key_file=/etc/postfix/cert4.pem
4.4.4.4:submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions= -o smtpd_tls_cert_file=/etc/postfix/cert4.pem -o smtpd_tls_key_file=/etc/postfix/cert4.pem

5.5.5.5:smtp inet n - n - - smtpd -o smtpd_tls_cert_file=/etc/postfix/cert5.pem -o smtpd_tls_key_file=/etc/postfix/cert5.pem
5.5.5.5:smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_tls_cert_file=/etc/postfix/cert5.pem -o smtpd_tls_key_file=/etc/postfix/cert5.pem
5.5.5.5:submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions= -o smtpd_tls_cert_file=/etc/postfix/cert5.pem -o smtpd_tls_key_file=/etc/postfix/cert5.pem

Bu kadar!! (yukarıda görüldüğü gibi orijinal satırları yorumlamayı unutmayın)

Not: kurye imap kullanıyorsanız POP / IMAP için aynısını yapmak için, bu .pem dosyalarının kopyalarını / usr / share / courier-imap / (veya Plesk durumunda) / usr / share / ) olarak adlandırır ve bunları şu şekilde adlandırırsınız: imapd.pem.xx.xx.xx.xx pop3d.pem.xx.xx.xx.xx

burada xx.xx.xx.xx ilgili IP adresidir (2 sertifika aynı dosyanın kopyalarıdır)

Bu yardımcı olur umarım!


Bu kadar ayrıntılı bir cevap yazmaya zaman ayırdığınız için teşekkür ederiz! Eminim gelecekte birine yardım edecek.
nimrodm

2
bu umut! Bunu bir araya getirmek biraz zaman aldı ve bunu tahmin eden veya işe yarayan biri yerine aslında işe yarayan çözümler bulmak nadirdi ..
Peter

1
Şimdi letsencrypt komutunu kullanarak ilk yöntemle başlayabilirsiniz. Ücretsiz çok alanlı sertifikalara sahip olabilirsiniz
balping
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.