Username @ domain biçiminde güvercin kullanıcı araması başarısız oluyor


14

Bir FreeBSD sunucusunda Dovecot v2.0.11 yüklü ve gelen e-posta adresleri için kullanıcı aramaları başarısız, ancak sistem kullanıcıları için aramalar başarılı.

Dovecot sistem kullanıcılarını kullanacak şekilde ayarlandığından, dovecot.conf dosyamda

 userdb {
  driver = passwd
}

ve

passdb {
  driver = passwd
}

Yetkilendirme hata ayıklaması etkin.

Örneğin, webmaster adında bir kullanıcı var ve "webmaster" için doveadm kullanıcısı aşağıdaki gibi çalışır:

#doveadm user webmaster
userdb: webmaster
  system_groups_user: webmaster
  uid       : 1020
  gid       : 1020
  home      : /home/webmaster

Ancak webmaster@myregisteredname.com aramak için doveadm kullanıcısı kullanmak aşağıdaki gibi başarısız olur:

# doveadm user webmaster@myregisteredname.com
userdb lookup: user webmaster@myregisteredname.com doesn't exist

Bu, webmaster@myregisteredname.com adresine gelen bir "bilinmeyen kullanıcı" hatasıyla geri dönmesi için gelen postayla sonuçlanır.

/ Var / log / maillog oturumu açılmış hata:

Apr 16 20:13:35 www dovecot: auth: passwd(webmaster@myregisteredname.com): unknown user

/Var/log/debug.log'da oturum açan hata şöyle:

Apr 16 20:13:35 www dovecot: auth: Debug: master in: USER       1       webmaster@myregisteredname.com  service=doveadm
Apr 16 20:13:35 www dovecot: auth: Debug: passwd(webmaster@myregisteredname.com): lookup
Apr 16 20:13:35 www dovecot: auth: Debug: master out: NOTFOUND  1

Kullanıcılar ve ana dizinleri başka bir sunucudan içe aktarıldı ve kullanıcılar vipw aracı kullanılarak ayarlandı. Eminim ithalatta sistem kullanıcısını dovecot aramasına "bağlama "yan bir şey var.

Bir şeyin ne olabileceği hakkında bir fikrin var mı?

DÜZENLEME: BillThor'un tavsiyesini kullanarak dovecot.conf dosyasını aşağıdaki gibi güncelledim:

#doveconf -n passdb userdb
passdb {
  args = username_format=%n
  driver = passwd
}
userdb {
  args = username_format=%n
  driver = passwd
}

Ancak şimdi, doveadm kullanıcısı farklı bir şekilde başarısız oluyor:

#doveadm user webmaster@pantronx.com
doveadm(root): Error: userdb lookup(webmaster@myregisteredname.com): Disconnected unexpectedly
doveadm(root): Fatal: userdb lookup failed for webmaster@myregisteredname.com

Artık etki alanı olmayan kullanıcılar için çalışmaz:

#doveadm user webmaster
doveadm(root): Error: userdb lookup(webmaster): Disconnected unexpectedly
doveadm(root): Fatal: userdb lookup failed for webmaster

Yukarıdaki mesajları aldığımda, / var / log / maillog içinde aşağıdakiler olur:

Apr 17 17:30:02 www dovecot: auth: Fatal: passdb passwd: Unknown setting: username_format=%u
Apr 17 17:30:02 www dovecot: master: Error: service(auth): command startup failed, throttling

Yanıtlar:


15

Dovecot içindeki passdb kullanan kullanıcı adları etki alanını içermez. Kullanıcının kullanması gereken kullanıcı kimliği, tam e-posta adresi değil, yerel bölümdür.

Başarılı ve başarısız olan kontroller beklendiği gibi çalışıyor. auth_username_format=%nŞifre db tanımından önce ayarlama çalışır. Alan adı doğrulanmadı.


Cevabınız için teşekkür ederim, ama bu da işe yaramıyor. Sorumu güncellenmiş sonuçlarla düzenledim.
puro

1
@Coleman: Dovecot 1.2 için çalışan bir çözüm bulundu. Dovecot 2 için de çalışmalı. Yanıtımda düzenleme konusuna bakın. Ubuntu için varsayılan yapılandırma dosyasında çözümü bulundu.
BillThor

13

Ubuntu Server 12.04 kullanıyorum ve yukarıdaki çözümleri denedim. Ancak, ayarlamak için 10-auth.conf en basit ve en kolay yol olduğunu buldum

auth_username_format = %n

Ubuntu 12.04'te varsayılan olan kimlik doğrulaması için PAM kullanıyorum.


3

Dovecot 2.1'in bu çözümü kırdığından veya beklenen davranışı değiştirdiğinden şüpheleniyorum.

Ben userdb için aynı yetkilendirme hatası izledim:

userdb {
  driver = passwd
}

Yerel bir kullanıcı (sanal olmayan) exim-> lmtp yoluyla bir e-posta aldığında etki alanını içerir. Auth_username_format =% Ln tanımlamak yerel teslimatı düzeltir, ancak sanal teslimatları keser. Args = username_format eklemenin önerilen düzeltmesi yok sayılıyor gibi görünüyor:

userdb {
  driver = passwd
  args = username_format=%n
}

ve günlükler bir uyarı içerir

Apr  4 11:24:57 moe dovecot: auth: Warning: userdb passwd: Move templates args to override_fields setting

İlginç bir şekilde, passwd dosyasını kullanmak işe yarıyor , ancak auth, passwd dosyasının köküne sahip olduğu için çıldırıyor.

userdb {
  driver = passwd-file
  args = username_format=%n /etc/passwd
}

Apr  4 11:26:12 moe dovecot: auth: Error: passwd-file /etc/passwd: User root has invalid UID '0'
Apr  4 11:26:12 moe dovecot: auth-worker(6855): Error: passwd-file /etc/passwd: User root has invalid UID '0'

1

passwd-file: Unknown setting: username_format Benim için sebep fazladan boşluktu:

passdb {
  driver = passwd-file
  args = scheme=SHA256-CRYPT **extra-space-here**username_format=%u /etc/dovecot/users
}

yani CRYPT ve uesrname arasında iki boşluk vardı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.