Linux'ta Sanal Etki Alanı Kullanıcılarıyla Postfix ve Dovecot Nasıl Yapılandırılır - Bölüm 2
Bu serinin önceki makalesinde phpMyAdmin kullanarak posta sunucusu veritabanını güvenli bir şekilde nasıl kurup yöneteceğinizi açıklamıştık.
Gereklilik:
- Postfix Posta Sunucusunu ve Dovecot'u MariaDB ile Kurma – Bölüm 1
Artık e-posta gönderip almayı gerçeğe dönüştürecek dahili programları yapılandırmanın zamanı geldi: Postfix ve Dovecot (sırasıyla giden ve gelen e-postaları yönetmek için).
Postfix Posta Sunucusunu Yapılandırma
Postfix'i yapılandırmaya başlamadan önce buradaki kılavuz sayfalarına göz atmanız ve "Yeni Postfix kullanıcıları için bilgiler" başlıklı bölüme özellikle vurgu yapmanız faydalı olacaktır. . Bunu yaparsanız, bu eğitimle birlikte takip etmeyi daha kolay bulacaksınız.
Kısaca söylemek gerekirse Postfix için iki yapılandırma dosyası bulunduğunu bilmelisiniz:
- /etc/postfix/main.cf (Postfix yapılandırma parametreleri, daha fazla ayrıntı için man 5 postconf'a bakın).
- /etc/postfix/master.cf (Postfix ana arka plan programı yapılandırması, daha fazla ayrıntı için man 5 master'a bakın).
/etc/postfix/main.cf
dosyasında aşağıdaki satırları bulun (veya gerekiyorsa ekleyin) ve bunların aşağıda belirtilen değerlerle eşleştiğinden emin olun:
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
dovecot_destination_recipient_limit = 1
message_size_limit = 4194304
readme_directory = no
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (CentOS)
smtpd_tls_cert_file = /etc/pki/dovecot/certs/dovecot.pem
smtpd_tls_key_file = /etc/pki/dovecot/private/dovecot.pem
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
virtual_transport = dovecot
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
Sonraki üç ayar özel öneme sahiptir. Sarı ile belirtilen dosyalarda Postfix'in Domains_tbl, Users_tbl ve Alias_tbl tablolarına erişimini yapılandıracağız:
virtual_mailbox_domains = mysql:/etc/postfix/mariadb-vdomains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mariadb-vusers.cf
virtual_alias_maps = mysql:/etc/postfix/mariadb-valias.cf
Oluşturduğunuzdan ve aşağıdaki içerikleri bunlara eklediğinizden emin olduğunuz sürece yukarıdan farklı dosya adları seçebileceğinizi unutmayın. Her durumda, Şifreniz'i Bölüm 1'de dba kullanıcısı için seçtiğiniz şifreyle değiştirin veya MariaDB'yi de kullanabilirsiniz. kullanıcı ve şifre için kök kimlik bilgileri aşağıdadır.
Ayrıca, Bölüm 1'de oluşturulan e-posta sunucusu veritabanı ve tablo adlarının tamamen aynı olduğundan emin olun.
/etc/postfix/mariadb-vdomains.cf
'de:
user = dba
password = YourPassword
hosts = 127.0.0.1
dbname = EmailServer_db
query = SELECT 1 FROM Domains_tbl WHERE DomainName='%s'
/etc/postfix/mariadb-vusers.cf
dosyasında:
user = dba
password = YourPassword
hosts = 127.0.0.1
dbname = EmailServer_db
query = SELECT 1 FROM Users_tbl WHERE Email='%s'
/etc/postfix/mariadb-valias.cf
'de:
user = dba
password = YourPassword
hosts = 127.0.0.1
dbname = EmailServer_db
query = SELECT Destination FROM Alias_tbl WHERE Source='%s'
Son olarak bu dosyaların izinlerini 640 olarak değiştirmeyi unutmayın:
chmod 640 /etc/postfix/mariadb-vdomains.cf
chmod 640 /etc/postfix/mariadb-vusers.cf
chmod 640 /etc/postfix/mariadb-valias.cf
Ve root kullanıcısının ve postfix grubunun sahipliği:
chown root:postfix /etc/postfix/mariadb-vdomains.cf
chown root:postfix /etc/postfix/mariadb-vusers.cf
chown root:postfix /etc/postfix/mariadb-valias.cf
Daha sonra, güvenli bağlantıları etkinleştirmek için /etc/postfix/master.cf
dosyasında aşağıdaki ayarların yorumlanmadığından (veya gerekirse eklendiğinden) emin olmamız gerekir:
submission inet n - n - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_reject_unlisted_recipient=no
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
pickup unix n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr unix n - n 300 1 qmgr
tlsmgr unix - - n 1000? 1 tlsmgr
rewrite unix - - n - - trivial-rewrite
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
trace unix - - n - 0 bounce
verify unix - - n - 1 verify
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - n - - smtp
relay unix - - n - - smtp
showq unix n - n - - showq
error unix - - n - - error
retry unix - - n - - error
discard unix - - n - - discard
local unix - n n - - local
#virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil
scache unix - - n - 1 scache
Not: -o
seçeneğiyle başlayan satırlardaki girintiler önemlidir; aksi takdirde postfix kontrolü bir hata döndürecektir:
Değişiklikleri kaydetmeden önce dosyanın altına aşağıdaki satırları ekleyin:
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}
Bu noktada Postfix'in veritabanı tablolarına ve Bölüm 1'de oluşturduğumuz alan adlarına, hesaplara ve takma adlara erişiminin olup olmadığını kontrol etmek önemlidir.
Bunu yapmak için, Postfix'in işlem sırasında bakacağı tablolarla iletişimi test etmek için bir yardımcı program olan postmap komutunu kullanacağız, ancak her şeyden önce postfix'i yeniden başlatmamız gerekecek:
systemctl postfix restart
postmap -q linuxnewz.com mysql:/etc/postfix/mariadb-vdomains.cf
postmap -q someotherdomain.com mysql:/etc/postfix/mariadb-vdomains.cf
postmap -q [email mysql:/etc/postfix/mariadb-vusers.cf
postmap -q [email mysql:/etc/postfix/mariadb-vusers.cf
postmap -q [email mysql:/etc/postfix/mariadb-vusers.cf
postmap -q [email mysql:/etc/postfix/mariadb-valias.cf
Aşağıdaki görselde veritabanındaki mevcut kayıtlar için 1 değerinin döndürüldüğünü görüyoruz. Aksi halde ekrana hiçbir şey görüntülenmez. Takma ad kontrolü durumunda, takma adın eşlendiği gerçek e-posta hesabının döndürüldüğünü unutmayın:
Her e-posta hesabı için belirlenen kimlik bilgilerine göre DOĞRULAMADIĞIMIZI, yalnızca Postfix'in veritabanındaki bu kayıtları algılama yeteneğini test ettiğimizi unutmayın.
Bu nedenle, yukarıdakilerden farklı bir çıktı alırsanız mariadb-vdomains.cf, mariadb-vusers.cf'de geçerli bir kullanıcı/şifre çifti kullandığınızdan emin olun. mariadb-valias.cf (veya bu dosyalara ne ad vermeyi seçerseniz seçin).
Dovecot'u Yapılandırma
Bir IMAP/POP3 sunucusu olarak Dovecot, kullanıcılara Posta Kullanıcı Aracısı (MUA veya postalarına erişmeye yönelik birkaç örnek vermek gerekirse, Thunderbird veya Outlook gibi istemci olarak da bilinir).
Başlamak için, e-postaları yönetecek bir kullanıcı ve grup oluşturalım (e-posta hesaplarımız bir sistem kullanıcısıyla ilişkili olmadığından buna ihtiyacımız olacak). Kullanılmadığı ve yüksek bir sayı olduğu sürece başka bir UID ve GID (aşağıda yaptığımız gibi 5000 dışında) kullanabilirsiniz:
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /home/vmail -m
Dovecot'un ayarları birkaç konfigürasyon dosyasına bölünmüştür (aşağıdaki satırların yorumsuz olduğundan emin olun ve/veya bunları aşağıda belirtilen ayarlarla eşleşecek şekilde düzenleyin).
/etc/dovecot/dovecot.conf
'da:
!include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap pop3 lmtp
!include conf.d/*.conf
!include_try local.conf
/etc/dovecot/conf.d/10-auth.conf
dosyasında (yalnızca SQL yoluyla kimlik doğrulamayı etkinleştirin ve diğer kimlik doğrulama yöntemlerini açıklamasız bırakın):
disable_plaintext_auth = yes
auth_mechanisms = plain login
!include auth-sql.conf.ext
/etc/dovecot/conf.d/auth-sql.conf.ext
dizininde (e-postaları / içindeki alanadiniz.com adlı bir dizinde saklayacağımızı unutmayın) home/vmail, mevcut değilse oluşturmanız gerekir. Bizim durumumuzda bu alan adı için e-postaları yönetmek için mkdir /home/vmail/linuxnewz.com'u kullandık):
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
driver = static
args = uid=vmail gid=vmail home=/home/vmail/%d/%n/Maildir
}
Kullanıcı hesaplarına yönelik bireysel gelen kutuları, söz konusu hesaplara ilişkin e-postalar ilk alındığında oluşturulacaktır.
/etc/dovecot/conf.d/10-mail.conf
'da:
mail_location = maildir:/home/vmail/%d/%n/Maildir
namespace inbox {
inbox = yes
}
mail_privileged_group = mail
mbox_write_locks = fcntl
/etc/dovecot/conf.d/10-master.conf
'da:
service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
}
}
service pop3-login {
inet_listener pop3 {
port = 110
}
inet_listener pop3s {
}
}
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
}
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
unix_listener auth-userdb {
mode = 0600
user = vmail
}
user = dovecot
}
service auth-worker {
user = vmail
}
service dict {
unix_listener dict {
}
}
/etc/dovecot/conf.d/10-ssl.conf
'da (CA tarafından imzalanmış bir sertifika kullanmayı planlıyorsanız sertifikayı ve anahtar yollarını değiştirin):
ssl = required
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
/etc/dovecot/dovecot-sql.conf.ext
alanına veritabanı bilgilerinizi ve Bölüm 1'de oluşturulan yönetici kullanıcının kimlik bilgilerini girin.
Önemli: Şifreniz bir yıldız işareti (#)
içeriyorsa, bağlantı dizesini aşağıdaki örnekte gösterildiği gibi eklemeniz gerekecektir:
driver = mysql
connect = "host=127.0.0.1 dbname=EmailServer_db user=dba password=PassWith#Here"
default_pass_scheme = SHA512-CRYPT
password_query = SELECT Email as User, password FROM Users_tbl WHERE Email='%u';
Ayrıca /etc/dovecot/conf.d/10-logging.conf
dosyasında Dovecot'un günlük kaydını Postfix'ten ayrı olacak şekilde yapılandırabilirsiniz:
log_path = /var/log/dovecot.log
Son olarak, Dovecot günlüğünün dovecot kullanıcısı için erişilebilir olduğundan emin olun:
chown vmail:dovecot /var/log/dovecot.log
chmod 660 /var/log/dovecot.log
Postifix Yapılandırmasını Doğrulayın ve Düzeltin ve Güvenlik Duvarında SMTP, POP3 ve IMAP'yi Etkinleştirin
Postfix ve/veya Dovecot'u yapılandırırken herhangi bir sorunla karşılaşırsanız, tüm yapılandırma dosyalarını yardım istemek için göndermek yerine, aşağıdakileri içeren bir yapılandırma özeti (yalnızca yorumsuz satırlar) alabilirsiniz:
postconf –n # Summary for /etc/postfix/main.cf
postconf –M # Summary for /etc/postfix/master.cf
doveconf –n # Summary of all configuration files for Dovecot
Ayrıca, e-posta gelen kutularının yalnızca vmail tarafından okunabildiğinden emin olun:
chown –R vmail:vmail /home/vmail
Yapılandırma dosyaları ayrıca vmail ve dovecot kullanıcıları tarafından da okunabilmelidir:
chown -R vmail:dovecot /etc/dovecot
chmod -R o-rwx /etc/dovecot
Son olarak, güvenlik duvarı üzerinden SMTP, POP3 ve IMAP'i etkinleştirdiğinizden emin olun:
firewall-cmd --add-port=143/tcp
firewall-cmd --add-port=143/tcp --permanent
firewall-cmd --add-port=110/tcp
firewall-cmd --add-port=110/tcp --permanent
firewall-cmd --add-port=587/tcp
firewall-cmd --add-port=587/tcp --permanent
Thunderbird'ü Postfix için E-posta İstemcisi olarak Yapılandırma
E-posta iletişimlerinde kullanılan bağlantı noktalarına güvenlik duvarı aracılığıyla erişimi güvence altına aldıktan sonra, bir e-posta istemcisi yapılandırmanın zamanı geldi. [email ve ona karşılık gelen şifreyi, mail.linuxnewz.com'u IMAP (veya POP3) ve SMTP sunucusu olarak kullanarak şu adreslere e-posta göndermeye ve almaya hazırız: ve böyle bir hesaptan:
Güvenilir bir 3. taraf CA tarafından imzalanmayan bir sertifika kullandığınız için gösterilen uyarı mesajını güvenle göz ardı edebilirsiniz:
Kısa bir test e-postası oluşturalım ve Gönder'e tıklayalım:
Giden sunucu için kendinden imzalı sertifikayı kabul etmeniz istendiğinde, bunu daha önce olduğu gibi onaylayın:
Son olarak, az önce gönderilen e-postayı alıp almadığınızı görmek için hedef e-postaya gidin. Öyleyse, yanıtlayın ve kaynak e-posta gelen kutusuna geri teslim edilip edilmediğine bakın (aksi halde /var/log/maillog adresindeki Postfix günlüğüne veya /var adresindeki Dovecot günlüğüne bakın) Sorun giderme bilgileri için /log/dovecot.log):
Artık çalışan bir Postfix ve Dovecot e-posta sunucunuz var ve e-posta gönderip almaya başlayabilirsiniz.
Özet
Bu yazımızda Postfix ve Dovecot'u Linux sunucunuzdaki e-posta trafiğini yönetecek şekilde nasıl yapılandıracağınızı açıkladık. Bu makalede belirtildiği gibi bir şey çalışmıyorsa Postfix ve Dovecot belgelerini kontrol etmek için zaman ayırdığınızdan emin olun.
Postfix posta sunucusu kurmanın kolay bir iş olmasa da her sistem yöneticisi için ödüllendirici bir deneyim olduğunu lütfen unutmayın.
Dokümanları inceledikten sonra kendinizi hala Postfix ve/veya Dovecot ile ilgili sorunlarla karşılaşırsanız, aşağıdaki yorum formunu kullanarak bize bir not bırakmaktan çekinmeyin; memnuniyetle yardımcı oluruz. size yardımcı olabilir (bu makalede özetlendiği gibi postconf ve doveconf kullanılarak alınan Postfix ve Dovecot yapılandırmasını çevrimiçi depolama hizmetine yüklemeyi unutmayın).