Рейтинг:1

Конфигурация Postfix/OpenDKIM на Centos8

флаг cn

Я настроил Postfix с Dovecot в качестве интегрированной почтовой службы для своего приложения SaaS, он отлично работал в качестве почтового ящика. Проблема началась, когда я начал отправлять электронные письма, они не были подписаны, поэтому я установил opendkim и настроил его с помощью Postfix.

я сломал входящие сообщения. Я не могу на всю жизнь понять, где я ошибся.

почтовый журнал:
30 мая, 22:12:30 dotcom postfix/smtpd[20436]: подключиться с mail-pj1-f43.google.com[209.85.216.43]
30 мая 22:12:30 dotcom postfix/smtpd[20436]: отбрасывание ключевых слов EHLO: CHUNKING
30 мая, 22:12:31 dotcom postfix/smtpd[20436]: предупреждение: SASL: Ошибка подключения к smtpd: нет такого файла или каталога
30 мая 22:12:31 dotcom postfix/smtpd[20436]: фатально: нет механизмов аутентификации SASL
30 мая 22:12:32 dotcom postfix/master[19904]: предупреждение: процесс /usr/libexec/postfix/smtpd pid 20436 статус выхода 1
постконф -н
alias_database = хэш:/и т.д./псевдонимы
alias_maps = хеш:/и т.д./псевдонимы
append_dot_mydomain = нет
биф = нет
уровень_совместимости = 2
disable_vrfy_command = да
inet_interfaces = все
inet_protocols = все
invalid_hostname_reject_code = 550
почтовый ящик_размер_лимит = 0
maximal_backoff_time = 3 часа
milter_default_action = принять
минимальное_откат_время = 180 с
мой пункт назначения = $имя_хоста, локальный_хост.$мой_домен,_локальный_хост
мой домен = dotsoft.co.za
мои сети = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128, 129.232.230.173
мое происхождение = $ мой домен
non_fqdn_reject_code = 550
non_smtpd_milters = $smtpd_milters
readme_directory = нет
получатель_разделитель = +
smtp_always_send_ehlo = да
smtp_rcpt_timeout = 15 с
smtp_tls_security_level = может
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_delay_reject = да
smtpd_helo_required = да
smtpd_helo_restrictions = Permit_MyNetworks, Permit_Sasl_аутентифицированный, reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname
smtpd_milters = инет:127.0.0.1:8891
smtpd_recipient_limit = 40
smtpd_recipient_restrictions = allow_mynetworks, allow_sasl_authenticated, reject_non_fqdn_recipient, reject_unlisted_recipient, reject_unauth_destination
smtpd_relay_restrictions = Permit_myNetworks, Permit_Sasl_аутентифицированный, defer_unauth_destination
smtpd_sasl_auth_enable = да
smtpd_sasl_security_options = без анонимности, без открытого текста
smtpd_sasl_tls_security_options = неанонимный
smtpd_sasl_type = голубятня
smtpd_sender_restrictions = Permit_MyNetworks, Permit_Sasl_аутентифицированный, reject_non_fqdn_sender, reject_unknown_sender_domain
smtpd_timeout = 30 с
smtpd_tls_auth_only = да
smtpd_tls_cert_file = /etc/letsencrypt/live/dotcom.dotsoft.co.za/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/dotcom.dotsoft.co.za/privkey.pem
smtpd_tls_security_level = может
smtpd_use_tls = да
strict_rfc821_envelopes = да
unknown_address_reject_code = 550
unknown_client_reject_code = 550
unknown_hostname_reject_code = 550
непроверенный_recipient_reject_code = 550
непроверенный_sender_reject_code = 550
virtual_alias_maps = mysql:/etc/postfix/mysql-виртуальный-алиас-maps.cf
виртуальный_почтовый_домен = mysql:/etc/postfix/mysql-виртуальный-почтовый-домен.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-виртуальный-почтовый ящик-maps.cf
виртуальный_транспорт = lmtp:unix:private/dovecot-lmtp

В журнале голубятни нет ничего странного, см. ниже выдержку из

голубятня -н:

# 2.3.16 (7e2e900c1a): /etc/dovecot/dovecot.conf
# ОС: Linux 4.18.0-383.el8.x86_64 x86_64 CentOS Stream выпуск 8 xfs
# Имя хоста: dotcom.dotsoft.co.za
auth_mechanisms = простой логин
первый_действительный_uid = 1000
log_path = /var/log/dovecot.log
mail_location = maildir:/var/mail/vhosts/%d/%n/
почтовая_привилегированная_группа = почта
mbox_write_locks = фкнтл
почтовый ящик пространства имен {
  входящие = да
  местоположение = 
  почтовый ящик Черновики {
    special_use = \ Черновики
  }
  почтовый ящик Нежелательная {
    special_use = \ Мусор
  }
  почтовый ящик отправлено {
    special_use = \Отправлено
  }
  почтовый ящик "Отправленные сообщения" {
    special_use = \Отправлено
  }
  почтовый ящик Корзина {
    special_use = \Корзина
  }
  префикс = 
}
БД {
  водитель = Пэм
}
БД {
  аргументы = /etc/dovecot/dovecot-sql.conf.ext
  драйвер = sql
}
postmaster_address = почтмейстер на dotcom.dotsoft.co.za
служба аутентификации {
  пользователь = vmail
}
авторизация службы {
  unix_listener /var/spool/postfix/private/auth {
    группа = постфикс
    режим = 0666
    пользователь = постфикс
  }
  unix_listener auth-userdb {
    режим = 0600
    пользователь = vmail
  }
  пользователь = голубятня
}
служба imap-логин {
  inet_listener imap {
    порт = 0
  }
  inet_listener IMAP {
    порт = 993
    SSL = да
  }
}
служба лмтп {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    группа = постфикс
    режим = 0600
    пользователь = постфикс
  }
}
служба pop3-логин {
  inet_listener pop3 {
    порт = 0
  }
  inet_listener pop3s {
    порт = 995
    SSL = да
  }
}
SSL = требуется
ssl_cert = </etc/letsencrypt/live/dotcom.dotsoft.co.za/fullchain.pem
ssl_cipher_list = ПРОФИЛЬ = СИСТЕМА
ssl_key = # скрыто, используйте -P, чтобы показать его
пользовательская база данных {
  водитель = пароль
}
пользовательская база данных {
  args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
  драйвер = статический
}
флаг cn
В журнале dovecot нет ничего странного, см. ниже выдержку из dovecot - n:
флаг cn
dovecot.service - почтовый сервер Dovecot IMAP/POP3 Загружено: загружено (/usr/lib/systemd/system/dovecot.service; включено; предустановка поставщика: отключена) Активно: активно (работает) со вторника 31 мая 2022 г., 10:15:36 SAST; 8 минут назад Документы: мужчина: голубятня (1)
флаг cn
Есть только журналы запуска и остановки, см. ниже: «31 мая 10:15:35 мастер: Предупреждение: убит сигналом 15 (от pid=175907 uid=0 code=kill) 31 мая 10:15:36 мастер: Информация: Dovecot v2.3.16 (7e2e900c1a) запускается для imap, pop3, lmtp (дампы ядра отключены) "
Рейтинг:0
флаг fr
anx

У вас есть общая конфигурация для dovecot, помещая сокет в /var/spool/postfix/private/auth.

Поскольку вашим провайдером SASL является Dovecot (smtpd_sasl_type = голубятня), Postfix ищет файл сокета в своем каталоге chroot. Вы должны указать родственник дорожка. Обычно это smtpd_sasl_path=частный/авторизация. Но ваша конфигурация показывает, что это не изменилось по умолчанию. smtpd_sasl_path=SMTPD, отсюда и ошибка "Не удалось подключиться к smtpd". Это не могло не сработать.

Если это работало раньше... сравните с резервными копиями или Проверьте свои main.cf файл для удаленных или искаженных строк вокруг smtpd_sasl_* настройки. Если в вашем коде была очевидная синтаксическая ошибка main.cf файл, Postfix будет выводить предупреждение при запуске, поэтому перезапуск может помочь точно определить.


Проблемы, связанные с аутентификацией, мешают (не аутентифицируют) входящую почту можно было бы избежать, если бы вы установили smtpd_sasl_auth_enable=да только для тех услуг, которые в них нуждаются, в master.cf, а не глобально в main.cf. Обычно это будет ниже конфигурации службы для портов. smtps или же подчинение, как вы найдете в общие рекомендации по настройке.

Изменение unknown_hostname_reject_code и подобные настройки есть прямо не рекомендуется в документации Postfix «если у вас нет полного понимания RFC 5321». Даже если у вас есть причина изменить их для определенных почтовых отправлений, вряд ли это хорошая идея для получения почты из обычного Интернета.

флаг cn
Спасибо большое!!!!!!!!!!!!!! У меня была проблема в моем main.cf. Две строки были объединены в одну: «milter_default_action = acceptsmtpd_sasl_path = private/auth " Я просто добавил разрыв строки, и теперь он работает. Не могу поверить, что пропустил это несколько часов.....

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.