Mail Sunucusu Nasıl Kurulur? Mail Sunucusu Kurma

Yıllarca DirectAdmin, cPanel veya Plesk’te birkaç tıklamayla mail açtık, gönderdik, aldık. Ancak projeleriniz büyüdükçe, müşteri trafiğiniz arttıkça ve verinizin gizliliği ön plana çıktıkça o konfor alanı bir hapishaneye dönüşür. “Hazır hizmetleri (Gmail, Microsoft 365) kullanayım” dersiniz; bu sefer de dev şirketlerin yapay zekasının maillerinizi reklam profillemesi için taradığını veya ani bir “politika ihlali” gerekçesiyle hesaplarınızın bir gecede askıya alınabileceğini fark edersiniz.

Veri size ait değilse, işiniz de tam olarak size ait değildir. Kendi VDS altyapınız üzerinde bir mail sunucusu kurmak; bağımsızlıktır, güvenliktir ve uzun vadede devasa bir maliyet avantajıdır.

Fakat e-posta mimarisi, internetin en eski, kuralcı ve karmaşık sistemlerinden biridir. Bu yazımızda “şu kodu yaz geç” demek yerine sektörü domine eden en modern araçlarla, hata payı bırakmayan bir mühendislik yaklaşımıyla ilerliyoruz. Karmaşık IPv6 protokollerini bir kenara bırakıp, saf IPv4 gücüyle, sorunsuz teslimat oranlarına (10/10) ulaşacağınız o muazzam sistemi kurmaya başlıyoruz.

Altyapı ve DNS

İlk olarak mail sunucusu kurarken başarının %50’si sunucu konfigürasyonunda, geri kalan %50’si ise ağ altyapınızın temizliğindedir. Blacklist’e girmemiş, port kısıtlaması olmayan ve IP itibarı yüksek bir sunucu şarttır. E-posta trafiğinizin belkemiğini oluşturacak, %100 NVMe SSD performansına ve kusursuz ağ izolasyonuna sahip VDS paketlerimizi inceleyerek projenize sağlam bir temel atabilirsiniz.

DNS Kayıtları

Sunucuya SSH ile girmeden önce DNS yöneticiniz üzerinden kayıtları açın.

  • A Kaydı: mail.siteniz.com -> VDS_IP_Adresi
  • MX Kaydı: siteniz.com -> mail.siteniz.com (Öncelik: 10)

PTR (Reverse DNS) Kaydı Neden Hayatidir?

Normal DNS (A kaydı), “Bu alan adı hangi IP’ye gidiyor?” sorusunu cevaplar. PTR kaydı ise karşı tarafın size sorduğu şu sorunun cevabıdır: “Bu IP adresi kime ait?” Eğer Gmail IP’nizi sorguladığında boş bir cevap görürse, mailinizi direkt reddeder. inetmar.com müşteri panelinizde bulunan **Hizmetlerim > IP Adreslerim** bölümünden IP adresinizin PTR kaydını mail.siteniz.com olarak mutlaka güncelleyin.

Ana Bileşenlerin Kurulumu ve İzolasyon

Sunucumuza root olarak bağlanıyoruz. Ubuntu 24.04 LTS üzerinde sistemimizi güncelleyip Postfix ve Dovecot yazılımlarımızı kuruyoruz.

Bu kurulumda e-posta imzalama ve spam filtreleme işlemleri için eski nesil yazılımlar yerine modern, C++ tabanlı ve düşük kaynak tüketimi sunan Rspamd ve Redis kullanacağız:

apt update && apt upgrade -y
apt install postfix postfix-pcre dovecot-imapd dovecot-lmtpd redis-server rspamd certbot nginx -y

(Postfix kurulum ekranı geldiğinde “Internet Site” seçeneğiyle ilerleyin ve Sistem Mail Adı olarak siteniz.com girin.)

Sistem Kullanıcılarını Ayırmak

Mail kullanıcıları ile sunucu kullanıcılarını aynı tutmak güvensiz bir yöntemdir. Bunun için tüm mailleri diskte tutacak yetkisiz tek bir sanal kullanıcı (vmail) oluşturuyoruz:

useradd -m -s /usr/sbin/nologin -G mail vmail
mkdir -p /home/vmail/Mail/Inbox
chown -R vmail:vmail /home/vmail/Mail

Postfix (MTA) ve Dovecot (MDA) Entegrasyonu

Postfix

/etc/postfix/main.cf dosyasını yapılandırıyoruz. Amacımız IPv4 kullanımını zorunlu kılmak, dışarıdan gelen SMTP yetkilendirmelerini Dovecot’a devretmek ve şifresiz veri akışını yasaklamak. Ayrıca Postfix’i yeni nesil filtremiz Rspamd’ye bağlıyoruz.

