CentOS'ta Dovecot: eski IMAP/POP3 kurulumu


Yayın tarihi:

Güncelleme:


Teknik makaleler > CentOS'ta Dovecot: eski IMAP/POP3 kurulumu

2026 bağlamı ve güvenli kullanım

Sonuç: Mevcut bir Dovecot hizmeti, desteklenen bir paket, geçerli ve yenilenebilir sertifikalar, zorunlu şifrelenmiş kimlik doğrulama, en az ayrıcalıklı posta depolama, kapsamı dikkatlice belirlenmiş Postfix entegrasyonu ve izlenen günlükler kullanmalıdır. Yalnızca kullanıcılarınızın ihtiyaç duyduğu protokolleri gösterin.

Ne öğreneceksiniz

  • Orijinal Dovecot 2.2/CentOS 7 yapılandırmasının sağlamaya çalıştığı şey.
  • IMAP/POP3 dinleyicileri, TLS, kimlik doğrulama mekanizmaları, posta konumları ve Postfix SASL entegrasyonunun ilişkisi.
  • Kimlik bilgileri kabul edilmeden önce şifreleme sıkı bir şekilde uygulanmadıkça düz metin kimlik doğrulama ayarları neden tehlikelidir?

Bu kimin için: İnternet'e hazır bir varsayılan arayan okuyucular değil, eski bir Postfix/Dovecot dağıtımını inceleyen posta yöneticileri.

2026 bağlamı: Aşağıdaki eski sürümler ve komutlar geçmiş olarak tutuldu ve güvenli güncel bir yapı olarak doğrulanmadı. TLS'yi garanti eden bir tasarım olmadan disable_plaintext_auth=no'u üretime kopyalamayın; TLS yerine IMAP'yi tercih edin, kullanılmayan POP3'ü devre dışı bırakın ve dağıtımın incelenen sistem birimini kullanın.

Güvenlik notu: Orijinal makaledeki komutlar ve yapılandırma örnekleri mevcut üretim ortamında yeniden çalıştırılmamıştır. Desteklenen sürümleri, yedeklemeleri, erişim kontrollerini ve geri alma adımlarını uygulamadan önce ayrı bir test ortamında doğrulayın.

Başlıca resmî kaynaklar

Genel bakış

CentOS'ta Dovecot'u yüklemek ve başlatmak için gereken ilk yapılandırma adımları. Bilgiler CentOS7 kullanıldığı varsayımına dayanmaktadır. Gelen protokoller imaps (SSL üzerinden IMAP) ve pop3s (SSL üzerinden POP3) ile ayarlanır.

Postfix ile birlikte kurulduğu için lütfen Postfix'i de buradan önceden kurun.

Versiyonlar aşağıdaki gibidir.

CentOS sürümü7.6 (1810)
Postfix sürümü2.10.1
Dovecot Sürümü2.2.36

İçindekiler

  1. yükleyin
  2. Kurulum ayrıntıları
  3. özet

1. yükleyin

Bu bölümde Dovecot'un kurulumdan başlatmaya kadar olan yapılandırması açıklanmaktadır.

1-1. Dovecot'u Yükleme

Yum komutunu kullanarak Dovecot kurulumunu gerçekleştirin. Çalışmayı kök kullanıcı olarak gerçekleştirin.

[username@hostname ~]$ su -
[root@hostname ~]# yum -y install dovecot

1-2. bootstrap kontrolü

Başarılı bir şekilde kurulup kurulmadığını kontrol etmek için başlatmayı kontrol edin. Dovecot'un başlatma sırasında argüman olarak start gerektirmediğini unutmayın.

[root@hostname ~]# /usr/sbin/dovecot
[root@hostname ~]# ps aux | grep dovecot
root      1470  0.0  0.1  16092  1156 ?        Ss   18:38   0:00 /usr/sbin/dovecot
dovecot   1471  0.0  0.1   9752  1120 ?        S    18:38   0:00 dovecot/anvil
root      1472  0.0  0.1   9884  1320 ?        S    18:38   0:00 dovecot/log
root      1474  0.0  0.2  12916  2384 ?        S    18:38   0:00 dovecot/config
root      1476  0.0  0.0 112824   968 pts/0    R+   18:38   0:00 grep --color=auto dovecot

Yukarıda açıklandığı gibi dovecot kullanıcısı olarak çalışan herhangi bir işlem tamamdır. Dur.

[root@hostname ~]# /usr/sbin/dovecot stop

2. Kurulum ayrıntıları

2-1. başlatma

Dovecot'un ilk yapılandırması yapılır.

[root@hostname ~]# vi /etc/dovecot/dovecot.conf

Aşağıdaki şekilde değiştirin.

