iRedMail ile Ubuntu 18.04'te Posta Sunucusu Kurulumu & Yapılandırması

Gelişmiş bir Linux kullanıcısı değilseniz, Linux’te kendi e-posta sunucunuzu sıfırdan kurmak canınızı acıtabilir :smiley: Bu öğretici size Ubuntu 18.04’te hızlı bir şekilde tam özellikli bir posta sunucusu kurmak için iRedMail’in nasıl kullanılacağını öğreterek zamandan ve paradan tasarruf etmenizi sağlayacaktır.

iRedMail nedir?

iRedMail, Linux/BSD sunucunuza gerekli tüm posta sunucusu bileşenlerini otomatik olarak yükleyen ve yapılandıran, böylece manuel yükleme ve yapılandırmayı ortadan kaldıran bir betiktir. iRedMail ile web tabanlı yönetici panelinde kolayca sınırsız posta kutusu ve sınırsız posta alanı oluşturabilirsiniz. Posta kutuları MariaDB/MySQL, PostreSQL veritabanı veya OpenLDAP içinde saklanabilir. iRedMail’de kullanılan açık kaynaklı yazılımlar şunlardır:

  • Postfix SMTP sunucusu
  • Dovecot IMAP sunucusu
  • Yönetici paneli ve web postası arayüzünü sunmak için Nginx web sunucusu
  • Bilgileri depolamak için OpenLDAP, MySQL/MariaDB/PostgreSQL veritabanı sunucusu
  • DKIM imzalama ve doğrulama için Amavised-new
  • Anti-spam için SpamAssassin
  • Anti-virüs için ClamAV
  • Roundcube web postası
  • SOGo grup çalışma yazılımı
  • SSH’ı korumak için Fail2ban
  • mlmmj posta listesi yöneticisi
  • Netdata sunucu sağlığı izleme yazılımı
  • Gri liste için iRedAPD Postfix ilke sunucusu

Ön gereksinimler;

  • Temiz Ubuntu 18.04 LTS kurulu bir sunucu (DigitalOcean tavsiyemdir)
  • DNS kayıtları yapılandırılmış bir alan adı (Let’s Encrypt SSL sertifikası için)
  • ACME (SSL) etkileşimi ve doğrulama işlemi 443 portu açık olmalıdır
  • İsteğe bağlı olarak Mozilla Thunderbird ya da Microsoft Outlook posta programı
  • root ya da sudo yetkilerine sahip bir kullanıcı ile SSH erişimi
  • mail.sizinalanadiniz.com A etki alanı yukarıda belirtilen sunucuya hedef gösterilmelidir.
  • sizinalanadiniz.com A etki alanı yukarıda belirtilen sunucuya hedef gösterilmelidir.
  • MX kaydınız mail.sizinalanadınız.com adresini hedef gösterilmelidir.

Ön Adım 1: Sunucunuzu & Alan Adınızı Satın Alın

iRedMail ile eksiksiz bir e-posta sunucusu kurmak için, en az 2 GB RAM’e sahip bir sunucuya ihtiyacınız var, çünkü kurulumdan sonra sunucunuz 1 GB RAM’den fazla kullanacaktır.

Ubuntu 18.04 sisteminin temiz bir kurulumunda aşağıdaki talimatları izlemeniz şiddetle tavsiye edilir. iRedMail gibi karmaşık bir sunucu yazılımının bir parçasını LTS olmayan bir Ubuntu’ya yüklemek, işletim sisteminizi her 9 ayda bir yükseltirken muhtemelen sorunlarla karşılaşacağınız için önerilmez.

Ön Adım 2: DNS Yapılandırmanızı Yapın

Alan adınızı sağlayan firma DNS kontrol panelinden ya da kendi DNS kontrol paneliniz varsa içerisinden mail.sizinalanadiniz.com için sunucu IP adresinizi hedefleyen bir A kaydı açmalısınız. MX kaydınızı ise mail.sizinalanadiniz.com hedefleyecek şekilde yapılandırmalısınız. Biz bu kurulumda mail.sizinalanadiniz.com, sizinalanadiniz.com etki alan adlarını ve 49.12.34.61 IP adresini kullanacağız. Bu değerleri kendi etki alan adınız ve IP adresiniz ile değiştirmeyi unutmayın!

Posta sunucunuzun ana bilgisayar adı olarak mail.sizinalanadiniz.com yani tam etki alanı adı (FQDN) kullanmalısınız. Ana bilgisayar adını ayarlamak için aşağıdaki komutu çalıştırın.

sudo hostnamectl set-hostname mail.sizinalanadiniz.com

Sonrasında:

sudo nano /etc/hosts

Şu alanı bulun:

127.0.1.1 sizinalanadiniz.com sizinalanadiniz
127.0.0.1 localhost

Şu şekilde güncelleyin:

127.0.1.1 mail.sizinalanadiniz.com sizinalanadiniz.com sizinalanadiniz
127.0.0.1 localhost

Şimdi DNS kayıtlarının internete yayılıp yayılmadığını doğrulamamız gerekiyor. Kullandığınız etki alanı kayıt şirketine bağlı olarak, DNS kaydınız anında yayılabilir veya yayılması 24 saat sürebilir. DNS durumu için https://dnsmap.io adresinden, posta sunucunuzun ana bilgisayar adını ( mail.sizinalanadiniz.com ) girin.

