Добрый день,
У меня есть ПОСТФИКС + IMAP курьера + POP курьера на UbuntuServer 18.04; сервер имеет две сетевых платы; 1 карта, подключенная к Интернету с Динамическим IP и другой картой к локальной сети.
У меня есть общественное достояние с поставщиком в Интернете, но сервер находится физически в компании.
Почтовый сервер работает хорошо в частной сети, я могу отправить и получить электронные письма, к и из Интернета.
Проблема состоит в том, что из моего дома или любого места вне частной сети и использования моего почтового сервера, я не могу отправить почту никакому получателю, у меня есть ошибка РЕЛЕЙНОГО ДОСТУПА ЗАПРЕЩЕН. Что перестало работать в конфигурации на моем сервере?
**********************************
FILE >> **main.cf:**
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
readme_directory = no
compatibility_level = 2
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_relay_restrictions = permit_auth_destination permit_mynetworks permit_sasl_authenticated permit_inet_interfaces defer_unauth_destination
myhostname = ubuntusrv
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myorigin, ubuntusrv, localhost.localdomain, localhost
relayhost =
mynetworks = 192.10.0.0/24 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces =
all inet_protocols = ipv4
home_mailbox = Maildir/
mail_location = maildir:~/Maildir
sender_bcc_maps = hash:/etc/postfix/enviados.list
******************
FILE >> master.cf
Это вызвано тем, что постфикс по умолчанию не передает почту для других хостов. Это принимает электронную почту для доменов, для которых это настроено для получения почты (mydestination
), и почта реле для mynetworks
.
Это - то, так, чтобы спаммер не мог использовать Ваш почтовый сервер для отправки спама. Выполнение открытого реле является очень плохой идеей, поскольку им, вероятно, злоупотребят в минутах и может возможно нарушить Ваши Условия предоставления услуг ISPs, ведя к завершению интернет-сервиса.
Этим поведением управляет следующий раздел (разделенный мной для улучшения удобочитаемости):
smtpd_relay_restrictions = permit_auth_destination,
permit_mynetworks,
permit_sasl_authenticated,
permit_inet_interfaces,
defer_unauth_destination
Как мы видим, Вы позволяете авторизованным местам назначения, Вашим собственным сетям, sasl-аутентифицированным-клиентам и inet_interfaces (например, IP-адрес клиента соответствует одному из IP машины, выполняющей mailserver, эффективно предоставляя локальный доступ). Когда Вы вне своей собственной сети и пытаетесь отправить почту третьему лицу, Вы находитесь эффективно в unauth_destination-группе - который не разрешен.
Решение состоит в том, чтобы аутентифицировать пользователя в mailserver. Настройте постфикс с сертификатом TLS (даже сам подписанный, сделает, или использование, Давайте Зашифруем), и используйте StartTLS для шифрования коммуникации, таким образом, можно безопасно передать пароль.
Для конфигурирования Постфикса для использования шифрования добавьте следующее выше текущей конфигурации:
smtpd_tls_cert_file=/path/to/certificate.pem
smtpd_tls_key_file=/path/to/key.pem
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_security_level = may
Затем настройте, какой бы ни mailclient Вы используете, чтобы использовать StartTLS и аутентифицировать использование учетной записи на mailserver.
НЕ ИСПЫТЫВАЙТЕ ЖЕЛАНИЕ НАСТРОИТЬ СВОЙ ПОЧТОВЫЙ СЕРВЕР AS AN ОТКРЫТОЕ РЕЛЕ! Выполнение открытого реле поместит в черный список Вас везде в очень короткое время. Настройте аутентификацию!