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
устанавливать. Если я установлю их в домен моего сервера, 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), так и удаленно (как для пункта 2), он выдает ошибку «Relay access denied», с которой вы столкнулись.
В зависимости от вашей конфигурации ваша проблема заключается в пункте 1: вы хотите, чтобы ваш постфикс был конечным пунктом назначения для mydomain.com домен, но постфикс ... все равно этого не знаю. У вас есть два способа решить эту проблему:
А) мое предназначение директива: "... Список доменов, которые доставляются почтовым транспортом $ local_transport ....". К сожалению, ваша конфигурация установила это следующим образом:
mydestination = $ myhostname, localhost. $ mydomain, localhost, vp1.mydomain.com
не включая $ mydomain в одиночестве;
Очень важное замечание: вы должны внимательно выбрать, включать ли ваш размещенный домен в "мое предназначение" или "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 аккаунты