Mail Sunucu Kurulumu: Postfix ve Dovecot
Postfix MTA, Dovecot IMAP/POP3, SSL/TLS yapılandırması, sanal domain desteği, spam filtreleme ve Docker Mail Server kurulum rehberi.
İçindekiler
Mail Sunucu Kurulumu: Postfix ve Dovecot
Kendi mail sunucunuzu kurmak, e-posta iletişiminiz üzerinde tam kontrol sağlar. Bu rehberde Postfix MTA (Mail Transfer Agent), Dovecot IMAP/POP3 sunucusu, SSL/TLS yapılandırması, sanal domain desteği ve Docker Mail Server kurulumunu ele alacağız.
Mail sunucusu yönetimi karmaşık ve sürekli bakım gerektiren bir süreçtir. IP itibarı, spam filtreleme ve güvenlik güncellemeleri düzenli olarak takip edilmelidir.
Ön Gereksinimler
DNS Kayıtları
Mail sunucusu kurmadan önce aşağıdaki DNS kayıtlarını oluşturun:
# A kaydı - mail sunucusu IP'si
mail.example.com A 185.x.x.x
# MX kaydı - mail yönlendirme
example.com MX 10 mail.example.com
# SPF kaydı
example.com TXT "v=spf1 mx ip4:185.x.x.x -all"
# Reverse DNS (PTR) kaydı
185.x.x.x PTR mail.example.com
PTR (Reverse DNS) kaydı, REXE müşteri panelinden veya destek talebiyle ayarlanabilir. PTR kaydı olmadan gönderilen e-postalar spam olarak işaretlenebilir.
Hostname Ayarı
# Hostname'i mail sunucusu olarak ayarla
sudo hostnamectl set-hostname mail.example.com
# /etc/hosts dosyasını güncelle
echo "185.x.x.x mail.example.com mail" | sudo tee -a /etc/hosts
# Hostname kontrolü
hostname -f
Postfix Kurulumu (MTA)
Postfix, güvenilir ve performanslı bir Mail Transfer Agent'tır.
Kurulum
# Postfix ve bağımlılıkları kur
sudo apt update
sudo apt install postfix postfix-mysql -y
# Kurulum sırasında "Internet Site" seçin
# System mail name: example.com
Temel Yapılandırma
# /etc/postfix/main.cf
sudo nano /etc/postfix/main.cf
# Temel ayarlar
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost
# Ağ ayarları
inet_interfaces = all
inet_protocols = ipv4
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
# Mailbox ayarları
home_mailbox = Maildir/
mailbox_size_limit = 0
recipient_delimiter = +
# TLS ayarları
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_tls_security_level = may
smtp_tls_security_level = may
# SASL kimlik doğrulama
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
# Kısıtlamalar
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination,
reject_invalid_hostname,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unknown_sender_domain,
reject_rbl_client zen.spamhaus.org,
reject_rbl_client bl.spamcop.net
# Boyut limitleri
message_size_limit = 52428800
mailbox_size_limit = 1073741824
Submission Port (587) Yapılandırması
# /etc/postfix/master.cf
sudo nano /etc/postfix/master.cf
# Submission port ekle
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_auth_only=yes
-o smtpd_reject_unlisted_recipient=no
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
Dovecot Kurulumu (IMAP/POP3)
Dovecot, IMAP ve POP3 protokollerini destekleyen bir mail delivery agent'tır.
Kurulum
sudo apt install dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd -y
Yapılandırma
# /etc/dovecot/dovecot.conf
protocols = imap pop3 lmtp
listen = *, ::
# /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir
mail_privileged_group = mail
# /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = yes
auth_mechanisms = plain login
# /etc/dovecot/conf.d/10-ssl.conf
ssl = required
ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem
ssl_min_protocol = TLSv1.2
# /etc/dovecot/conf.d/10-master.conf
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
}
SSL/TLS Sertifikası
# Let's Encrypt sertifikası al
sudo apt install certbot -y
sudo certbot certonly --standalone -d mail.example.com
# Otomatik yenileme
sudo crontab -e
# Ekle: 0 3 * * * certbot renew --post-hook "systemctl restart postfix dovecot"
Docker Mail Server (Alternatif)
Docker Mail Server, tüm bileşenleri tek bir container'da sunar.
# docker-compose.yml
mkdir -p /opt/mailserver && cd /opt/mailserver
# docker-compose.yml
version: '3.8'
services:
mailserver:
image: ghcr.io/docker-mailserver/docker-mailserver:latest
container_name: mailserver
hostname: mail.example.com
ports:
- "25:25"
- "465:465"
- "587:587"
- "993:993"
volumes:
- ./docker-data/dms/mail-data/:/var/mail/
- ./docker-data/dms/mail-state/:/var/mail-state/
- ./docker-data/dms/mail-logs/:/var/log/mail/
- ./docker-data/dms/config/:/tmp/docker-mailserver/
- /etc/letsencrypt:/etc/letsencrypt:ro
environment:
- ENABLE_SPAMASSASSIN=1
- ENABLE_CLAMAV=1
- ENABLE_FAIL2BAN=1
- SSL_TYPE=letsencrypt
- PERMIT_DOCKER=none
restart: always
# Kullanıcı ekle
docker exec -it mailserver setup email add user@example.com
# DKIM anahtarı oluştur
docker exec -it mailserver setup config dkim
# Başlat
docker compose up -d
Spam Filtreleme
SpamAssassin
sudo apt install spamassassin spamc -y
sudo systemctl enable spamassassin
sudo systemctl start spamassassin
Postfix ile SpamAssassin Entegrasyonu
# /etc/postfix/master.cf'a ekle
smtp inet n - y - - smtpd
-o content_filter=spamassassin
spamassassin unix - n n - - pipe
user=spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
Test ve Doğrulama
# Postfix durumu
sudo systemctl status postfix
# Dovecot durumu
sudo systemctl status dovecot
# Port kontrolü
sudo ss -tlnp | grep -E '25|587|993|995'
# Mail gönderme testi
echo "Test mail" | mail -s "Test" user@example.com
# Log kontrolü
sudo tail -f /var/log/mail.log
# SMTP bağlantı testi
openssl s_client -connect mail.example.com:587 -starttls smtp
# IMAP bağlantı testi
openssl s_client -connect mail.example.com:993
Mail sunucunuzu kurduktan sonra mail-tester.com üzerinden spam puanınızı kontrol edin. 10/10 puan almak için SPF, DKIM ve DMARC kayıtlarının doğru yapılandırıldığından emin olun.
Sonuç
Kendi mail sunucunuzu kurmak tam kontrol sağlar ancak düzenli bakım gerektirir. Postfix + Dovecot kombinasyonu güvenilir bir çözüm sunarken, Docker Mail Server daha kolay yönetim imkanı sağlar. SPF, DKIM ve DMARC yapılandırmalarını mutlaka tamamlayın.
İlgili Makaleler
E-posta Blacklist'ten Çıkış Rehberi
Blacklist kontrol, delisting başvurusu, Spamhaus/Barracuda/SORBS prosedürleri ve IP itibar yönetimi rehberi.
SPF, DKIM ve DMARC Yapılandırması
E-posta gönderim güvenliğini artırmak için SPF kaydı oluşturma, DKIM imzalama, DMARC politikası belirleme, DNS kayıtları yapılandırma ve test araçları rehberi.