Как я настраиваю Постфикс для принятия SMTP для локальных пользователей со (знак (at sign)) в логинах?

  • У меня есть сервер Ubuntu 14.04 в mydomain.com с набором пользователей с @domain во входе в систему, как us.er@mydomain.com.
  • У каждого из них есть "псевдо" учетная запись us.er-mydomain.com с тем же uid, passwd и shadow записи.
  • У каждого из них есть запись в /etc/postfix/virtual: us.er@mydomain.com us.er-mydomain.com.

(Эти пользователи перемещены от Virtualmin на CentOS).

Мой сервер отклоняет почту с ошибкой:

Dec  6 10:27:31 mydomain postfix/smtpd[8176]: NOQUEUE: reject: RCPT from lalala.asdfasdf.com[220.232.206.13]: 554 5.7.1 <us.er@mydomain.com>:
 Relay access denied; from=<asdfasdf@asdfasdf.com> to=<us.er@mydomain.com> proto=ESMTP helo=<lalala@asdfasdf.com>

хотя это ДЕЙСТВИТЕЛЬНО имеет учетную запись us.er@mydomain.com.

Я не имею myhostname или mydomain набор. Если я установил их на свой домен сервера, посткарта начинает отклонять почту с unknown user: "us.er" сообщение.

Что лучший способ состоит в том, чтобы зафиксировать получение SMTP? Есть ли что-нибудь очень неправильно с этой установкой?

IMAP и pop3 работают более или менее. Дампы конфигурации ниже.

имя хоста

some-isp-vps

имя хоста-f

mydomain.com 

postconf-n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
allow_percent_hack = no
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/lib/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailbox_size_limit = 0
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
message_size_limit = 30485760
milter_default_action = accept
milter_protocol = 2
mydestination = $myhostname, localhost.$mydomain, localhost, vp1.mydomain.com
mynetworks = 192.241.228.147,127.0.0.1
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sender_bcc_maps = hash:/etc/postfix/bcc
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
smtp_tls_note_starttls_offer = yes
smtp_tls_security_level = may
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,permit_auth_destination,reject_unauth_destination
smtpd_relay_restrictions = permit_mynetworks,permit_sasl_authenticated,permit_auth_destination,reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_tls_auth_only = no
smtpd_tls_cert_file = /etc/ssl/certs/ssl.cert
smtpd_tls_key_file = /etc/ssl/certs/ssl.key
smtpd_tls_loglevel = 1
smtpd_tls_mandatory_ciphers = high
smtpd_tls_received_header = yes
smtpd_tls_security_level = may
tls_random_source = dev:/dev/urandom
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/etc/postfix/virtual

postconf-M

smtp       inet  n       -       n       -       -       smtpd -o smtpd_sasl_auth_enable=yes
smtps      inet  n       -       n       -       -       smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING
pickup     fifo  n       -       n       60      1       pickup
cleanup    unix  n       -       n       -       0       cleanup
qmgr       fifo  n       -       n       300     1       qmgr
tlsmgr     unix  -       -       n       1000?   1       tlsmgr
rewrite    unix  -       -       n       -       -       trivial-rewrite
bounce     unix  -       -       n       -       0       bounce
defer      unix  -       -       n       -       0       bounce
trace      unix  -       -       n       -       0       bounce
verify     unix  -       -       n       -       1       verify
flush      unix  n       -       n       1000?   0       flush
proxymap   unix  -       -       n       -       -       proxymap
proxywrite unix  -       -       n       -       1       proxymap
smtp       unix  -       -       n       -       -       smtp
relay      unix  -       -       n       -       -       smtp -o smtp_fallback_relay=
showq      unix  n       -       n       -       -       showq
error      unix  -       -       n       -       -       error
retry      unix  -       -       n       -       -       error
discard    unix  -       -       n       -       -       discard
local      unix  -       n       n       -       -       local
virtual    unix  -       n       n       -       -       virtual
lmtp       unix  -       -       n       -       -       lmtp
anvil      unix  -       -       n       -       1       anvil
scache     unix  -       -       n       -       1       scache
submission inet  n       -       n       -       -       smtpd -o smtpd_sasl_auth_enable=yes
1
задан 6 December 2014 в 18:44
2 ответа

Постфикс отказал в ретрансляции на mydomain.com, потому что не указан как локальный или виртуальный домен. Первый шаг - определение класса домена (postfix.org/ADDRESS_CLASS_README.html). myhostname - имя машины. mydestination - список с доменами, находящимися на хостинге, и пользователями, перечисленными на passwd.

.
3
ответ дан 3 December 2019 в 17:06

Ваш постфиксный процесс smtpd жалуется на:

<us.er@mydomain.com>: Relay access denied

, потому что:

  1. mydomain.com не настроен / не распознается как локальный конечный пункт назначения;

и

  1. ] postfix не настроен для ретрансляции сообщений во внешний домен mydomain.com ;

Таким образом, будучи не в состоянии доставить как локально (как для точки 1), так и удаленно (как для точки 2), он дает вы столкнулись с ошибкой «Relay access denied», с которой вы столкнулись.

Исходя из вашей конфигурации, ваша проблема заключается в пункте 1: вы хотите, чтобы ваш постфикс был конечным пунктом назначения для домена mydomain.com , но постфикс ... до сих пор не знаю этого. У вас есть два способа решить эту проблему:

  • A) mydestination директива: «... Список доменов, которые доставляются через транспорт доставки почты $ local_transport ....» . К сожалению, ваша конфигурация установила его следующим образом:

    mydestination = $ myhostname, localhost. $ Mydomain, localhost, vp1.mydomain.com

без включения только $ mydomain ;

  • B) virtual_mailbox_domains директива: «... Postfix - конечный пункт назначения для указанного списка доменов; почта доставляется через транспорт доставки почты $ virtual_transport ....» . (Кстати: ваша конфигурация содержит директиву virtual_alias_maps, которая наверняка связана с хостингом виртуального домена, но, вероятно, вы изначально не настроили должным образом указанный файл / etc / postfix / virtual)

Очень важное замечание: вы должны внимательно выберите, включать ли ваш размещенный домен в « mydestination » или « virtual_mailbox_domain », поскольку это может иметь серьезные последствия для безопасности с точки зрения учетных записей unix, которые вы можете быть вынуждены создавать локально на своем машина. В своем сообщении вы написали:

«... У каждого из них есть« псевдо »учетная запись us.er-mydomain.com с одинаковыми uid, passwd и теневыми записями ....»

, так что на вас явно имеется ссылка / etc / passwd и / etc / shadow. Следовательно, это НАСТОЯЩИЕ учетные записи!

В общем, если вы выбираете маршрут «mydestination», вы в основном вынуждены иметь РЕАЛЬНЫЕ учетные записи, связанные с каждым из почтовых ящиков, которые вы размещаете. Это не может быть серьезной проблемой, если вы размещаете только свой собственный домен.

Напротив, это может быстро стать кошмаром, когда вы размещаете НЕСКОЛЬКО доменов. В этом случае вы, вероятно, предлагаете своим пользователям только службу электронной почты и ... установка реальной учетной записи unix для каждого из них определенно слишком много.

Вот почему, начиная с Postfix 2.0, virtual_mailbox_domains .

В итоге: вы уже решили свою проблему, добавив свой домен в список виртуальных доменов. Хорошо. Но эта настройка не требует определения реальных учетных записей unix.

Я предлагаю вам проверить очень наглядный пример: Пример виртуального почтового ящика Postfix: отдельные домены, учетные записи, отличные от UNIX

2
ответ дан 3 December 2019 в 17:06

Теги

Похожие вопросы