Страница 1 из 1

Postfix принимает подключения с левых доменов

Добавлено: 2010-07-15 19:52:14
Xan
Настроил потом и кровью. Внутри сети письма принимает. Стал тестировать снаружи. Результат

Код: Выделить всё

 
Connected to mx
Escape character is '^]'.
220 mx ESMTP Mail Server
ehlo mail.ru
250-mx
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:<aevxxx@xruetovsk.ru>
250 2.1.0 Ok
Ни домен, ни логин такие не существуют. У меня в конфиге есть директивы на проверку валидности домена и логина. Не работает. Пропускает и почему то вот часть конфига.

Код: Выделить всё

# Ограничения
smtpd_client_restrictions = permit_mynetworks
        check_client_access mysql:/etc/postfix/mysql_virtual_alias_maps.cf
        reject_unknown_client_hostname
        reject_unauth_pipelining


smtpd_recipient_restrictions = permit_mynetworks
        reject_unauth_destination
        reject_invalid_hostname
        reject_non_fqdn_hostname
        reject_non_fqdn_sender
        reject_non_fqdn_recipient
        reject_unknown_recipient_domain
        reject_unauth_pipelining
        permit_auth_destination
        reject_unlisted_recipient
        reject_unauth_destination
        reject_rbl_client blackholes.mail-abuse.org
        reject_rbl_client dialups.mail-abuse.org
        reject_rbl_client dul.ru
        reject_rbl_client opm.blitzed.org
        reject_rbl_client list.dsbl.org
        reject_rbl_client sbl.spamhaus.org
        reject_rbl_client sbl-xbl.spamhaus.org
        reject_rbl_client zen.spamhaus.org
        reject_rbl_client cbl.abuseat.org
        reject_rbl_client dul.dnsbl.sorbs.net
        reject_rbl_client dnsbl.njabl.org
        reject_rbl_client dynablock.njabl.org
        reject_rbl_client bl.spamcop.net
        reject_rbl_client bl.csma.biz
        reject_rbl_client dnsbl.sorbs.net
        reject_rbl_client smtp.dnsbl.sorbs.net
        reject_rbl_client relays.mail-abuse.com
        reject_rbl_client dialups.mail-abuse.com
        reject_rbl_client combined.njabl.org
        reject_rbl_client rbl.majordomo.ru

smtpd_sender_restrictions = permit_mynetworks
        check_sender_access  hash:/etc/postfix/sender_access
        [b]reject_unknown_sender_domain[/b]
        reject_unlisted_sender
        reject_non_fqdn_sender
        reject_authenticated_sender_login_mismatch
        reject_unknown_sender_domain
        reject_unlisted_sender
        [b]reject_unverified_sender[/b]

#Ограничения на команду HELO/EHLO
smtpd_helo_restrictions = permit_mynetworks
        check_helo_access  hash:/etc/postfix/helo_access
        reject_invalid_helo_hostname
        reject_unknown_helo_hostname
        reject_non_fqdn_helo_hostname

smtpd_data_restrictions = permit_mynetworks
        reject_multi_recipient_bounce
        reject_unauth_pipelining

smtpd_etrn_restrictions = permit_mynetworks,reject

Хочу еще добавить что в выводе команды postconf директивы reject_unknown_sender_domain, reject_unverified_sender
есть, но в выводе команды postconf -d они отсутствуют.

Как включить логирование эти моментов я не понял -Проход письма по цепочке проверок.

Re: Postfix принимает подключения с левых доменов

Добавлено: 2010-07-15 22:50:57
Alex Keda
юзайте exim, чтоле....

Re: Postfix принимает подключения с левых доменов

Добавлено: 2010-07-16 0:03:40
FiL

Re: Postfix принимает подключения с левых доменов

Добавлено: 2010-07-16 0:57:25
Xan
было smtpd_delay_reject=no
сделал
smtpd_delay_reject=yes

изменений никаких нет. ПРинимает подключение с левого домена и левого ящика.

Re: Postfix принимает подключения с левых доменов

Добавлено: 2010-07-16 1:03:10
FiL
не, моей телепатии на больше не хватило. Дальше надо детальнее смотреть на полные конфиги, на логи, на то проходит-ли письмо дальше RCPT TO и т.д.