DNS kaydınız başarılı bir şekilde yayılmış görünüyorsa, aşağıdan kurulum işlerine başlayabilirsiniz.

Adım 1: iRedMail ile Ubuntu 18.04’te Posta Sunucusunu Kurulumu

iRedMail komut dosyası yükleyicisinin en son sürümünü GitHub deposundan indirmek için aşağıdaki komutları çalıştırın:

sudo apt-get update
sudo apt-get upgrade -y
sudo apt install git -y
git clone https://github.com/iredmail/iRedMail.git

Sonra yeni oluşturulan dizine girin:

cd iRedMail/

iRedMail.sh komut dosyasına yürütülebilir izini ekleyin:

chmod +x iRedMail.sh

Ardından, Bash betiğini sudo ayrıcalığı ile çalıştırın:

sudo bash iRedMail.sh

Ncurses tabanlı kurulum sihirbazı görünecektir. Yes seçin ve Enter tuşuna basın:

Bir sonraki ekran sizden posta depolama yolunu seçmenizi isteyecektir. Varsayılan olanı /var/vmail kullanabilirsiniz, bu nedenle sadece Enter tuşuna basmanız yeterlidir.

Ardından bir web sunucusu çalıştırmak isteyip istemediğinizi seçin. E-posta hesapları eklemek için web tabanlı yöneticiye ihtiyacınız olduğu için bir web sunucusu çalıştırmayı seçmeniz önemle tavsiye edilir. Ayrıca Roundcube web postasına erişmenizi sağlar. Varsayılan olarak, Nginx web sunucusu seçilidir, bu nedenle Enter tuşuna basmanız yeterlidir. (Yıldız işareti bir ögenin seçildiğini gösterir.)

Ardından, e-posta hesapları için depolama arka ucunu seçin. Biz bu öğretici de MariaDB’i seçeceğiz. Bu ekranda işlem yapmak için yukarı ve aşağı ok tuşlarına basın ve seçmek için boşluk çubuğuna basın.

MariaDB veya MySQL’i seçtiyseniz, MySQL kök parolasını ayarlamanız gerekir.

MariaDB’yi seçtiyseniz, MariaDB kabuğuna giriş yapmak için parolaya ihtiyacınız olmadığını unutmayın. mysql -u root -p normal komutunu çalıştırmak yerine, sudo ile MariaDB kök parolası girmeden oturum açmak için aşağıdaki komutu çalıştırabilirsiniz.

sudo mysql -u root

Bunun nedeni, Ubuntu 18.04’teki MariaDB paketinin, kullanıcıların MariaDB’ye bağlanmak için işletim sistemi kimlik bilgilerini kullanmalarına izin veren unix_socket kimlik doğrulama eklentisini kullanmasıdır, ancak yine de iRedMail kurulum sihirbazında kök parola ayarlamanız gerekir.

Ardından, ilk posta alanınızı girin. Daha sonra web tabanlı yönetici panelinde ek posta alan adları ekleyebilirsiniz. Bu eğitici de biz muhyal@sizinalanadiniz.com e-posta adresini kullanacağız. Bu durumda, alt alanınız olmadan sizinalanadiniz.com adresini buraya girmeniz gerekir. Alan adınızdan sonra boşluk çubuğuna basmayın.

Ardından, posta etki alanı yöneticisi için bir parola belirleyin:

Şimdi isteğe bağlı bileşenleri seçin. Varsayılan olarak 4 öğe seçilidir. SOGo grup yazılımına da sahip olmak için, onuda seçin ve Enter tuşuna basın.

Şimdi yapılandırmalarınızın özetini inceleyebilirsiniz. Tüm posta sunucusu bileşenlerinin kurulumuna başlamak için Y yazın ve Enter tuşuna basın.

Kurulumun sonunda, iRedMail tarafından sağlanan güvenlik duvarı kurallarını kullanmak ve güvenlik duvarını yeniden başlatmak için Y seçin ve Enter tuşuna basın.

Şimdi iRedMail kurulumunu tamamladınız. Web postası, SOGo grup yazılımı ve web yöneticisi panelinin bağlantısı ve oturum açma bilgileri size çıktı olarak verildi. iRedMail.tips dosyası, iRedMail sunucunuz hakkında önemli bilgiler içerir.

Ubuntu 18.04 sunucunuzu yeniden başlatın:

sudo shutdown -r now

Sunucunuz tekrar çevrimiçi olduğunda, web yönetici panelini ziyaret edebilirsiniz.
https://mail.sizinalanadiniz.com/iredadmin/

Yukarıdaki bağlantıda, yönetici paneline erişmek için alt dizinin /iredmail/ değil /iredadmin/ olduğunu unutmayın. Şu an kendinden imzalı bir sertifika kullandığımız için, web tarayıcınıza güvenlik ibaresi olan https:// eklemeniz gerekir. Ve bir uyarı almanız gayet normaldir.

Adım 2: Let’s Encrypt ücretsiz TLS sertifikası kurulumunu yapın

Posta sunucumuz kendinden imzalı bir TLS sertifikası kullandığından, hem masaüstü posta istemcisi kullanıcıları hem de web posta istemcisi kullanıcıları bir uyarı görür.

Bunu düzeltmek için ücretsiz bir Let’s Encrypt TLS sertifikası alabilir ve yükleyebiliriz:

sudo apt install software-properties-common -y
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt install certbot -y

