Sendmail
Sendmail наиболее распространенный сервер почты. Но сейчас его активно вытесняет пакет Postfix.
Sendmail заработал себя очень плохую репутацию защиты, однако новые версии исправили почти все ошибки. К тому же, добавлена система противоспамовой обороны. Подробности о Sendmail и исходниках есть на http://www.sendmail.org.
Chrooting Sendmail хорошая опция, но требует много работы, и так как он все равно работает как root, довольно спорно относительно эффективности (так как root может убегать из тюрьмы chroot'ed).
Обновление Sendmail не особенно трудная задача. Лучше всего использовать ряд 8.9 из-за минимума ошибок и противоспамовой обороны. Можно скачать исходники с ftp://ftp.sendmail.org, но откомпилировать Sendmail не так просто.
Sendmail должен быть доступен из внешнего мира только при приеме почты. Sendmail лучше не запускать в режиме демона (когда он ждет соединений), можно запустить его в режиме очереди, когда он время от времени просыпается и доставляет почту, скопившую в очереди.
Для такого запуска поправьте скрипт запуска Sendmail, и замените в нем строку:
sendmail -bd -q1h
на строку:
sendmail -q1h
Пожалуйста обратите внимание: если Вы используете систему, чтобы послать большое количество email, Вы можете установить время обработки очереди ниже, возможно, "-q15m" (обрабатывать очередь каждые 15 минут).
Теперь о системе противоспамовой обороны. В одной из win-программ я встретил настройку по умолчанию "Посылать в ответ файл", а в качестве имени файла было прописано "c:\windows\win386.swp". Здесь все не настолько радикально. Sendmail настраивается несколькими файлами настройки (применительно к Sendmail 8.9.x):
/etc/sendmail.cf
Основной файл настройки, также сообщает, где искать другие файлы конфигурации.
/etc/mail
Вы можете определять расположение файлов конфигурации в sendmail.cf, обычно люди помещают их в /etc или в /etc/mail.
access
База данных списков доступа, позволяет Вам отклонять email из некоторых источников (IP или доменов). Мой файл доступа выглядит следующим образом:
10.0.0 RELAY spam.com REJECT
Что означает 10.0.0.* ( хостам моей внутренней сети) разрешено использовать сервер для передачи почты куда угодно, а все со *.spam.com будет отклонено. Имеются интерактивные списки известных спамеров, обычно они 5-10,000 записей в длину, что может серьезно препятствовать эффективности sendmail (поскольку каждое подключение проверяется по этому списку), с другой стороны использование Вашей sendmail-машины, чтобы посылать spam куда хуже.
aliases
Файл псевдонимов, позволяет Вам управлять доставкой почты, локальной для системы. Большинство пакетов списков рассылки используют данный файл, чтобы получить почту, посланную спискам, и направить ее программам, которые фактически обрабатывают их. Не забудьте выполнить команду "newaliases" после редактирования этого файла и затем перезапустить sendmail.
domaintable
Таблица обрабатываемых доменов (полезно для виртуальных хостов).
majordomo
Файл конфигурации для majordomo.
sendmail.cw
Файл, содержащий имена хостов, для которых мы получаем email, полезно если Вы являетесь хостом более чем для одного домена.
sendmail.hf
расположение справочного файла (зайдите в telnet на 25 и введите "HELP")
virtusertable
Таблица виртуальных пользователей для отображения их в реальные (например, sales@example.org в john@example.org).
Sendmail 8.9.x (и предыдущие версии) реально не поддерживал регистрацию всего email. Обещана такая поддержка в Sendmail 8.10.x. До тех пор имеются 2 пути регистрации email, первый изящный и регистрирует email приходящий пользователям на основании имени пользователя. Второй метод не изящен и включает простой необработанный файл регистрации всех SMTP транзакций, Вы должны написать некоторый сортировщик (вероятно, на perl) чтобы сделать файл регистрации полезным.
Почта (входящие SMTP подключения, чтобы быть более точным) сначала фильтруется файлом доступа, здесь мы можем отклонить почту из некоторого домена/IP и передать почту из некоторых хостов (например, с внутренней сети машин под windows). Все локальные домены будут проверены через файл sendmail.cw. Почта будет обработана в соответствии с заданными правилами и поставлена в очередь для локальной доставки, затем будет проверен файл virtusertable, который представляет соответствия адресов именам пользователя, например так:
seifried@seifried.org alias-seifried listuser@seifried.org listuser @seifried.org mangled-emails
Последнее правило перехватывает письма с поврежденными адресами и пересылает их в специально выделенный ящик. Будет также проверен файл псевдонимов и почта будет доставлена в соответствии с записями в нем. Например, мой псевдоним для seifried такой:
alias-seifried: seifried, "/var/backup-spool/seifried"
Этим путем мой email попадает в мой основной и резервный почтовые ящики. Если я удалю письмо, оно уцелеет в другом ящике! Microsoft Outlook... Приведу перевод данной фразы, который дал пакет Stylus, по-моему, это один из тех, увы, немногих случаев, когда машинный перевод себя оправдал: "Перспектива Microsoft решает к рвоте когда-нибудь и брандспойту мои почтовые ящики.". Кратко и выразительно... И, увы, очень правильно. Это также полезно для корпораций, поскольку Вы теперь имеете копию всего входящего email на основании имени пользователя, и можете позволять (или не позволять) им обращаться к файлу, содержащему сохраненную почту.
Одна проблема при использовании правила catch-all для домена (то есть, для @seifried.org): Вы должны создать псевдоним для КАЖДОГО пользователя и списка рассылки. Иначе при просмотре списка, если не будет найдена запись для конкретного адреса (например, mailing-list@seifried.org), вся почта для него окажется в ящике для почты с поврежденным адресом. Так что с этим правилом надо поосторожней.
Второй метод очень прост, Вы просто запускаете sendmail с -X опцией и определяете файл, чтобы регистрировать все транзакции. Этот файл будет становиться очень большим очень быстро, я не рекомендовал бы использовать этот метод регистрации почты без крайней необходимости.
Dynamic Relay Authorization Control
Dynamic Relay Authorization Control (DRAC) связывается с Вашим сервером POP/IMAP, чтобы временно предоставить доступ к SMTP хостам, которые успешно авторизуются и обрабатывают почту. Вы можете получить пакет с
http://mail.cc.umanitoba.ca/drac/index.html.