dovecot.conf【Değişimden önce】


#protocols = imap pop3 lmtp
~KISALTMA~
#listen =  *, ::
~KISALTMA~
#login_greeting = Dovecot ready.

dovecot.conf【değişiklikten sonra】


protocols = imap pop3
~KISALTMA~
listen = *
~KISALTMA~
login_greeting = pop3 and imap ready.

'protocols' Dovecot'a bağlanmak için protokolleri belirtir.

'listen' bağlantının yapılmasına izin verilen IP'dir. Ayar "*" olduğundan, bağlanılacak IP'lerde herhangi bir kısıtlama yoktur. Bağlanmak için belirli bir IP'niz varsa, güvenlik amacıyla belirli bir IP belirtin. "::" bir IPv6 ayarıdır, ancak IPv6 şu anda kullanılmamaktadır ve silinmelidir. Silindiğinde, yalnızca IPv4 kabul edilir.

'login_greeting' bağlantı yapıldığında verilen mesajdır. Değişiklik zorunlu değildir, ancak güvenlik nedeniyle, bağlandığınızda dovecot olduğu belli olmayacak şekilde mesajı değiştirin.

2-2. POP3 ve IMAP ayarları

POP3 için iyi bilinen port olan 110 portu ve IMAP için iyi bilinen port olan 143 portu yapılandırılacaktır. Kimlik doğrulama yöntemi Postfix ile bağlantılıdır ve kimlik doğrulama istenmektedir.

[root@hostname ~]# vi /etc/dovecot/conf.d/10-master.conf

Aşağıdaki şekilde değiştirin.

10-master.conf【Değişimden önce】


