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

Исходное сообщение
"Как забанить нежелательную сетку в сендмейле"

Отправлено zttr , 05-Июн-06 23:41 
FreeBSD, сервер используется под www, ну и есть всего пару ящиков, поэтому особо с почтовиком не заморачивался, оставил Sendmail, прописал юзера в /etc/mail/virtusertable и все.

Начал получать нежелательные письма. В заголовках писем есть строчка:
Received: from [1.2.3.4]
1.2.3 - всегда постоянно.

Как сказать сендмейлу, что если в заголовке письма есть IP 1.2.3.*, то адресату надо отправить отлуп, что мол ваше письмо не получено


Содержание

Сообщения в этом обсуждении
"Как забанить нежелательную сетку в сендмейле"
Отправлено Олег Голованов , 06-Июн-06 07:15 
>FreeBSD, сервер используется под www, ну и есть всего пару ящиков, поэтому
>особо с почтовиком не заморачивался, оставил Sendmail, прописал юзера в /etc/mail/virtusertable
>и все.
>
>Начал получать нежелательные письма. В заголовках писем есть строчка:
>Received: from [1.2.3.4]
>1.2.3 - всегда постоянно.
>
>Как сказать сендмейлу, что если в заголовке письма есть IP 1.2.3.*, то
>адресату надо отправить отлуп, что мол ваше письмо не получено


# cat /etc/mail/access.sample
# $FreeBSD: src/etc/mail/access.sample,v 1.3 2000/11/02 23:40:40 dirk Exp $
#
# Mail relay access control list.  Default is to reject mail unless the
# destination is local, or listed in /etc/mail/local-host-names
#
cyberspammer.com                550 We don't accept mail from spammers
FREE.STEALTH.MAILER@            550 We don't accept mail from spammers
another.source.of.spam          REJECT
okay.cyberspammer.com           OK
128.32                          RELAY


Правишь этот файл типа

1.2.3            REJECT

Или можешь вместо REJECT сообщение об ошибке поставить (см.выше).
Потом пишешь

makemap hash /etc/mail/accesstable < /etc/mail/access.sample

где
hash - тип файла (задается в sendmail.cf)
/etc/mail/accesstable - путь к файлу "отлупов" (задается в sendmail.cf)
/etc/mail/access.sample - путь к исходному текстовому файлу

Вообще это одна из самых стандартных фич в sendmail.

Успеха


"Как забанить нежелательную сетку в сендмейле"
Отправлено zttr , 06-Июн-06 09:39 
Если бы все так было просто...
Это не то. Такое правило создаст запрет на отправку с IP 1.2.3.* через мой smtp
У меня другая задача.


"Как забанить нежелательную сетку в сендмейле"
Отправлено YuryD , 06-Июн-06 10:41 
>Если бы все так было просто...
>Это не то. Такое правило создаст запрет на отправку с IP 1.2.3.*
>через мой smtp

Не на отправку, а на прием с данного IP. Т.е. сервер вообще брать не будет, ну и код ошибки самому можно описать.

Если все-же надо принимать, то для обработки используйте procmail


"Как забанить нежелательную сетку в сендмейле"
Отправлено zttr , 06-Июн-06 11:50 

> Не на отправку, а на прием с данного IP. Т.е. сервер
>вообще брать не будет, ну и код ошибки самому можно описать.
>

Есть сервер serv.my_domen.ru
Есть мыло mail@my_domen.ru
Есть я на IP 1.2.3.4

Если прописать в access запрет
1.2.3.4 REJECT
то сидя на 1.2.3.4 и указав в качестве smtp сервер serv.domen.ru я не могу отправить письмо - реджектит (это я и подразумевал под отправкой. Да, можно сказать, что на прием с данного IP для отправки через сервер serv.my_domen.ru не работает).

Но доставить письмо на сервер получается.
Сижу на 1.2.3.4, шлю через smtp провайдера письмо на mail@my_domen.ru и оно благополучно кладется в ящик на сервере serv.my_domen.ru

В заголовках

Return-Path: <откуда>
Received: from сервер_провайдера (сервер_провайдера [ip_провайдера])
        by ........
Received: from [1.2.3.4] ([1.2.3.4])
        by сервер_провайдера ......
.............


Таким образом, для человека, сидящего на 1.2.3.4 запрет на прием писем ко мне на сервер сделать не получается.
Перед тем как написать сюда это было проверено.
Запрет с access не работает, поэтому и спрашиваю, какие есть решения.