iRedMail, varsayılan Nginx sanal ana bilgisayarında TLS ayarlarını zaten yapılandırdı, bu yüzden burada sertifika almak için nginx eklentisi yerine webroot eklentisini kullanmanızı öneriyorum. Aşağıdaki komutu çalıştırın. İlgili alanları kendi verilerinizle değiştirin.

sudo certbot certonly --webroot --agree-tos --email muhyal@sizinalanadiniz.com -d mail.sizinalanadiniz.com -w /var/www/html/

Her şey yolunda giderse, başarıyla sertifika aldığınızı belirten aşağıdaki metni göreceksiniz. Sertifikalarınız /etc/letsencrypt/live/mail.sizinalanadiniz.com/ dizinine kaydedilecektir.

Sertifika alma işlemi başarısız oldu ise:

Certbot TLS sertifikası alamadıysa, bunun nedeni DNS kayıtlarınızın İnternet’e yayılmamış olmasıdır. Kullandığınız alan adı kayıt kuruluşuna bağlı olarak, DNS kaydınız anında yayılabilir veya yayılması 24 saat kadar sürebilir. DNS yayılımını kontrol etmek için https://dnsmap.io adresine gidebilir, posta sunucunuzun ana bilgisayar adını (mail.sizinalanadiniz.com) girebilirsiniz.

Certbot bir sertifika alamadıysa ve aşağıdaki mesajı gördüyseniz:

mail.sizinalanadiniz.com için AAAA kaydı ayarlamış olabilirsiniz, ancak Nginx web sunucusu IPv6 adresini dinlemiyor olabilir. Bu hatayı düzeltmek için /etc/nginx/sites-enabled/00-default.conf dosyasını düzenleyin:

sudo nano /etc/nginx/sites-enabled/00-default.conf

Aşağıdaki satırı bulun:

#listen [::]:80;

Bu Nginx sanal ana bilgisayarı için IPv6’yı etkinleştirmek için # karakterini kaldırın.

listen [::]:80;

Dosyayı kaydedip kapatın. Ardından /etc/nginx/sites-enabled/00-default-ssl.conf SSL sanal ana bilgisayar yapılandırmasını düzenleyin:

sudo nano /etc/nginx/sites-enabled/00-default-ssl.conf

Aşağıdaki satırı ekleyin:

listen [::]:443 ssl http2;

SSL sanal ana bilgisayar yapılandırmasını düzenleyin

Dosyayı kaydedip kapatın. Ardından Nginx yapılandırmasını test edin.

sudo nginx -t

Test başarılı olursa, değişikliğin etkili olması için Nginx’i yeniden başlatın:

sudo systemctl reload nginx

TLS sertifikası almak için aşağıdaki komutu tekrar çalıştırın. İlgili kısımları kendi verilerinizle değiştirmeyi unutmayın.

sudo certbot certonly --webroot --agree-tos --email muhyal@sizinalanadiniz.com -d mail.sizinalanadiniz.com -w /var/www/html/

Artık TLS sertifikasını başarıyla almış olmanız gerekiyor.

Aldığınız sertifikayı Nginx’e yükleyin

TLS sertifikası aldıktan sonra, Nginx web sunucusunu bu sertifika ile kullanmak için yapılandıralım.

SSL şablon dosyasını düzenleyin:

sudo nano /etc/nginx/templates/ssl.tmpl

Aşağıdaki 2 satırı bulun:

ssl_certificate /etc/ssl/certs/iRedMail.crt;
ssl_certificate_key /etc/ssl/private/iRedMail.key;

Şu şekilde değiştirin:

ssl_certificate /etc/letsencrypt/live/mail.sizinalanadiniz.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mail.sizinalanadiniz.com/privkey.pem;

Dosyayı kaydedip kapatın. Ardından Nginx yapılandırmasını test edin ve yeniden başlatın:

sudo nginx -t
sudo systemctl reload nginx

Postfix ve Dovecot’a TLS sertifikasını yükleyin

Masaüstü posta istemcisinin güvenlik uyarısı göstermemesi için Postfix SMTP sunucusunu ve Dovecot IMAP sunucusunu Let Encrypt sertifikasını kullanacak şekilde yapılandırmamız gerekiyor.

Postfix’in ana yapılandırma dosyasını düzenleyin:

sudo nano /etc/postfix/main.cf

Aşağıdaki 3 satırı bulun (satır 95, 96, 97):

smtpd_tls_key_file = /etc/letsencrypt/live/mail.sizinalanadiniz.com/privkey.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.sizinalanadiniz.com/cert.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/mail.sizinalanadiniz.com/chain.pem

Dosyayı kaydedip kapatın. Sonra Postfix’i yeniden başlatın:

sudo systemctl reload postfix

Ardından, Dovecot’un ana yapılandırma dosyasını düzenleyin:

sudo nano /etc/dovecot/dovecot.conf

Aşağıdaki 2 satırı bulun (satır 47, 48):

ssl_cert = </etc/ssl/certs/iRedMail.crt
ssl_key = </etc/ssl/private/iRedMail.key

Şu şekilde değiştirin:

ssl_cert = </etc/letsencrypt/live/mail.sizinalanadiniz.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.sizinalanadiniz.com/privkey.pem

Dosyayı kaydedip kapatın. Ardından Dovecot’u yeniden başlatın:

sudo systemctl reload dovecot