Re: Postfix принимает подключения с левых доменов

Добавлено: 2010-07-16 9:54:10
ivan__
Хочу еще добавить что в выводе команды postconf директивы reject_unknown_sender_domain, reject_unverified_sender
есть, но в выводе команды postconf -d они отсутствуют.
Так и должно быть - http://www.postfix.org/postconf.1.html
Покажи полный postconf -n

Re: Postfix принимает подключения с левых доменов

Добавлено: 2010-07-16 10:20:10
moury
FiL писал(а):не, моей телепатии на больше не хватило. Дальше надо детальнее смотреть на полные конфиги, на логи, на то проходит-ли письмо дальше RCPT TO и т.д.
Какая телепатия? Написано же:

Код: Выделить всё

Connected to mx
Не с mx.domain.ru! Скорее всего, соединение - внутри локальной сети, и все правила перебивает permit_mynetworks.
У него ведь раньше стояло smtpd_delay_reject=no.

Re: Postfix принимает подключения с левых доменов

Добавлено: 2010-07-16 10:40:15
ivan__
moury писал(а): Не с mx.domain.ru! Скорее всего, соединение - внутри локальной сети, и все правила перебивает permit_mynetworks.
У него ведь раньше стояло smtpd_delay_reject=no.
Xan писал(а):Стал тестировать снаружи
А вообще permit_mynetworks должен стоять как можно ближе к концу списка ограничений.

Re: Postfix принимает подключения с левых доменов

Добавлено: 2010-07-16 11:05:33
Xan
FiL писал(а):не, моей телепатии на больше не хватило. Дальше надо детальнее смотреть на полные конфиги, на логи, на то проходит-ли письмо дальше RCPT TO и т.д.
Если я тут пишу значит проходит. если сервер уже сказал ок на левый домен. То если адресат будет верным то пройдет. Кстати, левого адресата проверяет нормально.

Re: Postfix принимает подключения с левых доменов

Добавлено: 2010-07-16 12:40:59
Xan
moury писал(а):
FiL писал(а):не, моей телепатии на больше не хватило. Дальше надо детальнее смотреть на полные конфиги, на логи, на то проходит-ли письмо дальше RCPT TO и т.д.
Какая телепатия? Написано же:

Код: Выделить всё

Connected to mx
Не с mx.domain.ru! Скорее всего, соединение - внутри локальной сети, и все правила перебивает permit_mynetworks.
У него ведь раньше стояло smtpd_delay_reject=no.
Конечно, я намеренно учитывая что IP внутр сети прописаны лезу к серверу снаружи... Но есть одна вещь. Он прав. Внутрь коннект прокидывается с фревой тачки через bounce, задница в том что тогда такой коннект воспринимает как от своего .1 шлюза
Cейчас прописал через natd коннект и почтовик видит с какого внешнего идёт коннект.

ЧТо я увидел
1. smtpd_delay_reject=no
450 4.7.1 Client host rejected: cannot find your hostname, [95.43.xxx.14]
То есть даже до ehlo процесс не доходит.

2. smtpd_delay_reject=yes подлючается ))
Уж не знаю что правильнее. Потому что в первом случае видно что правила работают, а во втором случае опять ОК на почту с левого домена и левого ящика.


postconf -n

Код: Выделить всё

