Postfix Kurulumu ve Yapılandırması: Ubuntu 14.04 Üzerinde Adım Adım Rehber
Giriş: Postfix Neden Önemli?
E-posta, modern iletişimin temel taşlarından biridir ve sunucular arası e-posta alışverişini sağlayan mekanizmalar, bu sistemin sorunsuz çalışması için hayati öneme sahiptir. Mail Transfer Agent (MTA) olarak bilinen yazılımlar, e-postaların gönderilmesi, alınması ve yönlendirilmesinden sorumludur. Bu MTA’lar arasında Postfix, performansı, güvenliği ve esnekliği ile öne çıkan popüler bir seçenektir. Wietse Venema tarafından geliştirilen Postfix, Secure Sendmail adı altında tasarlanmış olup, Sendmail’e kıyasla daha modüler bir yapıya, daha iyi performansa ve daha güçlü güvenlik özelliklerine sahiptir.
Ubuntu 14.04 LTS (Trusty Tahr), uzun süreli destek sağlayan ve birçok kurumsal ortamda hala kullanılan bir işletim sistemi sürümüdür. Bu makale, Ubuntu 14.04 üzerinde Postfix’in nasıl kurulacağını ve yapılandırılacağını adım adım detaylandırarak, temel bir e-posta sunucusu kurma sürecini kapsamlı bir şekilde ele alacaktır. Amacımız, hem dahili hem de harici e-posta iletişimi için güvenilir ve yönetilebilir bir Postfix sunucusu oluşturmaktır. Postfix’in modüler yapısı sayesinde, güvenlikten performansa kadar birçok farklı ihtiyaca göre özelleştirilebilir olması, onu küçük bir kişisel sunucudan büyük kurumsal sistemlere kadar geniş bir yelpazede tercih edilen bir çözüm haline getirmektedir. Bu rehberde, temel kurulumdan başlayarak, güvenlik ayarları ve kullanıcı yönetimine kadar çeşitli konulara değineceğiz.
Ön Gereksinimler ve Sistem Hazırlığı
Postfix kurulumuna başlamadan önce, sisteminizin belirli gereksinimleri karşıladığından ve gerekli ön hazırlıkların yapıldığından emin olmanız önemlidir. Bu adımlar, kurulum sürecinin sorunsuz ilerlemesini ve Postfix’in doğru şekilde çalışmasını sağlayacaktır.
Ubuntu 14.04 Güncellemesi
İlk adım, sisteminizin güncel olduğundan emin olmaktır. Güncel paketler, olası güvenlik açıklarını kapatır ve yazılım uyumluluk sorunlarını minimize eder. Terminali açın ve aşağıdaki komutları çalıştırın:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get autoremove
Bu komutlar, paket listelerini güncelleyecek, mevcut paketleri yükseltecek, dağıtım yükseltmeleri yapacak ve gereksiz bağımlılıkları kaldıracaktır. Bu adımların ardından, sistemin yeniden başlatılması gerekebilir, bu durumda sudo reboot komutunu kullanabilirsiniz.
Hostname Ayarları
E-posta sunucunuzun doğru çalışabilmesi için geçerli ve tam nitelikli bir alan adı (Fully Qualified Domain Name – FQDN) ile yapılandırılmış olması şarttır. Bu FQDN, e-posta gönderirken sunucunuzu tanımlayacak ve diğer mail sunucuları tarafından tanınmasını sağlayacaktır.
Öncelikle, sunucunuzun mevcut hostname’ini kontrol edin:
hostname
hostname -f
hostname komutu kısa adı, hostname -f ise FQDN’yi göstermelidir.
Eğer hostname doğru değilse veya ayarlamak istiyorsanız, /etc/hostname dosyasını düzenleyin:
sudo nano /etc/hostname
Bu dosyaya sadece kısa ana bilgisayar adınızı (örneğin, mailserver) yazın ve kaydedin.
Ardından, /etc/hosts dosyasını düzenleyerek FQDN’nizi ekleyin:
sudo nano /etc/hosts
Dosyanın içeriği aşağıdaki gibi olmalıdır (IP adresinizi ve alan adınızı kendi bilgilerinizle değiştirin):
127.0.0.1 localhost
127.0.1.1 mailserver.example.com mailserver
The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Burada mailserver.example.com, sunucunuzun FQDN’si, mailserver ise kısa ana bilgisayar adıdır. 127.0.1.1 genellikle dinamik IP’ye sahip makineler için kullanılır, ancak sabit bir genel IP adresiniz varsa onu da buraya ekleyebilirsiniz. Değişikliklerin etkili olması için sistemi yeniden başlatmanız gerekebilir (sudo reboot).
DNS Kayıtları
E-posta sunucunuzun harici ağlarla doğru iletişim kurabilmesi için DNS kayıtlarının doğru bir şekilde yapılandırılması kritik öneme sahiptir. Bu kayıtlar, diğer mail sunucularının sizin sunucunuzu bulmasını ve e-posta göndermesini sağlar.
* A Kaydı: Mail sunucunuzun IP adresini alan adınıza (FQDN) eşler. Örneğin, mail.example.com adresini sunucunuzun genel IP adresine işaret etmelidir.
mail.example.com IN A 192.0.2.10 (Buradaki IP adresi sadece bir örnektir.)
* MX Kaydı: Alan adınız için hangi sunucunun e-posta almaktan sorumlu olduğunu belirtir. Genellikle mail.example.com gibi bir A kaydına işaret eder. Öncelik değeri (örneğin 10) ile birlikte gelir. Daha düşük değer, daha yüksek önceliği ifade eder.
example.com IN MX 10 mail.example.com
* SPF Kaydı (Sender Policy Framework): Alan adınız adına e-posta göndermeye yetkili sunucuları belirtir. Bu, e-posta sahtekarlığını (spoofing) önlemeye yardımcı olur. Bir TXT kaydı olarak eklenir.
example.com IN TXT "v=spf1 mx a:mail.example.com -all"
Bu örnek, example.com alan adı için MX kaydında ve mail.example.com A kaydında belirtilen sunucuların e-posta göndermeye yetkili olduğunu ve diğer tüm sunucuların yetkisiz olduğunu belirtir.
* DKIM Kaydı (DomainKeys Identified Mail): Giden e-postaların dijital olarak imzalanmasını sağlar, böylece alıcı sunucu e-postanın gerçekten sizin alan adınızdan geldiğini ve iletim sırasında değiştirilmediğini doğrulayabilir. Bu da bir TXT kaydı olarak eklenir ve genellikle Postfix kurulumundan sonra oluşturulan bir anahtar çifti gerektirir.
Bu DNS kayıtlarının yapılandırılması, alan adı sağlayıcınızın kontrol panelinden yapılır ve değişikliklerin tüm internete yayılması (propagation) biraz zaman alabilir (birkaç saatten 48 saate kadar). Kuruluma başlamadan önce bu kayıtların doğru bir şekilde ayarlandığından emin olun.
Postfix Kurulumu
Sistem hazırlıklarını tamamladıktan sonra, Postfix’i Ubuntu 14.04 sunucunuza kurmaya başlayabiliriz.
Paket Kurulumu
Postfix paketini yüklemek oldukça basittir. Terminali açın ve aşağıdaki komutu çalıştırın:
sudo apt-get install postfix
Kurulum sırasında, Postfix yapılandırma sihirbazı otomatik olarak başlayacaktır. Bu sihirbaz, temel ayarları yapmanıza yardımcı olur.
Temel Yapılandırma Adımları
Postfix kurulum sihirbazı size birkaç soru soracaktır:
1. General type of mail configuration: Bu, mail sunucunuzun ne tür bir rol üstleneceğini belirler. Genellikle aşağıdaki seçeneklerden biri seçilir:
* No configuration: Hiçbir ayar yapmaz. (Önerilmez)
* Internet Site: E-postaları doğrudan internete gönderir ve internetten alır. Çoğu bağımsız mail sunucusu için bu seçenektir.
* Internet with smarthost: E-postaları internetten alır, ancak giden e-postaları başka bir “smarthost” (örneğin, ISP’nizin SMTP sunucusu) üzerinden gönderir.
* Satellite system: Tüm e-postaları bir smarthost üzerinden gönderir ve almaz.
* Local only: Yalnızca yerel kullanıcılar arasında e-posta gönderir ve alır.
* Çoğu durumda, Internet Site seçeneğini seçmelisiniz. Klavyenizdeki yön tuşlarını kullanarak seçeneği vurgulayın ve Enter tuşuna basın.
2. System mail name: Bu, e-posta gönderirken sunucunuzun kendisini tanıtacağı alan adıdır. FQDN’nizle eşleşmelidir (örneğin, example.com). Bu değer genellikle /etc/hostname dosyasında belirtilen FQDN’nin alan adı kısmıdır. Örneğin, mailserver.example.com ise buraya example.com yazılır.
3. Root and postmaster mail recipient: root kullanıcısı ve postmaster için gelen e-postaların hangi yerel kullanıcıya yönlendirileceğini belirtir. Genellikle sistemde mevcut bir kullanıcı adı (örneğin, sysadmin) buraya girilir.
4. Other destinations to accept mail for (blank for defaults): Postfix’in hangi alan adları için e-posta kabul edeceğini belirtir. Varsayılan olarak localhost.localdomain, localhost ve sistem mail adı bulunur. Kendi alan adınızı (örneğin, example.com) buraya eklemeniz önemlidir. Birden fazla alan adı için mail almak istiyorsanız, virgülle ayırarak ekleyebilirsiniz.
5. Force synchronous updates on mail queue? Genellikle “No” seçeneği tercih edilir. Bu, performansı artırır.
6. Local networks: Postfix’in “güvenilir” kabul edeceği ağ aralıklarını belirtir. Bu ağlardan gelen e-postalar daha az kısıtlamayla işlenebilir. Varsayılan değerler genellikle yeterlidir (127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128). Eğer aynı yerel ağda başka sunucularınız varsa veya belirli IP aralıklarına güveniyorsanız, buraya ekleyebilirsiniz (örneğin, 192.168.1.0/24).
7. Mailbox size limit (bytes): Her bir kullanıcının posta kutusunun maksimum boyutunu belirler. 0 sınırsız anlamına gelir. Genellikle varsayılan olarak bırakılır veya ihtiyaca göre bir değer girilir (örneğin, 512000000 500MB için).
8. Local recipient map lookup type: Yerel alıcılar için hangi veritabanı türünün kullanılacağını belirler. Genellikle hash: /etc/aliases varsayılan olarak gelir ve yeterlidir.
9. Internet protocols to use: Postfix’in hangi internet protokollerini (IPv4, IPv6 veya her ikisi) kullanacağını belirler. Çoğu zaman all (tümü) seçeneği uygundur.
Bu adımları tamamladıktan sonra Postfix temel olarak kurulmuş ve yapılandırılmış olacaktır. Kurulum tamamlandıktan sonra Postfix servisi otomatik olarak başlatılmalıdır. Servisin durumunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz:
sudo service postfix status
Eğer servis çalışmıyorsa, sudo service postfix start komutu ile başlatabilirsiniz.
Postfix Yapılandırması
Postfix’in temel kurulumu tamamlandıktan sonra, daha detaylı yapılandırmalar yaparak sunucunuzu özelleştirebilir ve ihtiyaçlarınıza göre optimize edebilirsiniz. Postfix’in ana yapılandırma dosyası /etc/postfix/main.cf‘dir.
Ana Yapılandırma Dosyası: main.cf
Bu dosya, Postfix’in davranışını kontrol eden birçok parametre içerir. Düzenlemek için bir metin düzenleyici kullanın:
sudo nano /etc/postfix/main.cf
Aşağıda önemli parametreler ve açıklamaları bulunmaktadır:
* myhostname: Sunucunuzun tam nitelikli alan adını (FQDN) belirtir. Bu, e-posta başlıklarında görünecek addır.
myhostname = mailserver.example.com
* mydomain: Yerel alan adınızı belirtir. Genellikle myhostname‘in alan adı kısmıdır.
mydomain = example.com
* myorigin: Postfix’in yerel olarak oluşturduğu e-postaların (örneğin, sistem uyarıları) hangi alan adından geliyormuş gibi görüneceğini belirler. Genellikle mydomain ile aynıdır.
myorigin = $mydomain
* inet_interfaces: Postfix’in hangi ağ arayüzlerinde e-posta dinleyeceğini belirler. all tüm arayüzlerde dinler, localhost sadece yerel bağlantıları kabul eder. Eğer sunucunuzun belirli bir IP adresi varsa, onu da belirtebilirsiniz.
inet_interfaces = all
* inet_protocols: Postfix’in hangi internet protokollerini kullanacağını belirler. all, ipv4 veya ipv6 olabilir.
inet_protocols = all
* mydestination: Postfix’in hangi alan adları için e-posta kabul edeceğini ve yerel olarak teslim edeceğini belirtir. Kurulum sırasında belirlediğiniz değerler burada olmalıdır. Kendi alan adınızı buraya eklediğinizden emin olun.
mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost
* mynetworks: Postfix’in “güvenilir” olarak kabul edeceği ağ aralıklarını tanımlar. Bu ağlardan gelen e-postalara daha az kısıtlama uygulanır (örneğin, kimlik doğrulaması olmadan röle yapılmasına izin verilebilir, ancak bu güvenlik riski taşır). Yalnızca yerel ağlarınızı veya güvenli IP adreslerini ekleyin.
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.1.0/24
* home_mailbox: Postfix’in e-postaları yerel kullanıcıların posta kutularına nasıl teslim edeceğini belirler. Maildir/ değeri, her kullanıcı için ayrı bir dizin yapısı (Maildir formatı) oluşturur, bu modern e-posta istemcileri tarafından tercih edilir. Varsayılan olarak genellikle mbox formatı kullanılır, bu da tüm e-postaları tek bir dosyada saklar (/var/mail/username). Maildir daha performanslı ve güvenlidir.
home_mailbox = Maildir/
Bu ayarı yaptıktan sonra, her kullanıcının ev dizininde bir Maildir klasörü oluşturmanız gerekebilir. Örneğin, sudo maildirmake /etc/skel/Maildir komutu ile yeni kullanıcılar için otomatik oluşmasını sağlayabilir, veya mevcut kullanıcılar için maildirmake ~/Maildir komutunu çalıştırabilirsiniz.
* mailbox_size_limit: Her bir kullanıcının posta kutusunun maksimum boyutunu (bayt cinsinden) belirler. 0 sınırsız anlamına gelir.
mailbox_size_limit = 0
* message_size_limit: Postfix’in kabul edeceği tek bir e-postanın maksimum boyutunu (bayt cinsinden) belirler.
message_size_limit = 10240000
(Bu örnek 10 MB’a ayarlanmıştır.)
* smtpd_banner: SMTP bağlantılarında sunucunun kendini tanıtmak için kullandığı metni belirler. Güvenlik nedeniyle varsayılan değeri değiştirmek ve sürüm bilgisini gizlemek iyi bir uygulamadır.
smtpd_banner = $myhostname ESMTP
* relayhost: Eğer giden e-postaları doğrudan internete göndermek yerine başka bir SMTP sunucusu (smarthost) üzerinden göndermek istiyorsanız bu parametreyi kullanırsınız. Bu, özellikle ISP’nizin SMTP sunucusunu kullanmanız gerektiğinde veya spam filtreleme hizmeti veren üçüncü taraf bir sağlayıcı kullanıyorsanız faydalıdır.
relayhost = [smtp.example.com]:587
Eğer smarthost kimlik doğrulaması gerektiriyorsa, ayrı bir yapılandırma (sasl_passwd) yapmanız gerekecektir.
Tüm değişiklikleri yaptıktan sonra, dosyayı kaydedin ve Postfix servisini yeniden başlatın:
sudo service postfix restart
Değişikliklerin doğru bir şekilde yüklendiğini kontrol etmek için sudo postfix check komutunu kullanabilirsiniz.
Diğer Yapılandırma Dosyaları: master.cf
master.cf dosyası, Postfix’in ana programının (master) diğer Postfix bileşenlerini nasıl ve ne zaman başlatacağını kontrol eder. Genellikle bu dosyaya dokunmak gerekmez, ancak belirli hizmetleri etkinleştirmek veya devre dışı bırakmak (örneğin, Submission portu veya LMTP) veya performans ayarları yapmak için kullanılabilir. Bu dosya, ana Postfix işlemi tarafından yönetilen farklı servisleri ve bunların parametrelerini tanımlar.
E-posta Aliases (Takma Adlar)
aliases dosyası, bir e-posta adresine gelen postayı bir veya daha fazla farklı adrese (yerel kullanıcı, harici e-posta adresi, dosya veya komut) yönlendirmek için kullanılır. Bu, özellikle root veya postmaster gibi sistem hesapları için gelen e-postaları gerçek bir kullanıcıya yönlendirmek için kullanışlıdır.
aliases dosyasını düzenleyin:
sudo nano /etc/aliases
Dosyanın sonuna aşağıdaki gibi bir satır ekleyebilirsiniz:
root: sysadmin
postmaster: sysadmin
webmaster: sysadmin@example.com
Burada root ve postmaster için gelen tüm e-postalar sysadmin adlı yerel kullanıcıya yönlendirilecektir. webmaster için gelen e-postalar ise sysadmin@example.com adresine yönlendirilir.
Değişiklikleri kaydettikten sonra, newaliases komutunu çalıştırmanız gerekir. Bu komut, aliases dosyasını Postfix’in kullandığı veritabanı formatına dönüştürür.
sudo newaliases
Mail Sunucusu Testi
Yapılandırmanın ardından, sunucunuzun e-posta gönderip alamadığını test etmelisiniz.
1. Yerel E-posta Gönderme:
Sistemdeki bir kullanıcıdan diğerine e-posta göndererek test edin.
echo "This is a test email." | mail -s "Local Test" sysadmin
sysadmin kullanıcısının posta kutusunu kontrol edin. Eğer home_mailbox = Maildir/ ayarını yaptıysanız, e-postayı ~/Maildir/new/ dizininde bulabilirsiniz.
2. Harici E-posta Gönderme:
Kendi e-posta adresinize (örneğin, Gmail veya Outlook) bir test e-postası gönderin:
echo "This is a test email from my Postfix server." | mail -s "Postfix External Test" your_email@example.com
E-postanın alınıp alınmadığını kontrol edin. Spam klasörünü de kontrol etmeyi unutmayın.
3. Harici E-posta Alma:
Harici bir e-posta adresinden (örneğin, Gmail’den) sysadmin@example.com adresine bir e-posta gönderin. Ardından sysadmin kullanıcısının posta kutusunu kontrol edin.
4. SMTP Bağlantı Testi (Telnet):
Sunucunuzun 25 numaralı SMTP portunun açık olup olmadığını ve doğru yanıt verip vermediğini test edin.
telnet localhost 25
Veya harici bir makineden:
telnet mail.example.com 25
Bağlantı başarılı olursa, Postfix banner’ını görmelisiniz (örneğin, 220 mailserver.example.com ESMTP Postfix). quit yazarak çıkabilirsiniz.
Güvenlik ve İleri Yapılandırmalar
Bir e-posta sunucusu kurmak, güvenlik önlemlerini almayı ve ileri düzey yapılandırmaları uygulamayı gerektirir. Bu adımlar, sunucunuzu spam’e, kötü niyetli saldırılara karşı korumanıza ve e-posta iletişiminin gizliliğini sağlamanıza yardımcı olur.
SMTP Kimlik Doğrulaması (SASL)
SMTP kimlik doğrulaması (SASL – Simple Authentication and Security Layer), kullanıcıların e-posta gönderebilmek için sunucuya kimlik bilgilerini sağlamasını zorunlu kılar. Bu, açık röle (open relay) sorununu önler ve yalnızca yetkili kullanıcıların e-posta göndermesini sağlar. Ubuntu 14.04’te SASL için saslauthd ve libsasl2-modules paketleri kullanılır.
1. saslauthd Kurulumu:
sudo apt-get install libsasl2-modules sasl2-bin
2. saslauthd Yapılandırması:
/etc/default/saslauthd dosyasını düzenleyin:
sudo nano /etc/default/saslauthd
Aşağıdaki satırları bulun ve düzenleyin:
START=yes
MECHANISMS="pam"
pam mekanizması, sistem kullanıcılarını kullanarak kimlik doğrulaması yapmayı sağlar.
saslauthd servisini başlatın ve etkinleştirin:
sudo service saslauthd start
sudo update-rc.d saslauthd defaults
3. Postfix ile SASL Entegrasyonu:
Postfix’in SASL ile iletişim kurabilmesi için bir yapılandırma dosyası oluşturun:
sudo mkdir -p /etc/postfix/sasl
sudo nano /etc/postfix/sasl/smtpd.conf
Dosyanın içine aşağıdaki satırları ekleyin:
pwcheck_method: saslauthd
mech_list: plain login
Bu dosyanın izinlerini ayarlayın:
sudo chmod 444 /etc/postfix/sasl/smtpd.conf
main.cf dosyasını düzenleyerek Postfix’i SASL kullanmaya zorlayın:
sudo nano /etc/postfix/main.cf
Aşağıdaki satırları ekleyin veya mevcutsa düzenleyin:
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot # veya cyrus
smtpd_sasl_path = private/auth # dovecot için
# Eğer dovecot kullanmıyorsanız, aşağıdaki satırları kullanın:
# smtpd_sasl_security_options = noanonymous
# smtpd_sasl_local_domain = $myhostname
# broken_sasl_auth_clients = yes
# Kimlik doğrulaması gerektiren ağlar ve alanlar
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination
smtpd_sasl_type ve smtpd_sasl_path ayarları, genellikle bir IMAP/POP3 sunucusu (örneğin Dovecot) ile birlikte SASL kimlik doğrulamasını kullanırken gereklidir. Eğer sadece sistem kullanıcıları ile saslauthd kullanıyorsanız, smtpd_sasl_type ve smtpd_sasl_path yerine smtpd_sasl_security_options = noanonymous ve broken_sasl_auth_clients = yes kullanabilirsiniz.
Değişikliklerden sonra Postfix’i yeniden başlatın:
sudo service postfix restart
TLS/SSL Şifrelemesi
TLS (Transport Layer Security) veya SSL (Secure Sockets Layer), e-posta iletişimini şifreleyerek gizliliğini ve bütünlüğünü korur. Bu, özellikle hassas bilgilerin e-posta ile gönderildiği durumlarda önemlidir.
1. Sertifika Oluşturma (Self-Signed):
Deneme amaçlı veya dahili kullanım için kendinden imzalı bir sertifika oluşturabilirsiniz. Üretim ortamında Let’s Encrypt gibi bir CA’dan veya ticari bir sağlayıcıdan alınmış güvenilir bir sertifika kullanmanız önerilir.
sudo mkdir -p /etc/postfix/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/postfix/ssl/smtpd.key -out /etc/postfix/ssl/smtpd.crt
Bu komut, bir yıl geçerli 2048 bit RSA anahtarı ve kendinden imzalı bir sertifika oluşturacaktır. Sertifika bilgileri sorulduğunda, FQDN’nizi (örneğin, mailserver.example.com) “Common Name” olarak girin.
Anahtar dosyasının izinlerini güvence altına alın:
sudo chmod 400 /etc/postfix/ssl/smtpd.key
2. Postfix TLS Yapılandırması:
main.cf dosyasını düzenleyin:
sudo nano /etc/postfix/main.cf
Aşağıdaki satırları ekleyin:
# TLS Ayarları
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_security_level = may
smtp_tls_security_level = may
smtpd_tls_loglevel = 1
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
* smtpd_tls_cert_file ve smtpd_tls_key_file: Sertifika ve özel anahtar dosyalarının yolları.
* smtpd_tls_security_level = may: Gelen bağlantılar için TLS kullanmaya çalışır, ancak TLS mümkün değilse şifresiz bağlantıya izin verir. encrypt veya dane gibi daha sıkı seçenekler de mevcuttur.
* smtp_tls_security_level = may: Giden bağlantılar için TLS kullanmaya çalışır.
Değişikliklerden sonra Postfix’i yeniden başlatın:
sudo service postfix restart
Spam ve Virüs Koruması
Spam ve virüsler, e-posta sunucularının en büyük sorunlarından biridir. Postfix, bu tehditlere karşı doğrudan bir koruma sağlamaz, ancak harici yazılımlarla entegre edilebilir.
* SpamAssassin Entegrasyonu: SpamAssassin, e-postaları spam olup olmadığını belirlemek için çeşitli kurallar ve algoritmalar kullanan popüler bir spam filtreleme aracıdır. Postfix ile birlikte çalışacak şekilde yapılandırılabilir. Kurulumu ve yapılandırması bu makalenin kapsamını aşmakla birlikte, Postfix’in master.cf dosyası aracılığıyla SpamAssassin’ı bir filtre olarak kullanabileceğini belirtmek önemlidir.
* ClamAV Entegrasyonu: ClamAV, açık kaynaklı bir antivirüs motorudur. Gelen ve giden e-postaları virüs ve kötü amaçlı yazılımlara karşı taramak için Postfix ile entegre edilebilir. Benzer şekilde, Postfix master.cf aracılığıyla ClamAV’ı bir içerik filtresi olarak kullanır.
SPF ve DKIM Kayıtları
Yukarıda DNS kayıtları bölümünde bahsedilen SPF ve DKIM, giden e-postalarınızın spam olarak işaretlenmesini önlemek için kritik öneme sahiptir. SPF, alan adınızdan gönderim yapmaya yetkili sunucuları belirtirken, DKIM e-postaları dijital olarak imzalar.
* opendkim Kurulumu ve Yapılandırması: DKIM imzalaması için opendkim gibi bir yazılımın kurulması gerekir.
sudo apt-get install opendkim opendkim-tools
Kurulumdan sonra, opendkim için anahtar çiftleri oluşturmanız, /etc/opendkim.conf dosyasını yapılandırmanız ve Postfix’i bu filtreyi kullanacak şekilde ayarlamanız gerekir. Bu, genellikle main.cf ve master.cf dosyalarına belirli milter ayarları eklenerek yapılır. opendkim kurulumu ve yapılandırması ayrı bir detaylı rehber gerektiren bir konudur, ancak bir mail sunucusu için vazgeçilmez bir güvenlik adımı olduğunu unutmamak gerekir.
Kullanıcı Yönetimi ve Mail Kutuları
Postfix, e-postaları yerel sistem kullanıcılarına veya sanal kullanıcılara teslim edebilir.
Sistem Kullanıcıları ile Mail Kutuları
En basit yaklaşım, Linux sisteminizdeki mevcut kullanıcı hesaplarını e-posta kutuları olarak kullanmaktır. Her sistem kullanıcısının kendi e-posta kutusu olacaktır.
* Kullanıcı Oluşturma:
sudo adduser newuser
Bu komut, newuser adında yeni bir sistem kullanıcısı oluşturur.
* Maildir Oluşturma (eğer home_mailbox = Maildir/ ayarlandıysa):
sudo su - newuser -c "maildirmake ~/Maildir"
Bu komut, newuser‘ın ev dizininde Maildir yapısını oluşturur.
Artık newuser@example.com adresine gönderilen e-postalar, newuser‘ın posta kutusuna teslim edilecektir. Kullanıcılar, e-postalarına POP3/IMAP sunucusu (örneğin Dovecot) ve bir e-posta istemcisi (Thunderbird, Outlook vb.) kullanarak erişebilirler.
Virtual Users ve Virtual Domains
Daha büyük veya daha esnek bir e-posta sistemi için, sanal kullanıcılar ve sanal alan adları kullanmak daha yaygındır. Bu yöntem, her e-posta adresinin bir sistem kullanıcısıyla eşleşmesini gerektirmez ve birden fazla alan adı için e-posta hizmeti vermenizi sağlar.
* Sanal Kullanıcılar: Postfix, /etc/postfix/virtual gibi bir dosyada veya bir veritabanında (MySQL, PostgreSQL) tanımlanan sanal e-posta adreslerini belirli yerel kullanıcılara veya başka e-posta adreslerine yönlendirebilir.
Örneğin, /etc/postfix/virtual dosyasına:
info@example.com sysadmin
sales@example.com john.doe
@example.com catchall
Bu dosya sudo postmap /etc/postfix/virtual komutu ile veritabanına dönüştürülür ve main.cf‘ye virtual_alias_maps = hash:/etc/postfix/virtual olarak eklenir.
* Sanal Alan Adları: Birden fazla alan adı için e-posta hizmeti vermek istiyorsanız, Postfix’i sanal alan adlarını işleyecek şekilde yapılandırabilirsiniz. Bu, genellikle her alan adı için ayrı bir posta kutusu yapısı veya farklı kullanıcı eşlemeleri gerektirir. Bu tür bir yapılandırma, genellikle Dovecot gibi bir IMAP/POP3 sunucusu ile birlikte ve bir veritabanı (MySQL) kullanarak daha karmaşık hale gelir.
Bu konu, Postfix’in en karmaşık yapılandırmalarından biridir ve genellikle ayrı bir makale konusu olacak kadar detaylıdır. Ancak temel olarak, esnek bir e-posta sistemi kurmak için sanal kullanıcı ve alan adları kavramlarının Postfix’in yeteneklerinin önemli bir parçası olduğunu bilmek önemlidir.
Postfix Yönetimi ve Sorun Giderme
Bir Postfix sunucusunu kurduktan ve yapılandırdıktan sonra, düzenli yönetim ve olası sorun giderme işlemleri önem kazanır.
Servis Komutları
Postfix servisini yönetmek için standart service komutlarını kullanabilirsiniz:
* Başlatma:
sudo service postfix start
* Durdurma:
sudo service postfix stop
* Yeniden Başlatma: (Yapılandırma değişikliklerinden sonra sıkça kullanılır)
sudo service postfix restart
* Durum Kontrolü:
sudo service postfix status
* Yapılandırmayı Yeniden Yükleme: (Çalışan servisi durdurmadan yapılandırma değişikliklerini uygular)
sudo service postfix reload
Log Dosyaları
Postfix’in tüm etkinlikleri ve hataları log dosyalarına kaydedilir. En önemli log dosyası /var/log/mail.log‘dur. Bu dosya, e-posta gönderim, alım ve teslimat süreçleriyle ilgili ayrıntılı bilgiler içerir.
sudo tail -f /var/log/mail.log
Bu komut, mail.log dosyasının sonunu sürekli olarak izlemenizi sağlar, böylece gerçek zamanlı olarak e-posta trafiğini ve olası hataları görebilirsiniz. Sorun giderme sırasında bu dosya en değerli bilgi kaynağınız olacaktır.
Kuyruk Yönetimi
Postfix, işlenmeyi bekleyen e-postaları bir kuyrukta tutar. Bu kuyruğu yönetmek için çeşitli komutlar mevcuttur:
* Kuyruktaki E-postaları Listeleme:
sudo postqueue -p
Veya daha ayrıntılı bilgi için:
sudo mailq
* Kuyruktaki Tüm E-postaları Yeniden İşleme:
sudo postqueue -f
Bu komut, kuyruktaki tüm e-postaları hemen yeniden göndermeye çalışır.
* Belirli Bir E-postayı Kuyruktan Silme:
E-postanın kuyruk ID’sini postqueue -p çıktısından alın ve aşağıdaki komutu kullanın:
sudo postsuper -d
Örneğin: sudo postsuper -d 12345ABCDE
* Tüm E-postaları Kuyruktan Silme: (Dikkatli kullanın!)
sudo postsuper -d ALL
Bu komut, tüm bekleyen e-postaları kalıcı olarak siler.
Hata Ayıklama İpuçları
* Yapılandırma Kontrolü: sudo postfix check komutu, main.cf dosyasındaki olası sözdizimi hatalarını veya tutarsızlıkları kontrol eder.
* Ayrıntılı Loglama: main.cf dosyasındaki loglevel ayarını artırarak daha ayrıntılı log bilgileri elde edebilirsiniz. Örneğin, smtpd_tls_loglevel = 1 gibi.
* Telnet ile Test: SMTP portuna (25, 587) telnet ile bağlanarak, manuel olarak SMTP komutları gönderip sunucunun yanıtlarını gözlemleyebilirsiniz. Bu, bağlantı sorunlarını veya kimlik doğrulama hatalarını tespit etmek için çok etkilidir.
* DNS Kayıtlarını Kontrol Etme: dig veya nslookup gibi araçlarla alan adınızın A, MX, SPF ve DKIM kayıtlarını kontrol edin. Yanlış DNS kayıtları, e-postaların gönderilmesini veya alınmasını engelleyebilir.
dig MX example.com
dig TXT example.com
* Güvenlik Duvarı Kontrolü: Sunucunuzda bir güvenlik duvarı (örneğin, UFW) çalışıyorsa, SMTP (25, 587), SMTPS (465), POP3 (110), POP3S (995), IMAP (143) ve IMAPS (993) gibi gerekli portların açık olduğundan emin olun.
sudo ufw status
sudo ufw allow 25/tcp
sudo ufw allow 587/tcp
# Diğer portları da ihtiyaca göre ekleyin
* Postconf Komutu: postconf -n komutu, main.cf dosyasındaki varsayılan olmayan tüm ayarları gösterir. Bu, yapılandırmanızı hızlıca gözden geçirmek için kullanışlıdır.
postconf -n
Sonuç
Bu makale, Ubuntu 14.04 üzerinde Postfix e-posta sunucusunun kurulumu ve yapılandırmasına dair kapsamlı bir rehber sunmuştur. Temel sistem hazırlıklarından başlayarak, Postfix’in kurulumu, ana yapılandırma dosyası (main.cf) üzerinden yapılan detaylı ayarlamalar, güvenlik önlemleri (SASL ve TLS) ve kullanıcı yönetimi konularına değindik. Ayrıca, bir mail sunucusunun sağlıklı çalışmasını sağlamak için gerekli olan DNS kayıtlarının önemini ve yönetim ile sorun giderme ipuçlarını da ele aldık.
Unutulmamalıdır ki, bir e-posta sunucusu kurmak ve sürdürmek sürekli dikkat ve bakım gerektiren bir iştir. Güvenlik güncellemelerini takip etmek, log dosyalarını düzenli olarak kontrol etmek, spam ve virüs koruma sistemlerini güncel tutmak, sunucunuzun performansını ve güvenliğini sağlamak için hayati öneme sahiptir. Özellikle Ubuntu 14.04 gibi eski bir işletim sistemi kullanıyorsanız, güvenlik açıklarına karşı daha dikkatli olmanız ve mümkünse daha güncel bir sürüme geçiş yapmayı düşünmeniz önerilir. Bu rehber, sağlam bir temel oluşturmanıza yardımcı olacak ve kendi e-posta sunucunuzu başarıyla yönetmeniz için gerekli bilgileri sağlayacaktır.
