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

Исходное сообщение
"sendmail - отправка только с локальных IP адресов "

Отправлено firestone , 15-Авг-11 11:28 
OS FreebSD 8.1 Sendmail версия 8.14.2
Что нужно добавить в hostname.mc фаил в раздел LOCAL_CONFIG чтобы письма можно было отправлять только с локальных IP адресов, но при этом оставить возможность чтения почты с любых IP?

divert(0)
VERSIONID(`$FreeBSD: src/etc/sendmail/freebsd.mc,v 1.34.2.1 2007/11/22 16:19:40 gshapiro Exp $')
OSTYPE(freebsd6)
DOMAIN(generic)

FEATURE(access_db, `hash -o -T<TMPF> /etc/mail/access')
FEATURE(blacklist_recipients)
FEATURE(local_lmtp)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')
define(`confCW_FILE', `-o /etc/mail/local-host-names')

DAEMON_OPTIONS(`Name=IPv4, Family=inet')
define(`confBIND_OPTS', `WorkAroundBrokenAAAA')
define(`confNO_RCPT_ACTION', `add-to-undisclosed')
define(`confPRIVACY_FLAGS', `authwarnings,noexpn,novrfy')
INPUT_MAIL_FILTER(`sid-milter', `S=local:/var/run/sid-filter')dnl
INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m')
define(`confMILTER_MACROS_CONNECT',`b, j, _, {daemon_name}, {if_name}, {if_addr}')dnl

LOCAL_CONFIG
HSubject: $>CheckSubject
Kspamsubj regex -aCONTAINSSHIT get|sex|fuck|free|download|hi|hello|spam|buy|gay|guy|girl|boy|toy|dvd|sell|cool

LOCAL_RULESETS
SCheckSubject
R$*     $: $(spamsubj $1 $)
R$*CONTAINSSHIT $#error $: "550 5.7.1 Subject denied"
R$*     $@ OK

MAILER(local)
MAILER(smtp)


Содержание

Сообщения в этом обсуждении
"sendmail - отправка только с локальных IP адресов "
Отправлено Aquarius , 15-Авг-11 13:13 
> OS FreebSD 8.1 Sendmail версия 8.14.2
> Что нужно добавить в hostname.mc фаил в раздел LOCAL_CONFIG чтобы письма можно
> было отправлять только с локальных IP адресов, но при этом оставить
> возможность чтения почты с любых IP?

некорректный до безобразия вопрос: sendmail вообще никакого отношения к чтению почты не имеет

>[оверквотинг удален]
> LOCAL_CONFIG
> HSubject: $>CheckSubject
> Kspamsubj regex -aCONTAINSSHIT get|sex|fuck|free|download|hi|hello|spam|buy|gay|guy|girl|boy|toy|dvd|sell|cool
> LOCAL_RULESETS
> SCheckSubject
> R$*     $: $(spamsubj $1 $)
> R$*CONTAINSSHIT $#error $: "550 5.7.1 Subject denied"
> R$*     $@ OK
> MAILER(local)
> MAILER(smtp)


"sendmail - отправка только с локальных IP адресов "
Отправлено firestone , 15-Авг-11 14:29 
> некорректный до безобразия вопрос: sendmail вообще никакого отношения к чтению почты не
> имеет

Спасибо, вопрос поправил. За чтение dovecot отвечает, с ним все в порядке. (3 дня настраиваю почтовую систему - не судите строго). Вопрос остается открытым.

Что нужно добавить в hostname.mc фаил в раздел LOCAL_CONFIG чтобы письма можно
было отправлять только с локальных IP адресов. Имеется 2 локальной подсети: 192.168.х.0/24 и 192.168.у.0/24.


"sendmail - отправка только с локальных IP адресов "
Отправлено lavr , 15-Авг-11 16:13 
>> некорректный до безобразия вопрос: sendmail вообще никакого отношения к чтению почты не
>> имеет
> Спасибо, вопрос поправил. За чтение dovecot отвечает, с ним все в порядке.
> (3 дня настраиваю почтовую систему - не судите строго). Вопрос остается
> открытым.
> Что нужно добавить в hostname.mc фаил в раздел LOCAL_CONFIG чтобы письма можно
> было отправлять только с локальных IP адресов. Имеется 2 локальной подсети: 192.168.х.0/24
> и 192.168.у.0/24.

LOCAL_CONFIG в данном случае нет необходимости трогать, прочитайте про RELEING
в sendmail в sources/cf/README:

FEATURE такие как:
- relay_entire_domain
- relay_hosts_only

+ использование access (например):
Connect:A.B.C.D                 RELAY

помнить что карты (maps) в sendmail не поддерживают subnets, для генерации использовать
утилиту cidrexpand


"sendmail - отправка только с локальных IP адресов "
Отправлено firestone , 15-Авг-11 16:59 
> LOCAL_CONFIG в данном случае нет необходимости трогать, прочитайте про RELEING
> в sendmail в sources/cf/README:
> FEATURE такие как:
> - relay_entire_domain
> - relay_hosts_only
> + использование access (например):
> Connect:A.B.C.D            
>      RELAY
> помнить что карты (maps) в sendmail не поддерживают subnets, для генерации использовать
> утилиту cidrexpand

Это все сделанно. Отправлять на внешнюю прочту такие как @mail.ru @list.ru можно только с внутренних IP - в access прописал. Но это не значит что нельзя с внешних IP отправлять от внутренней почты на внутреннюю почту. У меня не стоит SMTP Auth, если ставить, то нужно будет на всех локальных компах перенастраивать почтовые ящики. Но тогда любой кто знает ящик внутренней почты может без пароля SMTP авторизации отправить письмо на другой ящик внутренней почты. Не очень хорошо для меня и очень хорошо для спаммеров...


"sendmail - отправка только с локальных IP адресов "
Отправлено lavr , 15-Авг-11 17:50 
>[оверквотинг удален]
>> - relay_hosts_only
>> + использование access (например):
>> Connect:A.B.C.D
>>      RELAY
>> помнить что карты (maps) в sendmail не поддерживают subnets, для генерации использовать
>> утилиту cidrexpand
> Это все сделанно. Отправлять на внешнюю прочту такие как @mail.ru @list.ru можно
> только с внутренних IP - в access прописал. Но это не
> значит что нельзя с внешних IP отправлять от внутренней почты на
> внутреннюю почту.

Брррр-р-ррр, ничего не понял.

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

smtp-auth обычно используется для почтового роуминга

Если smtp без auth, то ваш пользователь, находясь во внешней сети должен использовать
SMTP сервер того провайдера, через которого вышел в интернет, чтобы у ваш почтовый
релей НЕ БЫЛ ОТКРЫТЫМ.
Если SMTP без AUTH, то для чтения и отправки почты извне - установите WEBMAIL интерфейс.

ps. научитесь понятно излагать мысли, невозможно понять что у вас за проблема и
как вы собрались ее решать.


"sendmail - отправка только с локальных IP адресов "
Отправлено firestone , 16-Авг-11 09:30 
Попробую еще раз.
есть локальная почта @domain.ru  В access прописанно
192.168.х       RELAY
192.168.у       RELAY

Где 192.168.х и 192.168.у - внутренняя сеть. SMTP без авторизации. С внутренней сети пользователи могут отправлять почту куда угодно, без ограничений. К примеру с user1@domain.ru на mail@yandex.ru.
Из дома я настраиваю почтовый клиент на любой ящик (например user1@domain.ru) без пароля для pop3  и  smtp
и при попытке отправить с user1@domain.ru на mail@yandex.ru получаю ответ Relay Denied.
(Это нормально, так и должно быть).  Но могу отправлять с user1@domain.ru на user2@domain.ru, user3@domain.ru и т.д.
Как сделать так, чтобы перед отправкой письма Sendmail проверял IP, и если IP из сетей 192.168.х и 192.168.у - разрешать отправку, если нет - то выдать сообщение "Access Denied"


"sendmail - отправка только с локальных IP адресов "
Отправлено firestone , 16-Авг-11 10:13 
Нашел почти то, что нужно! http://linux.anrb.ru/sendmail.html#6

Если в /etc/mail/open добавить
192.168.х
192.168.у
то как нужно изменить кусок кода чтобы проверял только IP:

SCheckLocalMail
На вход набору правил CheckLocalMail подан e-mail-адрес, добавляем к нему IP-адрес хоста, установившего smtp-соединение:
R$*              $: $1 $&{client_addr}
Проверяем, соотвествует ли полученная комбинация какой-либо записи в файле /etc/mail/open:
R$+<>$-.$-.$-.$-             $: $(OPEN $1$2.$3.$4.$5 $: $1$2.$3.$4.$5 $)
Да - пропускаем почту.
RYES              $@ OK
Нет - блокируем
R$*              $#error $: 554 Sorry, you cannot send a mail from this ip-address. Please, contact to postmaster.


"sendmail - отправка только с локальных IP адресов "
Отправлено lavr , 16-Авг-11 11:04 
>[оверквотинг удален]
> Проверяем, соотвествует ли полученная комбинация какой-либо записи в файле /etc/mail/open:
> R$+<>$-.$-.$-.$-            
>  $: $(OPEN $1$2.$3.$4.$5 $: $1$2.$3.$4.$5 $)
> Да - пропускаем почту.
> RYES            
>   $@ OK
> Нет - блокируем
> R$*            
>   $#error $: 554 Sorry, you cannot send a mail
> from this ip-address. Please, contact to postmaster.

Вы задумывались что собственно уже ЕСТЬ у Вас == РЕАЛИЗОВАНО и что Вы хотите?!
У Вас уже встроенными средствами реализован РЕЛЕИНГ для двух сетей, Вы еще
дополнительно хотите вставить правило со СВОИМ СООБЩЕНИЕМ!!!
Зачем?!

ps. POP3 без пароля - это серьезная заявка.


"sendmail - отправка только с локальных IP адресов "
Отправлено firestone , 16-Авг-11 11:37 
> Вы задумывались что собственно уже ЕСТЬ у Вас == РЕАЛИЗОВАНО и что
> Вы хотите?!
> У Вас уже встроенными средствами реализован РЕЛЕИНГ для двух сетей, Вы еще
> дополнительно хотите вставить правило со СВОИМ СООБЩЕНИЕМ!!!
>  Зачем?!
> ps. POP3 без пароля - это серьезная заявка.

Уважаемый lavr, это не совсем одно и тоже. Вы так и не поняли меня...
Конечная цель - запретить отправку писем от mail@domain.ru на mail@domain.ru c IP адресов отличных от 192.168.х и 192.168.y

> У Вас уже встроенными средствами реализован РЕЛЕИНГ для двух сетей

Это НЕ работает при отправке писем с user1@domain.ru на user2@domain.ru с внешних IP (НЕ из сетей 192.168.х и 192.168.y) Может я чего то не понимаю...

> ps. POP3 без пароля - это серьезная заявка

Это был пример - почту я прочитать не смогу без пароля а вот отправить легко...


"sendmail - отправка только с локальных IP адресов "
Отправлено Medlar , 16-Авг-11 13:29 
Lavr, "спокойствие, только спокойствие!" :) Сейчас попробуем разобраться ...

Вообще, заметили тенденцию?
Букв много, а четкой постановки вопроса нет.
Понимания основной почтовой терминологии нет.
Выдержек из лога нет.

Я на тему "sendmail.перенаправление" вообще махнула рукой - видимо, до Автора можно было достучаться, разве что поругавшись и размахнувшись :) Но времени не было ...

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

Возвращаюсь к исходному вопросу. Увидела значимое:

"Конечная цель - запретить отправку писем от mail@domain.ru на mail@domain.ru c IP адресов отличных от 192.168.х и 192.168.y"
У Вас уже встроенными средствами реализован РЕЛЕИНГ для двух сетей
"Это НЕ работает при отправке писем с user1@domain.ru на user2@domain.ru с внешних IP (НЕ из сетей 192.168.х и 192.168.y) Может я чего то не понимаю."
"Из дома я настраиваю почтовый клиент на любой ящик (например user1@domain.ru) без пароля для pop3  и  smtp
и при попытке отправить с user1@domain.ru на mail@yandex.ru получаю ответ Relay Denied.
Но могу отправлять с user1@domain.ru на user2@domain.ru, user3@domain.ru и т.д.
Как сделать так, чтобы перед отправкой письма Sendmail проверял IP, и если IP из сетей 192.168.х и 192.168.у - разрешать отправку, если нет - то выдать сообщение "Access Denied"


Насколько я поняла из 3 предыд. заявлений, НА САМОМ ДЕЛЕ
Автор хочет запретить sendmail'у принимать почту, пришедшую из чужих сетей, НО ПОДПИСАННУЮ ЕГО РОДНЫМ ДОМЕНОМ???
То есть - http://linux.anrb.ru/sendmail3.html#29


"sendmail - отправка только с локальных IP адресов "
Отправлено Andrey Mitrofanov , 16-Авг-11 13:49 
> Вообще, заметили тенденцию?
> Букв много, а четкой постановки вопроса нет.
> Понимания основной почтовой терминологии нет.
> Выдержек из лога нет.

И в теме "/ FreeBSD)"?? Да-да-да-д... Тенденция!


"sendmail - отправка только с локальных IP адресов "
Отправлено firestone , 16-Авг-11 14:35 
> Автор хочет запретить sendmail'у принимать почту, пришедшую из чужих сетей, НО ПОДПИСАННУЮ
> ЕГО РОДНЫМ ДОМЕНОМ???
> То есть - http://linux.anrb.ru/sendmail3.html#29

Забавно ))) Да. Именно то что искал - но сформулировал не правильно вопрос изначально. Был на этом сайте - но почему то пропустил... Спасибо за терпение и лояльность. Вопрос закрыт.