DEV Community

Berk Furkan TORAMAN for Açıklab

Posted on • Updated on

Debian'da Postfix Mail Sunucusu Kurulumu

N|Solid

Postfix nedir?

Postfix, Linux ve Unix bilgisayar işletim sistemlerinde bir açık kaynaklı (İngilizce: Mail Transfer Agent; kısaca MTA) e-posta aktarma (ileti) ajanıdır. Postfix 1998 yılında Wietse Zweitze Venema tarafından geliştirildi ve ilk defa VMailer adı altında yayınlandı. Postfix hem emin hem de çabuk ve basitçe yönetmeklidir. Postfix'in kaynak kodu IBM Public License adı altında olup ve böylece bağımsız yazılım onlanıdır.


Adım 1 -- Debian'da Postfix Posta Sunucusu için İlk Yapılandırmalar

İlk adımda, root ayrıcalıklarına sahip bir hesapla veya doğrudan root kullanıcısıyla makinenize giriş yapın ve aşağıdaki komutu vererek Debian sisteminizin en son güvenlik yamaları ve yazılım ve paket sürümleriyle güncel olduğundan emin olun.

apt-get update
apt-get upgrade
Enter fullscreen mode Exit fullscreen mode

Bir sonraki adımda, sistem yönetimi için kullanılacak olan aşağıdaki yazılım paketlerini aşağıdaki komutu vererek kurun.

apt-get install curl net-tools bash-completion wget lsof nano
Enter fullscreen mode Exit fullscreen mode

Ardından, kullandığınız metin düzenleyicinizle düzenlemek için /etc/host.conf dosyasını açın ve DNS çözünürlüğünün önce hosts dosyasını okuması için dosyanın başına aşağıdaki satırı ekleyin.

order hosts,bind
multi on
Enter fullscreen mode Exit fullscreen mode

Ardından, makinenizin FQDN'sini kurun ve alan adınızı ve sistem FQDN'nizi /etc/hosts dosyasına ekleyin. Aşağıdaki gösterildiği gibi alan adını ve FQDN'yi çözmek için sistem IP adresinizi kullanın.

IP adresini ve etki alanını buna göre değiştirin. Ardından, ana bilgisayar adını doğru şekilde uygulamak için makineyi yeniden başlatın.

hostnamectl set-hostname mail.tecmint.com
echo "192.168.0.102 acik2.lab mail.acik2.lab" >> /etc/hosts
init 6
Enter fullscreen mode Exit fullscreen mode

Yeniden başlattıktan sonra , aşağıdaki komut dizilerini vererek ana bilgisayar adının doğru yapılandırılıp yapılandırılmadığını doğrulayın. Sistemin alan adı, FQDN, ana bilgisayar adı ve IP adresi hostname komutu ile döndürülmelidir.

hostname 
hostname -s 
hostname -f 
hostname -A 
hostname -i 
cat /etc/hostname
Enter fullscreen mode Exit fullscreen mode

Ayrıca, aşağıdaki komutları vererek etki alanının yerel sorgulara doğru yanıt verip vermediğini test edin. DNS sunucusu kullanmadığımız için, etki alanının ağınızdaki diğer sistemler tarafından verilen uzak sorguları yeniden yürütmeyeceğini unutmayın.

getent ahosts mail.acik2.lab
ping acik2.lab
ping mail.acik2.lab
Enter fullscreen mode Exit fullscreen mode

Adım 2 -- Debian'da Postfix Posta Sunucusu Kurulumu

Bir posta sunucusunun düzgün çalışması için gereken en önemli yazılım parçası MTA aracısıdır. MTA , posta sunucuları arasında posta aktarımından sorumlu olan bir sunucu-istemci mimarisinde oluşturulmuş bir yazılımdır .

Bu kılavuzda , posta aktarım aracısı olarak Postfix'i kullanacağız. Debian'a resmi depolardan postfix yüklemek için aşağıdaki komutu yürütün.

apt-get install postfix

Enter fullscreen mode Exit fullscreen mode

