Страница 1 из 2

Сборка внешней почты и её обслуживание

Добавлено: 2008-11-06 16:29:20
landrower
Ситуация следующая.
Есть локальная сеть под управлением WinServer2K3. Пользовательские ПК - под Windows Vista и XP.
Установлен почтовый сервер Exchange 2007.
Вся внешняя почта приходит на отдельный ящик вне локальной сети.
Необходимо под FreeBSD 7.0 настроить сборщик внешней почты (забирать с внешнего почтового ящика и пересылать в лапы Exchange), под ней же настроить проверку на спам и вирусы.


Я смог настроить fetchmail для забора почты по POP3 и пересылки по SMTP. Возможно осуществить проверки без организации хранения писем на FreeBSD-сервере или нет, и если да, то чем воспользоваться?

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-06 17:28:07
dikens3
А в чём проблема установить Exim, который все проверит и перешлёт на твой Exchange?

smarthost это дело называется.
http://www.lissyara.su/?id=1220#20.8

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-07 11:35:24
landrower
dikens3 писал(а):А в чём проблема установить Exim, который все проверит и перешлёт на твой Exchange?

smarthost это дело называется.
http://www.lissyara.su/?id=1220#20.8
Очень недавно сел за администрирование под FreeBSD, еще толком не разобрался в софте и т.д.

Можно по порядку?
Установил exim по инструкции из http://www.opennet.ru/docs/RUS/exim_guide/1204.html (собрано с поддержкой WITH_CONTENT_SCAN) на сервак в локали bsd.domain.local.
Настроил fetchmail, забирающий с внешнего сервера mail.domain.out из внешки почту по POP3 и сразу пересылающий её exchange'у на exc.domain.local. Т.е. никакого взаимодействия с exim нет.
Что дальше?

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-07 11:45:39
dikens3
Настроил fetchmail, забирающий с внешнего сервера mail.domain.out из внешки почту по POP3 и сразу пересылающий её exchange'у на exc.domain.local. Т.е. никакого взаимодействия с exim нет.
пересылать должен exim.

Вот пример:
http://www.lissyara.su/?id=1728
# Забираем почту c cancer@mail.ru кладем в cancer@domain-ak.ru
poll pop.mail.ru with protocol POP3:
no dns, user cancer@mail.ru password пароль is cancer@domain-ak.ru here;

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-07 12:43:34
landrower
В статье слишком сложная конструкция с излишними накрутками.
Надо реализовать:
1. Сбор по POP3.
2. Проверку на спам и вирусы.
3. Отправку на Exchange по SMTP.

Было бы идеально просто накрутить поверх fetchmail антивирус и антиспам, которые проверяют то, что идет через 110 порт. Такие существуют?

Поднимать Апачи и ПХП я морально не готов =).

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-07 14:27:27
dikens3
А он и не нужен (php и Apache).
В статье слишком сложная конструкция с излишними накрутками.
Убери всё, и сделай то, что тебе нужно.

Как что не получится пиши сюда. А то только разговоры.

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-07 14:48:43
Alex_hha
Для первого знакомства exim очень тяжелый. Особенно учитывая фразу - "Поднимать Апачи и ПХП я морально не готов" ;)

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-07 15:05:34
manefesto
Alex_hha писал(а):Для первого знакомства exim очень тяжелый. Особенно учитывая фразу - "Поднимать Апачи и ПХП я морально не готов" ;)
чо там поднимать ?
Ну это я так...крикнул

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-07 16:52:24
Alex_hha
чо там поднимать ?
Если автор пишет - "Поднимать Апачи и ПХП я морально не готов" ;)

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-08 18:11:19
landrower
Немного покопался, вроде вкурил что к чему.
В понедельник сяду за дело, всем спасибо за внимание =).
Морально не готов - я под БСД сижу первые свои недели. Ровно столько же я решаю админские задачи не под Виндой =).

Все, прекращаю флудить.

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-10 15:34:54
landrower
Exim поставил, конфиг разобрал и поправил "под свои нужды" до секции роутеров ("begin routers").
Возникли следующие вопросы.
1. Если не поднимать Апачи и MySQL для ведения БД с пользователями и их ящиками, где их указать вручную?
2. Чтобы свежевыбранная почта сразу после проверок высылалась на exc.domain.local, надо в секции роутеров приписать самым первым:
smart_route:
driver = "manualroute"
transport = remote_smtp
route_list = !+local_domains exc.domain.local

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-10 17:39:57
dikens3
landrower писал(а):Exim поставил, конфиг разобрал и поправил "под свои нужды" до секции роутеров ("begin routers").
Возникли следующие вопросы.
1. Если не поднимать Апачи и MySQL для ведения БД с пользователями и их ящиками, где их указать вручную?
Почему речь идёт о пользователях, которые на exchange?
Зачем тебе пользователи, у тебя должна быть проверка(обработка спама и вирусов) и отправка на exc.domain.local.
landrower писал(а):route_list = !+local_domains exc.domain.local
Ты ещё не понял как это работает.

1-й аргумент (!+local_domains в твоём случае) - это для кого.
2-й агрумент - кому.

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-10 18:53:32
landrower
dikens3 писал(а):Почему речь идёт о пользователях, которые на exchange?
Зачем тебе пользователи, у тебя должна быть проверка(обработка спама и вирусов) и отправка на exc.domain.local
Нужна по крайней мере одна postmaster'ская учетка для аутентификации на удаленном сервере, или как exim будет выгребать почту?
UPD. перепутал с настройкой многострадального fetchmail'a =)
Т.е. первым маршрутом надо указать:
smart_route:
driver = "manualroute"
transport = remote_smtp
route_list = local_domains exc.domain.local
список "для кого" по идее ведь в local_domains указывался.

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-10 19:31:22
dikens3
Я fetchmail плохо помню. Посмотри. А так нормально.