service imap-login {
  inet_listener imap {
    #port = 143
  }
~KISALTMA~
service pop3-login {
  inet_listener pop3 {
    #port = 110
  }

10-master.conf【değişiklikten sonra】


service imap-login {
  inet_listener imap {
    port = 143
  }
~KISALTMA~
service pop3-login {
  inet_listener pop3 {
    port = 110
  }

2-3. Dovecot kimlik doğrulama yöntemi ayarları

Dovecot kimlik doğrulama yöntemine oturum açma ekleyin.

[root@hostname ~]# vi /etc/dovecot/conf.d/10-auth.conf

Aşağıdaki şekilde değiştirin.

10-auth.conf【Değişimden önce】


#disable_plaintext_auth = yes
~KISALTMA~
auth_mechanisms = plain

10-auth.conf【değişiklikten sonra】


disable_plaintext_auth = no
~KISALTMA~
auth_mechanisms = login plain

2-4. E-posta depolama alanının 'Maildir' biçimine değiştirilmesi.

E-posta depolama konumunu her kullanıcının ev dizininde ("/home/xxx/" altında) olacak şekilde ayarlayın.

[root@hostname ~]# vi /etc/dovecot/conf.d/10-mail.conf

Aşağıdaki şekilde değiştirin.

10-mail.conf【Değişimden önce】


#mail_location =
~KISALTMA~
namespace inbox {
  # Namespace type: private, shared or public
  #type = private

  # Hierarchy separator to use. You should use the same separator for all
  # namespaces or some clients get confused. '/' is usually a good one.
  # The default however depends on the underlying mail storage format.
  #separator =

  # Prefix required to access this namespace. This needs to be different for
  # all namespaces. For example "Public/".
  #prefix =

  # Physical location of the mailbox. This is in same format as
  # mail_location, which is also the default for it.
  #location =

10-mail.conf【değişiklikten sonra】


mail_location = maildir:~/Maildir
~KISALTMA~
namespace inbox {
  # Namespace type: private, shared or public
  #type = private

  # Hierarchy separator to use. You should use the same separator for all
  # namespaces or some clients get confused. '/' is usually a good one.
  # The default however depends on the underlying mail storage format.
  #separator =

  # Prefix required to access this namespace. This needs to be different for
  # all namespaces. For example "Public/".
  #prefix =

  # Physical location of the mailbox. This is in same format as
  # mail_location, which is also the default for it.
  location = maildir:~/Maildir

2-5. Kimlik doğrulama ayarları

Ssl yapılandırmasını etkinleştirin.

[root@hostname ~]# vi /etc/dovecot/conf.d/10-ssl.conf

Aşağıdaki şekilde değiştirin.

10-ssl.conf【Değişimden önce】


ssl = required
~KISALTMA~
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem

10-ssl.conf【değişiklikten sonra】


ssl = required
~KISALTMA~
ssl_cert = </etc/pki/tls/certs/localhost.crt
ssl_key = </etc/pki/tls/private/localhost.key

'ssl_cert' ve 'ssl_key' ortama göre ayarlanmalıdır. Sunucu sertifikasının depolandığı yolu ayarlayın.

SSL ayarları önceden gereklidir, bu nedenle SSL ayarlarını yapmadıysanız, lütfen önce SSL ayarlarını yapın. Lütfen aşağıdakilere bakınız.

Apache HTTP Server'ı CentOS'a güvenli kurma


Bunu parolalarla ilgili ayarlar takip eder. 'auth-system.conf.ext'.

[root@hostname ~]# vi /etc/dovecot/conf.d/auth-system.conf.ext

Aşağıdaki şekilde değiştirin.

auth-system.conf.ext【Değişimden önce】


passdb {
  driver = pam
  # [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=<n>]
  # [cache_key=<key>] [<service name>]
  #args = dovecot
}
~KISALTMA~
#passdb {
  #driver = shadow
  # [blocking=no]
  #args =
#}

auth-system.conf.ext【değişiklikten sonra】


#passdb {
#driver = pam
  # [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=<n>]
  # [cache_key=<key>] [<service name>]
  #args = dovecot
#}
~KISALTMA~
passdb {
  driver = shadow
  # [blocking=no]
  #args =
}

2-6. bootstrap kontrolü

Bu işlem yapılandırmayı tamamlar, bu nedenle Dovecot'un yapılandırma tamamlanmış olarak başladığını kontrol edin. Start'ın bir argüman olarak gerekli olmadığını unutmayın.

[root@hostname ~]# /usr/sbin/dovecot
[root@hostname ~]# ps aux | grep dovecot
root      1716  0.0  0.1  16092  1184 ?        Ss   22:09   0:00 /usr/sbin/dovecot
dovecot   1717  0.0  0.1   9752  1120 ?        S    22:09   0:00 dovecot/anvil
root      1718  0.0  0.1   9884  1312 ?        S    22:09   0:00 dovecot/log
root      1720  0.5  0.2  12916  2396 ?        S    22:09   0:00 dovecot/config
root      1722  0.0  0.0 112824   972 pts/0    S+   22:09   0:00 grep --color=auto dovecot

Yukarıda açıklandığı gibi dovecot kullanıcısı olarak çalışan bir işlem varsa, başarıyla yapılandırılmış ve çalışıyor demektir. Başlangıç onaylandıktan sonra durma zamanı gelmiştir.

[root@hostname ~]# /usr/sbin/dovecot stop

2-7. Otomatik başlatma ayarı

Son olarak, zorunlu olmamasına rağmen, sunucu her yeniden başlatıldığında Dovecot'u başlatmak zordur, bu nedenle sunucu başladığında Dovecot'un otomatik olarak başlaması için bir ayar konur. Ayrıca systemctl komutuna da kaydolur. Lütfen bu prosedürün CentOS7 için olduğunu unutmayın, bu nedenle CentOS7'den başka bir şey kullanıyorsanız, bununla başa çıkmak için Service komutunu kullanmanız gerekecektir.

'/usr/lib/systemd/system/dovecot.service' dosyasının var olup olmadığını kontrol edin. Eğer yoksa, aşağıdaki prosedürü kullanarak bir 'dovecot.service' oluşturun. Kök kullanıcı olarak çalıştırın.

[root@hostname ~]# touch /etc/systemd/system/dovecot.service
[root@hostname ~]# vi /etc/systemd/system/dovecot.service

Aşağıdaki bilgiler verilmiştir.

[Unit]
#Açıklama.
Description=Dovecot
#Yürütme öncesi ve sonrası kontrol.
#Before=xxx.service
After = network.target

[Service]
#Kullanıcı ve grup tanımlama
User=root
Group=root
#Etkinleştirildikten sonra durumu Etkinleştirildi olarak ayarlayın.
Type=oneshot
RemainAfterExit=yes
#Başlat, durdur ve yeniden yükle.
ExecStart=/usr/sbin/dovecot
ExecStop=/usr/sbin/dovecot stop
ExecReload=/usr/sbin/dovecot reload

[Install]
#Çalışma seviyesi 3 eşdeğer ayarları.
WantedBy=multi-user.target

Ardından, systemctl komutu ile kayıt olun.

[root@hostname ~]# systemctl enable dovecot
[root@hostname ~]# systemctl is-enabled dovecot
enabled
[root@hostname ~]# systemctl list-unit-files --type=service | grep dovecot
dovecot.service                                enabled
[root@hostname ~]# systemctl daemon-reload

3. özet

Dovecot kurulduğunda gereken ilk yapılandırmayı açıkladık.

Kurulumu oldukça zordu, bu nedenle bir Dovecot inşa ediyorsanız lütfen bu bölüme bakın.

Umarız bu açıklama yararlı olmuştur.