Различия
Показаны различия между двумя версиями страницы.
— | wiki:articles:mail_relay [29/11/2012 10:25] (текущий) – создано - внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ^ | ||
+ | \\ | ||
+ | ====== Postfix ====== | ||
+ | // | ||
+ | Шлюз (**mail.mydom.ru**)\\ | ||
+ | Внешний IP-адрес (Internet) - **44.55.66.77**\\ | ||
+ | Внутренний IP-адрес | ||
+ | Exchange | ||
+ | Рабочие файлы. Только нужно будет поменять на свои данные (IP, пути, названия и т.д.) \\ | ||
+ | ^ **в /// | ||
+ | |[[http:// | ||
+ | |[[http:// | ||
+ | |[[http:// | ||
+ | |[[http:// | ||
+ | |[[http:// | ||
+ | |[[http:// | ||
+ | |[[http:// | ||
+ | |[[http:// | ||
+ | |[[http:// | ||
+ | |||
+ | Добавляем необходимые группы и пользователя. | ||
+ | < | ||
+ | # groupadd -g 200 postfix | ||
+ | # useradd -u 200 -d /dev/null -s /bin/false -g postfix postfix | ||
+ | # groupadd -g 201 postdrop | ||
+ | </ | ||
+ | |||
+ | Можно скачать последнюю версию с [[http:// | ||
+ | Подправим // | ||
+ | < | ||
+ | VERSION=${VERSION: | ||
+ | </ | ||
+ | и //info// | ||
+ | < | ||
+ | PRGNAM=" | ||
+ | VERSION=" | ||
+ | HOMEPAGE=" | ||
+ | DOWNLOAD=" | ||
+ | MD5SUM=" | ||
+ | </ | ||
+ | |||
+ | Можем сказать //sbopkg//, чтоб сразу поставил пакет после компиляции. Ну, или как всегда, | ||
+ | |||
+ | И пошли настраивать..\\ | ||
+ | Разрешаем ретрансляцию на почтовом шлюзе для нашего внутреннего почтового сервера. Добавляем IP адрес внутреннего почтового сервера в список серверов параметра // | ||
+ | < | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Доступ на ретрансляцию ограничен адресом localhost почтового шлюза (127.0.0.1) и внутреннего почтового сервера (в нашем примере это 192.168.10.246), | ||
+ | |||
+ | Указываем Postfix на необходимость приема сообщений из внешней сети для хоста внутренней сети. С помощью параметра // | ||
+ | < | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Теперь укажем ему, куда ретранслировать входящие сообщения, | ||
+ | < | ||
+ | | ||
+ | </ | ||
+ | В этой строке //smtp// означает, | ||
+ | Теперь нам нужно создать индексированный файл следующей командой: | ||
+ | < | ||
+ | # postmap hash:/ | ||
+ | </ | ||
+ | |||
+ | И задаем параметр // | ||
+ | < | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Чтобы письма идущие на не существующий адрес, шли «лесом», | ||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | .... | ||
+ | .... | ||
+ | </ | ||
+ | |||
+ | а в //main.cf// добавляем строчку: | ||
+ | < | ||
+ | | ||
+ | </ | ||
+ | |||
+ | и создаем | ||
+ | < | ||
+ | # postmap hash:/ | ||
+ | </ | ||
+ | в итоге получим файл - /// | ||
+ | |||
+ | А если получателей очень много? \\ | ||
+ | Тогда идем на Exchange и запускаем батник // | ||
+ | < | ||
+ | csvde -m -n -g -f " | ||
+ | </ | ||
+ | |||
+ | На выходе получаем файл // | ||
+ | < | ||
+ | | ||
+ | ….. | ||
+ | ….. | ||
+ | " | ||
+ | " | ||
+ | ….. | ||
+ | ….. | ||
+ | </ | ||
+ | |||
+ | Перенесем его на сервер с postfix в /// | ||
+ | Создаем файл /// | ||
+ | < | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | теперь запустим скрипт | ||
+ | < | ||
+ | # | ||
+ | cat ./ | ||
+ | | ||
+ | grep -v -f ./ | ||
+ | </ | ||
+ | |||
+ | получаем файл // | ||
+ | < | ||
+ | # postmap hash:/ | ||
+ | </ | ||
+ | |||
+ | Не забываем, | ||
+ | |||
+ | Запретим демону //master// запускать локальный агент доставки - это будет означать отключение локального агента доставки, | ||
+ | < | ||
+ | # | ||
+ | # ========================================================================== | ||
+ | # service type private unpriv | ||
+ | # | ||
+ | # ========================================================================== | ||
+ | | ||
+ | ….. | ||
+ | ….. | ||
+ | | ||
+ | # | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Теперь настроим exchange для работы с postfix. | ||
+ | |||
+ | Запустим //Exchange System Manager//: | ||
+ | Administrative Groups → Ваша группа (у меня это First Administrative Groups) → | ||
+ | Server → Ваш почтовый сервер → Protocols → SMTP → Клик правой кнопкой мыши на Default Virtual SMTP Server → | ||
+ | Properties → вкладка Delivery → Advanced\\ | ||
+ | {{http:// | ||
+ | Заполним поля, как показано на рисунке. \\ | ||
+ | Помним, | ||
+ | |||
+ | Далее, ограничим количество одновременных исходящих соединений.Жмем на кнопку «// | ||
+ | {{http:// | ||
+ | \\ | ||
+ | \\ | ||
+ | Создадим отдельный коннектор. | ||
+ | Administrative Groups → Ваша группа (у меня это First Administrative Groups) → | ||
+ | Routing Groups → First Routing Group → | ||
+ | правой кнопкой мыши на Connectors → New → SMTP Connector...\\ | ||
+ | | ||
+ | \\ | ||
+ | \\ | ||
+ | Дадим название «//1//», Ставим «// | ||
+ | Нажимаем на кнопку «// | ||
+ | {{http:// | ||
+ | \\ | ||
+ | \\ | ||
+ | Теперь лучше сервисы exchange перезапустить.\\ | ||
+ | Стартануть Postfix | ||
+ | < | ||
+ | # / | ||
+ | </ | ||
+ | |||
+ | поправить // | ||
+ | < | ||
+ | # / | ||
+ | </ | ||
+ | |||
+ | Теперь Postfix будет принимать и отдавать Exchange все, что только в него свалиться для домена mydom.ru, отфильтровывая только не существующие ящики.\\ | ||
+ | Но этого " | ||
+ | |||
+ | Прикрутим антивирус (// | ||
+ | |||
+ | ====== ClamAV ====== | ||
+ | |||
+ | Скачиваем [[http:// | ||
+ | Перед инсталляцией необходимо создать группу и юзверя //clamav//: | ||
+ | < | ||
+ | # groupadd -g 210 clamav | ||
+ | # useradd -u 210 -d /dev/null -s /bin/false -g clamav clamav | ||
+ | # configure --prefix=/ | ||
+ | # make | ||
+ | # make install DESTDIR=/ | ||
+ | # cd / | ||
+ | # makepkg -l y -c n / | ||
+ | # installpkg / | ||
+ | </ | ||
+ | |||
+ | Редактируем /// | ||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | User clamav | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | все остальное оставляем по умолчанию. | ||
+ | |||
+ | Создаем каталог /// | ||
+ | < | ||
+ | # chown clamav: | ||
+ | # chown clamav: | ||
+ | # clamd | ||
+ | </ | ||
+ | |||
+ | Настраиваем **// | ||
+ | Редактируем | ||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Открываем для // | ||
+ | < | ||
+ | | ||
+ | </ | ||
+ | |||
+ | и рестартуем. | ||
+ | < | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | Создаем | ||
+ | < | ||
+ | # chown clamav: | ||
+ | # freshclam | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | ====== ClamSMTP ====== | ||
+ | |||
+ | Скачиваем [[http:// | ||
+ | < | ||
+ | # configure --prefix=/ | ||
+ | # make | ||
+ | # make install DESTDIR=/ | ||
+ | # cd / | ||
+ | # makepkg -l y -c n / | ||
+ | # installpkg / | ||
+ | </ | ||
+ | |||
+ | Редактируем /// | ||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | User: clamav | ||
+ | </ | ||
+ | |||
+ | Создадим | ||
+ | < | ||
+ | #! /bin/bash | ||
+ | |||
+ | | ||
+ | { | ||
+ | if [ -f / | ||
+ | if ps xa | grep ^$(head -1 / | ||
+ | echo " | ||
+ | else | ||
+ | rm -r / | ||
+ | fi | ||
+ | fi | ||
+ | echo "Start a ClamAv antivirus" | ||
+ | | ||
+ | |||
+ | if [ -f / | ||
+ | if ps xa | grep ^$(head -1 / | ||
+ | echo " | ||
+ | else | ||
+ | rm -r / | ||
+ | fi | ||
+ | fi | ||
+ | echo "Start a freshclam" | ||
+ | | ||
+ | echo "Start a ClamSMTP" | ||
+ | | ||
+ | } | ||
+ | |||
+ | | ||
+ | { | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | case $1 in | ||
+ | start) | ||
+ | start ;; | ||
+ | stop) | ||
+ | stop ;; | ||
+ | restart) | ||
+ | stop | ||
+ | start ;; | ||
+ | *) | ||
+ | echo "Usage rc.clamav start|stop|restart" | ||
+ | exit 88 | ||
+ | esac | ||
+ | </ | ||
+ | |||
+ | И запускаем: | ||
+ | < | ||
+ | #/ | ||
+ | #/ | ||
+ | </ | ||
+ | |||
+ | ====== Spamassasin ====== | ||
+ | |||
+ | Скачиваем [[http:// | ||
+ | < | ||
+ | # perl Makefile.PL | ||
+ | </ | ||
+ | |||
+ | Если ругается на модули (типа // | ||
+ | < | ||
+ | # perl -MCPAN -e shell | ||
+ | cpan shell -- CPAN exploration and modules installation (v1.9402) | ||
+ | Enter ' | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Когда установку модулей закончили повторяем и продолжаем: | ||
+ | < | ||
+ | # perl Makefile.PL | ||
+ | # make | ||
+ | # make install | ||
+ | </ | ||
+ | |||
+ | После установке правим файл /// | ||
+ | < | ||
+ | rewrite_header Subject *****SPAM***** | ||
+ | report_safe 2 | ||
+ | trusted_networks 192.168.10. | ||
+ | trusted_networks 127. | ||
+ | lock_method flock | ||
+ | required_score 6.0 | ||
+ | use_bayes 1 | ||
+ | bayes_auto_learn 1 | ||
+ | bayes_ignore_header X-Bogosity | ||
+ | bayes_ignore_header X-Spam-Flag | ||
+ | bayes_ignore_header X-Spam-Status | ||
+ | |||
+ | | ||
+ | shortcircuit USER_IN_WHITELIST | ||
+ | shortcircuit USER_IN_BLACKLIST | ||
+ | endif # Mail:: | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | // | ||
+ | |||
+ | Создаем | ||
+ | |||
+ | А теперь все свяжем! \\ | ||
+ | Приводим файл /// | ||
+ | < | ||
+ | # | ||
+ | # ========================================================================== | ||
+ | # service type private unpriv | ||
+ | # | ||
+ | # ========================================================================== | ||
+ | | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | | ||
+ | | ||
+ | -o smtp_send_xforward_command=yes | ||
+ | -o smtp_tls_security_level=none | ||
+ | | ||
+ | | ||
+ | -o content_filter= | ||
+ | -o receive_override_options=no_unknown_recipient_checks, | ||
+ | -o smtpd_helo_restrictions= | ||
+ | -o smtpd_client_restrictions= | ||
+ | -o smtpd_sender_restrictions= | ||
+ | -o smtpd_recipient_restrictions=permit_mynetworks, | ||
+ | -o mynetworks_style=host | ||
+ | -o smtpd_authorized_xforward_hosts=127.0.0.0/ | ||
+ | | ||
+ | | ||
+ | -o content_filter=spam: | ||
+ | | ||
+ | | ||
+ | flags=R user=mailagent argv=/ | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | # | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | # When relaying mail as backup MX, disable fallback_relay to avoid MX loops | ||
+ | | ||
+ | -o smtp_fallback_relay= | ||
+ | # | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | # | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Рестартанем //postfix// и запустим //spamd//: | ||
+ | < | ||
+ | # / | ||
+ | # / | ||
+ | </ | ||
+ | |||
+ | Чтобы при перезагрузке системы все загружалось само, добавим в /// | ||
+ | < | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | В приложенном, | ||
+ | Я их не привожу, | ||
+ | О всех этих настройках можно узнать (и очень советую) из нижеприведенной книги. | ||
+ | |||
+ | **Ссылался на....**\\ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | // | ||
+ | [[http:// | ||
+ | \\ | ||
+ | [[http:// |