Над роутерами подумай, документацию почитай. Транспорт для пользователей тебе точно не нужен в таком случае.(раз уж роутер всё таки нужен)

http://www.lissyara.su/?id=1207#7.3
http://www.lissyara.su/?id=1215

Там скорее нужно чтобы этот роутер всегда положительный результат возвращал и делов.

например в доку есть такое.

Код: Выделить всё

postmaster:
  driver = redirect
  local_parts = postmaster
  data = postmaster@real.domain.example

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-11 11:07:05
landrower
Перечитал часть мануала по роутерам. Все-таки начну пробовать со smarthost'a.

Код: Выделить всё

smart_route:
    driver = "manualroute"
    domains = +local_domains
    transport = remote_smtp
    route_list = * exc.domain.local
Перечитал, что exim входящую почту принимает таки только по SMTP. Ну, опять же судя по мануалам, тот же fetchmail должен будет нормально пересылать забранную почту на локалхост... Попробую так.
В противном случае вопрос - где ему указывать хост, с которого почту лить??

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-11 11:53:20
dikens3
В противном случае вопрос - где ему указывать хост, с которого почту лить??
Не понял я про что вопрос. Exim принимает почту как по SMTP(TCP?) так и без.
http://www.lissyara.su/?id=1214
“acl_not_smtp” - ACL для не-SMTP сообщений
http://www.lissyara.su/?id=1173
### конфигурация ACL для входящей почты
begin acl

# Эти правила срабатывают для каждого получателя
acl_check_rcpt:


# принимать сообщения которые пришли с локалхоста,
# не по TCP/IP
accept hosts = :

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-12 14:48:49
landrower
Ну, можно меня немножко поздравить - тестовые письма понемножку ходят :)
Спасибо за наводку в самом начале на маршрут к smart_host.

Теперь задам вопрос немножко по другой теме.
Все acl'ы из конфигов http://www.lissyara.su/?id=1728 я уже адаптировал, собственно вопрос - какую утилиту можно прикрутить на роль антиспама?

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-12 16:52:06
dikens3
spamassasin,dspam

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-13 11:08:32
landrower
Возникла необходимость настроить что-то вроде "белого листа" - чтобы письма с конкретных адресов или доменов не проверялись дальнейшими acl'ами. Список адресов должен храниться в файле.
Я понимаю, это делается следующим образом:
делается новый acl, ставится самым первым,

Код: Выделить всё

accept  hosts = /home/user1/white_hosts
control = submission

accept  domains = /home/user1/white_domains
control = submission
а в самих файлах перечисление вида

Код: Выделить всё

white.ru
domain.ru
Это так?

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-13 11:23:16
dikens3
С хостами ты погорячился, хост то будет один. А с доменами пробуй, у меня всё в mysql.

http://www.lissyara.su/?id=1209

И не domans - Это кому (Домен получателя)
а sender_domains или что-то типа этого.

Вот ещё пример:
http://www.lissyara.su/?id=1211#11.1

Можно переменную $sender_address_domain заюзать.

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-17 13:34:31
landrower
В конфиге должно появиться для конкретных пользователей:

Код: Выделить всё

accept condition     = ${if eq{${lookup mysql {select `mailbox` from `white_hosts`\
                where `creds`={$sender_address}}}}{yes}{no}}
Для доменов:
никак не могу придумать конструкцию, чтобы $sender_address сравнивался со значением типа @domain.ru из таблицы domains, но суть похоже та же. Существует ли переменная типа sender_domai :oops: n?

И защита от отправки несуществующим пользователям будет выглядеть так:

Код: Выделить всё

deny condition     = ${if eq{${lookup mysql {select `mailbox` from `users` \
                where `creds`={$recipient_address}}}}{no}{yes}}
message "Recipient doesn't exist!"

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-17 14:31:50
dikens3
Список переменных:
http://www.lissyara.su/?id=1211#11.8

Существует ли переменная типа sender_domain?
А что в ней должно быть по твоему? и чем не устраивает:
Можно переменную $sender_address_domain заюзать.

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-17 15:08:26
landrower
Я лузер, неудачник и поиск меня ненавидит *стыд*
Завтра буду пробовать.
По крайней мере, до соединения с базами MySQL все работало путем :)

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-18 17:09:41
landrower
Пришлось отказаться от MySQL. Сделал три файла, по строкам перечислены домены/хосты/пользователи соответственно.

Я надеюсь, последняя моя просьба в этой теме - проверить правильность вставки условия отброса всех писем, адресованных несуществующим адресатам (в файле users построчно перечислены существующие пользовательские почтовые ящики):

Код: Выделить всё

deny condition = ${if eq{${lookup {$recipient_address}\
                           lsearch{/home/user1/users}}}{no}{yes}}
message = "Recipient doesnt exist!"
Вставить его в верхней части, до проверок на допустимые символы, "белые листы" и т.д.
Я прав?

Re: Сборка внешней почты и её обслуживание

Добавлено: 2008-11-18 17:43:10
dikens3
да проще можно:

Код: Выделить всё

deny    domains    = +local_domains
        message    = "Unknown user"
        verify     = recipient 
Вставить его в верхней части, до проверок на допустимые символы, "белые листы" и т.д.
Я прав?
Как нравится.