Kendi e-posta sunucunuzu kurmak, bağımsız bir iletişim altyapısı sağlamanın en güvenilir yollarından biridir. Ancak yanlış yapılandırılmış bir mail sunucusu hem spam kaynağı olur hem de önemli mesajların spam klasörüne düşmesine yol açar. Bu rehberde, Linux üzerinde en yaygın kullanılan açık kaynaklı MTA (Mail Transfer Agent — Posta Transfer Ajanı) olan Postfix'i doğru ve güvenli biçimde yapılandırmayı adım adım ele alıyoruz.
main.cf parametrelerini ayarlamak, TLS şifreleme eklemek ve SPF/DKIM/DMARC kayıtlarını DNS'e işlemek zorunludur. Bu üç adımı atlayan bir sunucu büyük ihtimalle spam olarak işaretlenecektir.Postfix, 1997'den bu yana aktif olarak geliştirilen ve SMTP (Simple Mail Transfer Protocol) standardını uygulayan bir MTA'dır. RFC 5321 ile tanımlanan SMTP protokolünü temel alan Postfix, güvenlik, performans ve yapılandırma kolaylığı açısından Sendmail'e üstün bir alternatif olarak tasarlanmıştır. Debian, Ubuntu, Red Hat Enterprise Linux ve CentOS gibi popüler dağıtımlarda varsayılan MTA olarak yer almaktadır.
Kendi mail sunucunuzu işletmenin birkaç önemli nedeni vardır: üçüncü taraf servislere bağımlılığı azaltmak, veri üzerinde tam kontrol sahibi olmak ve kurumsal e-posta politikalarını merkezi biçimde yönetmek. Ancak bu özgürlük, beraberinde ciddi bir sorumluluk getirir: sunucunuzu doğru yapılandırmazsanız, tüm internet için açık bir spam geçidi (open relay) haline gelebilir.
Kuruluma başlamadan önce aşağıdaki ön koşulların karşılandığından emin olun:
Ubuntu 22.04 LTS veya Debian 12 üzerinde Postfix kurmak için aşağıdaki adımları izleyin:
| Adım | Komut / İşlem | Açıklama |
|---|---|---|
| 1 | sudo apt update && sudo apt install postfix -y |
Paket listesini güncelle ve Postfix'i kur. Kurulum sırasında yapılandırma türü sorulur; Internet Site seçin. |
| 2 | System mail name: mail.ornek.com |
Kurulum sihirbazında sunucunuzun tam nitelikli alan adını (FQDN) girin. |
| 3 | sudo systemctl enable --now postfix |
Postfix'i başlat ve sistem açılışında otomatik çalışacak şekilde ayarla. |
| 4 | postconf mail_version |
Kurulu Postfix sürümünü doğrula. |
Postfix'in ana yapılandırma dosyası /etc/postfix/main.cf'dir. Aşağıdaki temel parametreleri doğru ayarlamak, işlevsel ve güvenli bir sunucu için zorunludur:
# Sunucu kimliği
myhostname = mail.ornek.com
mydomain = ornek.com
myorigin = $mydomain
# Hangi arayüzlerden posta kabul edilecek
inet_interfaces = all
inet_protocols = ipv4
# Bu sunucunun yerel teslim yapacağı alan adları
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# Ağ güvenliği: yalnızca lokal ve güvenilen ağlardan relay izni
mynetworks = 127.0.0.0/8
# Relay kontrolü: açık relay'i önler
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
# Posta kutusu formatı (Maildir önerilir)
home_mailbox = Maildir/
# Banner: sürüm bilgisini gizle
smtpd_banner = $myhostname ESMTP
Bu yapılandırmada en kritik parametre smtpd_relay_restrictions'dır. reject_unauth_destination kuralı olmadan sunucunuz bir açık relay haline gelir; bu durum hem kara listeye alınmanıza hem de yasal sorumluluklara yol açabilir.
Modern e-posta altyapısında şifrelenmemiş bağlantılar kabul edilmez. RFC 3207, SMTP üzerinde STARTTLS uzantısını tanımlar. Let's Encrypt gibi ücretsiz bir sertifika otoritesinden sertifika aldıktan sonra main.cf'e şunları ekleyin:
# TLS - Gelen bağlantılar (smtpd)
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.ornek.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.ornek.com/privkey.pem
smtpd_tls_security_level = may
smtpd_tls_auth_only = yes
smtpd_tls_loglevel = 1
# TLS - Giden bağlantılar (smtp)
smtp_tls_security_level = may
smtp_tls_loglevel = 1
smtp_tls_CApath = /etc/ssl/certs
smtpd_tls_security_level = may TLS'i isteğe bağlı yapar; tüm alıcıların TLS'i desteklememesi nedeniyle encrypt yerine bu değer tercih edilir. Bununla birlikte, yalnızca iç ağda kullanılan sunucular için encrypt değeri zorunlu hale getirilebilir.
Posta sunucunuzu kurmanın en kritik adımlarından biri, DNS tabanlı kimlik doğrulama kayıtlarını eklemektir. Bu kayıtlar olmadan gönderdiğiniz e-postalar büyük ihtimalle spam klasörüne düşer.
SPF (Sender Policy Framework — RFC 7208): Hangi IP adreslerinin alan adınız adına posta gönderebileceğini tanımlar. DNS'e şu şekilde bir TXT kaydı eklenir:
ornek.com. IN TXT "v=spf1 ip4:203.0.113.1 -all"
DKIM (DomainKeys Identified Mail — RFC 6376): Gönderilen e-postalara kriptografik imza ekler. Postfix için opendkim paketi kurulmalı ve yapılandırılmalıdır:
sudo apt install opendkim opendkim-tools -y
opendkim-genkey -t -s default -d ornek.com
Üretilen ortak anahtar (default.txt dosyasındaki değer) DNS'e TXT kaydı olarak eklenir. Özel anahtar ise /etc/opendkim/keys/ornek.com/default.private olarak saklanır.
DMARC (Domain-based Message Authentication, Reporting & Conformance — RFC 7489): SPF ve DKIM başarısız olduğunda ne yapılacağını belirtir ve raporlama mekanizması sağlar:
_dmarc.ornek.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc-raporlar@ornek.com; pct=100"
Postfix ile yalnızca sistem bildirimleri veya kurumsal yazışmalar değil, toplu ticari e-posta da gönderilmesi planlanıyorsa Türk mevzuatına uymak zorunludur. İki temel kanun bu alanı düzenler:
Toplu ticari e-posta göndermek isteyenlerin BTK'nın İYS (İleti Yönetim Sistemi) platformuna kayıt olması ve alıcı onaylarını bu sistem üzerinden doğrulaması gerekmektedir.
Yapılandırmayı tamamladıktan sonra aşağıdaki araçlarla doğrulama yapın:
/var/log/mail.log (Debian/Ubuntu) veya /var/log/maillog (RHEL/CentOS) gerçek zamanlı hata tespiti için temel kaynaktır.telnet mail.ornek.com 25 komutuyla SMTP banner'ının görünüp görünmediğini kontrol edin.# Postfix yapılandırmasını sözdizimi hatalarına karşı kontrol et
sudo postfix check
# Yapılandırmayı yeniden yükle (servisi durdurmadan)
sudo postfix reload
# Son posta kuyruğunu görüntüle
mailq
Postfix, modüler mimarisi ve güvenlik odaklı tasarımıyla öne çıkar. Her işlevi ayrı bir süreç üstlenir; bu sayede bir bileşendeki açık tüm sistemi tehdit etmez. Sendmail'in monolitik yapısına kıyasla yapılandırması çok daha anlaşılırdır. Exim ise özellikle İngiltere kökenli barındırma şirketleri arasında popülerdir ve çok esnek kural motoru sunar; ancak öğrenme eğrisi Postfix'ten daha diktir.
Port 25, sunucular arası (MTA'dan MTA'ya) posta iletiminde kullanılır ve genellikle son kullanıcı erişimine kapalı tutulur. Port 587 (SMTP Submission — RFC 6409), e-posta istemcilerinin (Outlook, Thunderbird vb.) kimlik doğrulaması yaparak posta göndermesi için tasarlanmıştır. İyi bir yapılandırmada port 587, SASL kimlik doğrulaması ve zorunlu TLS ile birlikte açık tutulur.
Açık relay (open relay), herhangi bir gönderenin herhangi bir alıcıya posta iletmesine izin veren yanlış yapılandırılmış bir SMTP sunucusudur. Spam göndericiler bu tür sunucuları keşfedip kötüye kullanır; bu durumda IP adresiniz kara listeye alınır ve meşru postalarınız da teslim edilmez hale gelir. smtpd_relay_restrictions parametresinin doğru ayarlanması bu riski ortadan kaldırır.
Postfix, kendi başına kullanıcı kimlik doğrulaması yapmaz; bu görevi Dovecot veya Cyrus SASL gibi bir yardımcı servise devreder. En yaygın yaklaşım Dovecot SASL kullanmaktır: Dovecot kurulup yapılandırıldıktan sonra main.cf'e smtpd_sasl_type = dovecot, smtpd_sasl_path = private/auth ve smtpd_sasl_auth_enable = yes satırları eklenir.
Certbot, sertifika yenileme işlemini otomatik hale getirir. sudo certbot renew --deploy-hook "postfix reload" komutu yenileme sonrasında Postfix'i otomatik yeniden yükler. Genellikle /etc/cron.d/certbot dosyası bu komutu günde iki kez çalıştıracak şekilde yapılandırılır.
Gerçek zamanlı izleme için sudo tail -f /var/log/mail.log komutu kullanılır. Her başarılı teslimat, red ve hata bu dosyaya kaydedilir. Daha gelişmiş izleme için Pflogsumm aracı günlük özet raporları üretir: sudo pflogsumm /var/log/mail.log.
En yaygın nedenler şunlardır: PTR kaydının eksik olması, SPF/DKIM/DMARC kayıtlarının yapılandırılmamış olması, IP adresinin kara listede bulunması, düşük gönderim hacmi (yeni IP'lerin itibarı oluşmamıştır) ve e-posta içeriğindeki spam tetikleyici ifadeler. mail-tester.com gibi araçlarla sorunun kaynağı tespit edilebilir.
Postfix, posta alımı (SMTP) ve iletiminden sorumludur; Dovecot ise posta kutularının yönetimi ve IMAP/POP3 erişiminden. Postfix aldığı postaları Maildir formatında dosya sistemine yazar, Dovecot da bu postaları kullanıcıların e-posta istemcilerine sunar. İkisi arasındaki bağ LMTP protokolü veya doğrudan Maildir paylaşımı üzerinden kurulur.
KVKK Madde 7 uyarınca kişisel veriler işleme amacının ortadan kalkmasıyla silinmeli, yok edilmeli veya anonim hale getirilmelidir. Posta sunucusu günlükleri (log dosyaları) IP adresleri içerdiğinden kişisel veri sayılır. Saklama süresi, veri işleme envanterinizde belirlenmeli ve Kişisel Verileri Koruma Kurumu'nun yayımladığı rehberler çerçevesinde tespit edilmelidir. Teknik açıdan logrotate ile otomatik log döngüsü ve silme politikası uygulanması önerilir.
Postfix, smtp_destination_rate_delay ve default_destination_rate_delay parametreleriyle her alıcı sunucuya gönderim hızını sınırlandırmanıza olanak tanır. Örneğin smtp_destination_rate_delay = 1s her bağlantı arasında 1 saniye bekletir. Bu ayar, özellikle yeni kurulan sunucularda IP itibarını olumsuz etkileyebilecek ani büyük hacimli gönderimleri engeller.
Reklamsız, KVKK uyumlu; kurulum ve geçiş ücretsiz, mailleri biz taşırız.