Category: животные

Category was added automatically. Read all entries about "животные".

(no subject)

Сегодня в порядке написания сами-знаете-чего решил посмотреть на стандартные средства postfix в деле убивания спама. Почему-то у меня внутри сложилось впечатление, что всякие антиспамные средства типа RBL, Spamasassin, Razor и так далее приносят больше вреда, чем пользы, поэтому на моих серверах их не стоит, по крайней мере в "боевом" режиме. Так, побаловаться разве что ...

Взял для пробы один сервер, через которых проходит около 4х тыщ хороших и правильных (и хз сколько неправильных) мессаг в день и добавил следующее в main.cf

smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname, reject_non_fqdn_hostname

postfix начал материться примерно так:

RCPT from unknown[59.94.177.63]: 450 <computer>: Helo command rejected: Host not found; from=<contact@0privacy.com> to=<мыло> proto=ESMTP helo=<computer>

Посмотрим, насколько эффективна такая штука за неполный день. Ибо включил я её где-то в обед 1 декабря.

# cat /var/log/maillog|grep Dec|grep reject|grep Host\ not\ found|wc -l
242

Потом добавил строчку

smtpd_sender_restrictions = reject_unknown_sender_domain,reject_non_fqdn_sender

Но за сегодня она так и не сработала ни разу - видимо спамеры научились писать <cardhacker@hotmail.com> вместо обычных "Ваш лучший друк"

Следующей стала моя самая любимая строка

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_unauth_pipelining, check_helo_access hash:/etc/postfix/helo_access, reject_unknown_hostname, reject_non_fqdn_recipient

Потребовалось ещё добавить одну строчку в файл

# cat /etc/postfix/helo_access
localhost.localdomain REJECT

Постфикс стал ругаться так:

RCPT from unknown[89.100.224.81]: 554 <localhost.localdomain>: Helo command rejected: Access denied; from=<vittorio3844@bartbaggett.com> to=<мыло> proto=SMTP helo=<localhost.localdomain>

или так:

RCPT from 82-171-190-102.dsl.ip.tiscali.nl[82.171.190.102]: 504 <localhost>: Helo command rejected: need fully-qualified hostname; from=<thanh896@apr.com> to=<мыло> proto=SMTP helo=<localhost>
RCPT from p54806FDD.dip.t-dialin.net[84.128.111.221]: 504 <84.128.111.221>: Helo command rejected: need fully-qualified hostname; from=<mmqthqs@rora.com> to=<мыло> proto=SMTP helo=<84.128.111.221>

или даже так:

RCPT from unknown[62.165.39.202]: 450 <62-165-39-202.uralhosting.ru>: Helo command rejected: Host not found; from=<info@bults.org> to=<мыло> proto=SMTP helo=<62-165-39-202.uralhosting.ru>

Поглядим эффективность:

# cat /var/log/maillog|grep Dec|grep reject|grep localhost.localdomain|wc -l
300

# cat /var/log/maillog|grep Dec|grep reject|grep localhost|wc -l
325

Всего 25 спамеров с helo=localhost. И общий итог:

# cat /var/log/maillog|grep Dec|grep reject|wc -l
1082

Как видим, половину отлупов мне дал reject_unknown_hostname (тыща - 200 - 300). Хороший параметр! Правда, надо следить, что бы "хорошие" сервера управляемые тупыми админами, не попали бы в отлуп. Ибо если сервер пришел с нормально резолвящегося хоста, но представился "левым" хостом (типа server.companyname), то он тоже получит отлуп.

P.S. Теперь осталось вспомнить, как пишутся всякие гадости типа регекспов (убил бы автора самой идеи регекспа) и запихать их в нужное место постфиксу, что бы безжалостно рубил все сервера, чьи имена резолвятся в домены выше 3его уровня. Кто-нить не пожалеет времени на заглядывание в свой main.cf, ежели там у него такое есть? Куда его пинать, а что чего-то я того ...

Охота отрубить домены типа ip.85.202.31.114.dyn.sub-15.broadband.voliacable.com или c-69-139-213-106.hsd1.ar.comcast.net - и так понятно, что там ничего хорошего нет ... а адреса типа fig.domain.tld - допускал до тела.

P.P.S. А некоторые, на которых я не буду показывать пальцами, пусть не возникают. Легальные юзвери с подобных адресов отправят почту совершенно спокойно, ибо permit_sasl_authenticated идет раньше, чем все запрещающие правила ...

P.P.P.S письма на несуществующие адреса проходят по другой категории (в смысле постфикс на них ругается по другому):
# cat /var/log/maillog|grep Dec|grep unknow|wc -l
4656