address_verify_negative_cache = yes
address_verify_negative_refresh_time = 3h
address_verify_poll_count = 1
address_verify_positive_expire_time = 31d
address_verify_positive_refresh_time = 7d
address_verify_sender = <>
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
allow_untrusted_routing = no
append_dot_mydomain = no
biff = no
bounce_queue_lifetime = 4d
config_directory = /etc/postfix
debug_peer_level = 8
disable_vrfy_command = yes
header_checks = regexp:/etc/postfix/header_checks
inet_interfaces = all
inet_protocols = ipv4
mailbox_command = /usr/lib/dovecot/deliver
mailbox_size_limit = 1024000000
mailbox_transport = dovecot
maximal_backoff_time = 5h
maximal_queue_lifetime = 4d
message_size_limit = 10240000
minimal_backoff_time = 3h
mydestination = $myhostname localhost.$mydomain localhost mail.fosnir.ru
mydomain = real_domain.ru
myhostname = mx2.nirovision.ru
mynetworks = 192.168.5.0/24 192.168.1.0/24 127.0.0.0/8
myorigin = $mydomain
proxy_interfaces = xxx.zzz.yyy.eee
queue_run_delay = 30m
readme_directory = no
recipient_delimiter = +
resolve_null_domain = no
resolve_numeric_domain = no
show_user_unknown_table_name = no
smtp_always_send_ehlo = yes
smtp_data_done_timeout = 10m
smtp_data_init_timeout = 2m
smtp_data_xfer_timeout = 3m
smtp_helo_name = $myhostname
smtp_mail_timeout = 5m
smtp_never_send_ehlo = no
smtp_quote_rfc821_envelope = yes
smtp_rcpt_timeout = 5m
smtpd_banner = $myhostname ESMTP Mail Server
smtpd_client_restrictions = permit_mynetworks   check_client_access mysql:/etc/postfix/mysql_virtual_alias_maps.cfreject_unknown_client_hostname  reject_unauth_pipelining
smtpd_data_restrictions = permit_mynetworksreject_multi_recipient_bounce   reject_unauth_pipelining
smtpd_delay_reject = yes
smtpd_error_sleep_time = ${stress?0}${stress:10s}
smtpd_etrn_restrictions = permit_mynetworks,reject
smtpd_hard_error_limit = ${stress?3}${stress:20}
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworkscheck_helo_access  hash:/etc/postfix/helo_accessreject_invalid_helo_hostnamereject_unknown_helo_hostnamereject_non_fqdn_helo_hostname
smtpd_recipient_limit = 100
smtpd_recipient_restrictions = permit_mynetworksreject_unauth_destinationreject_invalid_hostname reject_non_fqdn_hostnamereject_non_fqdn_senderreject_non_fqdn_recipientreject_unknown_recipient_domain reject_unauth_pipeliningpermit_auth_destination reject_unlisted_recipientreject_unauth_destination reject_rbl_client blackholes.mail-abuse.orgreject_rbl_client dialups.mail-abuse.orgreject_rbl_client dul.rureject_rbl_client opm.blitzed.org reject_rbl_client list.dsbl.org reject_rbl_client sbl.spamhaus.orgreject_rbl_client sbl-xbl.spamhaus.org  reject_rbl_client zen.spamhaus.orgreject_rbl_client cbl.abuseat.orgreject_rbl_client dul.dnsbl.sorbs.net   reject_rbl_client dnsbl.njabl.orgreject_rbl_client dynablock.njabl.orgreject_rbl_client bl.spamcop.netreject_rbl_client bl.csma.biz   reject_rbl_client dnsbl.sorbs.netreject_rbl_client smtp.dnsbl.sorbs.netreject_rbl_client relays.mail-abuse.com reject_rbl_client dialups.mail-abuse.comreject_rbl_client combined.njabl.orgreject_rbl_client rbl.majordomo.ru
smtpd_reject_unlisted_recipient = yes
smtpd_reject_unlisted_sender = yes
smtpd_sender_restrictions = permit_mynetworks   check_sender_access  hash:/etc/postfix/sender_accessreject_unknown_sender_domainreject_unlisted_sender  reject_non_fqdn_senderreject_authenticated_sender_login_mismatch        reject_unknown_sender_domain        reject_unlisted_sender        reject_unverified_sender
smtpd_soft_error_limit = 2
smtpd_starttls_timeout = 5m
smtpd_timeout = 5m
strict_rfc821_envelopes = yes
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_base = /var/mail
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_transport = dovecot
странно что пробелов нет между параметрами, в конфиге всё построчкам перечислено. МОжет форматирование сбито из-за путти.

Re: Postfix принимает подключения с левых доменов

Добавлено: 2010-07-16 12:55:02
moury
Xan,

Если у Вас включен smtpd_delay_reject=yes, то до передачи команды RCPT TO постфикс на все будет отвечать OK. (Exim при типовой настройке - тоже :smile: ). Для диагностики важнее, что левая почта принималась и при smtpd_delay_reject=no.

Если отправитель с левым адресом не посылается нафиг, значит, до правила reject_unknown_sender_domain не доходит, и разрешение на по результатам проверки адреса отправителя дается раньше.

Однако с начала проверок до reject_unknown_sender_domain все правила - запрещающие, кроме одного явно разрешающего (permit_mynetworks) и трех правил, в которых может содержаться как запрет, так и разрешение.

Эти правила:

Код: Выделить всё

check_client_access mysql:/etc/postfix/mysql_virtual_alias_maps.cf
check_helo_access  hash:/etc/postfix/helo_access
check_sender_access  hash:/etc/postfix/sender_access
То есть, Вам надо разбираться всего с четырьмя правилами. Причем, я бы начал с check_sender_access.
Хочу еще добавить что в выводе команды postconf директивы reject_unknown_sender_domain, reject_unverified_sender
есть, но в выводе команды postconf -d они отсутствуют.
Дефолтная конфигурация постфикса предусматривает защиту от рассылки спама через него и на простенькую защиту от спама.
Правило reject_unknown_sender_domain - более серьезная степень защиты от спама.
Правило reject_unverified_sender - Зло. Иллюзия защиты. Ловушка для параноиков, которым плевать на скорость обработки почты своим почтовым сервером.

Re: Postfix принимает подключения с левых доменов

Добавлено: 2010-07-16 13:16:27
Xan
moury писал(а):Xan,

Если у Вас включен smtpd_delay_reject=yes, то до передачи команды RCPT TO постфикс на все будет отвечать OK. (Exim при типовой настройке - тоже :smile: ). Для диагностики важнее, что левая почта принималась и при smtpd_delay_reject=no.
Если отправитель с левым адресом не посылается нафиг, значит, до правила reject_unknown_sender_domain не доходит, и разрешение на по результатам проверки адреса отправителя дается раньше.

Однако с начала проверок до reject_unknown_sender_domain все правила - запрещающие, кроме одного явно разрешающего (permit_mynetworks) и трех правил, в которых может содержаться как запрет, так и разрешение.
Благодарю, алгоритм стал более понятен. Идёт построчная проверка до 1го разрешения или запрета как я понял.
Сейчас буду проверять эти моменты.

В случае с "левая почта принималась и при smtpd_delay_reject=no" почтовик думал что коннект идёт с .1 адреса из своей сети. Думаю в этом причина, потому что сейчас оно тоже было NO, но при внешнем коннекте входящее соединение было сразу отвергнуто "450 4.7.1 Client host rejected: cannot find your hostname". Я так понимаю постфикс берет hostname ip_connection и если обратного резолвинга нет то посылает ?

Проверил. вы правы. стал давать команду rcpt to:<user@domain.ru>
450 4.7.1 Client host rejected: cannot find your hostname, [xxx.rrr.yyy.uuu]
причем назвался реальным доменом и реальным ящиком.
Логи

Код: Выделить всё

Jul 16 14:08:43 mail postfix/smtpd[8724]: NOQUEUE: reject: RCPT from unknown[xxx.xxx.xxx.xxx]: 450 4.7.1 Client host rejected: cannot find your hostname, [xxx.xxx.xxx.xxx]; from=<exist@mail.ru> to=<exist@real_domain.ru> proto=ESMTP helo=<mail.ru>
Так что главной проблемой становится 450 4.7.1 Client host rejected: cannot find your hostname
DNS нормально работает.

Код: Выделить всё

nslookup 89.111.189.147
Server:         192.168.5.7
Address:        192.168.5.7#53

Non-authoritative answer:
147.189.111.89.in-addr.arpa     name = hors.nnm.netserv.name.

Authoritative answers can be found from:
189.111.89.in-addr.arpa nameserver = ns4.hc.ru.
189.111.89.in-addr.arpa nameserver = ns3.hc.ru.
ns3.hc.ru       internet address = 194.154.75.192
ns4.hc.ru       internet address = 89.111.171.192

Re: Postfix принимает подключения с левых доменов

Добавлено: 2010-07-16 15:50:18
moury
Видите ли, я очень не люблю затевать переписку в форумах (для общения - чаты и IM'ы). Особенно в техническом форуме. Давайте резюмируем.

Вы наступили на традиционные грабли для начинающих работать с постфиксом - поделили smtpd_*_restrictions на несколько файлов. Помимо прочего. это затрудняет диагностику проблем. Советую Вам smtpd_(client|helo|sender|recipient)_restrictions свести в один общий блок - smtpd_recipient_restrictions.

У Вас часть правил явно разрешает принимать спам, часть - запрещает принимать валидную почту от бедняг-клиентов дурных провайдеров. Среди блеклистов очень много повторов, есть дохлые dnsbl, есть платные. Советую в документации изучить назначение каждого правила, а для всех dnsbl - пройтись по их сайтам.

После этого часть проблем решится сама собой.

Re: Postfix принимает подключения с левых доменов

Добавлено: 2010-07-16 20:06:38
Xan
moury писал(а):
Вы наступили на традиционные грабли для начинающих работать с постфиксом - поделили smtpd_*_restrictions на несколько файлов. Помимо прочего. это затрудняет диагностику проблем. Советую Вам smtpd_(client|helo|sender|recipient)_restrictions свести в один общий блок - smtpd_recipient_restrictions.
Не я наступил. Настраивать как всегда надо быстро и вчера в результате я взял руководство отсюда
http://www.opennet.ru/base/net/postfix_ ... e.txt.html

Пришлось поработать поскольку руководство сырое. Читать доки по постфиксу на малопонятном языке (англ.) мне сложно. На русском подробно особо ничего не написали. Был проект Элантеха, но он загнулся.

Насчет блоков, я попробую.
У Вас часть правил явно разрешает принимать спам, часть - запрещает принимать валидную почту от бедняг-клиентов дурных провайдеров. Среди блеклистов очень много повторов, есть дохлые dnsbl, есть платные. Советую в документации изучить назначение каждого правила, а для всех dnsbl - пройтись по их сайтам.

Да есть в листах повторы, но сейчас другая проблема основная.
Можете выложить свой вариант правильного конфига ?
После этого часть проблем решится сама собой.

Re: Postfix принимает подключения с левых доменов

Добавлено: 2010-07-18 1:40:01
moury
Реководства по настройке постфикса есть на опеннете, в том числе для параноиков.
На русском лучшее - книга Гильдебрандта и Кеттера, ее здесь на днях рекомендовали. Есть в бумажном и электронном виде.

А универсальных "правильных конфигов" нет и быть не может:
Во-первых, характер переписки каждого домена уникален (характер спама у ISP, межправительственного института и никому не нужной конторки различаются кардинально).
Во-вторых, спамеры контролируют доставку спама в реальном времени.
В-третьих, спамеры постоянно стремятся компрометировать способы защиты от спама (помяем грейлистинг, dsbl.org, ordb.org и dynablock.easynet.nl).

Так что нужно ежедневно изучать статистику почтовой системы, регулярно просматривать логи, ежемесячно подстраивать защиту от спама, чтобы она была эффективной, не мешала нормальной почте и не грузила систему. Основной инструмент - pflogsumm и логи.

Вообще, советую отнестись к противодействию спаму как к войне и составить на бумаге стратегический план кампании:
- цели противодействия спаму
- конкретные задачи для достижения этих целей
- известные Вам признаки спама
- найденные в логах новые признаки спама
- способы блокировки спама с использованием этих признаков.
Такая систематизация сильно помогает. Знаю по себе и знакомым :smile:

Re: Postfix принимает подключения с левых доменов

Добавлено: 2010-07-18 12:12:04
Xan
moury писал(а):Реководства по настройке постфикса есть на опеннете, в том числе для параноиков.
На русском лучшее - книга Гильдебрандта и Кеттера, ее здесь на днях рекомендовали. Есть в бумажном и электронном виде.
Благодарю ! Да, книгу я как раз уже второй день читаю. Нашел, счастье то какое. Надеюсь разобраться.

Спам сейчас вторичен. Главное чтобы сервер заработал. На предыдущем сервере проблема спама вообще не решалась с какого то момента так как шли потери писем клиентов. Она решалась на рабочих местах. В Тандерберде просто каждый настраивал фильтр под себя. На сервере работал лишь BL. На текущем хочу сделать так же плюс еще если есть какие возможности типа проверки наличия ящиков. Кстати. почему она дает иллюзию ?

Сейчас мне надо разобраться с тем чтобы коннекты пропускало, но видимо это опции спама надо корректировать.