Postfix kurulum işlemi sırasında size bir dizi soru sorulacaktır. İlk istemde, Postfix yapılandırması için genel tip olarak İnternet Sitesi seçeneğini seçin ve devam etmek için [enter] tuşuna basın ve ardından aşağıdaki ekran görüntülerinde gösterildiği gibi alan adınızı sistem posta adına ekleyin.

Image description

Image description


Adım 3 -- Debian'da Postfix Posta Sunucusunu Yapılandırma

Ardından, Postfix ana yapılandırma dosyasını yedekleyin ve aşağıdaki komutları kullanarak etki alanınız için Postfix'i yapılandırın.

cp /etc/postfix/main.cf{,.backup}
nano /etc/postfix/main.cf
Enter fullscreen mode Exit fullscreen mode

Şimdi gösterildiği gibi main.cf dosyasında Postfix yapılandırmasını yapılandırın .

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

smtpd_banner = $myhostname ESMTP
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
readme_directory = no

# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
# fresh installs.
compatibility_level = 2

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mail.debian.lan

mydomain = debian.lan

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

#myorigin = /etc/mailname
myorigin = $mydomain

mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost
relayhost = 
mynetworks = 127.0.0.0/8, 192.168.1.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
#inet_protocols = all
inet_protocols = ipv4

home_mailbox = Maildir/

# SMTP-Auth settings
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject
Enter fullscreen mode Exit fullscreen mode

myhostname , mydomain ve mynetworks değişkenlerini kendi yapılandırmalarınıza uyacak şekilde değiştirin .

Aşağıdaki ekran görüntüsünde gösterildiği gibi, Postfix ana yapılandırma dosyasını boşaltmak ve olası hataları kontrol etmek için postconf -n komutunu çalıştırabilirsiniz .

postconf -n
Enter fullscreen mode Exit fullscreen mode

Tüm yapılandırmalar yapıldıktan sonra, değişiklikleri uygulamak için Postfix arka plan programını yeniden başlatın ve netstat komutunu çalıştırarak Postfix ana hizmetinin port 25'e bağlanıp bağlanmadığını inceleyerek hizmetin çalışıp çalışmadığını doğrulayın .

systemctl restart postfix
systemctl status postfix
netstat -tlpn
Enter fullscreen mode Exit fullscreen mode

Postfix Posta Sunucusunu Debian'da Test Edelim

Postfix'in posta transferini işleyip işlemediğini test etmek için önce aşağıdaki komutu çalıştırarak mailutils paketini kuralım.

apt-get install mailutils
Enter fullscreen mode Exit fullscreen mode

Ardından, posta komut satırı yardımcı programını kullanarak , kök hesaba bir posta gönderin ve posta kuyruğunu kontrol etmek ve kökün ana Maildir dizininin içeriğini listelemek için aşağıdaki komutu vererek postanın başarıyla iletilip iletilmediğini kontrol edin.

echo "mail body"| mail -s "test mail" root
mailq
mail
ls Maildir/
ls Maildir/new/
cat Maildir/new/[TAB]
Enter fullscreen mode Exit fullscreen mode

Image description


Adım 4 -- Dovecot IMAP'yi Debian'da Kuralım ve Yapılandıralım

E-posta mesajlarını yerel bir alıcının posta kutularına teslim etmek için bu kılavuzda kullanacağımız posta dağıtım aracısı Dovecot IMAP'dir . IMAP , postaları birden çok e-posta istemcisi arasında okumaktan, silmekten veya taşımaktan sorumlu olan 143 ve 993 ( SSL ) bağlantı noktalarında çalışan bir protokoldür .

IMAP protokolü ayrıca, her mesajın bir kopyasının sunucuya kaydedildiğinden emin olmak için senkronizasyon kullanır ve kullanıcıların e-postaları sıralamak için sunucuda birden fazla dizin oluşturmasına ve postaları bu dizinlere taşımasına olanak tanır.

POP3 protokolünde durum böyle değildir . POP3 protokolü, kullanıcıların postalarınızı sıralamak için sunucuda birden çok dizin oluşturmasına izin vermez. Yalnızca postayı yönetmek için gelen kutusu klasörünüz var.