iRedMail yönetici panelini tekrar ziyaret edin, Nginx artık geçerli bir TLS sertifikası kullandığından web tarayıcınız sizi daha uyarmayacak.

Adım 3: E-posta gönderme ve almayı test edin

postmaster@ posta hesabıyla iredadmin paneline giriş yapın. Add sekmesinden, ek alan adları veya e-posta adresleri ekleyebilirsiniz.

Ekran görüntülerindeki adımlar ile devam edebilirsiniz:

Adım 4: 25 bağlantı noktasının (giden postalar için) engellenip engellenmediğini kontrol edin

Barındırma sağlayıcınız sunucunuzun 25 numaralı bağlantı noktasına gelen bağlantıyı engellemez, bu da diğer posta sunucularından e-posta alabileceğiniz anlamına gelir. Bununla birlikte, birçok barındırma sağlayıcısı, diğer posta sunucularının 25 numaralı bağlantı noktasına giden bağlantıyı engeller, bu da e-posta gönderemeyeceğiniz anlamına gelir.

E-postanız diğer alıcı e-posta adresinize ulaşmadıysa, 25 numaralı bağlantı noktasının (giden postalar) engellendiğini Gmail ile kontrol etmek için posta sunucunuzda aşağıdaki komutu çalıştırın.

telnet gmail-smtp-in.l.google.com 25

Engellenmiyor ise, aşağıdaki gibi bir bağlantının başarıyla kurulduğunu gösteren çıktıları görürsünüz. (Çıkmak için quit yazın ve kapatmak için Enter tuşuna basın.)

Bağlantı noktası 25 (giden postalar) engellenmiş ise, aşağıdaki gibi bir çıktı görürsünüz:

Trying 2607:f8b0:400e:c06::1a...
Trying 74.125.195.27...
telnet: Unable to connect to remote host: Connection timed out

Bu durumda, Postfix’iniz diğer SMTP sunucularına e-posta gönderemez. Barındırma sağlayıcınızdan sizin için bu bağlantı noktasını açmasını isteyin.

Adım 5: Bilgisayarınızda veya mobil aygıtınızda posta istemcilerini kullanın

Outlook gibi bir masaüstü e-posta istemcinizi çalıştırın ve posta hesabınızı ekleyin.

  • Gelen sunucu bölümünde IMAP Protokolü’nü seçin, mail.sizinalanadiniz.com sunucu adı olarak girin, bağlantı noktası 993 ve SSL/TLS seçeneğini seçin.
  • Giden sunucu bölümünde SMTP Protokolü’nü seçin, mail.sizinalanadiniz.com sunucu adı olarak girin, bağlantı noktası 587 ve STARTTLS’yi seçin.

IMAP, 143 numaralı bağlantı noktasında STARTTLS şifrelemesi ile de kullanabilirsiniz.

Adım 6: E-posta teslim edilebilirliğini artırın

Gönderdiğimiz postaların SPAM olarak algılanmasını engellemek için PTR , SPF , DKIM ve DMARC kayıtlarını ayarlayalım.

DKIM Kaydı

DKIM (DomainKeys Identified Mail), alan adınızdan gönderilen e-postaları dijital olarak imzalamak için özel bir anahtar kullanır. DKIM kaydında yayınlanan genel anahtar kullanılarak imza doğrulanır.

iRedMail, DKIM özelliğini sunucunuz için otomatik olarak yapılandırır. Yapılması gereken tek şey DNS yöneticisinde DKIM kaydı oluşturmak. DKIM ortak anahtarını göstermek için aşağıdaki komutu çalıştırmaktır:

sudo amavisd-new showkeys

Örnek çıktı:

; key#1 2048 bits, i=dkim, d=sizinalanadiniz.com, /var/lib/dkim/sizinalanadiniz.com.pem
dkim._domainkey.sizinalanadiniz.com.    3600 TXT (
  "v=DKIM1; p="
  "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAushN12z+XYCwmB+9ybgq"
  "6OAU5Mnpta5NiBgVUqnvrFCD16A72hoVt5N8kruNy4xXbs/ybAEqewGXJDtqpRz9"
  "kpxkQogca/jlU4PMoKcptuMW9FMbDjoXNAO5qfnTjyDTPkWBjIohd+ICWUoHiHwC"
  "DTb+dhPR9Co4PPEIeLHIYEnpBWd0iNSXS6qEzZWUzBk1Yb4jXgZE7sbcyBvumJl/"
  "V6HopUBHhg5LXmW/DGHjG+H2B8uSASBYlbH9qFEQC/D78OYI69je79buOBPpF6EP"
  "3v41G0e8qto31UgET76g7n82H1bXLHM0HG4ZUYWSSy1QVL5ibLl257PsvyAoFXvM"
  "gwIDAQAB")

DNS yöneticinizde bir TXT kaydı oluşturun, ad alanına dkim._domainkey yazın. Parantez içindeki her şeyi kopyalayın ve değer alanına yapıştırın. Tüm çift tırnak ve satır sonlarını silin.

PTR kaydı

Bir PTR kaydı, bir IP adresini FQDN (tam etki alanı adı) ile eşleştirir. A kaydının karşılığı ve SPAM gönderenleri engellemeye yardımcı olabilecek ters DNS araması için kullanılır. Gönderen sunucuda PTR kaydı bulunmazsa, birçok SMTP sunucusu e-postaları reddeder.

Bir IP adresi için PTR kaydını kontrol etmek için şu komutu çalıştırın:

dig -x 49.12.34.61 +short

Şu çıktıyı vermelidir:

mail.sizinalanadiniz.com

Sağlayıcınızdan IP adresi aldığınızdan, etki alanı kayıt şirketinizden değil, PTR kaydını barındırma sağlayıcınızın kontrol panelinde ayarlamanız gerekir. Bu değer posta sunucunuzun ana bilgisayar adı olmalıdır: mail.sizinalanadiniz.com . Sunucunuz IPv6 adresi kullanıyorsa, IPv6 adresiniz için de bir PTR kaydı eklediğinizden emin olun.

SPF kaydı

SPF (Sender Policy Framework) kaydı, hangi ana bilgisayarların veya IP adresinin bir etki alanı adına e-posta göndermesine izin verileceğini belirtir. Yalnızca kendi e-posta sunucunuzun etki alanınız için e-posta göndermesine izin vermelisiniz. DNS yönetim arayüzünüzde, aşağıdaki gibi yeni bir TXT kaydı oluşturun.

v=spf1 mx ~all

Açıklama:

  • TXT bu değerin bir TXT kaydı olduğunu gösterir.
  • Ana etki alanı adını temsil etmek için ad alanına @ işaretini girin.
  • v = spf1, bunun bir SPF kaydı olduğunu ve sürümün SPF1 olduğunu gösterir.
  • mx , MX kayıtlarında listelenen tüm ana bilgisayarların etki alanınız için e-posta göndermesine izin verildiği ve diğer tüm ana bilgisayarların izin verilmediği anlamına gelir.
  • ~all , alan adınızdan gelen e-postaların yalnızca SPF kaydında belirtilen ana bilgisayarlardan gelmesi gerektiğini gösterir. Diğer ana bilgisayarlardan gelen e-postalar sahte olarak işaretlenir.

SPF kaydınızın genel internete yayılıp yayılmadığını kontrol etmek için, aşağıdaki gibi Linux makinenizdeki dig yardımcı programını kullanabilirsiniz:

dig sizinalanadiniz.com txt

DMARC kaydı

DMARC (Etki alanı tabanlı ileti kimlik doğrulaması) e-postaları tanımlamak ve alan adınızın e-posta sahtekarlığı ile kullanılmasını önlemek için yardımcı olur.

Bir DMARC kaydı oluşturmak için DNS yöneticinize gidin ve bir TXT kaydı ekleyin. Ad alanına _dmarc girin. Değer alanına aşağıdakileri girin:

v=DMARC1; p=none; pct=100; rua=mailto:dmarc-reports@sizinalanadiniz.com

Yukarıdaki DMARC kaydı güvenli bir başlangıç noktasıdır.

(Opsiyonel) Gri liste nasıl devre dışı bırakılır?

Varsayılan olarak, iRedMail diğer gönderici SMTP sunucularına birkaç dakika içinde tekrar deneme yapmalarını söyleyen gri listeyi etkinleştirmiştir. Bu çoğunlukla SPAM engellemek için kullanışlıdır, ancak kullanıcı posta kullanımı deneyimini de düşürür. Gri listeyi devre dışı bırakmayı tercih ediyorsanız aşağıdaki adımları uygulayın:

/opt/iredapd/settings.py dosyasına yazma izni ekleyin:

sudo chmod 600 /opt/iredapd/settings.py

Ardından yapılandırma dosyasını düzenleyin:

sudo nano /opt/iredapd/settings.py

Aşağıdaki satırı bulun:

plugins = ["reject_null_sender", "wblist_rdns", "reject_sender_login_mismatch", "greylisting", "throttle", "amavisd_wblist", "sql_alias_access_policy"]

Listeden “greylisting” kaldırın. Dosyayı kaydedip kapatın. Ardından iredapd’yi yeniden başlatın:

sudo systemctl restart iredapd

Yapılandırma dosyasını salt okunur moduna değiştirin:

sudo chmod 400 /opt/iredapd/settings.py

Adım 7: Let’s Encrypt sertifikasının otomatik olarak yenilenmesini ayarlayın

Let’s Encrypt tarafından verilmiş olan sertifika yalnızca 90 gün geçerlidir ve sertifikayı otomatik olarak yenilemek için bir Cron işi ayarlamanız gerekir.

Sertifikayı yenilemek için aşağıdaki komutu çalıştırabilirsiniz:

sudo certbot renew

Gerçek bir yenileme yapmak yerine yenileme işlemini test etmek için --dry-run seçeneğini kullanabilirsiniz:

sudo certbot renew --dry-run

Sertifikayı yenilerken aşağıdaki hatayı görürseniz:

The client lacks sufficient authorization :: Invalid response

Gizli doğrulama dizini oluşturmanız gerekiyor demektir:

sudo mkdir -p /var/www/html/.well-known/acme-challenge

Ve www-data’yı web kökünün sahibi olarak ayarlayın:

sudo chown www-data:www-data /var/www/html/ -R

Ayrıca, SSL sanal ana bilgisayarını /etc/nginx/sites-enabled/00-default-ssl.conf dosyasını düzenleyin. Aşağıdaki satırları ekleyin:

sudo nano /etc/nginx/sites-enabled/00-default-ssl.conf
location ~ /.well-known/acme-challenge {
     root /var/www/html/;
     allow all;
}

Dosyayı kaydedip kapatın. Nginx yapılandırmasını test edin ve yeniden başlatın:

sudo nginx -t
sudo systemctl reload nginx

Cron ayarlayarak otomatik olarak sertifikanızı yenileyin

Şimdi --dry-run başarılı olursa, sertifikayı otomatik olarak yenilemek için Cron işi oluşturabilirsiniz. Kök kullanıcının crontab dosyasını açmanız yeterlidir:

sudo crontab -e

Ardından, dosyanın altına aşağıdaki satırı ekleyin:

@daily certbot renew --quiet && systemctl reload postfix dovecot nginx

Adım 8: E-posta puanınızı test edin

PTR, SPF, DKIM kaydı oluşturduktan sonra https://www.mail-tester.com adresine gidin. Bu adreste size benzersiz bir e-posta adresi verilecek. Bu adrese bir e-posta gönderin ve puanınızı kontrol edin. Gördüğünüz gibi, biz mükemmel bir puan aldık.

mail-tester.com size sadece bir gönderici puanını gösterebilir. Bu adımda e-postanızın alıcının gelen kutusuna veya SPAM klasörüne düşüp, düşmediğini veya tamamen reddedilip reddedilmediğini kontrol etmenizi sağlayan GlockApps (Sadece ilk üç test ücretsizdir!) hizmetini kullanabilirsiniz. GlockApps, Gmail, Outlook, Hotmail, YahooMail, iCloud vb. birçok popüler e-posta sağlayıcısını destekler.

E-postanız Microsoft tarafından reddedilirse ne yapmalısınız?

Microsoft, birçok geçerli IP adresini engelleyen bir iç kara liste kullanıyor gibi görünüyor. Eğer sizin e-postalarınız Outlook ya da Hotmail üzerinde reddediliyor ise şu adresteki formu kullanabilirsiniz. Bu işlemden sonra, e-postalarınız Outlook/Hotmail tarafından kabul edilecektir.

Bu kadar! Umarım bu öğretici, Ubuntu 18.04’te iRedMail ile bir tam kapsamlı posta sunucusu kurmanıza yardımcı olmuştur. Her zaman olduğu gibi, bu gönderiyi yararlı bulduysanız, beğenebilir ve aşağıdan fikirlerinizi bizimle paylaşabilirsiniz. Kendinize iyi bakın :smiley:

Ekstra bilgiler ve kurmuş olduğumuz sistemden ekran görüntüleri:

Roundcube webmail oturum açmak için:
https://mail.sizinalanadiniz.com/mail/

SOGo groupware oturum açmak için:
https://mail.sizinalanadiniz.com/SOGo/

netdata (sunucu sağlığı izleme) oturum açmak için:
https://mail.sizinalanadiniz.com/netdata/

iRedMail web yöneticisi panelinde oturum açmak için (iRedAdmin): https://mail.sizinalanadiniz.com/iredadmin/

Bu paneller için kullanacağınız ortak oturum açma bilgileri:
Kullanıcı adınız: postmaster@sizinalanadiniz.com
Şifreniz: SSH ekranında belirtilen ve sizin belirlediğiniz şifre

SOGo, Netdata, iRedMail, Roundcube ekran görüntüleri:

1 Beğeni

Sayenizde açık kaynak Türkçe doküman eksiğimiz kalmıyor. Elinize sağlık.

1 Beğeni

BİLGİLENDİRME;

DigitalOcean veya Vultr üzerinde sunucunuzu eklemek istiyorsunuz diyelim sunucunuzu oluşturduktan sonra muhakkak ama muhakkak Google’a mxtoolbox blacklist yazın ve ilk çıkan site’ye girin. Bunun sebebi bu makaleye başlamadan IP adresinizin kara listeye düşme ihtimali olmasıdır.

Peki IP adresim kara liste de görünüyorsa ne yapmalıyım ?

Eğer yeni bir sunucu kurduysanız hiç üşenmeden direk silin. Aksi takdirde bu makaleyi uygulasanız bile mailleriniz SPAM’e düşebilir.

Sildikten sonra yeni bir sunucu kurun ve tekrar test edin. Olmadı mı ? Tekrar silin ve tekrar kurup test edin. Baktınız ki IP adresiniz kara listeye düşmedi nihayet işte şimdi makaleye başlayabilirsiniz.

ÖNEMLİ

Mail sunucunuzu DigitalOcean üzerinden kurmanızı tavsiye ederim. Sebesi ise DigitalOcean diğer VPS servislerine kıyasla 25 Portunu Engellemiyor. Dolayısı ile pek sıkıntı yaşamazsınız. Ama yok ben Vultr ile çalışmak istiyorum diyorsanız da elbette çalışın fakat bunun için Vultr’da destek kısmından ticket açıp, 25 nolu portu açmalarını isteyebilirsiniz.

Eğer DigitalOcean’da ben Floating IP kullanmak istiyorum sorun olur mu derseniz, evet olur. A kaydınız kesinlikle gerçek IP adresiniz olmalı. Aynı durum Vultr için de geçerli.

Son olarak DigitalOcean’da mail sunucunuz’da ipv6 olarak da kullanmak istiyorsanız oluşturduğunuz droplet kesinlikle ama kesinlikle web sitenizin ismi şeklinde olmak zorunda. Örneğin; droplet isminiz ubuntu-ny-1gb gibiyse hemen değiştirin. Çünkü PTR kayıtları DigitalOcean üzerinden otomatik olarak gerçekleştiriliyor yani siz manuel olarak ekleme yapamıyorsunuz. Ama tavsiyem ipv6’yı en azından DigitalOcean üzerinden kullanmamak. Çünkü ciddi anlamda sıkıntı yaşadım.

