Руководство администратора Linux по безопасности

       

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
.


Содержание раздела