Назад | Перейти на главную страницу

Настройка postfix и dovecot для безопасного IMAP и SMTP

У меня есть чистая установка postfix и dovecot-core dovecot-imapd dovecot-lmtpd, установленная в ОС Debian 8.

Я хочу настроить почту для работы с PAM, но хочу ограничить ее доступ к пользователям, входящим в usermail group, поэтому не у каждого пользователя 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
 }

постфикс / 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

постфикс / 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

dovecot / 10-auth.conf

Вы должны установить как PLAIN, так и LOGIN, ваша фактическая конфигурация выглядит хорошо.

dovecot / 10-master.conf

Нет необходимости комментировать другие сервисы, с

ssl = required

В вашей конфигурации dovecot пользователи смогут входить в систему, только если они подключены через ssl. Это лучший подход, поскольку пользователи могут захотеть использовать STARTTLS.

Для сокета аутентификации вы должны использовать пользователя, который запускает стороннюю службу, в этом случае вы должны установить postfix как user.

dovecot / 10-mail.conf

Вы можете без проблем установить maildir без заглавных букв здесь.

dovecot / 10-ssl.conf

Вы не заставите tls отключать SSLv2 и SSLv3, но вы собираетесь запретить пользователям использовать SSL.

постфикс / main.cf

Эта часть выглядит хорошо.

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

означает, что аутентификация dovecot не может быть найдена. Вы должны убедиться, что файл сокета аутентификации присутствует в этом каталоге.