inet_protocols = ipv4
# Şifreler ağda düz metin dolaşmasın, TLS zorunlu olsun:
smtpd_tls_auth_only = yes

# Yetkilendirmeyi Dovecot yapsın:
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes

# Hangi e-posta adresi hangi kullanıcıya ait haritası:
virtual_alias_maps = hash:/etc/postfix/virtual

# Rspamd (DKIM ve Anti-Spam) Entegrasyonu:
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:11332
non_smtpd_milters = inet:localhost:11332

E-posta adreslerimizi /etc/postfix/virtual dosyasına tanımlıyoruz:

admin@siteniz.com   vmail
info@siteniz.com    vmail

Sisteme bu dosyayı okutmak için hash’liyoruz: postmap /etc/postfix/virtual

Dovecot

Maillerin webmail’den okunabilmesi için Dovecot’u yapılandırıyoruz. /etc/dovecot/dovecot.conf dosyasını açın:

ssl = required
# Şifrelerin tutulacağı özel dosya:
passdb {
  driver = passwd-file
  args = scheme=CRYPT /etc/dovecot/users
}
userdb {
  driver = passwd-file
  args = /etc/dovecot/users
}
# Postfix'in Dovecot üzerinden doğrulama yapabilmesi için güvenli soket:
service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }
}

/etc/dovecot/users dosyasını oluşturun. Şifrelerinizi Linux üzerinde doveadm pw -s CRYPT komutuyla şifreleyerek bu dosyaya admin@siteniz.com:{CRYPT}$2y$... formatında ekleyin. Dosya izinlerini chmod 644 /etc/dovecot/users olarak ayarlayın.

SPF, Rspamd ile DKIM, DMARC

Maillerinizin doğrudan spame düşmemesi için bu kayıtları kusursuz yapılandırmalısınız.

1. SPF (Sender Policy Framework): DNS ayarlarınız üzerinden TXT kaydı ekleyin:
v=spf1 mx a:mail.siteniz.com ip4:VDS_IPv4_Adresiniz -all

2. DKIM İmzalama:
Sunucumuzda alan adımız için DKIM anahtarımızı üretiyoruz:

mkdir -p /var/lib/rspamd/dkim/
rspamadm dkim_keygen -b 2048 -s mail -k /var/lib/rspamd/dkim/mail.private > /var/lib/rspamd/dkim/mail.txt
chown -R _rspamd:_rspamd /var/lib/rspamd/dkim/
chmod 600 /var/lib/rspamd/dkim/mail.private

Rspamd’ye bu anahtarı kullanmasını söylüyoruz. /etc/rspamd/local.d/dkim_signing.conf dosyasını oluşturup içine şunu yazın:

allow_username_mismatch = true;
domain {
    siteniz.com {
        path = "/var/lib/rspamd/dkim/mail.private";
        selector = "mail";
    }
}

Ardından servisi yeniden başlatın: systemctl restart rspamd.
Oluşturulan /var/lib/rspamd/dkim/mail.txt dosyasını açın. İçindeki uzun metni yani anahtarı DNS ayarlarınızın bulunduğu panelde mail._domainkey adıyla TXT kaydı olarak ekleyin.

3. DMARC:
DNS ayarlarınıza TXT kaydı olarak _dmarc adıyla şunu ekleyin:
v=DMARC1; p=quarantine; rua=mailto:admin@siteniz.com; fo=1

Roundcube & Docker

Güvenlik açıklarını ana sisteme sıçratmamak için Webmail arayüzümüzü Docker ile kuruyoruz. Bir dizin açın ve docker-compose.yml dosyası oluşturun:

services:
  roundcube:
    image: roundcube/roundcubemail:latest-apache
    ports:
      - "127.0.0.1:8080:80"
    environment:
      - ROUNDCUBEMAIL_DEFAULT_HOST=tls://VDS_IPv4_Adresiniz
      - ROUNDCUBEMAIL_SMTP_SERVER=tls://VDS_IPv4_Adresiniz

docker compose up -d ile arayüzü ayağa kaldırın.

Nginx ve SSL Entegrasyonu

Roundcube şu an sadece 8080 portunda çalışıyor. Let’s Encrypt ile ücretsiz SSL alıyoruz: certbot certonly --standalone -d mail.siteniz.com

Nginx /etc/nginx/sites-available/mail.siteniz.com dosyasını ayarlayarak 443 (HTTPS) üzerinden gelen trafiği güvenli şekilde Docker’a proxy’liyoruz:

server {
    listen 443 ssl;
    server_name mail.siteniz.com;
    ssl_certificate /etc/letsencrypt/live/mail.siteniz.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mail.siteniz.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Aktifleştirip systemctl reload nginx komutunu verdiğinizde webmail arayüzünüz yayındadır!

UFW, Fail2ban ve SRS

Nasıl ki kritik bir Sanal POS entegrasyonu için sunucunuzda IP izinlerini ince ince ayarlayıp, PowerShell üzerinden bağlantının sağlıklı kurulduğunu milimetrik olarak teyit ediyorsanız; mail sunucusunda da açtığınız her portun tam olarak ne işe yaradığını aynı ciddiyetle bilmelisiniz.

Sadece gerekli olan IPv4 portlarını açıyoruz:

ufw allow 22/tcp
ufw allow 25/tcp
ufw allow 143/tcp
ufw allow 443/tcp
ufw allow 465/tcp
ufw allow 587/tcp
ufw allow 993/tcp
ufw enable

Brute-Force Koruması: systemctl enable --now fail2ban ile servisi etkinleştirin. Gerekirse şifre deneme yanılma yapan botları engellemek için postfix filtrelerini aktif edebilirsiniz.

Forwarding ve SRS

info@siteniz.com adresine gelen mailleri kişisel Gmail’inize yönlendirirseniz, orijinal göndericinin SPF kaydı sizin sunucu IP’nizle eşleşmeyeceği için Gmail maili anında reddeder.

Bunu SRS (Sender Rewriting Scheme) ile çözüyoruz.
apt install postsrsd -y komutuyla paketi kurun. Postfix main.cf dosyasına şu bloğu ekleyin:

# SRS - Forward edilen mailler için Envelope Rewrite
sender_canonical_maps = tcp:127.0.0.1:10001
sender_canonical_classes = envelope_sender
recipient_canonical_maps = tcp:127.0.0.1:10002
recipient_canonical_classes = envelope_recipient,header_recipient

Bu ayar sayesinde yönlendirilen mailin “Gönderen” (Envelope Sender) bilgisi sizin alan adınıza çevrilir, kendi SPF’inizden geçer ve Gmail’in Inbox’ına sorunsuz düşer. Postfix’i yeniden başlatın (systemctl reload postfix).

Uçtan Uca Webmail Testi ve Troubleshooting

Sistemi kurduk, servisler yeşil yanıyor. Şimdi doğrulama vakti.

Webmail Arayüzüne Giriş

Tarayıcınızı açın ve https://mail.siteniz.com adresine gidin.

  • Kullanıcı Adı: admin@siteniz.com (Domain ile birlikte tam e-posta adresini yazmalısınız).
  • Parola: Belirlediğiniz parola ile giriş yapın.

İlk Maili Gönderme ve Gmail’de Analiz

Sol üstten “Oluştur” butonuna tıklayın. Kişisel Gmail adresinize bir test maili gönderin.
Mail Gmail kutunuza düştüğünde, maili açın, sağ üstteki üç noktaya tıklayıp “Aslını Göster” (Show Original) seçeneğine tıklayın.

İşte tüm o emeğin karşılığını burada, Rspamd’nin kusursuz imzalarıyla göreceğiz:

  • SPF: PASS (IP adresiniz siteniz.com adına başarıyla yetkilendirildi)
  • DKIM: PASS (Rspamd imzanız doğrulandı)
  • DMARC: PASS (Kurallarınız başarıyla işletildi)

İçeriye Mail Alma ve Nihai Skor

Kişisel Gmail hesabınızdan, kendi sunucunuzdaki admin@siteniz.com adresinize mail göndererek içeriye alımı test edin.
Sonrasında hatalarımızı görmek için https://mail-tester.com adresine gidin. Verilen geçici adrese Roundcube üzerinden mail gönderin.

Adımları eksiksiz uyguladıysanız, temiz bir IP altyapısı üzerinde o muazzam 10/10 skorunu göreceksiniz!

Kendi mail sunucunuzu kurmak bir vizyon meselesidir. Rspamd gibi yeni nesil araçları kullanarak sistemi modern mimariye uygun şekilde inşa etmek, size ömür boyu sürecek bir dijital özgürlük, yüksek performans ve eşsiz bir gizlilik sunar.

Doğru konfigüre edilmiş bir sistem ve güçlü bir VDS altyapısı birleştiğinde, iletişiminiz üzerinde %100 kontrol sahibi olduğunuz, güvenilir ve stabil bir yapıya kavuşursunuz. Kurumsal iletişiminizin kalbini oluşturacak, ağ kısıtlamalarından uzak, performanslı VDS Sunucu çözümlerimizi inceleyerek bu dijital bağımsızlık yolculuğunda en sağlam adımı atabilirsiniz.

Şunlar da hoşunuza gidebilir...

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir