The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Запрещение релея: postfix"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"Запрещение релея: postfix"  
Сообщение от Serge email(??) on 13-Апр-08, 21:19 
Добрый день.
Появился еще один вопрос.

Всю поступающую почту постфикс получает локально (отдает заборщик). Дальше смотрит transport в котором в виде
balbla@domen.ru smtp:[xxx.xxx.xx.xx]
balbla2@domen.ru smtp:[xxx.xxx.xx.xx]
...
прописаны все юзера и куда релеить. Таким образом я избавился от левых ресипентов. Вопрос в другом. Локально прочту отправить нельзя, но если подсунуть письмо для:

RCPT TO: blabla@domen.ru, sjdhfskdf@dskljf.ru

то письмо уйдет как на smtp:[xxx.xxx.xx.xx] и попытается отрелеиться в интернет на кривой адрес. Надо запретить любой локальный релей для "не своих". Нужно оставить только одно направление: почта поступила (из интернета), дальше её на определенный хост в локалке отправили, почта с того хоста приходит (пробитого в трансфере, локалка) - отправляем в интернет. всему остальносу 550.

Какой дерективой это можно и нужно прописывать?

Спасибо.

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Запрещение релея: postfix"  
Сообщение от Pahanivo email(??) on 13-Апр-08, 22:06 
RTFM
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Запрещение релея: postfix"  
Сообщение от Serge email(??) on 14-Апр-08, 05:27 
>[оверквотинг удален]
>
>то письмо уйдет как на smtp:[xxx.xxx.xx.xx] и попытается отрелеиться в интернет на
>кривой адрес. Надо запретить любой локальный релей для "не своих". Нужно
>оставить только одно направление: почта поступила (из интернета), дальше её на
>определенный хост в локалке отправили, почта с того хоста приходит (пробитого
>в трансфере, локалка) - отправляем в интернет. всему остальносу 550.
>
>Какой дерективой это можно и нужно прописывать?
>
>Спасибо.

Народ, отзовитесь, плз. Чем только этот релей не пытался уже заткнуть. Проблема в том, что подсовывает почту забощик именно локально и простые правила релея (в т.ч. прописывал и в аксес и в релей мапс, прошерстил все что мог, вероятно где-то что-то упустил) отказываются действовать.

RTFM просьба больше не писать. Люди с вражденным знанием всех манов могут образовать свою высокоразвитую колонку и общаться там на уровне тыканья друг друга в man, нам приземленным человекам надо бы объяснить. = )

Конфиг решил собирать по кусочкам, дабы найти где не срабатывает правило (полноценный конфиг из примеров собирал, не работает одинакого с этим):

soft_bounce=no

################### PATHES ##########################

queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
sendmail_path = /usr/sbin/sendmail
mailq_path = /usr/bin/mailq
newaliases_path = /usr/bin/newaliases
data_directory = /var/lib/postfix
program_directory = /usr/lib/postfix

header_checks = pcre:/etc/postfix/header_checks
canonical_maps = hash:/etc/postfix/canonical
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_alias_domains = hash:/etc/postfix/virtual
relocated_maps = hash:/etc/postfix/relocated
transport_maps = hash:/etc/postfix/transport
sender_canonical_maps = hash:/etc/postfix/sender_canonical

html_directory = /usr/share/doc/packages/postfix/html
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/packages/postfix/samples
readme_directory = /usr/share/doc/packages/postfix/README_FILES

#################### DEBUG ###########################

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

#################### OWNERS ###########################

mail_owner = postfix
setgid_group = maildrop

#################### PROTO ###########################

inet_interfaces = all
inet_protocols = ipv4

################# REJECT CODES #######################

access_map_reject_code = 550
unknown_local_recipient_reject_code = 550
unknown_client_reject_code = 550
relay_domains_reject_code = 550
reject_code = 550

myhostname = xxxxxxxxxxx.xxxxx.local
mydomain = ххххх.local
myorigin = хххххххххх.ru
masquerade_classes = envelope_sender, header_sender, header_recipient

mynetworks_style = subnet
mynetworks = 192.168.xx.xx

relay_domains =

В transport забивается скриптом из AD

balbla@domen.ru smtp:[xxx.xxx.xx.xx]
balbla2@domen.ru smtp:[xxx.xxx.xx.xx]

на данном этапе почта с адресатами описанными в транспорте идет в сеть, остальная либо баунсится либо использует серв как опен релей. Если прислать мыло с неправильным rcpt адресом, но правильным доменом, то образуется 4 пошаговая петля. Письмо релеется на шлюз хостера, от туда тут же забирается, кидается снова постфиксу и т.д. Предполагаю что из-за myorigin = хххххххххх.ru, такбы гейт просто отфудболил сервер, но мне необходимо заменять локальный домен на настоящий для нормального получения логов удаленно.

Хелп... запутался совсем.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Запрещение релея: postfix"  
Сообщение от PavelR email(??) on 14-Апр-08, 06:05 
Рекомендую полностью переделать почтовую систему, с целью отказаться от "заборщика" и
неких генерируемых "скриптом из AD" таблиц:

balbla@domen.ru smtp:[xxx.xxx.xx.xx]
balbla2@domen.ru smtp:[xxx.xxx.xx.xx]


В AD  почта умеет прекрасно рулиться через MX, например...
Ну а если у Вас разные ящики одного домена находятся на разных серверах - тогда тем более...

Может быть Вам необходимо реализовать интеграцию почтовой системы с LDAP ?

Короче говоря, без более подробного описания вашей почтовой сети все что вы пишете про её организацию кажется неграмотным.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Запрещение релея: postfix"  
Сообщение от Serge email(??) on 14-Апр-08, 22:41 
>[оверквотинг удален]
>
>
>В AD  почта умеет прекрасно рулиться через MX, например...
>Ну а если у Вас разные ящики одного домена находятся на разных
>серверах - тогда тем более...
>
>Может быть Вам необходимо реализовать интеграцию почтовой системы с LDAP ?
>
>Короче говоря, без более подробного описания вашей почтовой сети все что вы
>пишете про её организацию кажется неграмотным.

Что в полне и может быть = ). Ибо учусь.

Попытаюсь объяснить почему именно так выбрал и что необходимо, в любом случае спасибо за ответ.

У юзера в АД часто есть алиасы, поэтому просто запрос в АД (те методы, что обычно предложены в примерах) не очень подходил для организации данной системы. "Некий скрипт" - это известный getadsmtp.pl-скрипт, измененный с username@domain.ru OK на username@domain.ru smtp:[xxx.xxx.xx.xx], способный вытаскивать абсолютно все мыльца + много писали о том, что локальный поиск зачастую бывает быстрее, чем ЛДАП-запрос в базу по каждому письму (коих даже после спамфильтра бывает очень много). И что тоже бывало, может из-за кривости настройки, письма проскакивали даже после проверки лдапом. В логах же винды было сообщение отказа лдап-пользователю линуха. С данной настройкой все работает со 100% точностью + скрипт обращается к лдап-базе раз в час, что уменьшает трафик (с выше 1000 мыльников) и не досаждает АД (контора большая, основано все на терминалах - трафу внутреннего дофига, ферма постоянно обращается к АД - нагрузка). В сети имеется exchange - для внутреннего оборота писем и отправки наружу через гейт на линухе. На него вся почта с постфикса и пересылается. Т.к. 2003 эксчендж, по крайней мере, не умеет вырубать полностью DSN, то дабы не копить в день по 8000 ответов во freeze состоянии, было принято решение фильтровать сообщения на recipient'ов еще "на входе". Для этого интегрируем postfix и LDAP/AD. Домена есть три: основной - наружный (используется для сайта у хостера и мэил-гейта у него же, аля name.ru), технический - алиас основного, с DNS-записью аля foo.893.domen.aaa.ru и локальный xxxx.local.

Почта на линукс (из интернета не виден, стоит за циской) доставляется заборщиком (getmail), во время приема им же прогонятеся через clamd и spamassassin. После отдается прокмылу для фильтрации вложений и мелких дополнений для увеличения шанса отсеить "грязное" письмо. Эта связка пашет на ура. Дальше прокмыло ЛОКАЛЬНО отдает все это добро постфиксу. Что требуется от постфикса:

1. Убить письмо, если адресата нет в сгенерированном файле адресов без оповещения отправившего его человека.
2. Полный запрет на всевозможные релеи, кроме: с эксченджа в инет без каких-либо проверок и локальной отправки от прокмыла на эксчендж с проверкой на юзера.
3. Замена внутреннего доменного имени root@имя_серва.xxxx.local на внешний адрес имя_серва@domain.ru для локальных мыльц, отправляемых только в сторону эксченджа с ошибками/локальными сообщениями.
4. Исключить в заголовках писем проходящих наружу через постфикс любые упоминания о локальном домене: Received, Message-ID, Return-Path и т.д. Заменить их, например, на имя_серва@domen.ru

Собственно из-за этих 4-х правил стока много букв = ). С линуксом знаком не первый день, но почту не ослил, не пошло = ). Проблема в том, что машину надо ввести как можно быстрее в строй. Я не прошу, чтобы расписали здесь все за меня, хотя может с объяснениями будет и легче для понимания, но помощь реально нужна :). Думаю полезно будет не только для меня.

Спасиб.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Запрещение релея: postfix"  
Сообщение от PavelR email(??) on 15-Апр-08, 07:00 
А теперь сравним первое сообщение и это. Появилось много нового, как в описании системы, так и в списке решаемых проблем.

По поводу организации почтовой системы:

Все ваши проблемы начались в тот момент, когда у вас появился внешний почтовый сервер, который принимает почту абсолютно для всех.  Оттуда и "8000 ответов" от ексченжа.

Далее, проблема с тем, что письма идут из гетмайла через релей наружу - так это от большого ума данного софта + его настройки - откуда он знает, надо ли пересылать письмо наружу или нет, если адресатов в письме несколько? Он не знает, информация о конверте-то уже потерялась. У Вас наверняка не пройдут различные рассылки.

Так что проблема того, что письма могут пойти наружу - это не проблема постфикса, а проблема гетмайл. А точнее - проблема архитектуры.

>В сети имеется exchange - для внутреннего оборота
>писем и отправки наружу через гейт на линухе. На него вся
>почта с постфикса и пересылается. Т.к. 2003 эксчендж, по крайней мере,
>не умеет вырубать полностью DSN, то дабы не копить в день
>по 8000 ответов во freeze состоянии, было принято решение фильтровать сообщения
>на recipient'ов еще "на входе". Для этого интегрируем postfix и LDAP/AD.

Итак, план реализации для Вас должен быть таков:

1.Выставляете постфикс "в мир", чтобы он сам принимал почту для Вашего внешнего домена.
(можно пробросом порта. Следите за тем, как он себя будет идентифицировать в мире, чтобы он был server.domain.ru а не server.domain.local)
1.1 Прописываете МХ запись вашего домена на айпи, 25 порт которого пробрасывается  на постфикс.
2. Для того,чтобы постфикс не принимал почту для несуществующих пользователей и не ложил LDAP запросами, читаем:

    http://www.postfix.org/ADDRESS_VERIFICATION_README.html

куски конфига оттуда:

/etc/postfix/main.cf:
    smtpd_recipient_restrictions =
        permit_mynetworks
        reject_unauth_destination
        ...
        reject_unknown_recipient_domain
        reject_unverified_recipient
        ...


    # Note: avoid hash files here. Use btree instead.
    address_verify_map = btree:/var/lib/postfix/verify

    unverified_recipient_reject_code = 550

    relay_domains = domain.ru

  После того, как Вы поймете, на что влияет каждая строчка вышеприведенной вырезки из конфига, Вы сможете получить почтовый сервер, который будет отказываться принимать почту для несуществующих пользователей, проверяя их наличие через запрос к ексченжу(если эксченж примет письмо - значит мы для него это письмо примем. В том числе примем и на алиасы). Соответственно, решатся проблемы "(не)отправки 8000 DSN" и отправки почты от гетмыла во внешние домены. Вдобавок к этому, ускорится процесс доставки почты, поскольку не будет необходимости запуска самого процесса гетмайл.

После приема почты постфиксом, её можно завернуть на разного рода антиспамовые процедуры.
Мне понравилось описание "Fighting Spam with Postfix" (http://able.com.ua/~gnut/fighting-spam.html) Там же описаны и дополнительные процедуры, которые помогут не принимать почту откуда попало.

NB: В этом, вышеописанном случае, постфикс будет выступать как почтовый релей.

>
>У юзера в АД часто есть алиасы, поэтому просто запрос в АД
>(те методы, что обычно предложены в примерах) не очень подходил для
>организации данной системы. "Некий скрипт" - это известный getadsmtp.pl-скрипт, измененный с
>username@domain.ru OK на username@domain.ru smtp:[xxx.xxx.xx.xx], способный вытаскивать абсолютно все мыльца +
>много писали о том, что локальный поиск зачастую бывает быстрее, чем
>ЛДАП-запрос в базу по каждому письму (коих даже после спамфильтра бывает
>очень много).

Проверка получателя должна быть _до_ приема текста письма, соответственно до проверки спамфильтром. Тогда и DSN не будет, повторюсь.
Локальный поиск быстрее, если он осуществляется по индексированной БД. В противном случае он может оказаться медленнее.

> И что тоже бывало, может из-за кривости настройки, письма
>проскакивали даже после проверки лдапом. В логах же винды было сообщение
>отказа лдап-пользователю линуха. С данной настройкой все работает со 100% точностью
>+ скрипт обращается к лдап-базе раз в час, что уменьшает трафик
>(с выше 1000 мыльников) и не досаждает АД (контора большая, основано
>все на терминалах - трафу внутреннего дофига, ферма постоянно обращается к
>АД - нагрузка).

Для этого надо лечить АД, чтобы держала нагрузку. Возможно имеет смысл сделать репликацию дерева на дополнительные сервера. Непонятно что значит "с выше 1000 мыльников" - надеюсь  Вы этим термином назвали почтовые ящики, а не почтовые сервера ;-)

