Правильны ли настройки моего почтового сервера Ubuntu и файл “/etc/hosts”? Не работают как ожидалось.

Вопрос или проблема

Это мой файл /etc/hosts:

127.0.0.1       localhost.localdomain                   localhost
127.0.1.1       ubuntu-server.xx.com                ubuntu-server
193.77.xx.xx   mail.xx.com                         mail

# Следующие строки желательны для хостов, поддерживающих IPv6
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Это верная конфигурация для моего почтового сервера? Я за роутером, поэтому не знаю, нормально ли использовать мой IP для mail.xx.com и 127.0.0.1 для localhost.

Проблема в том, что я могу получать почту, но когда отправляю, я получаю:

Oct 17 21:29:32 ubuntu-server postfix/smtpd[2453]: warning: SASL authentication failure: Password verification failed
Oct 17 21:29:32 ubuntu-server postfix/smtpd[2453]: warning: my.router[192.168.1.1]: SASL PLAIN authentication failed: authentication failure
Oct 17 21:29:34 ubuntu-server postfix/smtpd[2453]: warning: my.router[192.168.1.1]: SASL LOGIN authentication failed: authentication failure

Обновление: Возможно, проблема в каком-то порте. Я перенаправляю следующие порты:

POP3 - порт 110
IMAP - порт 143
SMTP - порт 25
HTTP - порт 80
Безопасный SMTP (SSMTP) - порт 465
Безопасный IMAP (IMAP4-SSL) - порт 585
StartTLS - порт 587 
IMAP4 через SSL (IMAPS) - порт 993
Безопасный POP3 (SSL-POP) - порт 995

postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
content_filter = amavis:[127.0.0.1]:10024
delay_warning_time = 4h
disable_vrfy_command = yes
inet_interfaces = all
inet_protocols = all
mailbox_size_limit = 0
maximal_backoff_time = 8000s
maximal_queue_lifetime = 7d
message_size_limit = 0
minimal_backoff_time = 1000s
mydestination =
myhostname = mail.xx.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mynetworks_style = host
myorigin = /etc/mailname
readme_directory = no
receive_override_options = no_address_mappings
recipient_delimiter = +
relayhost =
smtp_helo_timeout = 60s
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP $mail_name
smtpd_client_restrictions = reject_rbl_client sbl.spamhaus.org, reject_rbl_client blackholes.easynet.nl, reject_rbl_client dnsbl.njabl.org
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_delay_reject = yes
smtpd_hard_error_limit = 12
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, warn_if_reject reject_non_fqdn_hostname, reject_invalid_hostname, permit
smtpd_recipient_limit = 16
smtpd_recipient_restrictions = reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination, permit
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks, warn_if_reject reject_non_fqdn_sender, reject_unknown_sender_domain, reject_unauth_pipelining, permit
smtpd_soft_error_limit = 3
smtpd_tls_cert_file = /etc/ssl/private/mail.xx.com.crt
smtpd_tls_key_file = /etc/ssl/private/mail.xx.com.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
unknown_local_recipient_reject_code = 450
virtual_alias_maps = mysql:/etc/postfix/maps/alias.cf
virtual_gid_maps = static:5000
virtual_mailbox_base = /var/spool/mail/virtual
virtual_mailbox_domains = mysql:/etc/postfix/maps/domain.cf
virtual_mailbox_limit = 0
virtual_mailbox_maps = mysql:/etc/postfix/maps/user.cf
virtual_uid_maps = static:5000

saslfinger -c

version: 1.0.4ostfix Cyrus sasl configuration Ä
mode: client-side SMTP AUTH

-- basics --
Postfix: 2.9.3
System: Ubuntu 12.04.1 LTS \n \l

-- smtp связаны с --
        libsasl2.so.2 => /usr/lib/i386-linux-gnu/libsasl2.so.2 (0x00d3a000)

-- активные параметры SMTP AUTH и TLS для smtp --
relayhost =
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = yes


-- содержимое /usr/lib/sasl2 --
total 28
drwxr-xr-x  2 root  root   4096 окт 14 15:18 .
drwxr-xr-x 72 root  root  12288 окт 14 15:03 ..
-rw-r--r--  1 root  root      1 май  4 06:17 berkeley_db.txt
-rw-r-----  1 root  root    701 окт 14 15:18 saslpasswd.conf
-rw-r-----  1 smmta smmsp   885 окт 14 15:18 Sendmail.conf