"Как забанить нежелательную сетку в сендмейле"
Отправлено lavr , 06-Июн-06 12:05 
>
>> Не на отправку, а на прием с данного IP. Т.е. сервер
>>вообще брать не будет, ну и код ошибки самому можно описать.
>>
>
>Есть сервер serv.my_domen.ru
>Есть мыло mail@my_domen.ru
>Есть я на IP 1.2.3.4
>
>Если прописать в access запрет
>1.2.3.4 REJECT
>то сидя на 1.2.3.4 и указав в качестве smtp сервер serv.domen.ru я
>не могу отправить письмо - реджектит (это я и подразумевал под
>отправкой. Да, можно сказать, что на прием с данного IP для
>отправки через сервер serv.my_domen.ru не работает).
>
>Но доставить письмо на сервер получается.
>Сижу на 1.2.3.4, шлю через smtp провайдера письмо на mail@my_domen.ru и оно
>благополучно кладется в ящик на сервере serv.my_domen.ru
>
>В заголовках
>
>Return-Path: <откуда>
>Received: from сервер_провайдера (сервер_провайдера [ip_провайдера])
>        by ........
>Received: from [1.2.3.4] ([1.2.3.4])
>        by сервер_провайдера ......
>.............
>
>
>Таким образом, для человека, сидящего на 1.2.3.4 запрет на прием писем ко
>мне на сервер сделать не получается.
>Перед тем как написать сюда это было проверено.
>Запрет с access не работает, поэтому и спрашиваю, какие есть решения.

о блин, кто-нить, что-нить поняув? я, мне, сервер... полный Ёперный театр... -
"постановка задачи" называется :(


"Как забанить нежелательную сетку в сендмейле"
Отправлено zttr , 06-Июн-06 12:16 
>о блин, кто-нить, что-нить поняув? я, мне, сервер... полный Ёперный театр... -
>"постановка задачи" называется :(

Задача куда более ясно поставлена. Если не знаете ответа, зачем флудить. :-(


"Как забанить нежелательную сетку в сендмейле"
Отправлено lavr , 06-Июн-06 12:31 
>>о блин, кто-нить, что-нить поняув? я, мне, сервер... полный Ёперный театр... -
>>"постановка задачи" называется :(
>
>Задача куда более ясно поставлена. Если не знаете ответа, зачем флудить. :-(
>

флудить - это вы о своей почтановке задачи? ;)

ответ в документации sendmail'а, точней в /path/sendail_sources/cf/README


"Как забанить нежелательную сетку в сендмейле"
Отправлено zttr , 06-Июн-06 12:41 

>
>ответ в документации sendmail'а, точней в /path/sendail_sources/cf/README


Универсальный ответ, когда нечего сказать ;)


"Как забанить нежелательную сетку в сендмейле"
Отправлено lavr , 06-Июн-06 12:49 
>
>>
>>ответ в документации sendmail'а, точней в /path/sendail_sources/cf/README
>
>
>Универсальный ответ, когда нечего сказать ;)

это ПРАВИЛЬНЫЙ ответ, особенно когда технический специалист НЕ ПОНИМАЕТ принципа
действия агрегата.


"Как забанить нежелательную сетку в сендмейле"
Отправлено unk , 06-Июн-06 12:51 
lavr, если не секрет скажите, sendmail вообще умеет такое (без милтера)?

"Как забанить нежелательную сетку в сендмейле"
Отправлено lavr , 06-Июн-06 12:57 
>lavr, если не секрет скажите, sendmail вообще умеет такое (без милтера)?

если б я еще знал что есть "такое", написано было кириллицей, но понять смысл тИжяло и
перечитывать не хочется.


"Как забанить нежелательную сетку в сендмейле"
Отправлено unk , 06-Июн-06 13:00 
Я оригинальный вопрос понял так:
Как заставить sendmail блокировать письма имеющие определенный "Received:" в заголовке.


"Как забанить нежелательную сетку в сендмейле"
Отправлено Alexander Grigoriev , 06-Июн-06 13:04 
>Я оригинальный вопрос понял так:
>Как заставить sendmail блокировать письма имеющие определенный "Received:" в заголовке.

Откройте же наконец указанный lavr'ом файл README.
Там есть раздел "Header Checks", в котором ВСЕ написано.


"Как забанить нежелательную сетку в сендмейле"
Отправлено unk , 06-Июн-06 13:06 
>Откройте же наконец указанный lavr'ом файл README.
>Там есть раздел "Header Checks", в котором ВСЕ написано.
Лень


"Как забанить нежелательную сетку в сендмейле"
Отправлено Олег Голованов , 09-Июн-06 06:34 
Так и надо было сразу писать.

Есть два действенных решения.

1) Мой милтер умеет это делать. Если интересно, могу выслать.

2) Есть способ, описанный в соответствующем README,
   в разделе "Header Checks".

По п.2. Коротко.

Добавляешь в sendmail.cf после строки LOCAL_CONFIG
HReceived: $>CheckReceivedHdr

Соответственно прописываешь правило в разделе LOCAL_RULESETS

SCheckReceivedHdr

Rчего_нужно_остальным $@ OK
Rчего_тебе_надо $#error $: 553 Header Error

Успеха.