>[оверквотинг удален]
>с DNS-записью аля foo.893.domen.aaa.ru и локальный xxxx.local.
>
>Почта на линукс (из интернета не виден, стоит за циской) доставляется заборщиком
>(getmail), во время приема им же прогонятеся через clamd и spamassassin.
>После отдается прокмылу для фильтрации вложений и мелких дополнений для увеличения
>шанса отсеить "грязное" письмо. Эта связка пашет на ура. Дальше прокмыло
>ЛОКАЛЬНО отдает все это добро постфиксу. Что требуется от постфикса:
>
>1. Убить письмо, если адресата нет в сгенерированном файле адресов без оповещения
>отправившего его человека.

   Криво. Вы забываете о честных пользователях, которые тоже могут ошибаться, и будут сильно удивлены если их отправленное письмо, принятое Вашим сервером, "где-то потерялось".

>2. Полный запрет на всевозможные релеи, кроме: с эксченджа в инет без
>каких-либо проверок и локальной отправки от прокмыла на эксчендж с проверкой
>на юзера.

Этого от постфикса требовать не надо, а надо делать по-другому, например как описано Выше.
Если сильно захочется сделать так, как хотите Вы - тогда запустите несколько smtpd/(или целиком постфиксов) на разных портах/адресах/машинах для разных целей - локальной и внешней пересылки.

>3. Замена внутреннего доменного имени root@имя_серва.xxxx.local на внешний адрес имя_серва@domain.ru для локальных
>мыльц, отправляемых только в сторону эксченджа с ошибками/локальными сообщениями.

ИМХО это делается через стандартнейшие алиасы.

>4. Исключить в заголовках писем проходящих наружу через постфикс любые упоминания о
>локальном домене: Received, Message-ID, Return-Path и т.д. Заменить их, например, на
>имя_серва@domen.ru

  Не знаю, как это реализуется чистыми средствами постфикса. Возможно это будет    
  masquerade_domains =
  Скорее всего придется использовать что-то другое.

ЗЫ Потратил более часа на написание ответа и выверку его по документации постфикса и настройкам своих серверов.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Запрещение релея: postfix"  
Сообщение от PavelR (??) on 15-Апр-08, 15:10 
т.е на ответ - пофиг ?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Запрещение релея: postfix"  
Сообщение от Serge email(??) on 15-Апр-08, 16:13 
>т.е на ответ - пофиг ?

нет, не пофиг =). На оборот думаю как написать: развернуто что да как или может лучше аськой: 1434649.

Если кратко, очень благодарен за ответ, тем более столь развернутый. Но есть одно но. Наружу я его вытащить не могу. Т.к. это подмосковье и связь здесь такая, что сервер может быть, а через минуту при общей нагрузке на канал от города в Москву - может и не быть. Так что пока только заборщиком писем. Так, как описали Вы, обычно и делают почтовые релеи, покрайней мере мануалов по такого рода настройкам действительно много. Но, я повторюсь, в моем случае только заборщиком и только локальная передача постфиксу без каких-либо авторизаций до передачи и проверок на существование пользователя...

Вообщем, если не сложно - стукни плиз. На ходу думаю все и решится.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Запрещение релея: postfix"  
Сообщение от Pahanivo email(??) on 14-Апр-08, 08:12 
> RTFM просьба больше не писать. Люди с вражденным знанием всех манов могут
> образоватьсвою высокоразвитую колонку и общаться там на уровне тыканья друг
> друга в man, нам приземленным человекам надо бы объяснить. = )

Людям с вражденными непониманием того, что прежде чем начать работать с чем либо нада для начала прочитать мануал, изучив основные принципы и идеи софта, я всегда писал, пишу и буду писать RTFM.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру