[Sysadmins] postfix: smtpd_helo_restrictions bug ???

Владимир =?iso-8859-1?q?fmfm_=CE=C1_mmascience=2Eru?=
Пн Май 26 15:39:00 MSD 2008


Здравствуйте.

Некоторое время наблюдаю по журналу одну закономерность,
каким образом спамерам удается преодолеть, казалось бы, плотно
закрытую дверь. Интересует, есть ли что нибудь подобное у других и
существуют ли штатные способы прикрыть дырку.

Закономерность следующая. Если спамер выдерживает достаточно большой
timeout между соединением и передачей helo команды, то правила в
smtpd_helo_restrictions игнорируюся. Причем, если через sleep увеличить
лимит времени на прохождение правила (по умолчанию 1 сек), то отдельные 
спамеры
адекватно увеличивают timeout и все равно преодолевают такой "усиленный" 
барьер.

Смотрится это так.

В mail.cf (после долгой "борьбы" sleep задрал очень высоко):

smtpd_helo_required = yes
smtpd_helo_restrictions =
   permit_mynetworks,
   check_helo_access
       cdb:/etc/postfix/helo_access,
   sleep 121,
   reject_non_fqdn_helo_hostname,
   reject_invalid_helo_hostname,
   reject_unknown_helo_hostname,
   sleep 6,
   check_helo_access
       cdb:/etc/postfix/helo_post_access,
   sleep 2,
   permit

В helo_access, в частности, имеется:

ip.ukrtel.net   REJECT

А теперь две "вырезки" из вчерашнего /var/log/mail/all.
Сначало как это работает "обычным порядком":

May 25 14:14:30 ns postfix/smtpd[9676]: connect from 
175-123-207-82.ip.ukrtel.net[82.207.123.175]
May 25 14:14:30 ns postfix/smtpd[9676]: NOQUEUE: reject: RCPT from 
175-123-207-82.ip.ukrtel.net[82.207.123.175]: 554 5.7.1 
<175-123-207-82.ip.ukrtel.net>: Helo command rejected: Access denied; 
from=<yael94yu_ti на abnamrocraigs.com> to=<admin на mmascience.ru> 
proto=ESMTP helo=<175-123-207-82.ip.ukrtel.net>
May 25 14:14:31 ns postfix/smtpd[9676]: lost connection after DATA from 
175-123-207-82.ip.ukrtel.net[82.207.123.175]
May 25 14:14:31 ns postfix/smtpd[9676]: disconnect from 
175-123-207-82.ip.ukrtel.net[82.207.123.175]

То есть все правильно. Между подключением и helo прошло меньше секунды
и 175-123-207-82.ip.ukrtel.net получил "Access denied" согласно записи в 
helo_access

А теперь как это работает "необычным порядком":

May 25 08:40:42 ns postfix/smtpd[7249]: connect from 
209-111-207-82.ip.ukrtel.net[82.207.111.209]
May 25 08:42:52 ns postfix/smtpd[7249]: 6D2114DCBE: 
client=209-111-207-82.ip.ukrtel.net[82.207.111.209]
May 25 08:42:53 ns postfix/cleanup[7537]: 6D2114DCBE: 
message-id=<20080525044252.6D2114DCBE на smtp.mmascience.ru>
May 25 08:42:53 ns postfix/qmgr[26890]: 6D2114DCBE: 
from=<vitiali на deep2000.ru>, size=6059, nrcpt=1 (queue active)
May 25 08:42:53 ns postfix/smtpd[7249]: disconnect from 
209-111-207-82.ip.ukrtel.net[82.207.111.209]
May 25 08:42:55 ns postfix/smtpd[7541]: connect from 
test.fwd.mmascience.ru[127.0.0.1]
May 25 08:42:55 ns postfix/smtpd[7541]: D15F44DE13: 
client=test.fwd.mmascience.ru[127.0.0.1]
May 25 08:42:55 ns postfix/cleanup[7537]: D15F44DE13: 
message-id=<SSqS84uiA61MWY на ns.cafedra.ru>
May 25 08:42:56 ns postfix/smtpd[7541]: disconnect from 
test.fwd.mmascience.ru[127.0.0.1]
May 25 08:42:56 ns amavis[5308]: (05308-05) Blocked SPAM, 
[82.207.111.209] [202.105.182.87] <vitiali на deep2000.ru> -> 
<fmfm на mmascience.ru>, quarantine: spam-qS84uiA61MWY.gz, Message-ID: 
<20080525044252.6D2114DCBE на smtp.mmascience.ru>, mail_id: qS84uiA61MWY, 
Hits: 6.51, size: 6057, 2887 ms

То есть, между подключением (08:40:42) и helo (08:42:52) выдержан 
timeout в 130 секунд
(больше, чем sleep) и postfix-2.4.7, вопреки записи в helo_access,
разрешил соединение для 209-111-207-82.ip.ukrtel.net

Таких примеров в журнале можно найти достаточно много, правда после 
использования
sleep количество спама и нагрузка на amavis резко сократились.


Вопрос традиционный, кто виноват и что делать?



-- 
Vladimir Kholmanov
fmfm на mmascience.ru
fmfm на mma.ru




Подробная информация о списке рассылки Sysadmins