Merhaba,

Öncelikle nihayet böylesine kaliteli ve verimli Türkçe kaynaklı bir web sitesi keşfettiğim için çok mutlu olup, site sahibi Muhammed Bey’e de teşekkür etmek istiyorum.

Makale için çok çok teşekkürler.

Yalnız bir tavsiyem var, https://www.ssllabs.com/ da sitemizi test ettiğimizde A derecesine ulaştık fakat sizler eğer A+ isteyen arkadaşlar olursa;

Terminal’de aşağıda ki komutu girin;

sudo nano /etc/nginx/templates/ssl.tmpl

Ardından aşağıda ki komutların başına # ekleyin;

ssl_protocols TLSv1.2;
# Fix 'The Logjam Attack'.
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/ssl/dh2048_param.pem;

Sonuç bu şekil de olmalı;

# ssl_protocols TLSv1.2;
# Fix 'The Logjam Attack'.
# ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
# ssl_prefer_server_ciphers on;
# ssl_dhparam /etc/ssl/dh2048_param.pem;

Ve ardından bu satırları üstte ki satırın altına direk kopyala-yapıştır yapın;

ssl_session_cache shared:SSL:20m;
ssl_session_timeout 180m;
# removed TLSv1.0 & TLSv1.1 added TLSv1.3, kept TLSv1.2 for compatibility - Dec 2019
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
# changed ssl_ciphers
ssl_ciphers 'TLS13+AESGCM+AES128:EECDH+AES128';
ssl_dhparam /etc/ssl/dh2048_param.pem;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4;
# resolver timeout can be set up to 30s
resolver_timeout 5s;
# Dec 2019 Additions needed for TLSv1.3
ssl_session_tickets off;
ssl_ecdh_curve secp384r1;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; " always;

Ardından dosyayı kaydedip çıkın; Ctrl+X Y Enter

Ardından nginx yapılandırmasını test edin:

sudo nginx -t

Ve yeniden başlatın;

sudo systemctl reload nginx

Sonra https://www.ssllabs.com/ sitesinden tekrar test edin. Eğer SSL Labs tekrar test etmenize izin vermiyor ise clean cache’e basıp işlemi tekrar başlatın.

Ekstra

Siteniz için bir CAA kaydı ekleyin.

Bunun için şahsen DigitalOcean’da çalışmalarımı yapıyorum. DNS kısmına gelip CAA kaydı açın. YALNIZ LETSENCRYPT İÇİN GÖSTERİLMİŞTİR. Başka bir SSL kullanıyorsanız eğer ona göre düzenlemelisiniz;

HOSTNAME:mail
AUTHORITY GRANTED FOR:letsencrypt.org
TAG:issue
FLAGS:0
TTL (SECONDS):3600 (zaten otomatik değeri)

Ekledikten sonra hemen test etmeyin. Biraz bekleyin ve Google’a CAA record checker yazın ve test edin.

Bonus

DigitalOcean’da hesabı olanlar için 15$ hediye çeki. Yalnız güncel hesabı olup sunucuları olanlar için yeni üye kaydı değil!

LOWENDBOX

Herkese iyi çalışmalar.

1 Beğeni

Harikasınız! Çok teşekkürler ek bilgilendirmeler için.

1 Beğeni

Makale için teşekkür ederim, elinize sağlık.
https://cloud.digitalocean.com/ bir sunucu oluşturup kurulumu yaptım fakat mailler ya spama düşüyor yada hiç gitmiyor bunun sebebi ne olabilir.
SPF, DMAC, DKIM bütün kayıtların hepsini ayarladım, [Yunus Şükrü Gülten] hocanın söylediği CAA ayarlamasınıda yaptım, IP adresi blacklist de değil, herşey düzgün görünüyor ama çözemedim sorunu?
Sizce problem ne olabilir? Kurulum yapıp gmail, hotmail, yahoo gibi sitelere deneme imkanı olan oldumu?

Şu platformdan bir test edin bakalım nedir sorun?

https://www.mail-tester.com/test-wfz8q817z
testin sonucu 9.9 çıkıyor 10 üzerinden.

Sanki digitaloceon 'daki ip adreslerinde sıkıntı var gibi geliyor bana.

Başka postalarla ve alıcılarla denediniz mi? DKIM, SPF ayarlamadan denemeler yaptıysanız bu sorun olabiliyor.

Başka eposta adreslerine gönderdiğim de ya spam a düşüyor yâda hiç gitmiyor, iki sunucu kurdum iki farklı domain ismi ile, ikinci kurduğumun bütün ayarlarını yaptıktan sonra denedim, sonuc ayni.

Şu adrese gönderin lütfen birde:

Test sonrası gizlendi

Kurmuş olduğum iki domainden de gönderdim vermiş olduğunuz mail adresine

İkisi de gelen kutusuna düştü.

Çoğu adrese gitmiyor, özellikle hotmail, yahoo gmail de de spama düşüyor, bunun sebebi nedir sizce? Ne yapmak gerekir?

Sunucu IP adresinizi blacklistlerden kontrol ettiniz mi?

Merhabalar,

