Postfix ve Dovecot ile Kendi E-posta Sunucunuzu Kurma Rehberi
Giriş
Kendi e-posta sunucunuzu kurmak, dijital bağımsızlığınızı artırmanın, gizliliğinizi korumanın ve e-posta akışınız üzerinde tam kontrol sahibi olmanın güçlü bir yoludur. Bu rehberde, Linux tabanlı bir sunucu üzerinde Postfix ve Dovecot kullanarak güvenilir ve işlevsel bir e-posta sunucusu nasıl kuracağınızı adım adım öğreneceksiniz. Postfix, e-postaları göndermek için kullanılan güçlü ve esnek bir Mail Transfer Agent (MTA) iken, Dovecot kullanıcıların e-postalarına IMAP veya POP3 protokolleri aracılığıyla erişmelerini sağlayan bir Mail Delivery Agent (MDA) ve IMAP/POP3 sunucusudur.
Bu rehber, Ubuntu veya Debian tabanlı sistemler için hazırlanmıştır ve temel Linux komut bilgisine, bir alan adına (domain name) ve bu alan adının DNS kayıtlarını yönetme yeteneğine sahip olduğunuzu varsaymaktadır. Kendi e-posta sunucunuzu kurmak karmaşık bir süreç olabilir, ancak doğru adımlarla ilerlediğinizde başarılı bir kurulum gerçekleştirebilirsiniz.
1. Ön Hazırlıklar ve Sistem Yapılandırması
E-posta sunucusu kurulumuna başlamadan önce sisteminizi hazırlamak ve temel yapılandırmaları yapmak önemlidir.
1.1. Sistem Güncelleme ve Hostname Ayarı
Sunucunuzun güncel olduğundan emin olun ve bir hostname belirleyin. Hostname, e-posta sunucunuzun kendini tanıtacağı addır ve genellikle alan adınızın bir alt alan adı (örneğin, mail.alanadiniz.com) olarak ayarlanır.
sudo apt update
sudo apt upgrade -y
sudo hostnamectl set-hostname mail.alanadiniz.com
echo "127.0.0.1 mail.alanadiniz.com mail localhost" | sudo tee -a /etc/hosts
echo "::1 mail.alanadiniz.com mail localhost" | sudo tee -a /etc/hosts
alanadiniz.com yerine kendi alan adınızı kullanmayı unutmayın.
1.2. DNS Kayıtları
E-posta sunucunuzun düzgün çalışması için DNS kayıtlarınızın doğru yapılandırılması hayati öneme sahiptir. Aşağıdaki kayıtları alan adınızın DNS yönetim panelinden eklemelisiniz:
- A Kaydı: E-posta sunucunuzun hostname’ini (örneğin,
mail.alanadiniz.com) sunucunuzun genel IP adresine işaret eder. - MX Kaydı: Alan adınız için hangi sunucunun e-posta almaktan sorumlu olduğunu belirtir. Genellikle
mail.alanadiniz.comadresine işaret eder ve bir öncelik değeri (örn. 10) ile birlikte gelir. - SPF Kaydı (TXT): Hangi sunucuların sizin adınıza e-posta göndermeye yetkili olduğunu belirtir. Bu, spam gönderimini engellemeye yardımcı olur. Örnek:
v=spf1 mx a ip4:SUNUCU_IP_ADRESI -all - DKIM (TXT): E-postaların gönderici tarafından imzalanmasını sağlayarak kimlik doğrulamasını yapar. Genellikle bir alt alan adı (örn.
default._domainkey) üzerinden yayımlanan uzun bir anahtardır. DKIM kurulumu bu rehberin kapsamı dışında olmakla birlikte, bir posta sunucusunun güvenilirliği için olmazsa olmazlardandır. - DMARC (TXT): SPF ve DKIM politikalarınızın nasıl uygulanacağını ve başarısız e-postalar için raporların nereye gönderileceğini belirtir. Örnek:
v=DMARC1; p=quarantine; fo=1; ruf=mailto:dmarc@alanadiniz.com; rua=mailto:dmarc@alanadiniz.com
1.3. Güvenlik Duvarı (UFW) Ayarları
Sunucunuzun güvenlik duvarını yapılandırarak sadece gerekli portları dışarıya açın. E-posta hizmetleri için standart portlar şunlardır:
- 25 (SMTP): E-posta gönderimi (diğer sunucularla iletişim).
- 587 (Submission): Kullanıcıların e-posta göndermesi için güvenli port (STARTTLS).
- 465 (SMTPS): Kullanıcıların e-posta göndermesi için güvenli port (SSL/TLS).
- 143 (IMAP): E-postalara erişim (STARTTLS).
- 993 (IMAPS): E-postalara güvenli erişim (SSL/TLS).
- 110 (POP3): E-postalara erişim (STARTTLS).
- 995 (POP3S): E-postalara güvenli erişim (SSL/TLS).
sudo ufw allow 25/tcp
sudo ufw allow 587/tcp
sudo ufw allow 465/tcp
sudo ufw allow 143/tcp
sudo ufw allow 993/tcp
sudo ufw allow 110/tcp
sudo ufw allow 995/tcp
sudo ufw enable
sudo ufw status
2. Postfix Kurulumu ve Yapılandırması
Postfix, e-postaları göndermek ve almak için kullanılan temel MTA’dır.
2.1. Postfix Kurulumu
sudo apt install postfix -y
Kurulum sırasında bir yapılandırma ekranı gelecektir:
- General type of mail configuration:
Internet Site - System mail name:
alanadiniz.com(kendi alan adınız) - Root and postmaster mail recipient: Boş bırakın veya kendi kullanıcı adınızı girin.
- Other destinations to accept mail for:
$myhostname, alanadiniz.com, mail.alanadiniz.com, localhost.alanadiniz.com, localhost - Force synchronous updates on mail queue:
No - Local networks:
127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 - Mailbox size limit:
0(limitsiz) - Local address extension character:
+ - Internet protocols to use:
all
2.2. Postfix main.cf Yapılandırması
Postfix’in ana yapılandırma dosyası /etc/postfix/main.cf‘dir. Bu dosyayı düzenleyerek sunucunuzun davranışını özelleştireceğiz.
sudo nano /etc/postfix/main.cf
Aşağıdaki satırları kontrol edin veya ekleyin/düzenleyin (alanadiniz.com yerine kendi alan adınızı kullanın):
# Temel yapılandırma
myhostname = mail.alanadiniz.com
mydomain = alanadiniz.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = all
mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost
E-posta kutusu formatı (Maildir kullanacağız)
home_mailbox = Maildir/
Postfix'in e-posta alacağı ağlar
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
SMTP kimlik doğrulama ayarları (Dovecot ile entegrasyon için)
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
TLS/SSL ayarları (Sonraki bölümde Let's Encrypt sertifikaları ile güncellenecek)
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_tls_security_level = may
Submission port (587) için ayarlar
submission_port = 587
smtpd_tls_wrappermode = no
smtpd_sasl_auth_enable = yes
smtpd_client_restrictions = permit_sasl_authenticated,reject
smtpd_relay_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
SMTPS port (465) için ayarlar (master.cf'de etkinleştirilecek)
#smtps_port = 465
#smtpd_tls_wrappermode = yes
#smtpd_sasl_auth_enable = yes
#smtpd_client_restrictions = permit_sasl_authenticated,reject
#smtpd_relay_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
Şimdilik varsayılan SSL sertifikalarını kullanacağız. Daha sonra Let’s Encrypt ile gerçek sertifikaları yapılandıracağız. smtpd_tls_security_level = may ayarı, TLS kullanımını isteğe bağlı yapar. Üretim ortamında encrypt veya dane gibi daha sıkı seçenekler düşünebilirsiniz.
2.3. Master.cf Yapılandırması
/etc/postfix/master.cf dosyasında, 465 (SMTPS) portunu etkinleştirelim:
sudo nano /etc/postfix/master.cf
Aşağıdaki satırların başındaki # karakterini kaldırarak yorum satırı olmaktan çıkarın:
smtps inet n - y - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_relay_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
2.4. Postfix Servisini Yeniden Başlatma
Yapılandırma değişikliklerinin etkili olması için Postfix’i yeniden başlatın:
sudo systemctl restart postfix
sudo systemctl enable postfix
sudo systemctl status postfix
3. Dovecot Kurulumu ve Yapılandırması
Dovecot, kullanıcıların e-postalarına IMAP ve POP3 protokolleri üzerinden erişmesini sağlar.
3.1. Dovecot Kurulumu
sudo apt install dovecot-imapd dovecot-pop3d -y
3.2. Dovecot Yapılandırması
Dovecot’un yapılandırma dosyaları /etc/dovecot/conf.d/ dizininde bulunur. Önemli dosyaları düzenleyelim:
sudo nano /etc/dovecot/conf.d/10-mail.conf
mail_location satırını bulun ve maildir:~/Maildir olarak ayarlayın:
mail_location = maildir:~/Maildir
sudo nano /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth satırını bulun ve yes olarak ayarlayın. Bu, düz metin parola göndermeyi engeller ve güvenliği artırır. Ancak test aşamasında sorun yaşarsanız geçici olarak no yapabilirsiniz:
disable_plaintext_auth = yes
auth_mechanisms = plain login
sudo nano /etc/dovecot/conf.d/10-master.conf
Postfix’in Dovecot’un kimlik doğrulama mekanizmasını kullanabilmesi için auth socket’i yapılandırmamız gerekiyor. service auth bloğunu bulun ve aşağıdaki gibi düzenleyin:
service auth {
unix_listener auth {
mode = 0660
user = postfix
group = postfix
}
}
sudo nano /etc/dovecot/conf.d/10-ssl.conf
SSL/TLS sertifikalarını yapılandırın. Şimdilik varsayılanları kullanacağız:
ssl = yes
ssl_cert =
Bu sertifikalar kendiliğinden oluşturulur. Daha sonra Let's Encrypt sertifikaları ile güncelleyeceğiz.
3.3. Dovecot Servisini Yeniden Başlatma
sudo systemctl restart dovecot
sudo systemctl enable dovecot
sudo systemctl status dovecot
4. Güvenlik İyileştirmeleri ve Ek Yapılandırmalar
E-posta sunucunuzun güvenliğini artırmak ve daha güvenilir hale getirmek için ek adımlar atmalıyız.
4.1. Let's Encrypt ile SSL/TLS Sertifikaları
Kendinden imzalı sertifikalar yerine Let's Encrypt ile ücretsiz ve güvenilir SSL/TLS sertifikaları alalım. Certbot aracını kullanacağız.
sudo apt install certbot -y
sudo certbot certonly --standalone -d mail.alanadiniz.com
Talimatları takip edin. Sertifikalarınız /etc/letsencrypt/live/mail.alanadiniz.com/ dizininde saklanacaktır.
Şimdi Postfix ve Dovecot'u bu sertifikaları kullanacak şekilde güncelleyelim:
Postfix (main.cf):
sudo nano /etc/postfix/main.cf
Aşağıdaki satırları Let's Encrypt sertifika yollarıyla güncelleyin:
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.alanadiniz.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.alanadiniz.com/privkey.pem
smtpd_tls_security_level = may # Üretimde "encrypt" veya "dane" düşünebilirsiniz.
Dovecot (10-ssl.conf):
sudo nano /etc/dovecot/conf.d/10-ssl.conf
Aşağıdaki satırları Let's Encrypt sertifika yollarıyla güncelleyin:
ssl_cert =
Sertifikaları güncelledikten sonra her iki servisi de yeniden başlatın:
sudo systemctl restart postfix
sudo systemctl restart dovecot
4.2. E-posta Kullanıcıları Oluşturma
Postfix ve Dovecot genellikle sistem kullanıcılarını e-posta kullanıcıları olarak kullanır. Yeni bir e-posta hesabı oluşturmak için yeni bir sistem kullanıcısı eklemeniz yeterlidir:
sudo adduser yeni_kullanici
Parola ve diğer bilgileri girdikten sonra, yeni_kullanici@alanadiniz.com adresine sahip bir e-posta hesabınız olacaktır.
4.3. Test Etme
Artık bir e-posta istemcisi (Thunderbird, Outlook, Mail vb.) kullanarak yeni_kullanici@alanadiniz.com hesabınıza bağlanmayı deneyebilirsiniz:
- IMAP Sunucusu:
mail.alanadiniz.com, Port: 993 (SSL/TLS) veya 143 (STARTTLS) - SMTP Sunucusu:
mail.alanadiniz.com, Port: 587 (STARTTLS) veya 465 (SSL/TLS) - Kullanıcı Adı:
yeni_kullanici(tam e-posta adresi değil) - Parola:
yeni_kullaniciiçin belirlediğiniz parola
Kendinize veya başka bir e-posta adresine test e-postaları gönderip alarak sunucunuzun doğru çalıştığını kontrol edin.
Sonuç ve Sıkça Sorulan Sorular (SSS)
Bu rehberde, Postfix ve Dovecot kullanarak temel bir e-posta sunucusunu nasıl kuracağınızı öğrendiniz. Kurulum, DNS yapılandırması, güvenlik duvarı ayarları ve SSL/TLS sertifikaları gibi temel adımları başarıyla tamamladınız. Kendi e-posta sunucunuzu yönetmek sürekli bakım ve güncellemeler gerektirse de, sunduğu kontrol ve esneklik buna değerdir.
Sıkça Sorulan Sorular (SSS)
- Neden kendi e-posta sunucumu kurmalıyım?
- Gizlilik, veri kontrolü, öğrenme deneyimi ve e-posta hizmeti sağlayıcılarına olan bağımlılığı azaltmak için kendi sunucunuzu kurabilirsiniz. Ayrıca, özel ihtiyaçlarınıza göre daha esnek yapılandırmalar yapabilirsiniz.
- DNS kayıtları neden bu kadar önemli?
- DNS kayıtları, e-posta trafiğinin doğru sunucuya yönlendirilmesini ve e-postalarınızın spam olarak işaretlenmemesini sağlar. Özellikle MX, A, SPF, DKIM ve DMARC kayıtları, e-posta sunucunuzun güvenilirliğini ve teslim edilebilirliğini artırır.
- SPF, DKIM, DMARC nedir ve neden kullanılmalı?
- Bunlar e-posta kimlik doğrulama protokolleridir. SPF (Sender Policy Framework), gönderen sunucunun yetkili olup olmadığını kontrol eder. DKIM (DomainKeys Identified Mail), e-postaların değiştirilip değiştirilmediğini doğrulamak için kriptografik imzalar kullanır. DMARC (Domain-based Message Authentication, Reporting & Conformance) ise SPF ve DKIM politikalarınızın nasıl uygulanacağını belirler ve başarısız e-postalar hakkında rapor almanızı sağlar. Bu üçü, e-postalarınızın spam filtrelerine takılmamasını ve kimlik avı saldırılarını önlemeyi büyük ölçüde sağlar.
- E-posta sunucum spam göndermesin diye ne yapmalıyım?
- Güçlü parolalar kullanın, tüm hizmetler için SSL/TLS şifrelemesini etkinleştirin, güvenlik duvarınızı doğru yapılandırın. Ayrıca, sunucunuzu düzenli olarak güncelleyin ve spam/virüs filtreleme çözümleri (örneğin SpamAssassin, ClamAV) entegre etmeyi düşünün.
- Sertifikalar neden önemli?
- SSL/TLS sertifikaları, e-posta trafiğinizi şifreleyerek gizliliğini ve güvenliğini sağlar. Kullanıcılarınızın e-posta istemcileri ile sunucunuz arasındaki iletişimin güvenli olduğunu garanti eder ve man-in-the-middle saldırılarını önler.
- Webmail arayüzü nasıl eklenir?
- Webmail arayüzleri (örneğin Roundcube, SOGo, RainLoop), kullanıcılara bir web tarayıcısı üzerinden e-postalarına erişme imkanı sunar. Bu uygulamalar genellikle PHP tabanlıdır ve Apache veya Nginx gibi bir web sunucusu üzerinde çalışır. Kurulumları genellikle ayrı bir rehber konusudur ve sunucunuza bir web sunucusu kurmanızı gerektirir.
- E-posta sunucum çalışmıyor, nereden başlamalıyım?
- İlk olarak sistem loglarını kontrol edin:
sudo tail -f /var/log/mail.logveyasudo journalctl -u postfix,sudo journalctl -u dovecot. Güvenlik duvarı ayarlarınızı kontrol edin ve portların açık olduğundan emin olun. DNS kayıtlarınızın doğru olduğundan emin olmak için online araçlar kullanın (örneğin MXToolbox). Ayrıca, yapılandırma dosyalarınızdaki yazım hatalarını kontrol edin.