配置 postfix 和 dovecot 以实现安全 IMAP 和 SMTP

配置 postfix 和 dovecot 以实现安全 IMAP 和 SMTP

我在 Debian 8 OS 上全新安装了 postfix 和 dovecot-core dovecot-imapd dovecot-lmtpd。

我想配置邮件以与 PAM 一起工作,但我想将其限制为属于该usermail组的用户,因此不是每个 Linux 用户都有邮件访问权限。

我还想确保以下文件配置正确。我想确保用户/密码不是以纯文本形式发送的,而是经过加密的。

我只显示了我修改过的行。对于我不确定的部分,我提出了一个问题。

dovecot/10-auth.conf

disable_plaintext_auth = yes
auth_username_chars = abcdefg....AbCdefg...0123...@

应该plain login用于安全 SMTP 和 IMAPS 还是仅仅plain

auth_mechanisms = plain login 

如果用于 PAM 身份验证

!include auth-system.conf.ext

dovecot/10-master.conf

所有其他的都被注释掉了,所以只有 IMAPS 可以工作。

service imap-login {
  inet_listener imaps {
    port = 993
    ssl = yes
  }
|

postfix正确的用户吗,或者我应该在这里使用 dovecot?

service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
  mode = 0600
  user = postfix
  group = postfix
}

service auth {

我是否需要使用这个而不是 Postfix smtp-auth?

  unix_listener auth-userdb {
    #mode =
    #user =
    #group =
  }

这应该是使用postfix还是dovecot作为用户?

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

dovecot/10-mail.conf

可以使用 maildir 代替 Maildir 吗?电子邮件客户端或服务器使用全部小写字母会出现问题吗?

mail_location = maildir:~/Maildir

dovecot/10-ssl.conf

ssl = required

ssl_cert = /etc/dovecot/*.pem
ssl_key = /etc/dovecot/private/*.pem

我是否需要排除 !SSLv2 和 !SSLv3 来强制使用 TLS?

以下是 dovecot -n 的输出:

 mail_location = maildir:~/Maildir
 namespace inbox {
   inbox = yes
   location =
   prefix =
 }
 passdb {
   driver = pam
 }
 protocols = imap lmtp
 service auth {
   unix_listener /var/spool/postfix/private/auth {
     group = postfix
     user = postfix
     mode = 0666
   }
 }
 service imap-login {
   inet_listener imaps {
     port = 993
     ssl = yes
   }
 }
 service lmtp {
   unix_listener /var/spool/postfix/private/dovecot-lmtp {
     group = postfix
     user = postfix
     mode = 0600
   }
 }
 ssl = required
 userdb {
   driver = passwd
 }

postfix/main.cf

virtual_transport = lmtp:unix:private/dovecot-lmtp
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_tls_auth_only = yes

postfix/master.cf

我只是取消了这一行的注释:

submission inet n       -       -       -       -       smtpd

更新:

使用此配置,我在尝试从客户端向 Gmail 帐户发送邮件时收到错误消息。我的 iPhone 也收到身份验证错误消息。用户已创建并使用输入的密码。

Warning: hostname mobile.a.b.c.d-mycingular.net does not resolve to address a.b.c.d
connect from unknown
warning: SASL: connect to private/auth failed: no such file or directory
fatal: no SASL authentication mechanisms
/usr/lib/postfix/smtpd bad command startup --throttling

答案1

dovecot/10-auth.conf

您应该同时设置 PLAIN 和 LOGIN,您的实际配置看起来不错。

dovecot/10-master.conf

其他服务就不用多说了,

ssl = required

在您的 dovecot 配置中,用户只有通过 ssl 连接才能登录。这是一种更好的方法,因为用户可能想要使用启动TLS

对于身份验证套接字,您应该使用运行第三方服务的用户,在这种情况下,您应该将 postfix 设置为用户。

dovecot/10-mail.conf

您可以在此处设置不带大写字母的 maildir,不会出现任何问题。

dovecot/10-ssl.conf

您不会通过禁用 SSLv2 和 SSLv3 来强制使用 tls,但您会阻止用户使用 SSL。

postfix/main.cf

这部分看上去不错。

warning: SASL: connect to private/auth failed: no such file or directory

表示无法找到 dovecot 身份验证。您应该确保此目录中存在身份验证套接字文件

相关内容