URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 65282
[ Назад ]

Исходное сообщение
"reject unknown recipient (postfix)"

Отправлено Mario , 31-Мрт-06 10:52 
Как реализовать, чтобы при получении письма для пользователя домена постфикс проверял существует ли такой пользователь, если нет, то отбрасывал соединение!

Вместо того, чтобы всосать письмо, а потом отправить ответку от MAILER-DAEMON'а, что получатель то неизвестен!


Содержание

Сообщения в этом обсуждении
"reject unknown recipient (postfix)"
Отправлено jonatan , 31-Мрт-06 11:08 
По умолчанию postfix так и настроен не принимать почту для несуществующих пользователей. Покажите postconf -n

"reject unknown recipient (postfix)"
Отправлено Mario , 31-Мрт-06 11:40 
>По умолчанию postfix так и настроен не принимать почту для несуществующих пользователей.
>Покажите postconf -n


alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
content_filter = scan:127.0.0.1:10025
daemon_directory = /usr/local/libexec/postfix
debug_peer_level = 1
default_destination_concurrency_limit = 50
disable_vrfy_command = yes
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
local_destination_concurrency_limit = 10
local_recipient_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/local_recipient.conf
mail_owner = postfix
mail_spool_directory = /usr/local/mail
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, post.$mydomain
mydomain = ellada.com.ua
myhostname = mail.ellada.com.ua
mynetworks = 223.255.253.0/24, 127.0.0.0/8, 223.255.231.0/24
mynetworks_style = host
myorigin = $mydomain
newaliases_path = /usr/local/bin/newaliases
notify_classes = delay, policy, protocol, resource, software
queue_directory = /var/spool/postfix
readme_directory = no
receive_override_options = no_address_mappings
sample_directory = /usr/local/etc/postfix/dist
sendmail_path = /usr/local/sbin/sendmail
setgid_group = maildrop
smtp_always_send_ehlo = yes
smtp_tls_note_starttls_offer = yes
smtp_use_tls = yes
smtpd_banner = $myhostname
smtpd_helo_required = yes
smtpd_recipient_restrictions = check_sender_access mysql:/usr/local/etc/postfix/mysqlLookupMaps/permissions.conf, permit_sasl_authenticated, permit_mynetworks, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unauth_destination, reject_unauth_pipelining, reject_invalid_hostname, reject_rbl_client bl.spamcop.net
smtpd_reject_unlisted_recipient = yes
smtpd_restriction_classes = local, other, all
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /usr/local/etc/postfix/ssl/smtpd.cert
smtpd_tls_key_file = /usr/local/etc/postfix/ssl/smtpd.key
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_use_tls = yes
transport_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/transport.conf
unknown_local_recipient_reject_code = 554
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/alias.conf
virtual_create_maildirsize = yes
virtual_gid_maps = static:1984
virtual_mailbox_base = /usr/local/mail
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysqlLookupMaps/domain.conf
virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/quota.conf
virtual_mailbox_limit_override = yes
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/mailbox.conf
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_minimum_uid = 1000
virtual_overquota_bounce = yes
virtual_uid_maps = static:1984
root@bsd# clear
root@bsd# postconf -n
alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
content_filter = scan:127.0.0.1:10025
daemon_directory = /usr/local/libexec/postfix
debug_peer_level = 1
default_destination_concurrency_limit = 50
disable_vrfy_command = yes
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
local_destination_concurrency_limit = 10
local_recipient_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/local_recipient.conf
mail_owner = postfix
mail_spool_directory = /usr/local/mail
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, post.$mydomain
mydomain = ellada.com.ua
myhostname = mail.ellada.com.ua
mynetworks = 223.255.253.0/24, 127.0.0.0/8, 223.255.231.0/24
mynetworks_style = host
myorigin = $mydomain
newaliases_path = /usr/local/bin/newaliases
notify_classes = delay, policy, protocol, resource, software
queue_directory = /var/spool/postfix
readme_directory = no
receive_override_options = no_address_mappings
sample_directory = /usr/local/etc/postfix/dist
sendmail_path = /usr/local/sbin/sendmail
setgid_group = maildrop
smtp_always_send_ehlo = yes
smtp_tls_note_starttls_offer = yes
smtp_use_tls = yes
smtpd_banner = $myhostname
smtpd_helo_required = yes
smtpd_recipient_restrictions = check_sender_access mysql:/usr/local/etc/postfix/mysqlLookupMaps/permissions.conf, permit_sasl_authenticated, permit_mynetworks, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unauth_destination, reject_unauth_pipelining, reject_invalid_hostname, reject_rbl_client bl.spamcop.net
smtpd_reject_unlisted_recipient = yes
smtpd_restriction_classes = local, other, all
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /usr/local/etc/postfix/ssl/smtpd.cert
smtpd_tls_key_file = /usr/local/etc/postfix/ssl/smtpd.key
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_use_tls = yes
transport_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/transport.conf
unknown_local_recipient_reject_code = 554
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/alias.conf
virtual_create_maildirsize = yes
virtual_gid_maps = static:1984
virtual_mailbox_base = /usr/local/mail
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysqlLookupMaps/domain.conf
virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/quota.conf
virtual_mailbox_limit_override = yes
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/mailbox.conf
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_minimum_uid = 1000
virtual_overquota_bounce = yes
virtual_uid_maps = static:1984


