Postfix SMTP server: errors
Проблема с Postfix
Out: 220 mail.nalogtelecom.ru ESMTP configured by Graf....
In: EHLO mordor
Out: 250-mail.nalogtelecom.ru
Out: 250-PIPELINING
Out: 250-SIZE 40960000
Out: 250-ETRN
Out: 250-AUTH CRAM-MD5 DIGEST-MD5 LOGIN PLAIN NTLM
Out: 250-AUTH=CRAM-MD5 DIGEST-MD5 LOGIN PLAIN NTLM
Out: 250-ENHANCEDSTATUSCODES
Out: 250-8BITMIME
Out: 250 DSN
In: RSET
Out: 250 2.0.0 Ok
In: MAIL FROM:
Out: 250 2.1.0 Ok
In: RCPT TO:<0031220069432201@operator.nalogtelecom.ru>
Out: 451 4.3.0 <0031220069432201@operator.nalogtelecom.ru>: Temporary lookup
failure
In: RCPT TO:<0031230825520000@decl.nalogtelecom.ru>
Out: 451 4.3.0 <0031230825520000@decl.nalogtelecom.ru>: Temporary lookup
failure
In: DATA
Out: 554 5.5.1 Error: no valid recipients
In: RSET
Out: 250 2.0.0 Ok
In: QUIT
Out: 221 2.0.0 Bye
Помогите пожалуйста
- Для комментирования войдите или зарегистрируйтесь
Весссьма
Весссьма информативно. Сервер ломаете? Где логи, конфиги? Версия, USE-флаги?
_______________________
From Siberia with Love!
Не сервер не
(Сразу прошу прощения- я Linux, можно сказать, только начал изучать, поэтому простите за безграмотность) t
] NOQUEUE: reject: RCPT from unknown[82.147.119.238]: 450 4.7.1 Client host rejected: cannot find your hostname, [82.147.119.238]; from=
] warning: 122.169.142.114: hostname ABTS-AP-dynamic-114.142.169.122.airtelbroadband.in verification failed: Name or service not known: Sender address rejected: Domain not found; from=
Не сервер не ломаем... наборот пытаюсь ему помочь... вот лог
NOQUEUE: reject: RCPT from unknown[82.147.119.238]: 450 4.7.1 Client host rejected: cannot find your hostname, [82.147.119.238]; from=
] NOQUEUE: reject: RCPT from unknown[82.147.119.238]: 450 4.7.1 Client host rejected: cannot find your hostname, [82.147.119.238]; from=
] NOQUEUE: reject: RCPT from unknown[82.147.119.238]: 450 4.7.1 Client host rejected: cannot find your hostname, [82.147.119.238]; from=
] connect from unknown[122.169.142.114]
] lost connection after DATA from unknown[82.147.119.238]
] disconnect from unknown[82.147.119.238]
] lost connection after DATA from unknown[82.147.119.238]
] disconnect from unknown[82.147.119.238]
] lost connection after DATA from unknown[82.147.119.238]
] disconnect from unknown[82.147.119.238]
] lost connection after DATA from unknown[82.147.119.238]
] disconnect from unknown[82.147.119.238]
] 4ECB4CF64A: reject: DATA from unknown[82.151.105.83]: 450 4.1.8
] disconnect from unknown[82.151.105.83]
] warning: 82.151.105.83: address not listed for hostname decl.nalogtelecom.ru
] connect from unknown[82.151.105.83]
] 7683BCF64A: client=unknown[82.151.105.83]
] lost connection after DATA from ayn46.neoplus.adsl.tpnet.pl[83.27.125.46]
] disconnect from ayn46.neoplus.adsl.tpnet.pl[83.27.125.46]
] connect from unknown[212.57.102.98]
repeated twice -
] connect from unknown[125.211.114.234]
b 20 13:15:59 [postfix/smtpd] lost connection after DATA from unknown[82.147.119.238], size=11202, nrcpt=1 (queue active), orig_to=
, relay=virtual, delay=49, delays=49/0.01/0/0.01, dsn=2.0.0,
b 20 13:15:59 [postfix/smtpd] disconnect from unknown[82.147.119.238]
b 20 13:15:59 [postfix/smtpd] lost connection after DATA from unknown[82.147.119.238]
b 20 13:15:59 [postfix/smtpd] disconnect from unknown[82.147.119.238]
b 20 13:15:59 [postfix/smtpd] lost connection after DATA from unknown[82.147.119.238]
b 20 13:15:59 [postfix/smtpd] disconnect from unknown[82.147.119.238]
b 20 13:15:59 [postfix/smtpd] lost connection after DATA from unknown[82.147.119.238]
b 20 13:15:59 [postfix/smtpd] disconnect from unknown[82.147.119.238]
b 20 13:15:59 [postfix/smtpd] warning: 173.18.137.82.opm.blitzed.org: RBL lookup error: Host or domain name not found. Name service error for name=173.18.13
b 20 13:15:59 [postfix/smtpd] warning: 46.12.124.91.relays.ordb.org: RBL lookup error: Host or domain name not found. Name service error for name=46.12.124.
b 20 13:16:00 [postfix/smtpd] C8A38D0177: client=46-12-124-91.pool.ukrtel.net[91.124.12.46]
b 20 13:16:01 [postfix/smtpd] warning: 114.142.169.122.opm.blitzed.org: RBL lookup error: Host or domain name not found. Name service error for name=114.142
b 20 13:16:02 [postfix/cleanup] C8A38D0177: message-id=<01c873c4$287b1b80$2e0c7c5b@adam.clarke>
b 20 13:16:02 [postfix/qmgr] C8A38D0177: from=
b 20 13:16:02 [postfix/virtual] C8A38D0177: to=
b 20 13:16:02 [postfix/qmgr] C8A38D0177: removed
b 20 13:16:05 [postfix/smtpd] warning: 238.119.147.82.relays.ordb.org: RBL lookup error: Host or domain name not found. Name service error for name=238.119.
- Last output repeated 2 times -
b 20 13:16:05 [postfix/smtpd] NOQUEUE: reject: RCPT from unknown[82.147.119.238]: 450 4.7.1 Client host rejected: cannot find your hostname, [82.147.119.238
b 20 13:16:05 [postfix/smtpd] NOQUEUE: reject: RCPT from unknown[82.147.119.238]: 450 4.7.1 Client host rejected: cannot find your hostname, [82.147.119.238
b 20 13:16:05 [postfix/smtpd] NOQUEUE: reject: RCPT from unknown[82.147.119.238]: 450 4.7.1 Client host rejected: cannot find your hostname, [82.147.119.238
b 20 13:16:05 [postfix/smtpd] warning: 46.12.124.91.relays.ordb.org: RBL lookup error: Host or domain name not found. Name service error for name=46.12.124.
b 20 13:16:05 [postfix/smtpd] lost connection after DATA from unknown[82.147.119.238]
Конфиг чего нада Postfix`a
cat
cat /etc/postfix/main.cf
Это конечно круто, но я по фотографиям лечить еще не научился. Какие вообще проблемы с сервером? Что от него ожидается, и что он делает вместо этого?
_______________________
From Siberia with Love!
#message_size_limit =
#message_size_limit = 67108864
banner = $myhostname ESMTP configured by Graf....
#$preved
#smtpd_banner = $myhostname ESMTP configured by Graf.... ./banner
smtpd_banner = $banner
#
# The debug_peer_level parameter specifies the increment in verbose
# logging level when an SMTP client or server host name or address
# matches a pattern in the debug_peer_list parameter.
#
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /etc/postfix
readme_directory = /usr/share/doc/postfix-2.1.5-r2/readme
default_destination_concurrency_limit = 2
alias_database = hash:/etc/mail/aliases
local_destination_concurrency_limit = 2
alias_maps = hash:/etc/mail/aliases
home_mailbox = .maildir/
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
transport_maps = mysql:/etc/postfix/transport.cf
virtual_mailbox_base = /
virtual_uid_maps = mysql:/etc/postfix/ids.cf
virtual_gid_maps = mysql:/etc/postfix/gids.cf
virtual_mailbox_maps = mysql:/etc/postfix/aliases.cf
virtual_maps = mysql:/etc/postfix/remote_aliases.cf
relay_domains = $transport_maps
virtual_alias_maps = $virtual_maps
local_transport = virtual
local_recipient_maps = $virtual_mailbox_maps, $alias_database
smtpd_delay_reject = yes
########################################################
# ��� ������� ���������� �� �������������� ��������!!! #
########################################################
#smtpd_client_restrictions = permit_sasl_authenticated, reject
# permit_mynetworks
smtpd_client_restrictions = permit_mynetworks,
permit_sasl_authenticated,
mysql:/etc/postfix/access.cf,
#check_client_access mysql:/etc/postfix/client_access.cf
reject_rbl_client list.dsbl.org,
#reject_rbl_client bl.spamcop.net,
#reject_rbl_client cbl.abuseat.org,
#reject_rbl_client psbl.surriel.com,
reject_rbl_client spamsources.fabel.dk,
reject_rbl_client opm.blitzed.org,
reject_rbl_client combined.njabl.org,
reject_rbl_client relays.ordb.org,
reject_rbl_client dul.ru,
reject_rbl_client dialup.balcklist.jippg.org,
reject_rbl_client relays.mail-abuse.org,
#reject_rbl_client dnsbl.sorbs.net,
reject_unknown_client,
permit
smtpd_helo_required = no
smtpd_helo_restrictions = permit_sasl_authenticated,
permit_mynetworks,
mysql:/etc/postfix/access.cf,
check_recipient_access mysql:/etc/postfix/rcpt.cf,
reject_invalid_hostname,
reject_non_fqdn_hostname,
reject_unknown_hostname,
permit
smtpd_sender_restrictions = permit_mynetworks,
permit_sasl_authenticated,
mysql:/etc/postfix/access.cf,
#�������� �� ������� ����������� ���� From: � ����...
check_sender_access mysql:/etc/postfix/access_sender.cf,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
permit
smtpd_recipient_restrictions = reject_unauth_pipelining,
# �� ����������� � ������� smtpd_sender_restrictions
#check_recipient_access mysql:/etc/postfix/rcpt.cf
permit_sasl_authenticated,
permit_auth_destination,
permit_mynetworks,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unknown_sender_domain,
reject_unknown_recipient_domain
reject_unauth_destination,
check_recipient_access mysql:/etc/postfix/rcpt.cf
# ��������� ����� � �������� �����, �� ����������� � ��
# ��� ���� ������� ������ ���������� open-relay
# !!! !!! !!! !!! !!!
# ���� ��� ����������������� �������, ���� �����
#permit
smtpd_data_restrictions = permit_sasl_authenticated,
#permit_mynetworks,
reject_unauth_pipelining,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unknown_sender_domain,
permit
# �����������, ����������� �� ����� MAIL FROM:
#bounce_queue_lifetime = 1
disable_vrfy_command = yes
#smtpd_use_tls = yes
#smtpd_tls_auth_only = yes
#smtpd_tls_key_file = /opt/apache/conf/ssl.key/server.key
#smtpd_tls_cert_file = /opt/apache/conf/ssl.crt/server.crt
#smtpd_tls_CAfile = /opt/apache/conf/ssl.crt/ca.crt
#smtpd_tls_loglevel = 3
#smtpd_tls_received_header = yes
#smtpd_tls_session_cache_timeout = 3600s
#tls_random_source = dev:/dev/urandom
smtp_sasl_security_options = noanonymous, noplaintext
#smtp_connection_cache_on_demand = no
#Подтвердение доставики
smtpd_discard_ehlo_keyword_address_maps = cidr:/etc/postfix/esmtp_access
#bounce_template_file = /etc/postfix/bounce.cf
Просто через наш сервак проходит большое количество сообщений... а т.к. выдает такую ошибку(где-то каждую ошибку) значит что-то не хорошо
P.S. Заранее огромное спасибо
Просто на этот
Просто на этот сервак стучатся спамеры, и их режет rbl и правила non-FQDN. Валидная почта доходит?
А вообще RBL - это зло.
_______________________
From Siberia with Love!
Вроде на
Вроде на сервере нету RBL, и дело в том что у нас стоит "оператор", который формирует письма и их отправляет. И просто по мимо спама есть и наши письма
In: RCPT TO:<0031220069432201@operator.nalogtelecom.ru>
Out: 451 4.3.0 <0031220069432201@operator.nalogtelecom.ru>: Temporary lookup
Вот в чем беда
Ясно. Temporary lookup
Ясно. Temporary lookup failure появляется, когда postfix не успевает определять, есть ли указанный адрес в списке получателей. В данном случае у тебя MySQL, затыки с ней, она не успевает обслуживать все запросы, вследствие чего по таймауту postfix вынужден отвечать, что не может обслужить клиента.
Решение - оптимизация работы mysql, поглядеть сколько она принимает подключений одновременно, поправить в большую сторону в случае недостаточных значений.
_______________________
From Siberia with Love!
Есть у вас RBL. Не
Есть у вас RBL. Не спорь, я настраивал - мне лучше знать.
Та же проблема
Помогите пожалуйста!
Dec 29 18:25:49 mail postfix/smtpd[16552]: NOQUEUE: reject: RCPT from unknown[217.150.55.116]: 450 4.7.1 Client host rejected: cannot find your hostname, [217.150.55.116]; from=
покажи конфиг postfix
покажи конфиг postfix
Не грусти, товарищ! Всё хорошо, beautiful good!
Конфиг
Вот он to= helo=
[194.135.103.190]: from=
обрезал логи sed'ом
и смотрю кто еще не прошел, раз уж случилось.
Вот этот тоже не смог.
Надо опцию эту отключить в postfix?
Проблемы как я понимаю возникают у тех кто не настоил обратный адрес? Или что?
Что значит client unknown?
На поверхности лежит Смотри
На поверхности лежит
Смотри smtpd_sender_restrictions и smtpd_helo_restrictions
Вообще у тебя параноидальный почтовик, слишком много лишних проверок.
Не грусти, товарищ! Всё хорошо, beautiful good!
Вот это?
smtpd_sender_restrictions = reject_unknown_client
Я просто думаю, там ведь и ненужных тоже много. Сейчас все по RFC настроено кроме костыля IP-able
Добился того, что приходит 10% спама от всей почты.
Знаю что нужно ослабить, но где не пойму.
У нас новостное агентство, спама будет очень много если не параноить.
Тот кто настраивал сервер до меня сделал open relay и мы были в списке RBL - 2 дня потом ждал пока выкинут.
Еще с локалки один умудрился вирус поймать который слал кучу спама - такой хороший счет потом пришел за трафик.
Отсюда и паранойя.
А что лишнее - подскажите.
А то мне и посоветоваться негде.
Да, это. Нормально сделано. С
Да, это. Нормально сделано. С этого хоста половина планеты поди почты не принимает. Так что не волнуйся, админы настроят его сами.
Ну тогда вот еще
Слишком много у кого руки кривые.
Как их включить?
Меня смутило 1С - у них тоже криво?
Вроде посыпалось
От
дошло.
Спасибо за помощь.
А adm-ekburg.ru была администрация Ебурга.
Ндаа...
из своего опыта ;)
reject_unknown_client
Reject the request when the client IP address has no PTR (address to name) record in the DNS, or when the PTR record does not have a matching A (name to address) record. The unknown_client_reject_code parameter specifies the response code to rejected requests (default: 450).
Найдено в гугле с полпинка. Ззапрос был postfix reject_unknown_client. Причем в гугль я полез потому, что мне просто лень было www.postfix.org обшаривать в поисках мануала. Или опять логиниться на почтовый сервер, с которого я 5 мин назад вылез.
У меня эта опция отключена. Не потому, что я доверяю почтовым серверам без записи PTR, а потому, что успел убедиться, что днс может взглюкнуть, и _нужное_ письмо может режектнуться. Сейчас на таких клиентов без реверса стоит пачка проверок и грейлистинг на 5 минут в конце. После проверки SPF, правда. Пришел к выводу, что SPF скорее добро. У меня во всех "моих" доменах поставлено -all - все сильно умные спамеры, рассылающие моим адресам рекламу от их же имени, накрылись. Несколько десятков в день. Ну и там еще попадаются домены, у которых админы поумнее... Так что отсутствие реверса - не повод для мгновенного режекта, но повод для бооольших подозрений... А еще есть noptr.spamrats.com. Те, которые там листед - уж точно без реверса. Таких режектим.
Я не понял, имеется в виду отслеживание generic rDNS? Не знаю, как по-русски. Адресов с цифрами, которые по умолчанию назначаются в обратную зону? Так почему это костыль? Все бы так делали, сильно легче было бы. Это у меня самая первая проверка и самая главная - бОльшая часть спама рубится на ней. Проверяю и по client, и по helo - вторая проверка дает кучу срабатываний в том случае, если обратная зона разрешается "оттуда" и не разрешается "отсюда", а спамеры тупо кидают reverse name в helo - очень полезная проверка.
У меня рекламщики... В среднем 2000 писем в день, 95-97% спам. Тот, который рубится. Кое-что проходит, но очень мало уже.
www.dnsbl.com, openrbl.org - попроверяй свой ip там. Имеешь шанс узнать про него много нового ;)
Еще полезно прописать свой ip на www.dnswl.org.
А еще полезнейшая штука dnsstuff.fastnext.ru - проверить, чего в днс напахал, когда настраивал ;)
NAT, да? Открытый изнутри доступ к 25 порту во внешних сетях - ЗЛО. Юзерам что, локального SMTP мало? А вирусы обычно не догадываются, что надо на локальный слать - шарашат напрямую.
Да все элементарно решается путем вдумчивого чтения всяких доков на предмет "как другие делали" и комбинирования их методов.
Кстати, я сильно удивился - у тебя самые лучшие блэклисты закомментированы были! А оставался хлам всякий, неработающие даже. Ты их работоспособность-то проверяешь иногда?
Я так поставил:
psbl.surriel.com
bl.spamcop.net
zen.spamhaus.org
там еще есть, но эти главные. Но проверка блэклистов в самом конце, после моего персонального белого списка - есть несколько почтовых серверов, с которых почта должна к нам ходить вся и мгновенно...
Почитай вот это - мои любимые доки по теме...
http://jimsun.linxnet.com/misc/postfix-anti-UCE.txt
http://gabacho.reto.jp/en/anti-spam/anti-spam-system.html
А главное - самому надо понимать, чего постфикс делает по какой команде в конфе, и не бояться сконфигурить его так, как _тебе_ надо, а не как кто-то придумал для своих нужд...
?
Не вполне понятны условия бесплатного использования:
Под вторым пунктом понимается лимит писем, полученных сервером; а под третьим - лимит попыток отправления почты?
Ещё (с учётом того, что спаммеры имею свойство периодически активизировать свою активность (раза в 2-2.5 - легко) подозрительным выглядит
.
:wq
--
Live free or die
условия там без подвоха...
Я так понял, с первым пунктом все понятно ?-)
Как они второй пункт собираются отслеживать - лично мне неясно. Это НЕ лимит полученных. Это сумма установленных на ваш SMTP-сервер соединений и установленных вашим SMTP-сервером соединений. За день. Как-то отследить это можно только косвенно.
Третий пункт считается легко. Это просто количество запросов с вашего IP на ip.add.rr.ess.zen.spamhaus.org. В смысле, вообще на *.spamhaus.org, там же несколько блэклистов...
Все просто же. Не более 300000 запросов в день к DNSBL, или они ваш IP забанят.
У меня, естественно, 1 SMTP-соединение == 1 запрос (к одному блэклисту). Если у кого-то больше - ...ну, может, ему надо, чтобы sbl.spamhaus.org и pbl.spamhaus.org запрашивались независимо? Мне не надо.
У вас реально может быть за день 300000 SMTP-соединений?
У меня 1-2-3 тысячи в день. 3000 - это и есть активизация спамеров ;)
30000 - это уже будет не активизация, а флуд-атака 8)
А если ваш почтовый сервер обрабатывает >300000 ...ну, пусть писем в день... То вы крупный почтовый провайдер 8) (что мне сомнительно). Такие организации могут не пожалеть немного денег, заключить договор с тем же spamhaus и делать, например, раз в день трансфер их зоны. Или не раз в день, не знаю, как часто это нужно. В общем, копировать весь блэклист на локальный сервер и отвечать на свои запросы, используя свои же мощности.
.
Основополагающий принцип "надо делиться" :)
Thanks!
Мне это не грозит :)
Навечно или как?
Встречный вопрос: Вы не предпринимали никаких мер по ограничению нагрузки?
Безотносительно спам-фильтров.
Думается мне, Вы недостаточно представляете себе практику средних организацией (не промышляющих продажей почтовых аккаунтов).
За вчера sma показывает: 3146 входящих писем (включая пропущенный спам) и 312739 reject'ов.
Так выпьем за то, чтобы наши желания (представления о справедливости) совпадали с нашими возможностями.
С нашей родной бухгалтерией такой фокус мягко говоря маловероятен... :(
:wq
--
Live free or die
А поточнее
312739 reject'ов = все reject'ы, или фильтры RBL или что?
В каком порядке выполняются проверки на сервере?
есть smtpd_helo_restrictions, smtpd_recipient_restrictions, smtpd_sender_restrictions.
В последнем сначала
И уже только потом zen. Правильно?
smtpd_helo_restrictions выполняются также перед zen. Про smtpd_recipient_restrictions я не уверен.
Но факт, что до zen не все reject'ы доходят.
Как вариант точного подсчета можно поставить spamcop, завернуть трафик на сквид (другой счетчик) и посчитать количество к нему за сутки в среднем, скажем, за неделю.
Тогда будете знать точно.
З.Ы. Макколо в ноябре прибили, но это ненадолго.
Уточняю
Да.
Это - общее количество reject'ов.
Неправильно.
У меня не Postfix.
Логично.
В моём случае zen режет чуть больше половины.
Это хто? :)
:wq
--
Live free or die
А ещше точнее
Получается, что после всех проверок, выполненных на Вашем сервере, остается 150 тысяч писем, из которых 3 тысячи принимаете, остальные оказываются в списке zen. Это 2% от общего числа.
Вы не думаете, что это слишком мало? Может проверок мало?
Или хотите всю работу на zen переложить :)
В моем случае получается около 12%, а до zen доходит 14%, вместо половины.
Это 40% от всех rejected за день.
Теперь покажу 2-х клиентов.
Первый - IP-able
Второй - блокирован zen
Допустим IP-able является не адекватной проверкой и мы можем отрубить "правильного" клиента.
Вопрос: кого мы тогда отрубим?
Ответ: это сервер, который запускается на компьютере, который подключен к интернету по карте оплаты (анонимно) где-то в Бразилии. При этом как только адрес динамически получен - изменяются настройки сервера, чтобы он работал именно на нем. Плюс к этому у провайдера открыт 25 порт.
Представить такую ситуацию в России, чтобы кто-то поднял почтовый сервер, при этом у организации нет ни постоянного IP, ни своего домена (а куда тогда приходит почта-то?) тяжело. Если ставят почтовый сервер, то есть и сайт и запись в ДНС и свой IP даже на ADSL.
Убедительно?
А пока это писал, подумал - чем отличаются эти клиенты - костыля IP-able и zen.
В zen пришел адрес, где из IP только 3 числа + adsl.
Почему бы таких не отрубать в костыле?
Вот запись:
Одна строка regexp'а и работы на 40% меньше. На стадии helo. Без передачи данных.
Вы не пробовали логи посмотреть, что там пишут клиенты zen в поле helo?
хотя бы grep вот эта строчка или adsl?
Это такой "Американский хостинг-провайдер McColo"
Писали в РБК и по ТВ показывали. А меня юзеры спрашивали - ты что-то сделал? спама ведь стало меньше!
http://www.lenta.ru/news/2008/11/13/mccolo/
Продолжая вышесказанное,
Продолжая вышесказанное, проанализировал helo тех клиентов, которые рубит zen.
И добавил regexp. Теперь стало так.
Первый отрубает mbl-109-38-63.dsl.net.pk - 3 числа через точку-тире, точно динамический.
Второй C083H179.home03.cable.mecha.jp - домен 5-го уровня - ну не верю, что сервер такой бывает.
Третий MS-100-11.dyn-ip-II.SkyLink.RU - количество точек-тире 5 и больше.
Четвертый-пятый сработал всего 3 раза, может он и не нужен. Общая практика наименования адресов, выдаваемых динамически провайдерами.
Последний меня просто достал. Открывает сразу 20 соединений на user[1-20]@domain.ru, я так понимаю запросы не кешируются и к zen идет обращение каждый раз.
Это отрубаются клиенты, которые НЕ являются серверами. Они просто соединяются SMTP-сессия. И там пишут. Это НЕ сервера.
А всякие spamrats и dyna RBL'ы - Вы уверены, что там не стоит regexp? :)
После такой проверки на helo запросов к zen стало еще в 2-3 раза меньше, точно я не считал пока, пусть поработает.
И еще надо такую же проверку на адрес сделать, не helo, есть умники, которые туда пишут helo=google.com или helo=SomeDomain.com, мне последний понравился :) А оказываются host17-63-dynamic.180-80-r.retail.telecomitalia.it
Если думать как спамер хочет Вас обмануть, легче его победить.
=)
Нет. Мне вообще незачем. Больше 10 соединений в минуту не бывает никогда. Нет смысла заморачиваться.
Неплохо. Но 90% режектов ТОЧНО можно сделать, даже не используя блэклисты. Просто по client & helo, которых никогда не бывает у "приличных" почтовых серверов.
Так что на разумно настроенном SMTP-сервере вы вполне уложитесь в 30000 запросов в день.
Ну хорошо, возьмем с запасом в 3 раза - в 90000 уж точно 8)
Really? ;)
Просто, если уж так понадобится трансфер зоны - надо подготовиться заранее.
Списаться с мэйнтэйнерами листа, узнать цену вопроса, способы оплаты...
_Написать_ бумажку бухгалтерам, что для рабочих нужд (таких-то) необходима ежемесячная оплата (того-то) (в сумме). Желательно оставить копию себе.
Другими способами проблему решать не пробовать ;)
И ждать.
И когда Компетентное Лицо у вас спросит "А какого %$# у меня в почте такой %$#^%???" - ответить: "Потому что БУХГАЛТЕРИЯ НЕ ОПЛАЧИВАЕТ!!! 8) "
И оплатят сразу все, на что у вас еще дополнительно в тот момент фантазии хватит ;)
Самый тонкий момент - держать все подготовленным, готовым ко включению в любой момент и с истребленными глюками 8) Потому что дальше уже ваша ответственность...
.
Не бывает, не означает не может быть :)
Подтверждаю, можно.
Really :(
Если бы так оно было.
Тут у нас давеча (месяца два назад) высокое руководство натягивали за срыв графика ...
А воз и ныне там.
Периодически бывают и более весёлые вещи.
:wq
--
Live free or die
Зря ты такой порядок
Зря ты такой порядок сделал
Надо думать что делаешь, а не писать то, что советуют.
Попробуй сделать grep -c на каждый.
Тот где больше всего срабатываний должен быть вверху. Это логично. После того, как переместишь, остальные сильно уменьшатся,
а некоторые станут равным нулю :)
Это проверено на практике. Хватает 2-х :
Почему так лучше? меньше обращений и проверок по сети.
А костыль IP-able - это отрубает тех клиентов, которые в helo кладут свой ip адрес. Это не соотвествует RFC 821, но работает у меня нормально. От таких серверов я почту не получаю.
Зато попадаются очень умные админы из банка Агропромкредит, которые на своем Microsoft Exchange пишут что они CHELAPK.ORG (заглавными буквами :)) а сами mail.chel.apkbank.ru
И говорят что почта от них всем доходит и руки кривые не у них, хотя этот домен они придумали CHELAPK.ORG и его не существует.
Какая разница кто. postfix не читает контент, режет только тупые сервера и спамеров, если столько спама значит мало режешь.
Поставь костыль на пробу на один день - увидишь как меньше спама стало. Я тут где-то писал как его настроить http://www.gentoo.ru/node/13185#comment-91216 там и статистика сервера есть
З.Ы. Мой конфиг пониже http://www.gentoo.ru/node/9827#comment-91585
а первый видно сделан копи-паст dnsbl
Так задумано ;)
Вот я подумал и сделал так, как мне нравится.
А что, второй не включен в первый? Мне кажется, pbl.spamhaus.org должен охватывать и сорбсовский dialup list, и много больше...
А мне нравится так. Я разгружаю на 2/3 сверхпопулярный spamhaus за счет двух хороших, но менее нагруженных блэклистов. И в логах у меня более-менее равномерно распределены попадания в каждый. Что означает дополнительную фишку: если какой-то блэклист перестает отвечать, я это сразу вижу и знаю, что надо искать новый хорошо работающий ;)
Двух НЕ ХВАТАЕТ. Т.к., скажем, одинокий spamhaus ПРОПУСКАЕТ часть спама. Немного, наверное, 5%. А если по какой-то причине он на время ложится - система останется почти незащищенной (чего там этот диалап лист, он далеко не все охватывает, стоял он у меня... выкинул - слишком малый процент срабатываний), и спам ПОВАЛИТ 8)
А так их у меня вроде 5, уже не помню точно, а лезть на сервер сейчас лень. Еще noptr.spamrats.com и dyna.spamrats.com в конце. Между reject_unknown_client и использованием noptr.spamrats.com есть существенная разница. Надо объяснять, какая ?-)
А, ну это у меня сразу было сделано. И тоже не такой уж костыль, против туповатых спамботов нормально. Почему-то не все провайдеры отвечают на reverse DNS request. Не знаю, почему. А рубить unknown client и хотел бы, да не могу, бывают моменты, когда нужные письма рубиться начинают...
Жалкие источники доходов Билла =) Я обычно пытаюсь ОДИН раз объяснить админу, в чем он не прав. Потому что сам далеко не все знаю. Если не хочет у меня учиться - мне никто и не платит за его обучение ;) от него почта ходить ко мне просто не будет. Ну а на случай, когда начальство просит ;) , сделан локальный уайтлист... в который, впрочем, так и так прописаны все ОЧЕНЬ нужные корреспонденты. Во избежание. В блэклисты, бывает, попадают и абсолютно не подозревающие об этом люди... (NAT запросов на 25 порт во внешний мир - ЗЛО!)
Да давно уже так и стоит. Плюс еще куча проверок на характерные для "generic rDNS" имен строки - нету общего стандарта, каждый провайдер по-своему воротит.
Кстати, у тебя в конфиге, по-моему, не хватает smtpd_delay_reject = yes. По вкусу, конечно - этот фокус режектит письмо не сразу, скажем, после проверки smtpd_client_restrictions, даже если по условиям проверки клиент почему-то не проходит, а после приема rcpt to: . Зачем надо - очень удобно потом видеть в логе не просто "к нам тут пришел какой-то клиент с айпи такого-то, айпи нам не понравилось и клиент был кикнут" - будет записано его helo, mail from и rcpt to. Очень помогает при разборках "мне тут некто письмо прислать не может, почему?"
Да и проверки все у меня собраны в этапе smtpd_recipient_restrictions. Так можно. Просто чтобы не писать permit_mynetworks и permit_sasl_authenticated на каждой стадии проверок. Единообразнее и безглючнее получилось.
А reject_unknown_client пришлось убрать и заменить его кучей подпорок - noptr.spamrats.com, грейлистингом... Слишком строгое ограничение оказалось. Впрочем, можно было сделать его не reject, а try again later. Но мне надо было, чтобы письма от определенных адресов приходили ВСЕ и СРАЗУ, а уайтлисты я уже потом нормально сделал.
НУ НУ
Нет, не включен. Здесь мы тоже про это говорили - http://www.gentoo.ru/node/13258#comment-94536.
Там есть статистика моего сервера. Срабатывания небольшие, но есть.
Ну хорошо, что проявляется такая забота о сверхпопулярном spamhaus, но по моему 3000 запросов в день для него не существенно. По поводу не хватает и пропускает - хорошо бы посмотреть ВАШУ статистику срабатываний. Например, noptr.spamrats.com - сколько в день дает? Есть ли смысл ее ставить ради 5-10 срабатываний от клиентов, письма которых потом и так отрежутся spamassassin'ом? Тем более, если она стоит после zen'а.
Объяснять не надо, reject_unknown_client мне тоже пришлось отказаться.
А вот здесь хотелось бы поподробней. Я в этой теме начал писать с того, что попробовал сделать whitelist, но у меня не получилось. И пример выше привел -
есть сервер mail.domain.ru, а в helo пишет domain.org, которого нет. Как его пропустить whitelist?
Второй пример - mail.domain.ru, в helo пишет domain.ru. domain.ru есть, а mail.domain.ru - нет записи DNS.
Как их пропускать?
У меня в логе пишет не только ip -
Вот так примерно. Поэтому не актуально.
грейлистинг - подходит не всем. вторая попытка соединения будет от 5 до 40 минут. Причем 40 минут не редкость. Для новостей это долго. И потом я писал уже. После проверок postfix остается в основном нормальные сервера ISP, или неправильно настроенные или к которым есть пароль и т.д., но с них отправляется спам. по релеям - RU XX, то есть RU - нормальный почтовый сервер, XX - внутренний адрес. 2-3 релея это не динамические ip, которые режутся. И сдается мне грейлистинг им не поможет.
И опять же вопрос - какая статистика? Ну сделали Вы это - какой результат?
Напишите как грамотно настроить whitelist, если конечно, Вам не "лень лезть на сервер" :)
Я на сегодня не принимаю почту от 5 серверов, с которых должно.
Насчет падения zen - это бывает редко, последний раз в 2007 году, ДДОС атака. 1 раз. Дополнительная страховка это хорошо, но мне будет проще изменить когда случится.
Тогда еще вопрос - кто какие RBL использует? Кроме zen. И что они дают?
:)
Эммм... Стоят у меня блэклисты в конце всех проверок, в таком порядке:
(много проверок скипнуто)
Сейчас посмотрел статистику по текущему логу, 24-30 января вошло...
Client host rejected: SPAM I don't accept mail from "generic" rDNS names (total: 1078)
Helo command rejected: Host not found (total: 1263)
Helo command rejected: Invalid name (total: 40)
Helo command rejected: need fully-qualified hostname (total: 1812)
Helo command rejected: SPAM I don't accept mail from "generic" rDNS names (total: 589)
Helo command rejected: you are not me (total: 338)
Sender address rejected: Domain not found (total: 6)
Recipient address rejected: Message rejected due to (total: 258)
Relay access denied (total: 46)
blocked using psbl.surriel.com (total: 205)
blocked using bl.spamcop.net (total: 167)
blocked using noptr.spamrats.com (total: 114)
blocked using dyna.spamrats.com (total: 27)
blocked using karmasphere.email-sender.dnsbl.karmasphere.com (total: 180)
blocked using zen.spamhaus.org (total: 50)
Client host rejected: Greylisted for 5 minutes (total: 31)
Кстати, обнаружил, что спамеры в последнее время приутихли как-то: обычно 2000 писем в день, а за этот период и до 1000 всего-то пару раз дотягивало...
В общем, хорошо видно, что основную нагрузку берут на себя регэкспы проверки client & helo. Причем, как это ни смешно, проверять helo даже важнее 8)
Малопонятное Message rejected due to... - это policyd-spf. Осмысленная часть обрезана по двоеточию в логе. По-хорошему, надо бы поправить это место в pflogsumm и отослать разработчикам патч... Но меня лень замучила =)
Но, в общем, где-то так 750 соединений проскользнули через проверки client & helo и были зарублены уже блэклистами... Это при том, что у меня не просто проверка client & helo на "похожие на ip-адрес строки", там много всяких проверок на специфичные для некоторых странных провайдеров имена...
А сколько конкретно по каждому блэклисту - смотрте сами... Если хочется посмотреть на реальную статистику по проценту детектированию спама и ложным срабатываниям - посмотрите на stats.dnsbl.com. Когда мне надоел мой старый набор блэклистов, я шарил по Сети в поисках независимых тестирований блэклистов - нашел www.dnsbl.com, в итоге мой текущий набор выбран с использованием информации оттуда.
Кстати, проскальзывание бывает в основном потому, что postfix считает, что если reverse name есть, а разрешить его снова в IP не удается - то это имя неправильное, и такой клиент у него проходит как unknown[12.34.56.78]. Зараза этот postfix все-таки... Обходится этот недостаток исключительно через внешний policy daemon :( Готового решения я не нашел. Опять-таки по-хорошему надо самому писать... Пока обхожусь проверками helo.
Вполне элементарно. Сейчас мне надо бежать на другую работу, оттуда попробую подробнее написать. Вкратце - свел все проверки в smtpd_recipient_restrictions и почти в самом начале поставил проверку check_client_access regexp:/etc/postfix/client_whitelist.pcre. Это по вкусу, конечно, никто не мешает и hash, мне просто так нравится. Возвращать OK оттуда - вполне достаточно для игнорирования всех проверок, которые ниже. По пути наступил на грабли - client name, которое postfix проверяет в этом листе, выглядит не как somehost.somedomain, а как somehost.somedomain[so.me.i.p]. Было очень неприятно, когда ВООБЩЕ ВСЕХ, не прописанных в уайтлисте, начало рубить...
В общем, вечером конфиги покажу...
.
Кстати, sendmail по всей видимости работает аналогично.
Повод для помедитировать на предмет ПЛВ ("почему").
:wq
--
Live free or die
unknown
Потому что считается, что для такого имени (полученного через обратную зону и НЕ разрешаемого в тот же IP) высока вероятность подделки.
Ну да, скажем, если с sshd каким-нибудь пытаться соединиться, который проверяет _имя_, с которого к нему подключаются - тут да...
Но все-таки это совсем другое дело. Тут же не разрешение доступа, а совсем даже наоборот - запрещение доступа, исходя из определенных характерных строк в имени клиента...
А когда эту фичу в postfix вставляли - миллионов тупых ботов по всему миру, рассылающих спас с ip простых юзеров, просто ЕЩЕ НЕ БЫЛО...
Но реализовано, как реализовано, и переделывать никто не будет :( К счастью, policy daemon получает полный набор параметров - и ip клиента, и имя, и данные конверта... и может их проверять сам тем способом, что ему нравится.
Вот только готового решения я не нашел, увы :( Написать бы :(
конфиг
Есть. Обкуренного убийцы у меня не стоит. Я очень уж не люблю такие большие и неаккуратные системы. У меня даже dspam не прижился, хотя он гораздо поуже по функциям, меньше и, соответственно, аккуратнее. Обозримее. Фильтрация спама проводится исключительно режектами. Моим сотрудникам так жить проще, удобнее, и по итогам я с ними согласен ;) Спама пробивается в разы меньше, чем деловых писем. А письмо по делу никогда не попадет "случайно" в категорию спама, и это приятно 8)
Более чем согласен. Когда я в первый раз экспериментально включил postgrey в стандартной конфигурации "для всех", ругаться ко мне прибежали уже минут через 20 8) Пришлось срочно выключать и потом долго думать, как же правильно...
Но сейчас он у меня работает "оружием последнего шанса". И натравливается исключительно на тех клиентов, у которых client name == unknown[xx.xx.xx.xx] ;) Их много очень из-за специфики postfix'а, "рубить всех" или "пропускать всех" является неправильным решением - уже сталкивался со странной проблемой, когда в течение где-то чуть меньше суток обратная зона не функционировала как раз там, где мне очень надо было сверять имя клиента... Так что тем, кто unknown, не reject, и даже не try again later до восстановления обратной зоны - мягко greylisted for 5 minutes. Те, кто действительно SMTP-сервер, зайдут еще раз. После первого прохождения письма адрес такого странного сервера автоматом заносится в уайтлист postgrey, и если в течение (вроде) месяца оттуда придет еще письмо - оно будет пропущено без задержки.
Те, кто не SMTP, а просто боты, неплохо рубятся такой схемой. А SMTP-сервер, через который рассылается спам, обычно четко палится на более ранних этапах блюклистами... Он же неподвижный ;) IP постоянное. Это боты постоянно на новых IP заводятся, их в блэклисты заносить даже автоматы не сразу успевают, несколько часов проходит, пока попадаются... Грейлист в этом месте - это средство от ботов прежде всего. Ботов, client name которых postfix определяет как unknown.
Выше написал. Это именно не от SMTP-серверов, а от ботов. SMTP рубятся блэклистами. А если попадутся какие-нибудь типа smtp.orange.fr, который почему-то никто не хотел блэклистить, так это я и руками могу в локальный блэклист. Уже несколько прецедентов есть.
Сейчас конфиг процитирую:
Кое-что тут лишнее, check_recipient_access, скажем, пустой висит, давно убрать надо было.
Белый список, понятно, вот эта строка:
Обратите внимание: все проверки делаются в один прием в smtpd_recipient_restrictions. У вас не так. Там все дело в том, что OK в проверке в одном из этапов - это игнорирование оставшихся проверок только до конца этапа! Если вы сделали whitelist в smtpd_client_restrictions, то любая проверка в smtpd_{helo,sender,recipient}_restrictions может вашего клиента обломать! А здесь все собрано в один этап - и срабатывание белого списка почти в начале - до него идут только действительно критичные для дальнейшей судьбы письма проверки! - гарантирует, что письмо будет принято. Это единственный этап проверок, других просто нет. Один раз OK - и письмо гарантированно принято.
Кусочек client_whitelist.pcre:
Зючки в конце - это не понадобилось, в принципе, они для того, чтобы можно было и client name, и helo одним регэкспом проверять.
Основная строчка в client_greylist.pcre:
"Все, для кого двойное определение имени хоста не прошло и кого не зарубили до этого места - в задержку!"
Собственно, все...
Большое спасибо, что
Большое спасибо, что просветил с whitelist.
Надо так и сделать.
Правда, я не уверен что смогу сразу все сложить в одну кучу, попробую прописать в 2-х местах.
smtpd_recipient_restrictions и smtpd_sender_restrictions.
Я делал базу и postmap, писал туда IP. Может он полностью не соотвествовал, раз был в скобках mail.xxx.ru[IP]
Попробую PCRE.
И какой адрес надо забивать, который с IP или который в helo? Или оба надо разрешать?
Увмдел, что у меня есть
reject_unauth_pipelining - похоже он не нужен мне.
reject_unknown_hostname - устарел.
А у Вас стоит
reject_unlisted_recipient
Включен по умолчанию.
Похоже тоже не нужен.
smtpd_delay_reject = yes
Кажется, Вы про это писали. По умолчанию он включен. Означает, что сервер ждет RCPT TO, перед всеми проверками.
Здесь есть tradeoff. Я вот поставил sleep 5, чтобы поспать 5 секунд, а оказывается, это не работает при smtpd_delay_reject = yes.
В документации postconf надо сделать так:
Поставлю-ка я 5 секунд, а может и 10.
Правда reject_unauth_pipelining не работает если протокол ESMTP (EHLO вместо HELO), а обычно так и есть.
Что лучше? Или это значит, что его надо просто прописать в smtpd_data_restrictions? Я что-то перевод невнятно понял.
dul-checks которые в интернете слишком большие и непонятно - нужны или нет.
Чуть выше я написал свои - составил по обращениям к zen - самые частые 60-70%.
Всего 5 правил.
http://www.gentoo.ru/node/9827#comment-94998
И на такой greylist как у Вас я пожалуй тоже соглашусь :)
Насчет zen я все-таки его оставил первым. У Вас
чтобы принять решение об отказе
Нужно 205 + 167х2 + 114х3 + 27х4 + 180х5 + 50х6 = 2189 запросов
Для 205 + 167 + 114 + 27 + 180 + 50 = 743 адресов.
то есть, в среднем 3 запроса.
Плюс 6 запросов на КАЖДОЕ принятое письмо.
Если zen первый и остальные ничего не дают, то, пусть для страховки, можно оставить еще один, самый большой.
Если же дают, то опять порядок. При 10 отказах будет 700 + 10х(2+3+4+5+6) = 900 запросов. Все равно в два раза меньше.
Запросов ТОЧНО будет меньше. Если zen не будет доступен, то опять же неважно какой он по счету в проверке.
каждый сам решает. Dspam надо много учить и он действительно узок.
После небольшой настройки spamassassin у меня спам перестал приходить пользователям.
Из 500 в день - 100 внутренних, 50 фильтруется убийцей как спам, 20 спама доходит.
то есть 20/400 = 5%. или для моей системы 1 письмо на 1 пользователя в день. Это не в разы меньше, а почти нет.
Правда вот последнее время с сайта одноклассники pyzor рубит все письма.
А так ложные срабатывания бывают - 1 письмо в день. Тут уж приходится смотреть, не спорю.
Несколько раз рубились письма с серверов, которые недавно хакнули - не проходили razor, dcc, pyzor.
Опять же есть whitelist.
Если отключить байес - то
никогда не случится. Только по причинам выше. Но можно откючить и их :)
Опять же понизив очки для тестов, или повысив порог срабатывания, можно свести на ноль.
У меня там стоит проверка на страны, которые пролезли по блэклистам, но до меня дошли и 1 (!!!) свой тест.
Если интересно посмотрите - http://www.gentoo.ru/node/13632#comment-94724
:)
Проще говоря - делаете из своих stages одну большую кучу, сложив их стопкой в _указанном_ порядке. С smtpd_delay_reject будет работать почти точно так же, как и было. Потом можно будет из результата выкинуть лишнее, оптимизировать...
Ну, у меня контролируется только client name постфикса, та его часть, которая до IP в квадратных скобках. Может быть, это не совсем правильно. У кого-то там пропадала обратная зона, и те письма шли через всю цепочку проверок и блокировались каким-то из блэклистов. После этого случая хотел сделать два уайтлиста один за другим - один проверяет client name, другой helo. Причем используется в них один и тот же файл 8) Но больше таких случаев не было, и второй уайтлист я так и не прописал.
А ip в уайтлисте я прописывать не хочу как-то - мне кажется, что в случае смены ip я буду долго и мучительно вылавливать, где же проблема с почтой... Незапоминаемые они, в отличие от DNS-имен...
Там имя просто сменилось, reject_unknown_helo_hostname, вы же про это? Мне очень нравится, целая куча срабатываний на спамеров и буквально на несколько бестолковых админов, которые сами себе злобные буратины...
Я просто хотел, чтобы unlisted recipients отбивались в определенном месте, после всех проверок на непохожесть на спамера ;) Ибо нефиг спамерам видеть, какие у меня адреса в доменах уже отсутствуют. Вот бы еще ловушки на эти адреса повесить...
Тут сложный вопрос. У меня оно замечательно работает и в smtpd_recipient_restrictions. Просто случаи срабатывания этой фишки достаточно редки. Мне кажется, что авторам доки показалось неправильным, что postfix несколько команд глотает-глотает в режиме pipelining, а после rcpt to: резко обламывает отправителя. Но высока вероятность того, что тут я не прав...
Ну да, абсолютно логично. Реально там не так много вариантов... Но попадаются очень "самобытные" провайдеры, которые формируют generic rDNS name вообще ни на что не похожим образом. veloxzone.com.br, например. Для этих приходится держать отдельное персональное правило. Хотя вообще-то мне надо просто заблокировать нафиг всю Бразилию, Китай, Японию... Корею там и еще кого-нибудь придумать... Есть такие специфические блэклисты - блокировка IP по принадлежности какой-нибудь стране.
Логично ;) Действительно, можно его и в первые ряды переставить. Просто остальные убирать не надо - мне абсолютно не нравится, когда меня вызванивают на работу из-за того, что спама много вдруг полезло ;)
спасибо за подсказку
Прежде всего спасибо за подсказку - сделал конфиг почти как у Вас.
С этим я разобрался. По правилу отправляется сначала name, потом IP, потом подсети.
Если в правильном месте поставить whitelist, то
check_client_access отправит client name, а
check_helo_access - helo
Теперь про проверку нехороших.
helo и client name проверять в одном файле проблематично.
Предлагаю в dul_client.pcre
написать вот так http://www.postfix.org/pcre_table.5.html
в pattern засунуть проверку IP (нет букв) pattern=[a-z]
а внутрь вставить те же самые проверки. Правильно?
В одном файле тяжело проверить, client name приходит не name[IP], а сначала client, потом IP. Поэтому "[" там нет.
Если резать моим способом - 3 числа через точку-тире, самое убийственное правило, то все зарежутся.
Да и 4 числа зарежутся.
Еще хочу сказать, что мне пришлось ослабить свои regexp - сработала проверка на домен 5-го уровня!!!
easy.hq.icb.chel.su - это Челиндбанк, нормальный почтовый сервер.
Оставил проверку на 5 точек-тире. Если поставят тире, то опять обломятся. Или захотят сделать домен 6 уровня :)
Теперь нагрузка на zen немного добавится.
А какие ловушки? Свою базу плохих адресов вести?
И как бороться когда пишут письмо от тебя тебе?
Я хочу таких проверить авторизованы или нет. У меня все кроме localhost авторизуются.
Если IP не мой, авторизации нет, mail from=я, то пошел на...
Раньше таких много было, теперь меньше.
Здесь я кажется разобрался с переводом.
Если протокол ESMTP - не поленился, посчитал таких 95% - то это не работает.
Если smtpd_delay_reject=yes, то также не работает вплоть до smtpd_recipient_restrictions, где Вы его и поставили.
Перечислять всех самобытных мне лень. Работать будет только для них, соответственно, придется эти правила обновлять, старые удалять, короче следить за ними. Хочу сделать один раз и забыть.
Лучше все-таки сделать policy типа postgrey и spf. На перле проверять вхождение по стране и по двум спискам, которые я указал. А там уже решать откидывать или нет.
А что у Вас за идея насчет client=unknown ?
Смотрите ниже http://www.gentoo.ru/node/9827#comment-95167
там мой отчет о проделанной работе :)
Выкинул 3 Ваших RBL
.
Типа spam trap address.
Например sales@mydomain.ru (если такового у тебя нет).
Попытка отправления письма на этот адрес - в течение [например] 8 часов блокировка всей корреспонденции с IP-адреса.
Умеют ли такое почтовые сервера - не знаю.
Фича заявлена в assp.
Приведу отмеченный у меня список типовых (среднестатистически вероятно-существующих) адресов электронной почты, которые любят спаммеры (составлен по мотивам чтения логов):
:wq
--
Live free or die
Прокси ставить не
Прокси ставить не хочу.
Прочитал, что policyd это тоже умеет, правда он ~.
Можно выдрать оттуда модуль Spamtrap или включить только его, убрав остальные.
Работает как policy daemon.
Логи тоже надо посмотреть, есть у меня один адрес - я его в каталоги для регистрации сайтов пихал через 1ps.ru
Спама валит много, хотя выключил месяца 2 назад.
У меня есть клиенты, которые внаглую адреса перебирают - по 300-400 штук.
Каждый раз идет запрос к RBL.
disable_vrfy_command = yes поставил, а так я их сразу отрублю.
Я вот еще хотел спросить: проверка RBL идет через ДНС:
у меня стоит bind, в настройках - forwarders.
Запрос кэшируется или нет?
кэш
Теоретически да, а практически проверить не могу - надо целую кухню ставить для удаленного управления биндом... с помощью чего-то там оттуда можно было текущее содержимое кэша посмотреть... Но мне кажется, что кэшируется. Такое вот ощущение, когда dig'ом пользуешься...
SPF
Сразу извиняюсь - как-то я на форум спорадически хожу...
Увы, ничего не понял :( Что сначала, что потом?
Я разбирался не по описанию, а "по живому"... Но мне кажется, что check_client_access _один_раз_ проверяет регэкспами такую строку: "smtp.server.domain.ru[12.34.56.78]" (это постфикс сам так клеит, если удается проверить reverse DNS name, если обратная зона не прописана или имя оттуда разрешается в другой ip, то пишет unknown), а check_helo_access такую: "smtp.server.domain.ru" (ну, это если админ нормально сервер настроил, конечно... что в хело написано, то и будет проверяться)
Но почему? У меня же проверяются. Просто надо учитывать, что в одном случае в конце ip в квадратных скобках, а в другом - сам postfix ip в скобках дописывать не станет, но по стандарту почтовый сервер может сам представляться своим ip в квадратных скобках... и такие почтовые сервера, насколько я по статистике вижу, обычно просто спамботы на самом деле, как раз рубить надо...
Можно же так написать:
/^unknown\[([0-9]{1,3}\.){3}[0-9]{1,3}\]$/ check_greylist
/^\[([0-9]{1,3}\.){3}[0-9]{1,3}\]$/ REJECT It's not RFC compliant, but I WON'T accept mail from nameless IP!
Первое рассчитано на срабатывание от client name, а второе - helo...
8) Странно. Это точно? А почему у меня так, как я вверху написал?
Хорошее правило.
Я себе сделал чуть измененное:
/([0-9]{1,3}(\.|-)){4}/ 553 SPAM I don't accept mail from "generic" rDNS names
Такое не зарезает - после 4-го числа будет "]", а не точка или тире.
Но можно просто проверять, что символ перед первой цифрой не "[".
Элементарно оказалось. См. www.openspf.org. Я попросил добавить во все dns-записи наших почтовых доменов строку наподобие:
comra.org.ua. 7200 IN TXT "v=spf1 +mx -all"
Ну и policyd-spf в цепочку проверок вставил. Потом еще подстроил его, чтобы он для определенных доменов типа mail.ru, gmail.com итп на softfail постфиксу говорил REJECT. Так качественнее получается, а то mail.ru ~all, gmail.com ?all... неправильно это. Мои домены отправляют почту только через мой smtp. Точка. Снаружи он доступен для аутентифицировавшихся юзеров, конечно.
Вообще SPF мне очень понравился, надо его в народ продвигать, в России особенно... Чем больше доменов с SPF - тем меньше будет спама от ботов...
Да, точно
Да это совершенно точно.
Когда client_name != unknown, то в client_access.pcre прилетает сначала client_name, потом client_address=IP
Это совершенно точно и соответствует докуметации http://www.postfix.org/access.5.html (раздел HOST NAME/ADDRESS PATTERNS)
Поэтому Ваше второе правило никогда не сработает. Или срабатывает - сколько раз?
В случае с helo_access IP не прилетает.
Если бы это было не так, то мой client.pcre (см. ниже) рубил бы всех и я бы почту вообще не получал.
Туда НЕ приходит client_name[ip.add.re.ss] - сначала client_name, потом ip.add.re.ss. Если указано в настройках - то еще и поддомены и подсети.
А вот в случае с unknown, действительно приходит unknown[ip.add.re.ss]
Я еще написал скрипт простой на перле (см. ниже), в функцию приходят все эти значения. Что вот только еще придумать пока не знаю. Пока по geoip их отрубаю.
Сделал client.pcre: if
Сделал client.pcre:
Почему-то когда unknown туда прилетает именно unknown[IP] ?!!
Для всех остальных сначала client name, потом IP.
Еще поменял порядок
я так понимаю стоят вначале чтобы пользователь не мог письмо отправить в никуда.
Для этого, если отправлять рассылку, нужно убирать из нее все дохлые адреса, что для пользователя оказалось очень сложно.
А без этого, что происходит с письмом - bounced?
При записи client.pcre
При записи client.pcre допустил опечатку, котораz есть и в helo.pcre
Третье правило выглядит так:
Изменения с (^d)|(^u)
Почитал ссылку которую Вы
Почитал ссылку которую Вы дали по статистике RBL.
Поставил на пробу самые эффективные, без ложных срабатыванй:
Порядок пока такой. Взял на основе
http://stats.dnsbl.com/ и http://www.sdsc.edu/~jeff/spam/cbc.html
l2.apews.org дает ложные срабатывания,
t1.dnsbl.net.au платный,
а для использования b.barracudacentral.org нужна регистрация.
Отзывы есть, что он лучше zen, так что я зарегистрировался.
Про bl.spamcop.net пишут, что он дополняет zen на 3,8%.
Вот мы и проверим. Мне именно нужны дополнения к zen, те, что перекрываются покажут ноль.
Здесь статистика по странам-спамерам - http://www.barracudacentral.org/data/spam
Россия на 3-м месте.
Штаты и Россию я не могу выкинуть, а вот остальные страны спокойно режутся "обкуренным убийцей" -
Бразилия, Турция, Нидерланды, Китай, Польша = 20% - пятая часть!!!
Остается еще вопрос с динамическими адресами - у Вас аж два списка.
Проверю пока эти, выберу какие нужно, потом посмотрим.
И потом исправленный dul_checks у меня хорошо работает :)
Вот первая статистика:mail
Вот первая статистика:
Как и ожидалось баракуда вырвалась вперед.
Однако заблокировала 2-х клиентов -
mail.csu.ru[195.54.14.68] - Челябинский Государственный Университет
mx.rgs.ru[194.84.56.197] - Росгосстрах.
Видимо, придется отказаться.
Может эту баракуду лучше к SpamAssassin прикрутить?
Уточнил про t1.dnsbl.net.au - вроде бесплатный?
Поменял порядок:
Стало так:
Теперь проверим динамические
а t1.dnsbl.net.au и cbl.abuseat.org можно выкинуть.
также проверю пересечение psbl.surriel.com и bl.spamcop.net.
Вот результат:
То есть, после psbl.surriel.com bl.spamcop.net не сработал ни разу.
dul.dnsbl.sorbs.net также думаю будет пустой.
karmasphere.email-sender.dnsbl.karmasphere.com можно ставить после zen - больше всего срабатываний.
Дадим еще шанс spamrats - оставлю на день-два, если будет 1-2 срабатывания - выкину.
И подождем с bl.spamcop.net - поставлю его вниз и посмотрю дойдет до него что-нибудь или нет.
Вручную проверил все срабатывания karmasphere.email-sender.dnsbl.karmasphere.com, dyna.spamrats.com - ложных нет!!!
Теперь список такой:
Проверил и этот список. Вот результаты:
Теперь напишу нехорошую вещь -
karmasphere опасная штука.
Ставить ее не советую!!!
Вот адреса, которые она зарубила:
forwards7.yandex.ru
forwards5.yandex.ru
fmail.chtpz.ru - завод
relay4.surnet.ru - местный провайдер
Придется и от нее отказаться.
Если уж клиент попал в zen.spamhaus.org, psbl.surriel.com, bl.spamcop.net - срочно будут искать админа, потому что почта не дойдет ни до кого, а вот карму мало кто использует.
Писать whitelist на всех кто случайно туда попал - спасибо не хочу :)
noptr.spamrats.com из-за одного срабатывания в день мне тоже не нужен.
По уникальным - 3 срабатывания от обоих.
Так что dyna.spamrats.com тоде уберу.
окончательно оставляю:
Под вопросом остается только bl.spamcop.net - что он теперь покажет без karmasphere.email-sender.dnsbl.karmasphere.com, но, в принципе, можно успокоиться - а вдруг zen упадет! :)
А вот с этими 2-мя, которые закомментированы есть идея.
Написать policy-daemon, который проверит клиента на оба RBL, проверить страну по GeoIP, на перле это сделать несложно.
Сделаю что-то типа правила и баллов -
1. вхождение в karmasphere.email-sender.dnsbl.karmasphere.com
2. вхождение в b.barracudacentral.org
3. Страна
Если в стране, которая мне не нужна - до свидания
Если не в моих странах и в любом из списков - до свидания. Мне только Россия важна. Остальные пусть себя исключают из списка.
Остальных пропустим.
Написал-таки я policy
Написал-таки я policy daemon
Скачать можно здесь:
my $SKIP_COUNTRY = "RU"; - страны, которые не проверяем, разделены пробелом.
my $SPAM_COUNTRY = "PL RO"; - страны, откуда почта не нужна.
my @RBL - проверяемые RBL.
на RBL проверяются страны не SKIP_COUNTRY и не SPAM_COUNTRY
postfix получает либо DUNNO - нормально, либо
450 4.7.1 Service is unavailable; Country SPAM
450 4.7.1 Service is unavailable; Blocked using b.barracudacentral.org
450 4.7.1 Service is unavailable; Blocked using karmasphere.email-sender.dnsbl.karmasphere.com
В level=debug facility=mail валится строка вида
Здесь хочу проверить reverse_client_name и client_name. Что туда приходит вместо unknown.
Еще подумаю, что можно сделать с sender=user@gmail.com
Поставил после
Статистика за 10 дней
Статистика за 3 недели:
После чего поставил
my $SPAM_COUNTRY = "CZ CN BH PL AR NL BR TW TH KR"; 10 стран.
Таким образом, удалось отрезать 22,3%.
Копать в типах таблиц, если
Копать в типах таблиц, если не забыл. Для айпишников вроде cidr.
ЗЫ postmap сделал для своей таблицы?
Да конечно
Ошибок нет - они валятся в отдельный лог.