Dovecot with libwrap doesn't work on FreeBSD for some reason or another.
I have these lines in my /etc/hosts.allow:
ALL: LOCAL 127.0.0.1: allow
pop3: ALL: allow
ALL: ALL: deny
Yet when you try to telnet to localhost, port 110 this is what happens:
Aug 29 22:48:38 dodo dovecot: pop3-login: Error: connect(tcpwrap) failed:
Permission denied
I also tried auth_debug=yes to see what's wrong but it only shows the
processes which handled the connection, no extra info with the reason why it
failed.
Here's the config:
# 2.0.13: /usr/local/etc/dovecot/dovecot.conf
# OS: FreeBSD 7.4-RELEASE i386?
auth_mechanisms = plain login
base_dir = /var/run/dovecot/
disable_plaintext_auth = no
dotlock_use_excl = no
first_valid_uid = 1000
listen = *
login_access_sockets = tcpwrap
login_greeting =
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c
mail_location = mbox:~/Mail/:INBOX=/var/mail/%u
mail_log_prefix = "%Us(%u): "
mail_privileged_group = mail
maildir_copy_with_hardlinks = no
passdb {
? driver = pam
}
protocols = pop3
service auth {
? executable = /usr/local/libexec/dovecot/auth
? unix_listener /var/spool/postfix/private/auth {
??? group = postfix
??? mode = 0660
??? user = postfix
? }
? user = root
? vsz_limit = 64 M
}
service imap-login {
? chroot = login
? client_limit = 128
? process_limit = 32
? process_min_avail = 3
? service_count = 1
? user = dovecot
? vsz_limit = 32 M
}
service imap {
? drop_priv_before_exec = no
? process_limit = 128
? vsz_limit = 256 M
}
service pop3-login {
? chroot = login
? client_limit = 128
? process_limit = 32
? process_min_avail = 3
? service_count = 1
? user = dovecot
? vsz_limit = 32 M
}
service pop3 {
? drop_priv_before_exec = no
? process_limit = 128
? vsz_limit = 256 M
}
service tcpwrap {
? unix_listener login/tcpwrap {
??? group = $default_login_user
??? mode = 0600
??? user = $default_login_user
? }
}
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_cipher_list = ALL:!LOW
ssl_key = </etc/ssl/private/dovecot.pem
userdb {
? driver = passwd
}
verbose_proctitle = yes
protocol imap {
? imap_client_workarounds = delay-newmail tb-extra-mailbox-sep
}
protocol pop3 {
? pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
? pop3_uidl_format = %08Xu%08Xv
}
protocol lda {
? postmaster_address = postmaster at europrima.ro
? sendmail_path = /usr/sbin/sendmail
}
On Mon, 2011-08-29 at 13:26 -0700, Gelu Lupas wrote:> Aug 29 22:48:38 dodo dovecot: pop3-login: Error: connect(tcpwrap) failed: Permission deniedService permissions are set wrong.> service imap-login { > user = dovecot > } > service pop3-login { > user = dovecot > }You have explicitly changed the login process user above.> service tcpwrap { > unix_listener login/tcpwrap { > group = $default_login_userThis group isn't right.. The default is taken from user's default group, so just don't set it.> user = $default_login_userHere you're using default_login_user, which most likely isn't the same as what the login processes are using ("dovecot"). So your solution is to remove the explicit user=dovecot from login services and then possibly set default_login_user=dovecot if you really want that (dovenull user is the default and preferred one).