Postfix

Postfix Smarthost Yapılandırması

Postfix main.cf ve SASL kimlik doğrulama ile smarthost kurulumu

Dokümantasyona Dön

Bu rehber ne işe yarar?

Postfix sunucunuzdan gönderilen tüm e-postaların MXGate smarthost üzerinden (kimlik doğrulama ile) iletilmesini sağlar. Ubuntu, Debian, CentOS, RHEL ve diğer Linux dağıtımlarında çalışır.

Ön Gereksinimler

  • Root veya sudo erişimi
  • Postfix kurulu ve çalışır durumda
  • MXGate panelinden oluşturulmuş SMTP kullanıcı adı ve şifre
  • libsasl2-modules ve sasl2-bin paketleri (genellikle varsayılan olarak gelir)

1 main.cf Dosyasını Yedekleme

Her ihtimale karşı Postfix yapılandırma dosyasının yedeğini alın:

# Yedek oluşturun:
sudo cp /etc/postfix/main.cf /etc/postfix/main.cf.backup.$(date +%Y%m%d)
# Mevcut relayhost ayarını kontrol edin:
sudo postconf relayhost

2 main.cf Yapılandırması

Postfix ana yapılandırma dosyasını düzenleyin. Aşağıdaki ayarları main.cf dosyasına ekleyin:

# main.cf dosyasını açın:
sudo nano /etc/postfix/main.cf
# Aşağıdaki satırları dosyanın sonuna ekleyin:
# ============================================
# MXGate Smarthost Configuration
# ============================================
relayhost = [smtp.mxgate.com.tr]:587
# SMTP Authentication
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain, login
# TLS Encryption
smtp_tls_security_level = encrypt
smtp_tls_loglevel = 1
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
# Connection settings
smtp_connect_timeout = 30s
smtp_helo_timeout = 30s

Köşeli parantetler [] IP adresi yerine doğrudan hostname kullanılmasını sağlar.

3 SASL Şifre Dosyası Oluşturma

SMTP kimlik doğrulama bilgilerini içeren şifre dosyasını oluşturun:

# SASL şifre dosyasını oluşturun:
sudo nano /etc/postfix/sasl_passwd
# Dosya içeriği (tek satır):
[smtp.mxgate.com.tr]:587 MXGATE_KULLANICI_ADI:MXGATE_SIFRE
# Örnek:
[smtp.mxgate.com.tr]:587 user@domain.com:SecureP@ss123

Güvenlik: Bu dosya root dışında hiçbir kullanıcı tarafından okunamamalıdır.

# Dosya izinlerini ayarlayın:
sudo chmod 600 /etc/postfix/sasl_passwd
sudo chown root:root /etc/postfix/sasl_passwd
# Postmap ile hash veritabanını oluşturun:
sudo postmap /etc/postfix/sasl_passwd
# Oluşan dosyaları kontrol edin:
ls -la /etc/postfix/sasl_passwd*

4 TLS/SSL Sertifika Ayarları

TLS şifrelemesi için CA sertifikalarının yolunu dağıtımınıza göre ayarlayın:

# Debian/Ubuntu:
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
# RHEL/CentOS/Rocky:
smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt
# CA dosyasının var olduğundan emin olun:
# Debian/Ubuntu için:
ls -la /etc/ssl/certs/ca-certificates.crt
# Yoksa kurun:
sudo apt-get install ca-certificates
# RHEL/CentOS için:
ls -la /etc/pki/tls/certs/ca-bundle.crt
# Yoksa kurun:
sudo yum install ca-certificates

5 Postfix Yapılandırmasını Yenileme

Yapılandırma değişikliklerini uygulamak için Postfix'i yeniden yükleyin:

# Yapılandırmayı yenile (durdurmadan):
sudo postfix reload
# Veya servisi yeniden başlat:
sudo systemctl restart postfix
# Veya:
sudo service postfix restart
# Servis durumunu kontrol edin:
sudo systemctl status postfix
# Yapılandırma doğrulama:
sudo postfix check

6 Test ve Doğrulama

Yapılandırmanın çalışıp çalışmadığını test edin:

# Test e-postası gönderin:
echo "Subject: Test Mail" | sendmail -v test@example.com
# Veya mail komutu ile:
echo "Test body" | mail -s "Test Subject" -a "From: sender@yourdomain.com" recipient@example.com
# Postfix loglarını izleyin:
sudo tail -f /var/log/mail.log
# veya:
sudo tail -f /var/log/maillog
# Başarılı bağlantı görmelisiniz:
"smtp.mxgate.com.tr[IP]:587: 250 2.0.0 Ok: queued as"
# Kimlik doğrulama başarılı:
"Trusted TLS connection established to smtp.mxgate.com.tr"
# Hata varsa göreceksiniz:
"SASL authentication failed"

Başarılı! Artık tüm outgoing e-postalarınız MXGate üzerinden şifreli ve kimlik doğrulamalı olarak iletiliyor.

Sorun Giderme

SASL authentication failed:

Kullanıcı adı/şifre bilgilerini kontrol edin:

sudo postmap -q [smtp.mxgate.com.tr]:587 /etc/postfix/sasl_passwd

Postmap komutunu tekrar çalıştırın ve dosya izinlerini kontrol edin.

Unable to verify certificate:

CA sertifika dosyasının doğru yolda olduğundan emin olun. Veya TLS doğrulamasını devre dışı bırakın (önerilmez):

smtp_tls_security_level = may
Connection refused/timed out:

Güvenlik duvarı (ufw, firewalld, iptables) 587 portuna outbound erişim izni vermiyor olabilir. Ayrıca hosting sağlayıcınızın SMTP portlarını engellemediğinden emin olun.

Relay access denied:

MXGate panelinde sunucu IP adresinizin whitelist'te olduğundan ve kimlik doğrulama bilgilerinin doğru olduğundan emin olun.

Dağıtım Özel Notları

Ubuntu/Debian
  • main.cf: /etc/postfix/main.cf
  • Log: /var/log/mail.log
  • CA: /etc/ssl/certs/ca-certificates.crt
CentOS/RHEL/Rocky
  • main.cf: /etc/postfix/main.cf
  • Log: /var/log/maillog
  • CA: /etc/pki/tls/certs/ca-bundle.crt