-- содержимое /etc/postfix/sasl --
total 12
drwxr-xr-x 2 root root 4096 окт 11 18:55 .
drwxr-xr-x 4 root root 4096 окт 12 06:59 ..
-rwx------ 1 root root  241 окт 11 18:55 smtpd.conf
 
Не удается найти параметр smtp_sasl_password_maps в main.cf.
SMTP AUTH с клиентской стороны не может работать без этого параметра!

Вывод saslfinger достаточно самодостаточен:

Не удается найти параметр smtp_sasl_password_maps в main.cf.
SMTP AUTH с клиентской стороны не может работать без этого параметра!

Создайте файл (например, /etc/postfix/sasl_passwd, убедитесь, что только root имеет доступ к этому файлу!) и запишите в него имя хоста relayhost, а также ваши учетные данные:

mailrelay.example.com    username:password

Используйте postmap для создания карты из текстового файла:

postmap hash:/etc/postfix/sasl_passwd

Затем укажите $smtp_sasl_password_maps на него (в main.cf):

smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

Перезагрузите Postfix.

Для более подробного объяснения смотрите это HOWTO, написанное Патриком Кеттером.

Ответ или решение

Ваши настройки файла /etc/hosts в целом выглядят корректными, но есть несколько моментов, на которые стоит обратить внимание.

Проверка файла /etc/hosts

Ваш файл:

127.0.0.1       localhost.localdomain                   localhost
127.0.1.1       ubuntu-server.xx.com                ubuntu-server
193.77.xx.xx    mail.xx.com                         mail

# IPv6 адреса
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
  • 127.0.1.1 – Используйте этот IP для обращения к вашему серверу по имени ubuntu-server.xx.com. Это правильная практика.
  • 193.77.xx.xx – Если это ваш статический внешний IP адрес, то использование его для mail.xx.com также выглядит корректно. Однако, убедитесь, что этот IP действительно соответствует вашему серверу и открыт для необходимых портов.

Проблемы с отправкой почты

Вы упомянули, что можете получать почту, но возникают ошибки при отправке:

warning: SASL authentication failure: Password verification failed

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

Решение проблемы с SASL:

  1. Создайте файл с паролями:
    Создайте файл /etc/postfix/sasl_passwd и добавьте информацию о вашем релейном хосте и учетных данных:

    mailrelay.example.com    username:password
  2. Создайте хэш из файла паролей:
    После создания файла выполните команду:

    postmap hash:/etc/postfix/sasl_passwd
  3. Настройте main.cf:
    В файле /etc/postfix/main.cf добавьте следующую строку:

    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
  4. Перезапустите Postfix:
    После внесения изменений перезапустите службу Postfix:

    sudo systemctl restart postfix

Открытые порты на маршрутизаторе

Убедитесь, что необходимые порты для почтовых протоколов открыты на маршрутизаторе. Если вы используете динамический IP или NAT, убедитесь, что ваш сервер имеет статический внутренний IP и правильно перенаправлены порты для следующих служб:

  • SMTP — порт 25
  • Secure SMTP (SSMTP) — порт 465
  • StartTLS — порт 587

Дополнительные проверки

  • Проверьте, можно ли подключиться к вашему SMTP-серверу извне, используя команду telnet или похожие инструменты:

    telnet mail.xx.com 25
  • Убедитесь, что в вашем файле main.cf корректно настроены следующие параметры:

    myhostname = mail.xx.com
    mydestination = localhost, localhost.localdomain, mail.xx.com
  • В зависимости от вашей конфигурации, можно также добавить smtp_use_tls и настроить для работы с TLS, если это необходимо.

Заключение

Следуя приведенным рекомендациям, вы должны устранить проблемы с отправкой почты и обеспечить корректную работу вашего почтового сервера. Если после выполнения указанных шагов проблемы сохранятся, выполните диагностику логов Postfix, чтобы получить более подробную информацию о возможных ошибках.

Оцените материал
Добавить комментарий

Капча загружается...