"reject unknown recipient (postfix)"
Отправлено Mario , 31-Мрт-06 11:44 
ошибся, два раза подряд вывел :)
вот так правильно

alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
content_filter = scan:127.0.0.1:10025
daemon_directory = /usr/local/libexec/postfix
debug_peer_level = 1
default_destination_concurrency_limit = 50
disable_vrfy_command = yes
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
local_destination_concurrency_limit = 10
local_recipient_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/local_recipient.conf
mail_owner = postfix
mail_spool_directory = /usr/local/mail
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, post.$mydomain
mydomain = ellada.com.ua
myhostname = mail.ellada.com.ua
mynetworks = 223.255.253.0/24, 127.0.0.0/8, 223.255.231.0/24
mynetworks_style = host
myorigin = $mydomain
newaliases_path = /usr/local/bin/newaliases
notify_classes = delay, policy, protocol, resource, software
queue_directory = /var/spool/postfix
readme_directory = no
receive_override_options = no_address_mappings
sample_directory = /usr/local/etc/postfix/dist
sendmail_path = /usr/local/sbin/sendmail
setgid_group = maildrop
smtp_always_send_ehlo = yes
smtp_tls_note_starttls_offer = yes
smtp_use_tls = yes
smtpd_banner = $myhostname
smtpd_helo_required = yes
smtpd_recipient_restrictions = check_sender_access mysql:/usr/local/etc/postfix/mysqlLookupMaps/permissions.conf, permit_sasl_authenticated, permit_mynetworks, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unauth_destination, reject_unauth_pipelining, reject_invalid_hostname, reject_rbl_client bl.spamcop.net
smtpd_reject_unlisted_recipient = yes
smtpd_restriction_classes = local, other, all
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /usr/local/etc/postfix/ssl/smtpd.cert
smtpd_tls_key_file = /usr/local/etc/postfix/ssl/smtpd.key
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_use_tls = yes
transport_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/transport.conf
unknown_local_recipient_reject_code = 554
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/alias.conf
virtual_create_maildirsize = yes
virtual_gid_maps = static:1984
virtual_mailbox_base = /usr/local/mail
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysqlLookupMaps/domain.conf
virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/quota.conf
virtual_mailbox_limit_override = yes
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/mailbox.conf
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_minimum_uid = 1000
virtual_overquota_bounce = yes
virtual_uid_maps = static:1984


"reject unknown recipient (postfix)"
Отправлено _KAV_ , 31-Мрт-06 11:53 
Эээээ....
При хранении пользователей в мускуле они локальными не числятся - все они виртуальные. Режектить надо по relay_recipient_maps
Здесь недавно это обсуждалось - http://www.opennet.ru/openforum/vsluhforumID1/64967.html

"reject unknown recipient (postfix)"
Отправлено jonatan , 31-Мрт-06 12:02 
>Эээээ....
>При хранении пользователей в мускуле они локальными не числятся - все они
>виртуальные. Режектить надо по relay_recipient_maps
>Здесь недавно это обсуждалось - http://www.opennet.ru/openforum/vsluhforumID1/64967.html
Поясните, о чем Вы?

"reject unknown recipient (postfix)"
Отправлено _KAV_ , 31-Мрт-06 12:33 
>>Эээээ....
>>При хранении пользователей в мускуле они локальными не числятся - все они
>>виртуальные. Режектить надо по relay_recipient_maps
>>Здесь недавно это обсуждалось - http://www.opennet.ru/openforum/vsluhforumID1/64967.html
>Поясните, о чем Вы?

Виноват, дал не ту ссылку - http://www.opennet.ru/openforum/vsluhforumID1/64825.html
вот правильная.
При использовании sql-баз не используется транспорт local - все определяется через virtual, что видно по конфигу. А relay_recipient_maps действует на все, что не local.
В той дискуссии (вторая ссылка - правильная) подействовал именно этот метод.


