Ubuntu 16.04 Üzerine Postfix Kurulumu ve Yapılandırması: Adım Adım Kapsamlı Rehber
Giriş
Günümüzde e-posta iletişimi, hem kişisel hem de kurumsal dünyada vazgeçilmez bir araç haline gelmiştir. Bir e-posta sunucusu kurmak, bir alan adına sahip olmak ve bu alan adı üzerinden e-posta gönderip almak isteyenler için temel bir adımdır. Postfix, açık kaynak kodlu, güvenilir, esnek ve performansı yüksek bir Mail Transfer Agent (MTA) olarak bu ihtiyacı karşılamak üzere tasarlanmıştır. Sendmail’e alternatif olarak geliştirilen Postfix, daha basit bir yapılandırma ve daha iyi bir güvenlik mimarisi sunar.
Bu kapsamlı rehberde, Ubuntu 16.04 sunucusu üzerine Postfix’in nasıl kurulacağını ve temel düzeyde nasıl yapılandırılacağını adım adım ele alacağız. Amacımız, kendi e-posta sunucunuzu kurarak e-posta gönderme ve alma yeteneğine sahip olmanızı sağlamaktır. Ubuntu 16.04, uzun süreli destek (LTS) sürümü olmasına rağmen, bu makalenin yazıldığı tarihte destek süresi sona ermiştir. Ancak, belirli senaryolar veya eski sistemlerle uyumluluk gereksinimleri nedeniyle hala bu sürümü kullanmak zorunda olanlar için bu rehber güncel ve faydalı bilgiler sunacaktır. Üretim ortamlarında her zaman güncel ve desteklenen işletim sistemi sürümlerinin kullanılması şiddetle tavsiye edilir.
Postfix Nedir?
Postfix, e-postaları bir sunucudan diğerine iletmekten sorumlu bir MTA’dır. Bir e-posta istemcisinden (örneğin Outlook, Thunderbird) gönderilen e-postaları alır, doğru hedefe yönlendirir ve gelen e-postaları yerel kullanıcılara veya diğer e-posta sunucularına teslim eder. Postfix’in temel amacı, e-posta sistemlerini güvenli, hızlı ve kolay yönetilebilir kılmaktır. Modüler yapısı sayesinde, güvenlik katmanları, spam filtreleri ve virüs tarayıcıları gibi ek bileşenlerle kolayca entegre edilebilir.
Neden Postfix Kullanmalıyız?
* Güvenlik: Postfix, güvenlik açıkları konusunda oldukça dikkatli geliştirilmiştir ve Sendmail gibi eski MTA’lara kıyasla daha güvenli bir mimariye sahiptir.
* Performans: Yüksek hacimli e-posta trafiğini verimli bir şekilde yönetebilir.
* Kolay Yapılandırma: Yapılandırma dosyaları nispeten basittir ve anlaşılması kolaydır.
* Esneklik: Çeşitli ihtiyaçlara göre özelleştirilebilir ve diğer e-posta bileşenleriyle (IMAP/POP3 sunucuları, spam filtreleri) entegre edilebilir.
* Açık Kaynak: Geniş bir topluluk desteğine sahiptir ve ücretsizdir.
Ön Gereksinimler
Bu rehbere başlamadan önce aşağıdaki maddelerin hazır olduğundan emin olmalısınız:
* Ubuntu 16.04 Sunucusu: Temiz bir Ubuntu 16.04 LTS kurulumuna sahip bir sanal veya fiziksel sunucu.
* Root veya Sudo Yetkisine Sahip Kullanıcı: Tüm kurulum ve yapılandırma adımları için yönetici ayrıcalıklarına sahip bir kullanıcıya ihtiyacınız olacak.
* Temel Ağ Bilgisi: IP adresleri, portlar ve DNS kavramlarına aşina olmak faydalıdır.
* Bir Alan Adı (Domain Name): E-posta sunucunuzun üzerinden e-posta göndereceği ve alacağı bir alan adına sahip olmalısınız (örneğin, ornekalanadi.com).
* DNS Kayıtları: Alan adınız için gerekli DNS kayıtlarını (MX, A/AAAA, PTR) yapılandırabilme yeteneği.
* Güvenlik Duvarı (UFW) Bilgisi: Sunucunuzun güvenlik duvarını yapılandırma bilgisi.
* SSH Erişimi: Sunucuya uzaktan bağlanmak için SSH erişimi.
Sistem Hazırlığı
Postfix kurulumuna başlamadan önce sunucunuzun güncel olduğundan ve doğru şekilde yapılandırıldığından emin olmalıyız.
Sistem Güncellemesi
İlk adım olarak, paket listelerini güncelleyelim ve mevcut paketleri en son sürümlerine yükseltelim:
sudo apt update
sudo apt upgrade -y
Bu komutlar, sisteminizin güvenliğini ve kararlılığını sağlamak için önemlidir.
Hostname ve FQDN Yapılandırması
E-posta sunucunuzun kendisini ağda doğru bir şekilde tanıtması için hostname (ana bilgisayar adı) ve FQDN (Fully Qualified Domain Name – Tam Nitelikli Alan Adı) ayarlarının doğru olması kritik öneme sahiptir. FQDN, sunucunuzun tam alan adını ifade eder (örn. mail.ornekalanadi.com).
Mevcut hostname’inizi kontrol edin:
hostname
hostname -f
Eğer hostname -f komutu FQDN’nizi göstermiyorsa veya yanlışsa, bu ayarları düzenlemeniz gerekir.
/etc/hostname dosyasını düzenleyerek sunucunuzun kısa adını belirleyin (örneğin, mail):
sudo nano /etc/hostname
Dosyanın içeriği sadece mail olmalı. Kaydedip çıkın (CTRL+X, Y, Enter).
Ardından, /etc/hosts dosyasını düzenleyerek IP adresinizi FQDN’nizle eşleştirin:
sudo nano /etc/hosts
Dosyanın içeriğine aşağıdaki gibi bir satır ekleyin veya mevcut satırları düzenleyin:
127.0.0.1 localhost
127.0.1.1 mail.ornekalanadi.com mail
Diğer IP adresleriniz varsa buraya ekleyebilirsiniz
Sunucu_IP_Adresi mail.ornekalanadi.com mail
Sunucu_IP_Adresi yerine sunucunuzun gerçek genel IP adresini, mail.ornekalanadi.com yerine kendi FQDN’nizi ve mail yerine kısa hostname’inizi yazın. Değişiklikleri kaydettikten sonra, sistemin yeni hostname’i tanıması için yeniden başlatmanız önerilir:
sudo reboot
Sunucu yeniden başladıktan sonra hostname ve hostname -f komutlarını tekrar çalıştırarak ayarların doğru olduğunu teyit edin.
Güvenlik Duvarı (UFW) Yapılandırması
Güvenlik duvarı, sunucunuzu dış tehditlerden korumak için kritik bir bileşendir. Ubuntu’da UFW (Uncomplicated Firewall) varsayılan olarak gelir ve kullanımı kolaydır. E-posta hizmetlerinin çalışabilmesi için gerekli portları açmamız gerekecek.
Öncelikle UFW durumunu kontrol edin:
sudo ufw status verbose
Eğer UFW etkin değilse, SSH bağlantınızın kesilmemesi için öncelikle SSH portunu (varsayılan 22) açın ve ardından UFW’yi etkinleştirin:
sudo ufw allow ssh
sudo ufw enable
Onaylamak için y tuşuna basın.
Şimdi e-posta hizmetleri için gerekli portları açalım:
* 25/tcp (SMTP): E-posta sunucuları arasında e-posta transferi için kullanılan standart port.
* 465/tcp (SMTPS): Güvenli (SSL/TLS üzerinden) e-posta gönderimi için eski bir port, bazı eski istemciler hala kullanabilir.
* 587/tcp (Submission): E-posta istemcileri tarafından kimlik doğrulaması yapılmış e-posta gönderimi için önerilen port.
sudo ufw allow 25/tcp
sudo ufw allow 465/tcp
sudo ufw allow 587/tcp
Değişiklikleri kontrol etmek için:
sudo ufw status verbose
Çıktıda açtığınız portları görmelisiniz.
Postfix Kurulumu
Sistemimiz hazır olduğuna göre, Postfix’i kurmaya başlayabiliriz.
Paket Kurulumu
Postfix paketini apt kullanarak kolayca kurabiliriz:
sudo apt install postfix -y
Kurulum sırasında bir dizi yapılandırma ekranı ile karşılaşacaksınız. Bu ekranlar, Postfix’in temel ayarlarını yapmanızı sağlar.
1. General type of mail configuration: Bu ekranda, e-posta sunucunuzun genel amacını seçmeniz istenir. Çoğu durumda, “Internet Site” seçeneğini seçmelisiniz. Bu, Postfix’in e-postaları doğrudan diğer sunuculara göndereceği ve alacağı anlamına gelir. Seçiminizi yapmak için Tab tuşunu kullanarak “OK” üzerine gelin ve Enter tuşuna basın.
2. System mail name: Bu, e-posta sunucunuzun kendisini tanıtacağı alan adıdır (örn. ornekalanadi.com). Genellikle FQDN’nizin alan adı kısmıdır. Doğru alan adını girin ve “OK” tuşuna basın.
Bu adımlardan sonra Postfix kurulumu tamamlanacaktır.
Temel Yapılandırma Dosyaları
Postfix’in tüm yapılandırması /etc/postfix/ dizini altında bulunur. En önemli iki dosya şunlardır:
* /etc/postfix/main.cf: Postfix’in ana yapılandırma dosyasıdır. Genel ayarlar, güvenlik kuralları ve diğer birçok parametre burada tanımlanır.
* /etc/postfix/master.cf: Postfix’in bileşen hizmetlerini (SMTP, SMTPS vb.) ve onların nasıl çalıştırılacağını tanımlar. Genellikle bu dosyaya çok sık dokunmayız.
Postfix Temel Yapılandırması
Şimdi main.cf dosyasını düzenleyerek Postfix’i alan adımıza ve ihtiyaçlarımıza göre yapılandıralım.
sudo nano /etc/postfix/main.cf
Aşağıdaki parametreleri bulup düzenleyin veya ekleyin. Yorum satırlarını (#) kaldırarak veya yeni satırlar ekleyerek yapabilirsiniz.
* myhostname: Bu, sunucunuzun FQDN’sidir. hostname -f komutunun çıktısı ile aynı olmalıdır.
myhostname = mail.ornekalanadi.com
* mydomain: Alan adınızdır.
mydomain = ornekalanadi.com
* myorigin: Bu parametre, yerel olarak gönderilen e-postaların hangi alan adından geliyormuş gibi görüneceğini belirler. Genellikle mydomain ile aynıdır.
myorigin = $mydomain
* mydestination: Postfix’in hangi alan adları için e-posta kabul edeceğini belirler. Sunucunuzun kendisi için e-posta almasını istiyorsanız, buraya alan adınızı ve localhost’u eklemelisiniz.
mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost
* mynetworks: Güvenilir ağları tanımlar. Bu ağlardan gelen bağlantılar için Postfix, kimlik doğrulaması istemeden e-posta göndermeye izin verir. Dikkatli olun, yanlış yapılandırılırsa açık bir röle (open relay) oluşturabilir ve spam gönderimine yol açabilir. Genellikle 127.0.0.0/8 (localhost) ve sunucunuzun yerel ağ IP aralığı yeterlidir.
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
Eğer sunucunuzun belirli bir özel ağ IP aralığı varsa (örneğin 192.168.1.0/24), onu da ekleyebilirsiniz, ancak genel IP adreslerini buraya eklemek genellikle iyi bir fikir değildir.
* inet_interfaces: Postfix’in hangi ağ arayüzlerinden bağlantı kabul edeceğini belirler. Genellikle all olarak ayarlanır, bu da tüm mevcut arayüzlerden bağlantı kabul etmesi anlamına gelir. Eğer sadece belirli bir IP adresinden (örneğin sunucunuzun genel IP’si) dinlemesini isterseniz, o IP adresini buraya yazabilirsiniz.
inet_interfaces = all
* inet_protocols: Postfix’in hangi IP protokollerini kullanacağını belirler (IPv4, IPv6 veya her ikisi).
inet_protocols = all
* home_mailbox: Gelen e-postaların yerel kullanıcıların posta kutularına nasıl teslim edileceğini belirler. Maildir formatı modern ve daha esnektir. Eğer Maildir kullanacaksanız, kullanıcıların ana dizinlerinde .maildir adında bir dizin oluşturulacaktır.
home_mailbox = Maildir/
Bu ayarı yaptıktan sonra, her kullanıcının ana dizininde mkdir -p ~/Maildir komutu ile .maildir dizinini oluşturmanız gerekebilir.
* mailbox_size_limit: Posta kutularının maksimum boyutunu belirler (byte cinsinden). 0 sınırsız anlamına gelir.
mailbox_size_limit = 0
* recipient_delimiter: E-posta adreslerinde uzantıları ayırmak için kullanılan karakterdir (örn. kullanici+etiket@alanadi.com).
recipient_delimiter = +
* alias_maps ve alias_database: E-posta takma adlarını (alias) yönetmek için kullanılır. root kullanıcısına gelen e-postaları başka bir kullanıcıya yönlendirmek gibi.
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
Bu temel yapılandırmaları yaptıktan sonra, dosyayı kaydedin ve kapatın (CTRL+X, Y, Enter).
Yapılandırmayı Test Etme ve Yeniden Başlatma
Yapılandırma dosyasında bir hata olup olmadığını kontrol etmek için:
sudo postfix check
Eğer herhangi bir hata mesajı almazsanız, yapılandırmanız sözdizimsel olarak doğrudur. Şimdi Postfix hizmetini yeniden başlatalım:
sudo systemctl restart postfix
veya eski Ubuntu sürümlerinde:
sudo service postfix restart
Hizmetin durumunu kontrol edin:
sudo systemctl status postfix
veya:
sudo service postfix status
“active (running)” mesajını görmelisiniz.
E-posta Gönderme ve Alma Testleri
Postfix’in doğru çalıştığından emin olmak için birkaç test yapalım.
Yerel E-posta Gönderme
İlk olarak, sunucunuzdaki yerel bir kullanıcıya e-posta gönderelim. Eğer mail komutu yüklü değilse, yükleyin:
sudo apt install mailutils -y
Şimdi bir test e-postası gönderin (örneğin, sunucunuzdaki youruser adlı kullanıcıya):
echo "Bu Postfix sunucumdan gelen bir test e-postasıdır." | mail -s "Yerel Postfix Testi" youruser
youruser yerine sunucunuzdaki geçerli bir kullanıcı adını yazın. E-postayı kontrol etmek için youruser olarak giriş yapın ve mail komutunu çalıştırın.
Harici E-posta Gönderme
Şimdi sunucunuzdan harici bir e-posta adresine (örneğin, Gmail adresinize) e-posta göndermeyi deneyelim:
echo "Bu Postfix sunucumdan harici bir test e-postasıdır." | mail -s "Postfix Harici Test" your_email@example.com
your_email@example.com yerine kendi gerçek e-posta adresinizi yazın. E-postanızın gelip gelmediğini kontrol edin. Gecikmeler veya ulaşmama durumunda, Postfix loglarını kontrol edebilirsiniz:
tail -f /var/log/mail.log
Loglarda, gönderim işleminin başarılı olup olmadığına dair bilgiler (örneğin, status=sent) veya hatalar (örneğin, status=bounced) yer alacaktır.
Harici E-posta Alma
Harici e-postaları almak için, alan adınızın DNS kayıtlarının doğru yapılandırılması çok önemlidir. Özellikle bir MX kaydına (Mail Exchanger) ihtiyacınız vardır. MX kaydı, diğer e-posta sunucularına, alan adınız için e-postaları nereye göndermeleri gerektiğini söyler.
Örnek MX kaydı:
@ IN MX 10 mail.ornekalanadi.com.
Burada mail.ornekalanadi.com sizin Postfix sunucunuzun FQDN’sidir ve 10 öncelik değeridir (daha düşük sayı daha yüksek öncelik anlamına gelir).
Ayrıca, mail.ornekalanadi.com için bir A kaydının (veya IPv6 kullanıyorsanız AAAA kaydının) sunucunuzun genel IP adresine işaret ettiğinden emin olun.
mail IN A Sunucu_IP_Adresi
Son olarak, bir PTR kaydı (Pointer Record) yapılandırmak da önemlidir. PTR kaydı, IP adresini alan adına çevirir (ters DNS araması). Bu, özellikle spam filtreleri tarafından e-posta sunucunuzun meşruiyetini doğrulamak için kullanılır. PTR kaydı genellikle IP adresinizi sağlayan hosting veya VPS sağlayıcınız tarafından yapılandırılır. Onlarla iletişime geçerek sunucunuzun IP adresi için FQDN’nizi (örneğin mail.ornekalanadi.com) gösteren bir PTR kaydı oluşturmalarını isteyin.
DNS değişikliklerinin internet genelinde yayılması biraz zaman alabilir (birkaç saatten 48 saate kadar). DNS kayıtlarınız doğru yapılandırıldığında, harici bir e-posta adresinden youruser@ornekalanadi.com adresine bir test e-postası gönderin ve sunucunuzda youruser olarak oturum açıp mail komutuyla gelen kutunuzu kontrol edin.
Güvenlik ve Gelişmiş Yapılandırmalar
Temel kurulum tamamlandı, ancak e-posta sunucunuzu güvenli ve işlevsel hale getirmek için bazı ek adımlar atmamız gerekiyor.
SMTP Kimlik Doğrulaması (SASL)
Postfix varsayılan olarak kimlik doğrulaması yapmadan e-posta göndermeye izin vermez (açık röle olmaması için). Ancak, ağınız dışındaki e-posta istemcilerinin (örneğin dizüstü bilgisayarınızdaki Outlook) sunucunuz aracılığıyla e-posta göndermesi için kimlik doğrulaması yapmaları gerekir. Bunu sağlamak için SASL (Simple Authentication and Security Layer) kullanacağız. saslauthd servisi, sistem kullanıcılarını kullanarak kimlik doğrulaması yapmamızı sağlar.
1. saslauthd Kurulumu:
sudo apt install sasl2-bin libsasl2-modules -y
2. saslauthd Yapılandırması:
/etc/default/saslauthd dosyasını düzenleyin:
sudo nano /etc/default/saslauthd
Aşağıdaki satırları bulun ve değerlerini değiştirin:
START=yes
MECHANISMS="pam"
OPTIONS="-c -m /var/spool/postfix/sasl"
* START=yes: Servisin otomatik başlamasını sağlar.
* MECHANISMS="pam": Kimlik doğrulaması için PAM (Pluggable Authentication Modules) kullanmasını sağlar, bu da sistem kullanıcı adları ve şifrelerini kullanabileceğiniz anlamına gelir.
* OPTIONS="-c -m /var/spool/postfix/sasl": saslauthd‘nin chroot ortamında çalışmasını ve Postfix’in erişebileceği bir Unix soketi oluşturmasını sağlar.
Postfix’in saslauthd‘nin soketine erişebilmesi için uygun izinleri ayarlayın:
sudo adduser postfix sasl
sudo chown -R postfix:sasl /var/spool/postfix/sasl
sudo chmod 755 /var/spool/postfix/sasl
saslauthd servisini başlatın ve etkinleştirin:
sudo systemctl restart saslauthd
sudo systemctl enable saslauthd
sudo systemctl status saslauthd
3. Postfix main.cf İçine SASL Ayarları Ekleme:
main.cf dosyasını tekrar açın:
sudo nano /etc/postfix/main.cf
Dosyanın sonuna aşağıdaki satırları ekleyin:
# SASL (SMTP Authentication)
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot # Alternatif olarak "cyrus" da kullanılabilir, ama dovecot daha yaygın.
smtpd_sasl_path = private/auth # Bu ayar Dovecot kullanılıyorsa gereklidir.
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination
* smtpd_sasl_auth_enable = yes: SMTP kimlik doğrulamasını etkinleştirir.
* smtpd_sasl_type = dovecot: Kimlik doğrulama için Dovecot SASL kullanıldığını belirtir. Eğer sadece saslauthd kullanıyorsanız bu satırı atlayabilirsiniz veya cyrus olarak ayarlayabilirsiniz. Ancak Dovecot ile entegrasyon daha yaygındır.
* smtpd_sasl_path = private/auth: Dovecot SASL soketinin yolunu belirtir.
* smtpd_sasl_security_options = noanonymous: Anonim kimlik doğrulamasını devre dışı bırakır.
* smtpd_sasl_local_domain = $myhostname: Kimlik doğrulama alan adını belirler.
* broken_sasl_auth_clients = yes: Bazı eski e-posta istemcileriyle uyumluluk sağlar.
* smtpd_recipient_restrictions: Bu, Postfix’in gelen e-postaları nasıl işleyeceğine dair kuralları tanımlar.
* permit_mynetworks: mynetworks içinde tanımlanan ağlardan gelen bağlantılara izin verir.
* permit_sasl_authenticated: Kimlik doğrulaması yapılmış kullanıcılardan gelen e-postalara izin verir (bu, istemcilerinizin sunucunuz üzerinden e-posta göndermesi için gereklidir).
* reject_unauth_destination: Postfix’in kendi sorumlu olmadığı alan adları için e-posta aktarımını reddeder (açık röleyi önler).
Kaydedin ve çıkın.
4. Postfix’i Yeniden Başlatma:
sudo systemctl restart postfix
5. SASL Kimlik Doğrulamasını Test Etme:
testsaslauthd komutu ile bir sistem kullanıcısının kimlik doğrulamasını test edebilirsiniz:
testsaslauthd -u youruser -p yourpassword
youruser ve yourpassword yerine sunucunuzdaki bir kullanıcının bilgilerini yazın. Eğer çıktı 0: OK "Success." ise, kimlik doğrulaması başarılıdır.
TLS/SSL Şifrelemesi
E-posta trafiğinin güvenliğini sağlamak için TLS (Transport Layer Security) veya SSL (Secure Sockets Layer) şifrelemesi kullanmak çok önemlidir. Bu, e-postaların gönderildiği ve alındığı sırada içeriğin şifrelenmesini sağlar.
1. Kendi Kendine İmzalı (Self-Signed) Sertifika Oluşturma:
Üretim ortamları için Let’s Encrypt gibi bir hizmetten alınan geçerli bir sertifika kullanmak önerilir. Ancak test veya dahili kullanım için kendi kendine imzalı bir sertifika oluşturabiliriz.
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/postfix.key -out /etc/ssl/certs/postfix.crt
Bu komutu çalıştırdığınızda, sertifika bilgileri için size bazı sorular sorulacaktır. Kendi alan adınıza uygun bilgileri girin (örneğin, Common Name için mail.ornekalanadi.com).
2. Postfix main.cf İçine TLS Ayarları Ekleme:
main.cf dosyasını tekrar açın:
sudo nano /etc/postfix/main.cf
Dosyanın sonuna aşağıdaki satırları ekleyin:
# TLS/SSL Configuration
smtpd_tls_cert_file = /etc/ssl/certs/postfix.crt
smtpd_tls_key_file = /etc/ssl/private/postfix.key
smtpd_tls_security_level = may
smtpd_tls_protocols = !SSLv2, !SSLv3
smtpd_tls_loglevel = 1
smtpd_use_tls = yes
smtp_tls_security_level = may
smtp_tls_protocols = !SSLv2, !SSLv3
* smtpd_tls_cert_file ve smtpd_tls_key_file: Sertifika ve özel anahtar dosyalarının yollarını belirtir.
* smtpd_tls_security_level = may: Sunucu tarafında TLS’yi etkinleştirir ancak zorunlu kılmaz. encrypt veya dane gibi daha sıkı seçenekler de mevcuttur.
* smtpd_tls_protocols: Kullanılacak TLS protokollerini belirler, eski ve güvensiz olanları devre dışı bırakırız.
* smtpd_tls_loglevel = 1: TLS bağlantıları hakkında log kaydı seviyesini belirler.
* smtpd_use_tls = yes: Gelen bağlantılar için TLS kullanımını etkinleştirir (eski bir ayar, smtpd_tls_security_level daha modern bir yaklaşımdır).
* smtp_tls_security_level = may ve smtp_tls_protocols: Giden bağlantılar için TLS ayarlarıdır.
Kaydedin ve çıkın.
3. Postfix’i Yeniden Başlatma:
sudo systemctl restart postfix
Artık e-posta istemcinizi yapılandırırken SSL/TLS şifrelemesini kullanabilirsiniz (genellikle port 587 için STARTTLS veya port 465 için SSL/TLS).
Spam ve Virüs Koruması
E-posta sunucuları spam ve virüs saldırılarının hedefi olabilir. Postfix, bu tür tehditlere karşı çeşitli önlemlerle entegre edilebilir:
* DNS Kara Listeleri (DNSBL): Bilinen spam gönderen IP adreslerini listeleyen servislerdir. smtpd_recipient_restrictions içine ekleyerek kara listedeki sunuculardan gelen e-postaları reddedebilirsiniz.
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_rbl_client zen.spamhaus.org, # Örnek bir DNSBL
reject_unauth_destination
Birden fazla DNSBL kullanabilirsiniz.
* SpamAssassin: Gelen e-postaları spam olup olmadığını belirlemek için analiz eden güçlü bir spam filtreleme sistemidir. Postfix ile entegre edilebilir.
* ClamAV: E-postalardaki virüsleri taramak için kullanılan açık kaynaklı bir antivirüs yazılımıdır. Postfix ile entegre edilebilir.
Bu entegrasyonlar bu makalenin kapsamı dışındadır, ancak e-posta sunucunuzu üretim ortamında kullanmayı planlıyorsanız mutlaka araştırmanız ve uygulamanız gereken adımlardır.
Alias ve Sanal Kullanıcılar
* Alias (Takma Adlar): /etc/aliases dosyası, bir e-posta adresine gelen e-postaları başka bir adrese veya yerel bir kullanıcıya yönlendirmek için kullanılır. Örneğin, root kullanıcısına gelen e-postaları kendi kullanıcınıza yönlendirebilirsiniz:
sudo nano /etc/aliases
Dosyaya ekleyin:
root: youruser
Değişiklikleri yaptıktan sonra newaliases komutunu çalıştırmalısınız:
sudo newaliases
* Sanal Etki Alanları ve Kullanıcılar: Birden fazla alan adı için e-posta hizmeti sunmak veya Postfix’in sistem kullanıcıları yerine sanal kullanıcıları kullanmasını sağlamak istiyorsanız, virtual_alias_maps veya virtual_mailbox_maps gibi ayarları kullanmanız gerekir. Bu, genellikle bir IMAP/POP3 sunucusu (örneğin Dovecot) ile birlikte daha gelişmiş bir yapılandırma gerektirir.
İpuçları ve Sorun Giderme
E-posta sunucusu kurulumu bazen karmaşık olabilir. İşte size yardımcı olabilecek bazı ipuçları ve sorun giderme yöntemleri:
Log Dosyaları
Postfix’in tüm etkinlikleri /var/log/mail.log (veya syslog yapılandırmanıza bağlı olarak başka bir yerde) dosyasında tutulur. Sorunları teşhis etmek için bu dosyayı düzenli olarak kontrol edin:
tail -f /var/log/mail.log
Bu komut, log dosyasının sonuna eklenen yeni satırları gerçek zamanlı olarak gösterir.
Postmap Komutu
alias_maps veya virtual_alias_maps gibi haritaları (map) düzenledikten sonra, Postfix’in bu değişiklikleri tanıması için postmap komutunu çalıştırmanız gerekir. Örneğin:
sudo postmap /etc/aliases
Postconf Komutu
postconf komutu, Postfix yapılandırmasını sorgulamak ve görüntülemek için çok kullanışlıdır:
* Mevcut yapılandırmanın özetini görmek için (varsayılan değerler hariç):
postconf -n
* Tüm yapılandırma parametrelerini varsayılan değerleriyle birlikte görmek için:
postconf -d
* Belirli bir parametrenin değerini görmek için:
postconf myhostname
Telnet ile SMTP Testi
SMTP bağlantısını manuel olarak test etmek için telnet kullanabilirsiniz:
telnet localhost 25
Bağlantı başarılı olursa, aşağıdaki gibi komutlar girebilirsiniz:
EHLO yourdomain.com
MAIL FROM:
RCPT TO:
DATA
Subject: Test Email
This is a test message.
.
QUIT
Her komuttan sonra sunucudan bir yanıt bekleyin. . (nokta) ve ardından Enter tuşuna basmak, e-posta içeriğinin sonunu belirtir.
DNS Kontrolü
E-posta teslimat sorunlarının çoğu yanlış DNS kayıtlarından kaynaklanır.
* MX kaydınızı kontrol edin:
dig MX ornekalanadi.com
* A kaydınızı kontrol edin:
dig A mail.ornekalanadi.com
* PTR kaydınızı (ters DNS) kontrol edin:
dig -x Sunucu_IP_Adresi
Bu komutlar, DNS kayıtlarınızın doğru olup olmadığını anlamanıza yardımcı olacaktır.
Sonuç
Bu rehberde, Ubuntu 16.04 sunucusu üzerine Postfix e-posta sunucusunun nasıl kurulacağını ve temel düzeyde nasıl yapılandırılacağını ayrıntılı olarak ele aldık. Sistem hazırlığından başlayarak, Postfix kurulumu, temel yapılandırma, e-posta gönderme/alma testleri ve güvenlik iyileştirmeleri (SASL ve TLS) gibi önemli adımları tamamladık.
Artık kendi alan adınız üzerinden e-posta gönderebilen ve alabilen temel bir e-posta sunucusuna sahipsiniz. Ancak, bir e-posta sunucusunun bakımı ve yönetimi sürekli bir süreçtir. Spam ve virüs koruması için ek bileşenlerin entegrasyonu, bir IMAP/POP3 sunucusu (örneğin Dovecot) ile birleştirilerek kullanıcıların e-postalarına erişimini sağlamak ve düzenli güvenlik güncellemeleri yapmak, sunucunuzun güvenli ve verimli çalışmasını sürdürmek için atılması gereken sonraki adımlardır.
Unutmayın, Ubuntu 16.04’ün destek süresi sona ermiştir. Yeni projeler için daha güncel ve desteklenen işletim sistemi sürümlerini kullanmanız, uzun vadede güvenlik ve uyumluluk sorunlarını önleyecektir. Bu rehber, belirli bir ihtiyaca yönelik olarak Ubuntu 16.04 üzerinde Postfix kurulumunu anlamak için değerli bir kaynak sağlamaktadır.