bg-tutorials

Postfix’e SSL Sertifikası Nasıl Kurulur

Bu eğitimde, popüler Linux posta aktarım aracı Postfix üzerinde bir SSL/TLS sertifikasının nasıl kurulacağını öğreneceksiniz.

Ayrıca sizi tüm süreç boyunca yönlendiren bir video da kaydettik. Aşağıdan izleyebilir veya metin sürümünü okumaya devam edebilirsiniz.

Postfix üzerinde CSR kodu oluşturma

CSR kodunuzu zaten oluşturduysanız ve sadece kurulum adımlarına ihtiyacınız varsa, doğrudan Postfix üzerinde SSL Sertifikası Kurma bölümüne geçebilirsiniz.

Güvenilir bir CA’dan (Sertifika Yetkilisi) SSL sertifikası almak için bir CSR (Sertifika İmzalama Talebi) göndermeniz gerekir. CSR, iletişim ve kuruluş bilgilerinizi içeren kodlanmış bir metin bloğudur. İki seçeneğiniz var:

SSL sağlayıcınızla sipariş sürecinde, CSR dosyasını herhangi bir düz metin düzenleyicisinde açın ve —–BEGIN CERTIFICATE REQUEST—– ile —–END CERTIFICATE REQUEST—– satırları dahil tüm bloğu kopyalayıp ilgili kutuya yapıştırın. CA talebinizi doğruladıktan ve sertifikayı verdikten sonra, aşağıdaki kurulumla devam edin.

Postfix üzerinde SSL sertifikası kurma

CA talebinizi doğruladıktan ve sertifika dosyalarını e-posta kutunuza gönderdikten sonra kuruluma başlayabilirsiniz.

Adım 1: SSL dosyalarınızı hazırlayın

Postfix, X.509 formatında SSL/TLS sertifikaları kullanır. Doğru bir kurulum için üç dosyaya ihtiyaç vardır:

  • Özel anahtarınız, CSR ile birlikte sunucunuzda oluşturulan dosya (örneğin privkey.key).
  • Birincil SSL sertifikanız, CA’nın size e-posta ile gönderdiği ZIP arşivinin içindeki dosya. Bu kılavuzda buna server.crt olarak değineceğiz.
  • Ara sertifika(lar), aynı ZIP arşivindeki CA paketi. Buna intermediate.pem olarak değineceğiz.

Üç dosyayı da tek bir dizinde tutabilirsiniz, örneğin /etc/postfix/. Özel anahtarın yalnızca root tarafından okunabilir olduğundan emin olun:

sudo chmod 600 /etc/postfix/privkey.key

Adım 2: Sertifika zincirini oluşturun

Dosyaları nasıl bir araya getireceğiniz Postfix sürümünüze bağlıdır. Önce sürümünüzü kontrol edin:

postconf mail_version

Önerilen yöntem (Postfix 3.4 ve üzeri)

Özel anahtarı, sunucu sertifikasını ve ara sertifika(lar)ı içeren tek bir zincir dosyası oluşturun, kesinlikle bu sırayla:

cat /path/to/privkey.key /path/to/server.crt /path/to/intermediate.pem > /etc/postfix/rsachain.pem

Bu modern yöntem, sertifika yenileme sorunlarını önler ve Postfix’in smtpd_tls_chain_files yönergesiyle sorunsuz çalışır. Zincir dosyasını, özel anahtarınızı içerdiği için anahtarla aynı şekilde koruyun:

sudo chmod 600 /etc/postfix/rsachain.pem

Alternatif yöntem (tüm Postfix sürümleri)

3.4’ten daha eski bir Postfix sürümü kullanıyorsanız, anahtarı ayrı tutun ve yalnızca sunucu sertifikasını ara sertifika(lar) ile birleştirin:

cat /path/to/server.crt /path/to/intermediate.pem > /etc/postfix/server.pem

Bu paketi ve özel anahtarı aşağıdaki yapılandırmada ayrı ayrı belirteceksiniz.

Adım 3: Postfix’i yapılandırın

Ana yapılandırma dosyasını /etc/postfix/main.cf açın ve kurulumunuza uygun stili seçin.

Seçenek A: Postfix 3.4 veya üzeri (önerilen). Postfix’i oluşturduğunuz tek zincir dosyasına yönlendirin:

smtpd_tls_chain_files = /etc/postfix/rsachain.pem
smtpd_tls_security_level = may

Seçenek B: eski yöntem (Postfix 3.4’ten eski sürümler). Sertifika paketini ve anahtarı ayrı ayrı belirtin:

smtpd_tls_cert_file = /etc/postfix/server.pem
smtpd_tls_key_file = /etc/postfix/privkey.key
smtpd_tls_security_level = may

Bu yönergelerle ilgili birkaç not:

  • smtpd_tls_security_level = may, 25 numaralı port üzerinden gelen posta için fırsatçı TLS’yi etkinleştirir. Bu, herkese açık bir MX sunucusu için doğru ayardır: STARTTLS’yi destekleyen göndericilere bunu bildirirken, desteklemeyenlerden gelen düz bağlantıları da kabul eder. Herkese açık bir MX üzerinde bunu encrypt olarak ayarlamayın, çünkü bu, yalnızca düz metin gönderen meşru postaları reddeder. (Eski smtpd_use_tls = yes seçeneği kullanımdan kaldırılmıştır; smtpd_tls_security_level onun yerini alır.)
  • İster smtpd_tls_chain_files (Seçenek A) ister smtpd_tls_cert_file (Seçenek B) ile sunuyor olun, tam zincir sertifikası (sertifikanız artı ara sertifikalar) kullanın. Yalnızca son sertifikayı sunmak, alıcı tarafında zincir doğrulama hatalarına yol açar.
  • Modern Postfix, SSLv2, SSLv3 ve zayıf şifreleri varsayılan olarak zaten devre dışı bırakır, bu nedenle gelen 25 numaralı port trafiği için ek dışlama listelerine gerek yoktur.

Gönderim hizmetini (587 numaralı port) güvenceye alın

Kendi kullanıcılarınız Postfix üzerinden posta gönderdiğinde (Outlook, Thunderbird, Apple Mail vb. üzerinden), sunucudan sunucuya teslimat için ayrılmış 25 numaralı port yerine gönderim (submission) portu olan 587’ye bağlanırlar. Bu portu yalnızca kimliği doğrulanmış kullanıcılarınız kullandığından, daha sıkı kurallar uygulayabilirsiniz: TLS’yi zorunlu kılın ve minimum protokolü TLS 1.2 olarak ayarlayın.

/etc/postfix/master.cf dosyasını açın, submission hizmetinin etkin olduğundan emin olun ve aşağıdaki geçersiz kılmaları ekleyin:

submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_tls_mandatory_protocols=>=TLSv1.2

İnsanların sık sık hata yaptığı birkaç detay:

  • smtpd_tls_mandatory_protocols yalnızca güvenlik seviyesi encrypt (zorunlu TLS) olduğunda etkindir; bu da tam olarak 587 numaralı port için geçerli durumdur. 25 numaralı porttaki fırsatçı TLS için (güvenlik seviyesi may), buna karşılık gelen ayar smtpd_tls_protocols olur, ancak herkese açık bir MX üzerinde bunu genellikle Postfix’in varsayılan değerlerinde bırakırsınız ki eski göndericileri geri çevirmeyin.
  • Kısa >=TLSv1.2 sözdizimi, Postfix 3.6 veya üzeri gerektirir ve >= ile sürüm arasında boşluk olmamalıdır. Postfix 3.4 veya 3.5’te, bunun yerine dışlama biçimini kullanın: smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1.
  • master.cf dosyasında, bir -o geçersiz kılmasında = etrafında boşluk yoktur (örneğin -o smtpd_tls_security_level=encrypt), ancak main.cf dosyasında anahtar = değer şeklinde boşluklarla yazarsınız.

İsteğe bağlı: 465 numaralı portta örtük TLS. Birçok modern istemci, oturumun tamamını baştan TLS ile sarmalayan 465 (SMTPS / “submissions”) numaralı portu tercih eder. RFC 8314, bunu 587 ile birlikte destekler. Bunu sunmak için, master.cf dosyasında sarmalayıcı modu ile smtps hizmetini etkinleştirin:

smtps     inet  n       -       y       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes

Adım 4: Postfix’i yeniden yükleyin

Yeniden yüklemeden önce, yapılandırmayı sözdizimi hataları için kontrol etmek iyi bir uygulamadır:

sudo postfix check

Bu komut hiçbir şey döndürmezse, değişiklikleri uygulayın. Yeniden yükleme, etkin bağlantıları kesintiye uğratmadan yapılandırmayı yeniden okur:

sudo systemctl reload postfix

systemd bulunmayan sistemlerde, karşılık gelen komut şudur:

sudo postfix reload

Adım 5: Sertifikayı doğrulayın

OpenSSL ile Postfix’in doğru sertifikayı ve zinciri sunduğunu doğrulayın. yourdomain.com yerine posta sunucunuzun ana bilgisayar adını yazın:

openssl s_client -starttls smtp -connect yourdomain.com:25 -servername yourdomain.com </dev/null 
| openssl x509 -noout -issuer -subject -dates

Çıktı, sunucu sertifikanızın konusunu, veren kuruluşunu (CA) ve geçerlilik tarihlerini göstermelidir. Bunun yerine gönderim hizmetini test etmek için portu 587 olarak değiştirin (o da STARTTLS kullanır) veya örtük TLS portu 465 için -starttls smtp kısmını çıkarıp doğrudan 465 numaralı porta bağlanın. Tebrikler, Postfix üzerinde bir SSL sertifikasını başarıyla kurdunuz.

SSL kurulumunuzu test edin