"reject unknown recipient (postfix)"
Отправлено jonatan , 31-Мрт-06 12:38 
>Виноват, дал не ту ссылку - http://www.opennet.ru/openforum/vsluhforumID1/64825.html
>вот правильная.
>При использовании sql-баз не используется транспорт local - все определяется через virtual,
Да, в данном случае придется определить еще и mailbox_transport.
>что видно по конфигу. А relay_recipient_maps действует на все, что не
>local.
Почему? Будет действовать только на то, что указано в $relay_domains.

relay_recipient_maps (default: empty)
Optional lookup tables with all valid addresses in the domains that match $relay_domains.


"reject unknown recipient (postfix)"
Отправлено _KAV_ , 31-Мрт-06 13:08 
В свое время св. unk приводил порядок просмотра таблиц...
Достаточно определить virtual_alias_maps через список пользователей

"reject unknown recipient (postfix)"
Отправлено jonatan , 31-Мрт-06 13:25 
>В свое время св. unk приводил порядок просмотра таблиц...
>Достаточно определить virtual_alias_maps через список пользователей
Достаточно для чего?

"reject unknown recipient (postfix)"
Отправлено jonatan , 31-Мрт-06 12:00 
Для каких доменов не проверяется получатели?

"reject unknown recipient (postfix)"
Отправлено Mario , 31-Мрт-06 12:42 
какова должна быть стурктура relay_recipient_maps ?
какой sql запрос мне надо составить? просто вернуть список имеющихся адресов?

"reject unknown recipient (postfix)"
Отправлено jonatan , 31-Мрт-06 12:47 
Если речь о виртуальных пользователях, то
postmap -q "string" mysql:/usr/local/etc/postfix/mysqlLookupMaps/mailbox.conf

"reject unknown recipient (postfix)"
Отправлено Mario , 31-Мрт-06 13:04 
>Если речь о виртуальных пользователях, то
>postmap -q "string" mysql:/usr/local/etc/postfix/mysqlLookupMaps/mailbox.conf


сделал так:
relay_recipient_maps = $virtual_mailbox_maps, $virtual_alias_maps

однако

220 mail.domain
ehlo mario
250-mail.domain
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-STARTTLS
250 8BITMIME
mail from: mario@domain
250 Ok
rcpt to: nonexistent.user@domain
250 Ok
data
354 End data with <CR><LF>.<CR><LF>
message text
.
250 Ok: queued as 427B325
quit
221 Bye
Connection closed by foreign host.


"reject unknown recipient (postfix)"
Отправлено _KAV_ , 31-Мрт-06 13:03 
>какова должна быть стурктура relay_recipient_maps ?
>какой sql запрос мне надо составить? просто вернуть список имеющихся адресов?

Ссылочку (вторую) посмотри... там все


"reject unknown recipient (postfix)"
Отправлено Mario , 31-Мрт-06 13:16 
во, получилось! извините, что парил вам головы

значит что требовалось сделать:
установить relay_recipient_maps = $virtual_mailbox_maps, $virtual_alias_maps
и сбросить (закомментировать) transport_maps

при этом постфикс стал почему то заглядывать в /etc/local/postfix/aliases
(они у меня не там лежали)

не могли бы вы пояснить как они вместе с transport_maps относятся к relay_recipient_maps ?


"reject unknown recipient (postfix)"
Отправлено jonatan , 31-Мрт-06 13:27 
Еще раз. Для адресов какого класса Вы настраиваете проверку?
http://www.postfix.org/ADDRESS_CLASS_README.html

"reject unknown recipient (postfix)"
Отправлено Mario , 31-Мрт-06 13:41 
>Еще раз. Для адресов какого класса Вы настраиваете проверку?
>http://www.postfix.org/ADDRESS_CLASS_README.html


вообще-то для virtual mailbox domain class
а теперь получилось, что для local
:)
так не пойдет...


"reject unknown recipient (postfix)"
Отправлено jonatan , 31-Мрт-06 13:45 
1. Если почта хранится локально, то закомментируйте transport_maps.
2. Все, что Вам нужно для начала - правильно настроить следующие параметры
virtual_alias_maps
virtual_mailbox_domains
virtual_mailbox_maps

"reject unknown recipient (postfix)"
Отправлено Mario , 31-Мрт-06 15:05 
>1. Если почта хранится локально, то закомментируйте transport_maps.
>2. Все, что Вам нужно для начала - правильно настроить следующие параметры
>
>virtual_alias_maps
>virtual_mailbox_domains
>virtual_mailbox_maps


что-то я совсем запутался, документация уже просветления не приносит
вроде настроил, получился такой вот конфиг

alias_database = hash:/etc/local/postfix/aliases
alias_maps = hash:/etc/local/postfix/aliases

broken_sasl_auth_clients = yes
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
content_filter = scan:127.0.0.1:10025
daemon_directory = /usr/local/libexec/postfix
debug_peer_level = 1
default_destination_concurrency_limit = 50
disable_vrfy_command = yes
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
local_destination_concurrency_limit = 10

mail_owner = postfix
mail_spool_directory = /usr/local/mail
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man

mydestination = localhost
mydomain = domain.com.ua
myhostname = mail.domain.com.ua
mynetworks = 223.255.253.0/24, 127.0.0.0/8, 223.255.231.0/24
mynetworks_style = host
myorigin = $mydomain

newaliases_path = /usr/local/bin/newaliases
notify_classes = delay, policy, protocol, resource, software
queue_directory = /var/spool/postfix
readme_directory = no

receive_override_options = no_address_mappings
relay_recipient_maps = $virtual_mailbox_maps, $virtual_alias_maps

sample_directory = /usr/local/etc/postfix/dist
sendmail_path = /usr/local/sbin/sendmail
setgid_group = maildrop

smtp_always_send_ehlo = yes
smtp_tls_note_starttls_offer = yes
smtp_use_tls = yes
smtpd_banner = $myhostname
smtpd_helo_required = yes

smtpd_recipient_restrictions =
  check_sender_access mysql:/usr/local/etc/postfix/mysqlLookupMaps/permissions.conf,
  permit_sasl_authenticated,
  permit_mynetworks,
  reject_non_fqdn_hostname,
  reject_non_fqdn_sender,
  reject_non_fqdn_recipient,
  reject_unauth_destination,
  reject_unauth_pipelining,
  reject_invalid_hostname,
  reject_rbl_client bl.spamcop.net

smtpd_restriction_classes = local, other, all

smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous

smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /usr/local/etc/postfix/ssl/smtpd.cert
smtpd_tls_key_file = /usr/local/etc/postfix/ssl/smtpd.key
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_use_tls = yes

virtual_alias_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/alias.conf
virtual_create_maildirsize = yes
virtual_gid_maps = static:1984
virtual_mailbox_base = /usr/local/mail
virtual_mailbox_domains = domain.com.ua
virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/quota.conf
virtual_mailbox_limit_override = yes
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysqlLookupMaps/mailbox.conf
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_minimum_uid = 1000
virtual_overquota_bounce = yes
virtual_uid_maps = static:1984

при несуществующем пользователе получаю
550 Recipient address rejected: User unknown in virtual mailbox table

класс адресов - virtual mailboxes
еще меня смущает $mydestination

да и вообще как на ваш взгляд такая конфигурация?


"reject unknown recipient (postfix)"
Отправлено jonatan , 31-Мрт-06 15:26 
>при несуществующем пользователе получаю
>550 Recipient address rejected: User unknown in virtual mailbox table
Т.е. все работает?
>класс адресов - virtual mailboxes
>еще меня смущает $mydestination
Оставьте default (закомментируйте его).
>да и вообще как на ваш взгляд такая конфигурация?
Не понятно зачем
relay_recipient_maps = $virtual_mailbox_maps, $virtual_alias_maps
Это лучше указывать для smtpd в master.cf
receive_override_options = no_address_mappings

"reject unknown recipient (postfix)"
Отправлено Mario , 31-Мрт-06 15:51 
>>при несуществующем пользователе получаю
>>550 Recipient address rejected: User unknown in virtual mailbox table
>Т.е. все работает?
>>класс адресов - virtual mailboxes
>>еще меня смущает $mydestination
>Оставьте default (закомментируйте его).
>>да и вообще как на ваш взгляд такая конфигурация?
>Не понятно зачем
>relay_recipient_maps = $virtual_mailbox_maps, $virtual_alias_maps
>Это лучше указывать для smtpd в master.cf
>receive_override_options = no_address_mappings


да действительно не понятно :) убрал
receive_override_options перенес в master.cf

спасибо огромное, очень сильно помогли
раздобыл "The Book Of Postfix" Ralf Hildebrandt & Patrick Koetter (2005) буду читать до просветления!


"reject unknown recipient (postfix)"
Отправлено jonatan , 31-Мрт-06 15:55 
>спасибо огромное, очень сильно помогли
>раздобыл "The Book Of Postfix" Ralf Hildebrandt & Patrick Koetter (2005) буду
>читать до просветления!
Я бы тоже с удовольствием почитал :)

"reject unknown recipient (postfix)"
Отправлено Mario , 31-Мрт-06 17:07 
>>спасибо огромное, очень сильно помогли
>>раздобыл "The Book Of Postfix" Ralf Hildebrandt & Patrick Koetter (2005) буду
>>читать до просветления!
>Я бы тоже с удовольствием почитал :)
нет проблем, напишите мне на CombatPenguin@gmail.com ;)
или icq: 169615561