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

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
landrower
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-06 16:14:25
Откуда: Нижний Новгород
Контактная информация:

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

Непрочитанное сообщение landrower » 2008-11-06 16:29:20

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


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

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

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

Непрочитанное сообщение dikens3 » 2008-11-06 17:28:07

А в чём проблема установить Exim, который все проверит и перешлёт на твой Exchange?

smarthost это дело называется.
http://www.lissyara.su/?id=1220#20.8
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

landrower
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-06 16:14:25
Откуда: Нижний Новгород
Контактная информация:

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

Непрочитанное сообщение landrower » 2008-11-07 11:35:24

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 нет.
Что дальше?
Не торопись, а то успеешь.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

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

Непрочитанное сообщение dikens3 » 2008-11-07 11:45:39

Настроил 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;
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

landrower
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-06 16:14:25
Откуда: Нижний Новгород
Контактная информация:

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

Непрочитанное сообщение landrower » 2008-11-07 12:43:34

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

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

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

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

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

Непрочитанное сообщение dikens3 » 2008-11-07 14:27:27

А он и не нужен (php и Apache).
В статье слишком сложная конструкция с излишними накрутками.
Убери всё, и сделай то, что тебе нужно.

Как что не получится пиши сюда. А то только разговоры.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Alex_hha
лейтенант
Сообщения: 755
Зарегистрирован: 2005-11-06 18:25:26
Контактная информация:

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

Непрочитанное сообщение Alex_hha » 2008-11-07 14:48:43

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

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

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

Непрочитанное сообщение manefesto » 2008-11-07 15:05:34

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

Alex_hha
лейтенант
Сообщения: 755
Зарегистрирован: 2005-11-06 18:25:26
Контактная информация:

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

Непрочитанное сообщение Alex_hha » 2008-11-07 16:52:24

чо там поднимать ?
Если автор пишет - "Поднимать Апачи и ПХП я морально не готов" ;)

landrower
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-06 16:14:25
Откуда: Нижний Новгород
Контактная информация:

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

Непрочитанное сообщение landrower » 2008-11-08 18:11:19

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

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

landrower
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-06 16:14:25
Откуда: Нижний Новгород
Контактная информация:

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

Непрочитанное сообщение landrower » 2008-11-10 15:34:54

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

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

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

Непрочитанное сообщение dikens3 » 2008-11-10 17:39:57

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

1-й аргумент (!+local_domains в твоём случае) - это для кого.
2-й агрумент - кому.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

landrower
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-06 16:14:25
Откуда: Нижний Новгород
Контактная информация:

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

Непрочитанное сообщение landrower » 2008-11-10 18:53:32

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 указывался.
Не торопись, а то успеешь.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

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

Непрочитанное сообщение dikens3 » 2008-11-10 19:31:22

Я 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
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

landrower
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-06 16:14:25
Откуда: Нижний Новгород
Контактная информация:

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

Непрочитанное сообщение landrower » 2008-11-11 11:07:05

Перечитал часть мануала по роутерам. Все-таки начну пробовать со smarthost'a.

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

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

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

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

Непрочитанное сообщение dikens3 » 2008-11-11 11:53:20

В противном случае вопрос - где ему указывать хост, с которого почту лить??
Не понял я про что вопрос. 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 = :
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

landrower
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-06 16:14:25
Откуда: Нижний Новгород
Контактная информация:

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

Непрочитанное сообщение landrower » 2008-11-12 14:48:49

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

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

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

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

Непрочитанное сообщение dikens3 » 2008-11-12 16:52:06

spamassasin,dspam
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

landrower
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-06 16:14:25
Откуда: Нижний Новгород
Контактная информация:

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

Непрочитанное сообщение landrower » 2008-11-13 11:08:32

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

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

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

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

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

white.ru
domain.ru
Это так?
Не торопись, а то успеешь.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

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

Непрочитанное сообщение dikens3 » 2008-11-13 11:23:16

С хостами ты погорячился, хост то будет один. А с доменами пробуй, у меня всё в mysql.

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

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

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

Можно переменную $sender_address_domain заюзать.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

landrower
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-06 16:14:25
Откуда: Нижний Новгород
Контактная информация:

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

Непрочитанное сообщение landrower » 2008-11-17 13:34:31

В конфиге должно появиться для конкретных пользователей:

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

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!"
Не торопись, а то успеешь.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

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

Непрочитанное сообщение dikens3 » 2008-11-17 14:31:50

Список переменных:
http://www.lissyara.su/?id=1211#11.8

Существует ли переменная типа sender_domain?
А что в ней должно быть по твоему? и чем не устраивает:
Можно переменную $sender_address_domain заюзать.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

landrower
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-06 16:14:25
Откуда: Нижний Новгород
Контактная информация:

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

Непрочитанное сообщение landrower » 2008-11-17 15:08:26

Я лузер, неудачник и поиск меня ненавидит *стыд*
Завтра буду пробовать.
По крайней мере, до соединения с базами MySQL все работало путем :)
Не торопись, а то успеешь.

landrower
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-06 16:14:25
Откуда: Нижний Новгород
Контактная информация:

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

Непрочитанное сообщение landrower » 2008-11-18 17:09:41

Пришлось отказаться от MySQL. Сделал три файла, по строкам перечислены домены/хосты/пользователи соответственно.

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

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

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

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

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

Непрочитанное сообщение dikens3 » 2008-11-18 17:43:10

да проще можно:

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

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