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

Настройте Postfix и Dovecot для прослушивания только незашифрованных портов на локальном хосте

Как я могу настроить Postfix и Dovecot для привязки только к портам 587 и 143 для незашифрованной отправки и imap, соответственно, на локальном хосте, но привязаться к портам 465 и 993 для зашифрованных соединений на всех интерфейсах? Мне нужно сделать это, поскольку Thunderbird по умолчанию использует незашифрованные порты, когда видит, что они открыты.

В настоящее время это выглядит так:

localhost
- 25 (smtp)
- 143 (imap)
- 465 (smtps)
- 587 (unencrypted smtp/submission)
- 993 (imaps)

eth0
- 25 (smtp)
- 143 (imap)
- 465 (smtps)
- 587 (unencrypted smtp/submission)
- 993 (imaps)

Мне нужно, чтобы это выглядело так:

localhost
- 25 (smtp)
- 143 (imap)
- 465 (smtps)
- 587 (unencrypted smtp/submission)
- 993 (imaps)

eth0
- 25 (smtp)
- 465 (smtps)
- 993 (imaps)

Тот факт, что вы слушаете порты 143 и 587 не обязательно означает, что соединение не зашифровано. Обычно используют оппортунистический TLS, т.е. STARTTLS с этими портами: соединение начинается как незашифрованное, но вскоре будет обновлено до зашифрованного. Единственная причина избегать STARTTLS будет смягчать атаки типа "злоумышленник посередине" (RFC 3207; STARTTLS менее безопасен, чем TLS).

В этом случае целью было бы сделать это STARTTLS обязательно, но возможно и отключение.

Постфикс подчинение 587

В postfix/master.cf,

  • то подчинение услуга должна иметь (среди прочего):

    submission inet n - - - - smtpd
      -o smtpd_tls_security_level=encrypt
    
  • Чтобы отключить порт 587 полностью (отвечая на ваш вопрос), прокомментируйте submission раздел.

  • Делать подчинение доступно только на localhost (дословный ответ):

    127.0.0.1:587 inet n - - - - smtpd
    

Dovecot IMAP 143

  • В dovecot/conf.d/10-auth.conf у вас есть этот параметр с документацией в комментариях:

    # Disable LOGIN command and all other plaintext authentications unless
    # SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
    # matches the local IP (ie. you're connecting from the same computer), the
    # connection is considered secure and plaintext authentication is allowed.
    # See also ssl=required setting.
    disable_plaintext_auth = yes
    
  • Чтобы отключить прослушиватель IMAP, измените его порт на 0 в dovecot/conf.d/10-master.conf:

    service imap-login {
      inet_listener imap {
        port = 0
      }
      ...
    }
    
  • Чтобы настроить Dovecot на прослушивание IMAP 143 только на localhost (дословный ответ):

    service imap-login {
      inet_listener imap {
        address = 127.0.0.1
      }
    }