Makale ve video için teşekkürler. Tüm kurum adımlarını yaptım. Açmış olduğun yeni 2 mail adresi arasında tüm mailleşmeler başarılı. Ancak gmail hotmail gibi adreslere test ettiğimde mail gitmiyor.

İlgili kurulumu gcloud üzerinde yaptım. Post ayarlarını güvenlik duvarından açtım. Ancak makale detaylarında fark ettiğim “telnet gmail-smtp-in.l.google.com 25” kodu 25 portunun açık olmadığını gösteriyor. Google Cloud üzerinden 25 portunu açma ya da 25 portu dışında bir port üzerinden mail göndermek için düzenleme yapabilir miyim?

Teşekkürler.
Ahmet.

Selamlar,

Rica ederim. Google 25 portunu SPAM önlemek için asla açmıyor Cloud Compute müşterileri için. Postfix SMTP Relay yapabilirsiniz. Bu gibi bir makale yok ama yakın zamanda hazırlayabilirim. Bu süreçte Google üzerinde “Postfix SMTP Relay” şeklinde aratabilirsiniz.

Merhaba,

Açıkcası son günlerde bende sizin gibi sıkıntılar yaşamaya başladım. Fakat artık kendi mail sunucumdan ziyade özellikle mail-tester’da 10/10 ulaşabilmek ve spam’e düşmemek için GSuite’e geçtim. Ve gerçekten sonunda 10/10’u görebildim ve hotmail, yahoo vs. gibi mail servislerinde spam sorunu kalmadı. Tavsiyem, eğer 3-4 mail hesabı düşünüyorsanız aylık maliyeti GSuite Esnek plan’da 1 mail hesabı zannedersem 25₺ falandı. Zaten en düşük droplet ise 5$. E mail sunucusu için de 2 gb ram ve 2 cpu performans olarak tavsiye edilebilir ortalama 15-20$ yani dediğim gibi nerden baksanız GSuite’e denk geliyor. Eğer mail için kişi sayıları çok değilse direk geçin derim.

Sizlere elimden geldiğince de yardımcı olmak isterim;

DigitalOcean’da son zamanlarda şöyle bir şey farkettim; MxToolbox ve diğer blacklist check siteleri maalesef bizlere istediğimizi veremiyor. Biz kusursuzu arıyoruz tamamen beyaz listeden bahsediyoruz ama bu tarz siteler aslında sadece bilinenlerden bahsediyor. Bir de bilinmeyenler var.

Çok zor bir olasılık ama imkansız değil fakat ciddi anlamda sabır gerektiren bir konu. https://tools.pepipost.com/email-blacklist-checker/ Bu site aradığımız site. Mxtoolbox ve diğer blacklist kontrol sitelerinde temiz düşündüğünüz ip adreslerinin bu sitede kara liste de olma olasılığı çok çok yüksek. Hatta isterseniz temiz düşündüğünüz ip adreslerini test edip sonucu görebilirsiniz.

Peki bu siteden ip adresim nasıl kara listeye düşmeyebilir diye soracak olursanız 2 yol var.

  1. Yol, Siteye üye olup ücretli veya ücretsiz destek almak.
  2. Yol, Aslında en zoru da bu. DigitalOcean’da sol tarafta bir çalışma profili oluşturun. Örneğin; test gibi. Veya direk sitenizin adını yazın. Ardından sağ üst tarafta bulunan create butonuna tıklayarak droplet oluşturma sayfasına gidin. İşletim sisteminizi ardından düşündüğünüz performans özelliklerini seçin. Lokasyon tavsiyem Frankfurt nedeni ise ülkemize en yakın sunucu olduğu için pingden dolayı. VPC aktif edin zaten default-01 olarak geliyor. Ssh ile uğraşmayın direk root şifresi belirleyin ssh’ı sonradan da halledebilirsiniz. Droplet sayısını 1’den 10’a çıkarın. Test, test1, test2 diye gidecektir zaten. Tag olarakta FRA1 yazın ve altta ki menude dropletların sol tarafta açmanızı tavsiye ettiğim test profilini belirleyin ve oluşturun. 1-2 dk içinde 10 adet droplet oluştuktan sonra ip’leri vermiş olduğum site’de test edin. Yüzde 90 ihtimalle çoğu kara listede olacak eğer şanslıysanız bir kere de bulabilirsiniz. Ben Frankfurttan tertemiz bir ip adresi alabilmek için 20’den fazla droplet kurdum ve sadece bir tanesi temiz çıktı diğerleri maalesef kara listedeydi. Bu işin en kötü yanı ise diğer kara listeye düşen dropletleri kaldırma yükünde. Çok fazla zaman ve sabır istiyor.

Uyarı: Bahsettiğim site belli bir sorgulamadan sonra site’ye bağlandığınız ip adresinizi blokluyor. 403 hatası veriyor fakat vpn’i açıp sorgulama işlemine devam edebilirsiniz.

Deneyip sonucu söylerseniz eğer çok sevinirim.

İyi Çalışmalar.

Düzeltme:

MxToolbox yerine şu siteyi kullanmanızı tavsiye ederim: https://tools.pepipost.com/email-blacklist-checker/

İyi Çalışmalar.

sudo nano /etc/nginx/sites-enabled/00-default-ssl.conf düzenlediğimde
nginx -t komutunu girdiğimde şöyle bir çıktı vermekte :

nginx: [warn] conflicting server name “" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "
” on [::]:80, ignored
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Sorun ne olabilir