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

Как мне настроить Postfix для приема SMTP для локальных пользователей с «@» (при входе) при входе в систему?

(Эти пользователи переведены с 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 устанавливать. Если я установлю их в домен моего сервера, postmap начнет отклонять почту с unknown user: "us.er" сообщение.

Как лучше всего исправить получение SMTP? Что-то не так с этой настройкой?

Имап и поп3 более-менее работают. Ниже приведены дампы конфигурации.

имя хоста

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

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

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

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

так как:

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

и

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

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

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

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

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

не включая $ mydomain в одиночестве;

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

Очень важное замечание: вы должны внимательно выбрать, включать ли ваш размещенный домен в "мое предназначение" или "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 аккаунты