Sertifikayı kurduktan sonra, yapılandırmanızı hata veya güvenlik açıkları açısından taramanız akıllıca olur. SSL Checker aracımız, sertifikanızın ve kurulumunun her yönü hakkında size anlık raporlar sunar, böylece zincirin eksiksiz olduğunu ve protokollerin doğru şekilde yapılandırıldığını doğrulayabilirsiniz.

Postfix için en iyi SSL sertifikası nereden satın alınır?

Doğru yere geldiniz. SSL Dragon‘da, piyasadaki en düşük fiyatlardan en geniş SSL ürün yelpazelerinden birini sunuyoruz ve tüm sertifikalarımız Postfix posta aktarım aracıyla uyumludur.

Hangi sertifikayı seçeceğinizden emin değil misiniz? SSL Wizard aracımız, posta sunucunuz için doğru ürünü hızlı ve kolay bir şekilde bulmanızı sağlar.

Sıkça Sorulan Sorular

Postfix, SSL sertifikası için hangi dosyayı kullanır?

TLS, /etc/postfix/main.cf içinde yapılandırılır. Postfix 3.4 ve üzerinde, önerilen yönerge özel anahtarı, sunucu sertifikasını ve ara sertifikaları tutan tek bir PEM dosyasına işaret eden smtpd_tls_chain_files‘dir. Eski sürümlerde, bunun yerine smtpd_tls_cert_file (tam zincir sertifikası) ve smtpd_tls_key_file (özel anahtar) ayrı ayrı ayarlanır. 587 ve 465 numaralı portlara özel geçersiz kılmalar /etc/postfix/master.cf içinde yer alır.

Postfix zincir dosyası için doğru sıralama nedir?

smtpd_tls_chain_files için sıralama önce özel anahtar, sonra sunucu (son) sertifikası, ardından ara sertifika(lar) şeklindedir:
cat privkey.key server.crt intermediate.pem > /etc/postfix/rsachain.pem
Sıralama yanlışsa, Postfix zinciri yükleyemez. Kök CA sertifikasını dahil etmeyin; istemciler ona zaten güveniyor.

smtpd_tls_security_level için “may” mı yoksa “encrypt” mi kullanmalıyım?

25 numaralı port üzerinden gelen posta için may (fırsatçı TLS) kullanın. Herkese açık bir MX, TLS’yi desteklemeyen göndericilerden gelen postaları kabul etmelidir ve encrypt onları reddeder, bu da postaların kaybolmasına yol açar. encrypt (zorunlu TLS) ayarını, yalnızca kendi kullanıcılarınızın bağlandığı 587 numaralı porttaki kimliği doğrulanmış gönderim hizmeti için ayırın.

Postfix’i yeniden başlatmam mı yoksa yeniden yüklemem mi gerekiyor?

Sertifika ve TLS değişiklikleri için yeniden yükleme yeterlidir; sudo systemctl reload postfix (veya sudo postfix reload) komutunu çalıştırın. Yeniden yükleme, etkin bağlantıları kesmeden yapılandırmayı yeniden okur. Sözdizimi hatalarını etkinleşmeden önce yakalamak için önce sudo postfix check komutunu çalıştırın.

Postfix’in sertifikayı sunduğunu nasıl kontrol ederim?

OpenSSL ile bağlanın ve Postfix’in STARTTLS üzerinden sunduğu sertifikayı okuyun:
openssl s_client -starttls smtp -connect yourdomain.com:25 -servername yourdomain.com </dev/null | openssl x509 -noout -issuer -subject -dates
Bu, sertifikanın konusunu, veren kuruluşunu ve geçerlilik tarihlerini yazdırır. Zincirin eksiksiz olduğunu doğrulamak için SSL araçlarımızla tam bir tarama da yapabilirsiniz.

Sonuç

Postfix üzerinde bir SSL sertifikası kurmak, tam zincirli bir PEM dosyası oluşturmak, main.cf dosyasını smtpd_tls_chain_files (veya eski smtpd_tls_cert_file / smtpd_tls_key_file çifti) ile bu dosyaya yönlendirmek, gelen posta için smtpd_tls_security_level = may ayarını yapmak, 587 numaralı porttaki gönderim hizmetini güçlendirmek, yapılandırmayı sudo postfix check ile kontrol etmek ve Postfix’i yeniden yüklemekten ibarettir.

Önce bir sertifikaya mı ihtiyacınız var? SSL sertifikalarımıza göz atın.

Bugün SSL Dragon’dan sipariş vererek SSL Sertifikalarında %10 indirimden yararlanın!

Hızlı düzenleme, güçlü şifreleme, %99,99 tarayıcı güvenilirliği, özel destek ve 25 günlük para iade garantisi. Kupon kodu: SAVE10

A detailed image of a dragon in flight
Tarafından yazıldı

SSL Sertifikaları konusunda uzmanlaşmış deneyimli içerik yazarı. Karmaşık siber güvenlik konularını açık, ilgi çekici içeriğe dönüştürmek. Etkili anlatımlar yoluyla dijital güvenliğin geliştirilmesine katkıda bulunun.