Takip et

Postfix’i Ubuntu 14.04 Üzerine Yalnızca Gönderi Yapan Bir SMTP Sunucusu Olarak Kurma ve Yapılandırma

Postfix’i Ubuntu 14.04 Üzerine Yalnızca Gönderi Yapan Bir SMTP Sunucusu Olarak Kurma ve Yapılandırma Giriş E-posta, modern bilgi işlem altyap

Postfix’i Ubuntu 14.04 Üzerine Yalnızca Gönderi Yapan Bir SMTP Sunucusu Olarak Kurma ve Yapılandırma

Giriş

E-posta, modern bilgi işlem altyapılarının vazgeçilmez bir bileşenidir. Web uygulamalarından sistem bildirimlerine, izleme araçlarından otomatik raporlara kadar birçok senaryoda e-posta gönderimi temel bir ihtiyaçtır. Ancak çoğu zaman, bu sistemlerin e-posta alması gerekmez; yalnızca e-posta göndermeleri yeterlidir. İşte bu noktada “yalnızca gönderi yapan (send-only)” bir SMTP sunucusu devreye girer. Bu tür bir sunucu, gelen e-postaları kabul etme karmaşıklığını ortadan kaldırırken, sistemlerin güvenilir bir şekilde e-posta göndermesine olanak tanır.

Postfix, Unix benzeri işletim sistemleri için popüler, açık kaynaklı bir posta aktarım aracısı (MTA – Mail Transfer Agent) yazılımıdır. Güvenilirliği, performansı ve esnekliği ile bilinir. Bu makalede, Postfix’i Ubuntu 14.04 işletim sistemi üzerine yalnızca e-posta gönderimi yapacak şekilde nasıl kuracağınızı ve yapılandıracağınızı ayrıntılı olarak ele alacağız. Ubuntu 14.04 LTS (Trusty Tahr) her ne kadar uzun süreli destek almış ve zamanında yaygın olarak kullanılmış bir sürüm olsa da, mevcut durumda resmi desteğinin sona erdiğini belirtmek önemlidir. Bu rehber, hala bu platformu kullanan veya eski sistemlerle çalışanlar için bir kaynak niteliğindedir. Daha güncel ve desteklenen bir işletim sistemi kullanmak, güvenlik ve performans açısından her zaman tavsiye edilir.

Amacımız, sunucunuzdan bildirim e-postaları, parola sıfırlama linkleri veya diğer otomatik mesajları göndermek isteyen web uygulamaları, cron işleri veya diğer hizmetler için sağlam ve güvenli bir altyapı oluşturmaktır. Bu yapılandırma, sunucunuzun bir e-posta kutusu barındırmasını veya gelen postaları işlemesini gerektirmeyecektir.

Ön Gereksinimler ve Hazırlıklar

Postfix kurulumuna başlamadan önce bazı temel ön gereksinimleri ve hazırlıkları tamamlamamız gerekmektedir. Bu adımlar, kurulumun sorunsuz ilerlemesini ve e-postaların doğru bir şekilde gönderilmesini sağlayacaktır.

Sistem Güncelleme

Herhangi bir yazılım kurulumuna başlamadan önce sisteminizin güncel olduğundan emin olmak önemlidir. Bu, olası bağımlılık sorunlarını önler ve en son güvenlik yamalarını uygulamanızı sağlar.

sudo apt-get update
sudo apt-get upgrade -y

Hostname Yapılandırması

Sunucunuzun doğru bir ana bilgisayar adına (hostname) sahip olması, e-posta gönderimi sırasında kimlik doğrulama ve güvenilirlik açısından kritik öneme sahiptir. Postfix, gönderilen e-postaların başlıklarında bu ana bilgisayar adını kullanır.
Ana bilgisayar adınızı kontrol etmek için:

hostname

Çıktı genellikle sunucuadi gibi bir şey olacaktır. Tam etki alanı adınızı (FQDN – Fully Qualified Domain Name) kullanmanız önerilir, örneğin mail.example.com.

Ana bilgisayar adını ayarlamak için:

sudo hostnamectl set-hostname mail.example.com

Veya Ubuntu 14.04’te daha geleneksel yöntemle /etc/hostname dosyasını düzenleyebilirsiniz:

sudo nano /etc/hostname

Dosyanın içeriğini mail.example.com olarak değiştirin ve kaydedin.

Ardından /etc/hosts dosyasını düzenleyerek bu ana bilgisayar adını yerel IP adresinize bağlayın:

sudo nano /etc/hosts

Dosyanın içeriğini aşağıdaki gibi güncelleyin (IP adresinizi ve ana bilgisayar adınızı kendi bilgilerinizle değiştirin):

127.0.0.1       localhost
127.0.1.1       mail.example.com mail

The following lines are desirable for IPv6 capable hosts

::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters

Değişikliklerin uygulanması için sistemi yeniden başlatmanız veya hostname servisini yeniden yüklemeniz gerekebilir.

sudo service hostname restart

Veya basitçe bir terminal oturumunu kapatıp tekrar açın.

DNS Kayıtları

E-postaların hedefe ulaşmasını sağlamak ve spam olarak işaretlenmesini önlemek için doğru DNS kayıtlarına sahip olmak hayati önem taşır. Etki alanı sağlayıcınızın kontrol panelinden aşağıdaki kayıtları yapılandırmanız gerekecektir.

A Kaydı

Sunucunuzun IP adresini etki alanınıza veya alt etki alanınıza bağlar.

Type: A
Host: mail.example.com
Value: Sunucunuzun_Genel_IP_Adresi

Bazı durumlarda ana etki alanı için de bir A kaydına ihtiyacınız olabilir:

Type: A
Host: example.com
Value: Sunucunuzun_Genel_IP_Adresi

MX Kaydı (Mail Exchanger)

MX kaydı, bir etki alanı için e-posta trafiğini hangi sunucunun yöneteceğini belirtir. Yalnızca gönderi yapan bir sunucu için teknik olarak zorunlu değildir, çünkü gelen postaları kabul etmeyecektir. Ancak, etki alanınızdan gönderilen e-postaların alıcı sunucular tarafından daha güvenilir bulunması için bir MX kaydının olması faydalı olabilir. Eğer bu sunucuya gelen posta almayacaksanız, MX kaydını başka bir posta sunucusuna (örneğin, Google Workspace, Outlook.com) işaret edebilir veya hiç ayarlamayabilirsiniz. Eğer ayarlayacaksanız ve bu sunucuya gelen posta almayacaksanız, yine de bir MX kaydı oluşturabilirsiniz ancak bu kaydın işaret ettiği sunucuya gelen postaları işleyecek bir mekanizma kurmadığınızı unutmayın. Basit bir senaryoda, MX kaydını mail.example.com adresine işaret edebilirsiniz, ancak Postfix’i gelen postaları reddedecek şekilde yapılandıracağız.

Type: MX
Host: example.com
Value: mail.example.com
Priority: 10

SPF Kaydı (Sender Policy Framework)

SPF kaydı, hangi sunucuların etki alanınız adına e-posta göndermesine izin verildiğini belirtir. Bu, e-postalarınızın spam olarak işaretlenmesini önlemek için kritik bir adımdır.

Type: TXT
Host: example.com
Value: "v=spf1 ip4:Sunucunuzun_Genel_IP_Adresi include:_spf.google.com ~all"

* v=spf1: SPF sürümünü belirtir.
* ip4:Sunucunuzun_Genel_IP_Adresi: Bu IP adresinden gönderilen e-postalara izin verildiğini belirtir.
* include:_spf.google.com: Eğer başka bir e-posta hizmeti kullanıyorsanız (örneğin Gmail), o hizmetin SPF kaydını da dahil edersiniz. Yalnızca bu sunucudan gönderiyorsanız bunu çıkarabilirsiniz.
* ~all: Belirtilen sunucular dışında başka bir sunucudan gelen e-postaların “softfail” olarak işaretlenmesi gerektiğini belirtir. Bu, alıcı sunucunun e-postayı kabul edebileceği, ancak SPF doğrulaması başarısız olduğu için dikkatli olması gerektiği anlamına gelir. Daha katı bir politika için -all kullanabilirsiniz, bu da belirtilenler dışındaki tüm gönderimleri reddeder. Ancak ~all genellikle daha güvenli bir başlangıçtır.

DKIM (DomainKeys Identified Mail)

DKIM, gönderilen e-postaların bütünlüğünü ve kimliğini doğrulamak için kriptografik imzalar kullanır. Bu, e-postalarınızın spam filtrelerini geçme şansını önemli ölçüde artırır. DKIM kurulumu Postfix’in kendisinden bağımsız olarak OpenDKIM gibi ayrı bir yazılım gerektirir ve daha karmaşıktır. Bu makalede OpenDKIM kurulumunun tüm detaylarına girmeyeceğiz, ancak Postfix ile entegrasyonu için gerekli adımlara değineceğiz. Genel olarak, bir DKIM kaydı aşağıdaki gibi bir TXT kaydı olarak DNS’e eklenir:

Type: TXT
Host: default._domainkey.example.com
Value: "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDy...[uzun anahtar]...IDAQAB"

Bu anahtar, OpenDKIM tarafından oluşturulur.

Güvenlik Duvarı Ayarları (UFW)

Sunucunuzun güvenlik duvarının (örneğin UFW – Uncomplicated Firewall) Postfix’in ihtiyaç duyduğu portları açık olduğundan emin olun. E-posta gönderimi için genellikle SMTP portu (25) kullanılır. Eğer harici bir röle sunucusu kullanıyorsanız ve bu röle sunucusu TLS ve kimlik doğrulama gerektiriyorsa, 587 (Submission) veya 465 (SMTPS) portlarını da kullanabilirsiniz.

sudo ufw allow 25/tcp
sudo ufw allow 587/tcp # Eğer submission portu kullanılacaksa
sudo ufw enable
sudo ufw status

Postfix Kurulumu

Ön hazırlıklar tamamlandıktan sonra Postfix’i kurmaya başlayabiliriz.

Paket Kurulumu

Postfix paketini apt-get kullanarak kolayca kurabilirsiniz:

sudo apt-get install postfix -y

Kurulum Sırasında Yapılandırma

Kurulum sırasında Postfix size bazı temel yapılandırma soruları soracaktır.
1. General type of mail configuration: Burada Internet Site seçeneğini seçin. Bu, sunucunun doğrudan internet üzerinden e-posta göndereceği anlamına gelir.
2. System mail name: Bu, e-postalarınızın gönderileceği etki alanı adıdır. Örneğin, example.com (eğer mail.example.com ana bilgisayar adınız varsa, genellikle example.com girilir). Bu değer mydomain parametresine atanacaktır.

Eğer kurulum sırasında bu soruları görmezseniz veya daha sonra değiştirmek isterseniz, aşağıdaki komutu kullanarak yapılandırma sihirbazını tekrar çalıştırabilirsiniz:

sudo dpkg-reconfigure postfix

Temel Postfix Komutları

Kurulumdan sonra Postfix servisini yönetmek için aşağıdaki komutları kullanabilirsiniz:
* Başlatma: sudo service postfix start
* Durdurma: sudo service postfix stop
* Yeniden Başlatma: sudo service postfix restart
* Durum Kontrolü: sudo service postfix status

Postfix Temel Yapılandırması

Postfix’in ana yapılandırma dosyası /etc/postfix/main.cf adresinde bulunur. Bu dosyayı düzenleyerek sunucunuzu yalnızca gönderi yapacak şekilde özelleştireceğiz.

sudo nano /etc/postfix/main.cf