Dovecot çekirdek sunucusunu ve Dovecot IMAP paketini Debian'a kurmak için aşağıdaki komutu yürütelim:

apt install dovecot-core dovecot-imapd
Enter fullscreen mode Exit fullscreen mode

Dovecot sisteminize kurulduktan sonra aşağıdaki dovecot dosyalarını düzenlemek için açın ve aşağıdaki değişiklikleri yapın. İlk olarak, /etc/dovecot/dovecot.conf dosyasını açın, aşağıdaki satırı arayın ve yorumunu(#) kaldırın:

listen = *, ::
Enter fullscreen mode Exit fullscreen mode

Ardından, düzenlemek için /etc/dovecot/conf.d/10-auth.conf dosyasını açın ve aşağıdaki satırları bulun ve aşağıdaki alıntıdaki gibi görünecek şekilde değiştirin.

disable_plaintext_auth = no
auth_mechanisms = plain login
Enter fullscreen mode Exit fullscreen mode

/etc/dovecot/conf.d/10-mail.conf dosyasını açın ve e-postaları saklamak için Mbox formatı yerine Maildir konumunu kullanmak için aşağıdaki satırı ekleyin . Ve Mbox satırını yoruma alın.

mail_location = maildir:~/Maildir
Enter fullscreen mode Exit fullscreen mode

Düzenlenecek son dosya /etc/dovecot/conf.d/10-master.conf . Burada Postfix smtp-auth bloğunu arayın ve aşağıdaki değişikliği yapın:

#Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
  mode = 0666
  user = postfix
  group = postfix
 }
Enter fullscreen mode Exit fullscreen mode

Yukarıdaki tüm değişiklikleri yaptıktan sonra, değişiklikleri yansıtmak için Dovecot programını yeniden başlatın, durumunu kontrol edin ve aşağıdaki komutları vererek Dovecot'un bağlantı noktası 143'e bağlanıp bağlanmadığını doğrulayın.

systemctl restart dovecot.service 
systemctl status dovecot.service 
netstat -tlpn
Enter fullscreen mode Exit fullscreen mode

Image description

Sisteme yeni bir kullanıcı hesabı ekleyerek posta sunucusunun düzgün çalışıp çalışmadığını test edin ve SMTP sunucusuna bağlanmak için telnet veya netcat komutunu kullanın ve aşağıdaki alıntılarda gösterildiği gibi yeni eklenen kullanıcıya yeni bir posta gönderin.

# adduser matie
# nc localhost 25
# ehlo localhost
mail from: root
rcpt to: matie
data
subject: test
Mail body
.
quit
Enter fullscreen mode Exit fullscreen mode

Image description

Aşağıdaki ekran görüntüsünde gösterildiği gibi kullanıcının ana dizininin içeriğini listeleyerek postanın yeni kullanıcı posta kutusuna gelip gelmediğini kontrol edin.

ls /home/test_mail/Maildir/new/
Enter fullscreen mode Exit fullscreen mode

Image description

Ayrıca, aşağıdaki alıntıda gösterildiği gibi, komut satırından IMAP protokolü aracılığıyla kullanıcının posta kutusuna bağlanabilirsiniz. Yeni posta, kullanıcının Gelen Kutusu'nda listelenmelidir.

# nc localhost 143
x1 LOGIN matie user_password
x2 LIST "" "*"
x3 SELECT Inbox
x4 LOGOUT
Enter fullscreen mode Exit fullscreen mode

Rainloop Kurulum Dokümanıyla Devam Edelim...

Discussion (3)

Collapse
kod7dev profile image
KodSeven.Dev

Elinize sağlık. Çok güzel bir içerik olmuş. Büyük firmalar; google, yandex ya da windows mail sunucusu olarak nasıl bir cozum kullaniyor?

Collapse
berkfurkantoraman profile image
Berk Furkan TORAMAN Author

Teşekkür ederim. O konu hakkında pek bilgim yok maalesef.

Collapse
sude_engz_f815387a1817f profile image
Sude Şengöz

💖💖🦋🦋