Aşağıdaki parametreleri bulup kendi değerlerinizle güncelleyin veya ekleyin. Yorum satırlarını (#) kaldırarak aktif hale getirmeyi unutmayın.

* myhostname: Sunucunuzun tam nitelikli ana bilgisayar adını (FQDN) belirtir. Bu, e-posta başlıklarında görünecektir.

myhostname = mail.example.com

* mydomain: E-posta etki alanı adınızı belirtir. Bu genellikle myhostname‘in etki alanı kısmıdır.

mydomain = example.com

* myorigin: Yerel olarak oluşturulan e-postaların (örneğin, sistemden gelen cron bildirimleri) hangi etki alanından geliyormuş gibi görüneceğini belirtir. Yalnızca gönderi yapan bir sunucu için bu genellikle mydomain olarak ayarlanır.

myorigin = $mydomain

* inet_interfaces: Postfix’in hangi ağ arayüzlerinden bağlantıları dinleyeceğini belirtir. Yalnızca gönderi yapan bir sunucu için ve özellikle uygulamalarınız aynı sunucu üzerinde çalışıyorsa localhost olarak ayarlamak genellikle yeterlidir. Eğer başka sunuculardan Postfix’i kullanarak e-posta gönderecekseniz, all olarak ayarlamanız ve mynetworks parametresini doğru yapılandırmanız gerekir.

inet_interfaces = all

Veya daha kısıtlı bir güvenlik için:

inet_interfaces = localhost

Eğer localhost olarak ayarlarsanız, dışarıdan gelen bağlantılar reddedilir ve Postfix sadece aynı sunucu üzerindeki uygulamalardan e-posta kabul eder.

* mydestination: Postfix’in hangi etki alanları için yerel teslimat yapacağını belirtir. Yalnızca gönderi yapan bir sunucu için, gelen e-postaları kabul etmediğimizden, bu değeri boş bırakmak veya sadece localhost ile sınırlamak önemlidir. Bu, Postfix’in harici etki alanlarına gönderilen e-postaları yerel olarak teslim etmeye çalışmasını engeller.

mydestination = localhost

Veya tamamen boş bırakın:

mydestination =

* relayhost: Eğer e-postaları doğrudan alıcı sunuculara göndermek yerine harici bir SMTP röle sunucusu (örneğin, Gmail, SendGrid, Mailgun veya ISP’nizin SMTP sunucusu) üzerinden göndermek istiyorsanız bu parametreyi kullanın. Bu, e-postalarınızın teslim edilebilirliğini artırabilir ve IP itibarınızı yönetmenize yardımcı olabilir.

relayhost = [smtp.example.com]:587

Eğer doğrudan gönderecekseniz, bu parametreyi boş bırakın veya yorum satırı yapın.

* mynetworks: Postfix’in hangi ağlardan gelen bağlantıların kimlik doğrulaması olmadan e-posta göndermesine izin verileceğini tanımlar. Yalnızca gönderi yapan bir sunucu için, genellikle 127.0.0.0/8 (localhost) yeterlidir. Bu, yalnızca sunucunun kendisindeki uygulamaların e-posta gönderebileceği anlamına gelir.

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

Eğer başka bir sunucudan veya ağdan Postfix’i kullanacaksanız, o ağın IP aralığını da eklemelisiniz (örneğin, mynetworks = 127.0.0.0/8 192.168.1.0/24). Ancak bu, güvenlik risklerini artırır ve genellikle önerilmez.

* alias_maps ve alias_database: Yerel kullanıcılar için e-posta takma adlarını yönetir. Genellikle varsayılan değerler yeterlidir.

alias_maps = hash:/etc/aliases
    alias_database = hash:/etc/aliases

* home_mailbox: Yerel kullanıcılar için gelen e-postaların nereye teslim edileceğini belirtir. Yalnızca gönderi yapan bir sunucu olduğumuz için, bu parametreye ihtiyacımız olmayacak ve gelen e-postaları reddedeceğiz. Bu yüzden bu parametreyi ayarlamayın veya yorum satırı yapın.

* smtpd_banner: SMTP oturumu başlangıcında sunucunun kendini nasıl tanıtacağını belirler. Varsayılan değer genellikle yeterlidir, ancak sunucu bilgilerini gizlemek isterseniz değiştirebilirsiniz.

smtpd_banner = $myhostname ESMTP

* message_size_limit: Gönderilebilecek maksimum e-posta boyutunu (bayt cinsinden) ayarlar. Varsayılan 10 MB’tır (10240000 bayt).

message_size_limit = 10240000

* mailbox_size_limit: Yerel posta kutularının maksimum boyutunu ayarlar. mydestination‘ı boş bıraktığımız için bu parametre bizim için pek önemli değildir, ancak yine de varsayılan değeri tutmakta sakınca yoktur.

mailbox_size_limit = 0

0 değeri sınırsız anlamına gelir, ancak yerel teslimat yapmadığımız için etkisizdir.

* disable_vrfy_command: VRFY komutunu devre dışı bırakır. Bu komut, bir e-posta adresinin geçerli olup olmadığını kontrol etmek için kullanılabilir ve spam gönderenler tarafından e-posta listeleri toplamak için kötüye kullanılabilir. Güvenlik için devre dışı bırakılması önerilir.

disable_vrfy_command = yes

Postfix’i Yalnızca Gönderi Yapacak Şekilde Yapılandırma Detayları

Yerel Teslimatı Devre Dışı Bırakma

Daha önce de belirttiğimiz gibi, yalnızca gönderi yapan bir sunucu kurduğumuz için Postfix’in gelen e-postaları yerel olarak teslim etmesini istemeyiz. Bunu sağlamak için:
* mydestination parametresini localhost olarak ayarlayın veya boş bırakın. Bu, Postfix’in yalnızca kendi ana bilgisayar adını veya hiçbir etki alanını yerel olarak kabul etmeyeceği anlamına gelir.

mydestination = localhost

* Ayrıca, Postfix’in gelen e-postaları reddetmesini sağlamak için smtpd_recipient_restrictions parametresini kullanabiliriz. Bu, sunucunun sadece yetkili göndericilerden veya belirli koşulları karşılayan e-postaları kabul etmesini sağlar. Yalnızca gönderi yapacak bir sunucu için, dışarıdan gelen e-postaları tamamen reddetmek isteyebiliriz. Ancak, Postfix’in kendisi üzerinden gönderilen e-postaların kabul edilmesi gerektiğini unutmayın.

smtpd_recipient_restrictions =
        permit_mynetworks,
        reject_unauth_destination,
        reject

* permit_mynetworks: mynetworks içinde tanımlanan ağlardan gelen e-postaları kabul eder. Bu, sunucunuzdaki uygulamaların e-posta göndermesine olanak tanır.
* reject_unauth_destination: Sunucunun kendisi için olmayan etki alanlarına gönderilen e-postaları reddeder.
* reject: Diğer tüm gelen e-postaları reddeder. Bu, sunucunuzun dışarıdan gelen e-postaları kabul etmesini engeller.

Harici Bir SMTP Rölesi Kullanma

Birçok durumda, e-postaları doğrudan alıcı sunuculara göndermek yerine, özel bir SMTP röle hizmeti (örneğin SendGrid, Mailgun, Amazon SES) kullanmak daha iyidir. Bu hizmetler, e-posta teslim edilebilirliğini artırmak için gelişmiş teknikler kullanır ve IP itibarınızı yönetir.

Bu senaryoda, main.cf dosyasında relayhost parametresini ayarlamanız gerekir:

relayhost = [smtp.sendgrid.net]:587

Burada smtp.sendgrid.net ve 587 (TLS ile submission portu) bir örnek olarak verilmiştir. Kendi röle hizmetinizin sunucu adını ve portunu kullanmalısınız. Köşeli parantezler [], Postfix’in MX kaydı araması yapmadan doğrudan IP adresine bağlanmaya çalışacağını belirtir.

Kimlik Doğrulama (Authentication)

Çoğu harici SMTP röle hizmeti, e-posta göndermeden önce kimlik doğrulaması gerektirir. Postfix’i bu kimlik bilgilerini kullanacak şekilde yapılandırmanız gerekir.

1. sasl_passwd Dosyası Oluşturma: Kimlik bilgilerini içeren bir dosya oluşturun. Bu dosyayı /etc/postfix/ dizininde oluşturmak iyi bir uygulamadır.

sudo nano /etc/postfix/sasl_passwd

Dosyanın içine aşağıdaki formatta röle sunucunuzun bilgilerini girin:

[smtp.sendgrid.net]:587  apikey:SG.XXXXXXXXXXXXXX

Burada apikey kullanıcı adı, SG.XXXXXXXXXXXXXX ise SendGrid’in API anahtarıdır. Diğer hizmetler için kullanıcı adı ve parola değişebilir.

2. postmap ile Hashleme: Güvenlik için bu dosyayı hashleyerek Postfix’in kullanabileceği bir veritabanı dosyasına dönüştürün:

sudo postmap /etc/postfix/sasl_passwd

Bu komut /etc/postfix/sasl_passwd.db dosyasını oluşturacaktır.

3. Dosya İzinlerini Ayarlama: Hassas bilgiler içerdiği için sasl_passwd dosyasının ve .db dosyasının izinlerini kısıtlayın:

sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
    sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

4. main.cf Ayarları: main.cf dosyasına aşağıdaki satırları ekleyerek Postfix’in bu kimlik bilgilerini kullanmasını sağlayın:

smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
    smtp_sasl_security_options = noanonymous
    smtp_tls_security_level = encrypt
    smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

* smtp_sasl_auth_enable = yes: SMTP istemci kimlik doğrulamasını etkinleştirir.
* smtp_sasl_password_maps: Kimlik bilgilerinin bulunduğu veritabanı dosyasını belirtir.
* smtp_sasl_security_options = noanonymous: Anonim SASL kimlik doğrulamasını devre dışı bırakır.
* smtp_tls_security_level = encrypt: TLS şifrelemesi kullanmayı zorunlu kılar.
* smtp_tls_CAfile: Güvenilir CA sertifikalarının bulunduğu dosyayı belirtir. Ubuntu’da bu genellikle /etc/ssl/certs/ca-certificates.crt yolundadır.

Doğrudan Gönderim Yapılandırması

Eğer harici bir röle sunucusu kullanmayacak ve e-postaları doğrudan alıcı sunuculara gönderecekseniz, relayhost parametresini main.cf dosyasından kaldırın veya yorum satırı yapın. Bu durumda, DNS kayıtlarınızın (özellikle SPF ve DKIM) doğru yapılandırıldığından emin olmak çok daha kritik hale gelir, çünkü sunucunuzun IP itibarı doğrudan e-posta teslim edilebilirliğini etkileyecektir.

E-posta Güvenliği ve İletilebilirliği

E-postaların başarıyla teslim edilmesi ve spam olarak işaretlenmemesi için güvenlik ve itibar yönetimi hayati öneme sahiptir.

SPF (Sender Policy Framework)

Daha önce bahsettiğimiz gibi, SPF kaydı, etki alanınız adına e-posta göndermesine izin verilen sunucuları listeler. DNS’teki TXT kaydınızın doğru olduğundan emin olun.

DKIM (DomainKeys Identified Mail)

DKIM, e-postaların gönderici tarafından imzalanmasını ve alıcı tarafından bu imzanın doğrulanmasını sağlar. Bu, e-postanın yolda değiştirilmediğini ve gerçekten belirtilen göndericiden geldiğini kanıtlar. Postfix’i DKIM ile entegre etmek için OpenDKIM gibi bir milter (posta filtresi) kullanmanız gerekir.

OpenDKIM Kurulumu ve Entegrasyonu (Kısa Bakış):
1. Kurulum:

sudo apt-get install opendkim opendkim-tools -y

2. Anahtar Oluşturma: Etki alanınız için bir DKIM anahtar çifti oluşturun.

sudo opendkim-genkey -D /etc/opendkim/keys/example.com/ -d example.com -s default
    sudo chown -R opendkim:opendkim /etc/opendkim/keys/example.com/

Bu komut, /etc/opendkim/keys/example.com/ dizininde default.private (özel anahtar) ve default.txt (genel anahtar, DNS’e eklenecek) dosyalarını oluşturacaktır.
3. DNS Kaydı: default.txt dosyasındaki içeriği DNS sağlayıcınızın kontrol panelinde default._domainkey.example.com adında bir TXT kaydı olarak ekleyin.
4. OpenDKIM Yapılandırması: /etc/opendkim.conf dosyasını düzenleyin ve Postfix ile entegrasyon için gerekli ayarları yapın. Özellikle Socket (örneğin, inet:8891@localhost veya local:/var/run/opendkim/opendkim.sock), KeyTable, SigningTable ve ExternalIgnoreList parametrelerini ayarlayın.
5. Postfix Entegrasyonu: main.cf dosyasına aşağıdaki satırları ekleyerek Postfix’i OpenDKIM milter’ını kullanmaya yönlendirin:

smtpd_milters = inet:localhost:8891
    non_smtpd_milters = inet:localhost:8891
    milter_protocol = 2
    milter_default_action = accept

Buradaki 8891 OpenDKIM’in dinlediği porttur.
6. Servisleri Yeniden Başlatma:

sudo service opendkim restart
    sudo service postfix restart

DMARC (Domain-based Message Authentication, Reporting & Conformance)

DMARC, SPF ve DKIM’in üzerine inşa edilmiş bir protokoldür. Etki alanları için e-posta kimlik doğrulama politikalarını tanımlamanıza ve bu politikaların ihlalleri hakkında raporlar almanıza olanak tanır. DMARC kaydı da DNS’e TXT kaydı olarak eklenir ve genellikle _dmarc.example.com alt etki alanında bulunur.

Type: TXT
Host: _dmarc.example.com
Value: "v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com"

* p=none: DMARC denetiminin başarısız olduğu e-postalar için hiçbir işlem yapılmamasını belirtir. Bu, başlangıç için güvenli bir politikadır.
* rua=mailto:dmarc-reports@example.com: DMARC raporlarının gönderileceği e-posta adresini belirtir. Bu raporlar, etki alanınızdan gönderilen e-postaların kimlik doğrulama durumları hakkında değerli bilgiler sağlar.

TLS/SSL Kullanımı

E-postaların gönderimi sırasında iletişimin şifrelenmesi, hassas bilgilerin korunması açısından önemlidir. Postfix, TLS (Transport Layer Security) kullanımını destekler.
main.cf dosyasında aşağıdaki ayarları kontrol edin:

smtp_tls_security_level = may
smtp_tls_loglevel = 1
smtpd_tls_security_level = may
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

* smtp_tls_security_level = may: Postfix’in mümkünse TLS kullanmasını, ancak zorunlu kılmamasını sağlar. Daha katı bir güvenlik için encrypt olarak ayarlayabilirsiniz (eğer tüm alıcı sunucular TLS destekliyorsa).
* smtp_tls_loglevel = 1: TLS oturumları hakkında günlük mesajlarının detay seviyesini ayarlar. Sorun giderme için daha yüksek bir seviyeye ayarlanabilir.

Test Etme

Yapılandırma tamamlandıktan sonra, Postfix’in doğru çalıştığını test etmeniz gerekir.

Yerel Kullanıcıdan E-posta Gönderme

Sunucunuzda yüklü olan mail komutunu kullanarak basit bir test e-postası gönderebilirsiniz. Eğer mail komutu yüklü değilse:

sudo apt-get install mailutils -y

Ardından bir e-posta gönderin:

echo "Bu bir Postfix send-only test mesajıdır." | mail -s "Postfix Testi - Ubuntu 14.04" sizin_email_adresiniz@example.com

sizin_email_adresiniz@example.com yerine kendi gerçek e-posta adresinizi yazın.

Günlükleri Kontrol Etme

E-postanın gönderilip gönderilmediğini ve herhangi bir hata olup olmadığını kontrol etmek için Postfix günlüklerini inceleyin:

tail -f /var/log/mail.log

Başarılı bir gönderimde, günlüklerde status=sent veya status=queued gibi mesajlar görmelisiniz. Eğer bir hata varsa, hata mesajları size sorunun kaynağı hakkında ipuçları verecektir.

Harici Bir Adrese Gönderme ve Teslimatı Kontrol Etme

Test e-postanızın gelen kutunuza ulaşıp ulaşmadığını kontrol edin.
* Spam Klasörünü Kontrol Edin: Bazen yeni yapılandırılmış sunuculardan gelen e-postalar spam olarak işaretlenebilir.
* E-posta Başlıklarını İnceleyin: E-postanın başlıklarını inceleyerek SPF ve DKIM doğrulamalarının başarılı olup olmadığını kontrol edin. Çoğu e-posta hizmeti (Gmail, Outlook) e-postanın orijinal başlıklarını görüntüleme seçeneği sunar. Authentication-Results başlığına dikkat edin. spf=pass ve dkim=pass gibi değerler görmelisiniz.

Sorun Giderme

Postfix yapılandırması bazen karmaşık olabilir ve sorunlarla karşılaşmak doğaldır. İşte bazı yaygın sorunlar ve çözüm yolları:

* Günlükleri İnceleyin (/var/log/mail.log): Bu dosya, Postfix’in ne yaptığını ve hangi hatalarla karşılaştığını gösteren en önemli kaynaktır. tail -f /var/log/mail.log komutuyla gerçek zamanlı olarak izleyebilirsiniz.
* Postfix Yapılandırmasını Kontrol Edin: postconf -n komutu, main.cf dosyasındaki varsayılan olmayan tüm parametreleri gösterir. Bu, yapılandırmanızın gerçekten istediğiniz gibi ayarlanıp ayarlanmadığını kontrol etmenin hızlı bir yoludur.
* Postfix Servis Durumu: sudo service postfix status komutuyla Postfix’in çalışıp çalışmadığını kontrol edin.
* Port Kontrolü: netstat -tulnp | grep :25 (veya 587, 465) komutuyla Postfix’in gerekli portları dinleyip dinlemediğini kontrol edin.
* Güvenlik Duvarı: UFW veya başka bir güvenlik duvarının gerekli portları (25, 587) engellemediğinden emin olun.
* DNS Kayıtları: dig MX example.com veya dig TXT example.com komutlarıyla DNS kayıtlarınızın doğru çözümlenip çözümlenmediğini kontrol edin. DNS değişikliklerinin yayılması zaman alabilir (birkaç saatten 48 saate kadar).
* sasl_passwd İzinleri: Eğer harici bir röle kullanıyorsanız, sasl_passwd ve sasl_passwd.db dosyalarının izinlerinin 0600 olduğundan emin olun.
* Ubuntu 14.04 EOL Durumu: Unutmayın ki Ubuntu 14.04’ün resmi desteği sona ermiştir. Bu, yeni güvenlik yamalarının yayınlanmadığı anlamına gelir. Postfix veya diğer bileşenlerde bulunan güvenlik açıkları giderilmeyecektir. Üretim ortamlarında bu tür eski sistemleri kullanmaktan kaçınmak ve daha güncel, desteklenen bir sürüme geçmek şiddetle tavsiye edilir. Bu durum, karşılaşabileceğiniz bazı sorunların temel nedeni olabilir veya yeni güvenlik tehditlerine karşı sizi savunmasız bırakabilir.

Bakım ve En İyi Uygulamalar

Postfix sunucunuzu kurduktan sonra, optimum performans ve güvenlik için düzenli bakım yapmanız ve bazı en iyi uygulamaları takip etmeniz önemlidir.

* Günlükleri Düzenli Olarak İzleyin: /var/log/mail.log dosyasını düzenli olarak kontrol edin. Anormal aktiviteler, hata mesajları veya teslimat sorunları olup olmadığını takip edin. Log analizi araçları bu süreçte yardımcı olabilir.
* Sistem Güncellemeleri: Ubuntu 14.04’ün EOL olmasına rağmen, eğer hala bu sistemi kullanıyorsanız, mevcut güncellemeleri (varsa) uygulamak önemlidir. Ancak, EOL bir sistemde tam güvenlik sağlamak mümkün değildir.
* Güvenlik Yamaları: Postfix ve diğer ilgili yazılımlar için güvenlik yamalarını takip edin. Ubuntu 14.04 için bu artık mümkün olmayabilir.
* Spam ve Kötüye Kullanımın Önlenmesi: Yalnızca gönderi yapan bir sunucu bile spam göndermek için kötüye kullanılabilir. mynetworks parametresini sıkı tutun ve yalnızca güvenilir kaynaklardan e-posta göndermeye izin verin. Eğer sunucunuzdan spam gönderildiği tespit edilirse, IP adresiniz kara listeye alınabilir ve e-postalarınızın teslim edilebilirliği ciddi şekilde etkilenebilir.
* Performans İzleme: Postfix kuyruğunu (mailq komutuyla kontrol edilebilir) düzenli olarak izleyin. Eğer kuyrukta çok fazla e-posta birikiyorsa, bu bir sorun olduğunu gösterebilir.
* Yükseltme Planlaması: En önemli tavsiye, Ubuntu 14.04’ten daha yeni, desteklenen bir Ubuntu sürümüne (veya başka bir Linux dağıtımına) geçiş yapmayı planlamaktır. Desteklenmeyen bir işletim sistemi kullanmak, ciddi güvenlik riskleri taşır ve modern yazılımlarla uyumluluk sorunlarına yol açabilir. Bu rehber, belirli bir ihtiyaca yönelik olsa da, uzun vadede sürdürülebilir bir çözüm değildir.

Sonuç

Bu makalede, Postfix’i Ubuntu 14.04 üzerinde yalnızca gönderi yapan bir SMTP sunucusu olarak nasıl kuracağınızı ve yapılandıracağınızı ayrıntılı olarak ele aldık. Temel kurulumdan gelişmiş güvenlik ayarlarına (SPF, DKIM, DMARC) ve sorun giderme ipuçlarına kadar birçok konuyu kapsadık. Doğru yapılandırma ile sunucunuzun güvenilir bir şekilde e-posta göndermesini sağlayabilir, uygulamalarınızın ve sistemlerinizin iletişim ihtiyaçlarını karşılayabilirsiniz.

Yalnızca gönderi yapan bir SMTP sunucusu, web uygulamaları, sistem bildirimleri, cron işleri ve diğer otomasyon senaryoları için idealdir. Gelen e-posta trafiğini yönetme karmaşıklığını ortadan kaldırarak daha basit ve daha güvenli bir çözüm sunar. Ancak, e-posta teslim edilebilirliğinin karmaşık bir konu olduğunu ve DNS kayıtları, IP itibarı ve e-posta içerik kalitesi gibi birçok faktöre bağlı olduğunu unutmamak önemlidir. Bu faktörlerin tümünü dikkate alarak ve düzenli bakım yaparak, e-postalarınızın hedeflerine sorunsuz bir şekilde ulaşmasını sağlayabilirsiniz.

Son olarak, Ubuntu 14.04’ün artık desteklenmeyen bir işletim sistemi olduğunu tekrar vurgulamak isteriz. Bu rehberdeki adımlar o platformda çalışsa da, güvenlik ve sürdürülebilirlik açısından mümkün olan en kısa sürede daha güncel ve desteklenen bir işletim sistemine geçiş yapmanız şiddetle tavsiye edilir. Bu sayede, sisteminiz en son güvenlik yamalarına ve performans iyileştirmelerine sahip olacak, gelecekteki olası sorunların önüne geçilecektir.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

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

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.