Главная » 2013 » Декабрь » 12 » 13.1. Настройка sendmail
01:59
13.1. Настройка sendmail

Если вы используете дистрибутив, совместимый с RedHat, то вам потребуется установить соответствующие пакеты. Я использую sendmaiI‑8.11.0 и imap‑4.7c2. Последнюю версию sendmail можно выкачать из Интернет по адресу http://www. sendmail. org.

Прежде, чем приступить к настройке sendmail, вам необходимо правильно настроить DNS. Настройка сервера DNS подробно обсуждалась в гл. 10. Если вы настраиваете только почтовый сервер, вам необязательно настраивать сервер DNS на этом же компьютере. Достаточно будет указать DNS‑сервера вашей сети в файле /etc /resolv. conf, чтобы система разрешения имен корректно работала. Впрочем, sendmail можно настроить для работы без использования DNS, но этот вариант я рассматривать не буду.

Для того, чтобы приступить к базовой настройке sendmail, запустите утилиту netconf (см. рис. 13.1). Она работает как и из‑под Х‑Window, так и из‑под консоли. Утилита netconf есть в RedHat Linux, Mandrake, ASPLinux и в других дистрибутивах, ее точно нет в KSI Linux. Естественно, вы должны быть зарегистрированы в системе как root. Если у вас нет программы netconf, вы получите незабываемое удовольствие от редактирования файла /etc/sendmail. cf вручную. Именно в этом файле хранятся все настройки sendmail.

Pиc. 13.1. Конфигуратор netconf

Выберите в меню Mail delivery system, затем Basic sendmail configuration. В поле Present your system as просто введите свое доменное имя. Затем обязательно отметьте флажок «Accept email for your_domain. com» (см. рис. 13.2). Если вы этого не сделаете, через ваш сервер можно будет перенаправить сообщения на другой сервер. При этом через ваш сервер будет идти лишний трафик, который вам совсем ни к чему. Когда‑то даже существовал такой вид атаки на отказ через электронную почту. Принцип его следующий: отправляется письмо от несуществующего пользователя not_exists@A. com другому несуществующему пользователю not_exists@B. com. Письмо отправляется через компьютер hostcom, который позволяет перенаправить сообщение (не включен режим «Accept email for domain. com»). Почтовый сервер домена B. com отправляет сообщение по адресу not_exists@A. com о том, что пользователь not_exists@B. com не существует. В свою очередь, почтовик домена A. com сообщает, что пользователя not_exists@A. com также не существует и отправляет сообщение по адресу not_exists@B. com. Возникает косвенная рекурсия. А теперь представьте, что такое сообщение не одно, а, скажем, 100 и объем каждого хотя бы 1 Мб! В результате один из серверов в цепочке domain1.com – host. com – domain2.com должен «упасть».

Рис. 13.2. Основная конфигурация sendmail

Прошу извинения, я немного отошел от темы, продолжим конфигурировать sendmail. Протокол отправки сообщений установите smtp (Mail gateway protocol).

Этой информации уже вполне достаточно, чтобы ваш sendmail функционировал. Вы можете установить дополнительные опции программы sendmail с помощью netconf.

Теперь сделайте так, чтобы sendmail принимал почту только с разрешенных адресов. Для этого даже не нужно настраивать сам sendmail – нужно только подправить файлы /etc/hosts. allow и /etc/hosts. deny. В первом из них содержится список хостов, которым разрешен доступ к этой машине, а во втором – которым запрещен. Обратите внимание: несмотря на название «разрешен» или «запрещен», ограничения, которые устанавливаются первым файлом намного строже. Например, для запрещения доступа всем хостам, кроме компьютеров вашей сети, в файл /etc/hosts. allow добавьте строку: 192.168.1.

Здесь имеется в виду, что сеть имеет адрес 192.168.1.0 и маску 255.255.255.0. Более подробно о формате файлов hosts. allow и hosts. deny вы можете прочитать, введя команду man hosts. allow.

Теперь настала очередь POP3. После установки пакета imap у вас практически все настроено, т. е. я хочу сказать, что уже можно проверять конфигурацию. Перезапустите демон inetd или xinetd, в зависимости от того, который вы используете, и введите следующее:

В ответ вы должны увидеть примерно следующее:

Это означает, что sendmail работает, осталось проверить насколько правильно он это делает. С этой целью введите примерно следующее:

После этого введите команду data, потом текст сообщения, а для окончания ввода поставьте точку в пустой строке. Sendmail сообщит, что сообщение отправлено (точнее помещено в очередь на отправку). Запись den@den. dhsilabs. com – имя пользователя, которому вы отправляете почту. Пользователь должен реально существовать. Запись den. dhsilabs. com – имя вашего почтовика.

Примечание. Имена den@den. dhsilabs. com и dhsilabs. com даны в качестве примера. Вместо них вы должны указать свои значения.

Обратите внимание, что узла my. host. com и в природе нет, а программа sendmail сообщает, что «Sender Ok». Вот поэтому, в настройках sendmail лучше включить опцию Wait for DNS.

Теперь нужно запустить какой‑нибудь почтовый клиент, например kmail, и получить почту. Используйте следующие настройки сети в программе kmail: Сеть→ Отправка почты установите SMTP, порт 25, имя сервера – имя вашего почтовика, в рассматриваемом примере – это den. dhsilabs. com. Затем добавьте аккаунт для POP3:

Имя пользователя – den

Пароль – пароль, который используется для входа в систему.

Сервер – den. dhsilabs. com

Порт – 110

В результате вы должны получить то сообщение, которое ввели после data. При этом возможны проблемы при разрешении имени. Чтобы их избежать необходимо правильно настроить DNS или вместо имени почтового сервера использовать его IP‑адрес. При добавлении нового пользователя не забудьте установить его пароль для входа в систему. Если этого не сделать, а пытаться получить почту без указания пароля, вы получите сообщение «Сбой аутентификации».

Базовая настройка программы sendmail выполняется очень просто с использованием конфигуратора, но иногда базовой настройки недостаточно. Для более точной настройки нужно ознакомиться с файлами конфигурации программы sendmail.

Примечание. В большинстве случаев, вас будет устраивать базовая настройка до тех пор, пока вас не возьмут под свой «протекторат» спаммеры – тогда вам нужно будет прочесть гл. 23 о методах защиты от спама. Однако может сработать один из законов Мерфи – для вашей системы не будет разработан конфигуратор sendmail и тогда вам все равно придется разбираться с файлами конфигурации.

Основным файлом конфигурации sendmail является файл /etc/sendmail. cf. В некоторых дистрибутивах этот файл расположен в каталоге /etc/mail. Об этом файле говорят, что он длиннее, чем лимузин у Билла Гейтса и что его редактирование происходит в режиме «глаза боятся, руки делают». Если вы не верите мне, откройте этот файл, и вы убедитесь в этом. Редактировать данный файл вручную могут только профессионалы‑администраторы или разработчики программы sendmail.

Обычно для редактирования этого файла используется макропроцессор m4. Сначала вы подготавливаете специальный mc‑файл. В этом файле записаны настройки. sendmail, но в более «читабельном» виде. При редактировании конфигурационных файлов также сказывается и их размер. Для сравнения: размер моего mc‑файла – 2459 байт, а файла sendmail. cf – 46302 байт. Одно дело, редактировать файл размером в два килобайта, и совсем другое, если размер файла равен 46 килобайтам. В отличие от конфигурационного файла sendmail, вы сразу поймете, для чего предназначен тот или иной mc‑файл. Затем, отредактировав mc‑файл, нужно запустить макропроцессор m4 для создания файла конфигурации sendmail:

Перед выполнением этой команды я настоятельно рекомендую сохранить где‑нибудь исходный файл sendmail. cf. В случае некорректной настройки вы всегда сможете восстановить его.

Файл конфигурации по умолчанию, который используется макропроцессором т4 для создания файла конфигурации программы sendmail (sendmail. cf), находится в каталоге /usr/share/sendmail‑cf/cf. В более старых версиях программы sendmail он может быть расположен в каталоге /usr/lib/sendmail.

Как правило, этот файл называется sendmail. mc. Иногда он может называться и по‑другому, например, redhat. mc, если вы используете операционную систему Red Hat или совместимую с ней.

Пример стандартного файла /usr/share/sendmail‑cf/cf/redhat. mc приведен в листинге 13.1.

Листинг 13.1. Стандартный файл redhat. mc

С помощью директивы FEATURE можно подключить ту или иную функцию программы sendmail. Например, функция mailertable предназначена для переопределения маршрутизации для конкретных доменов. Вы можете легко расширить функциональные возможности программы sendmail, добавив нужные вам функции в mc‑файл.

Предположим, что вы хотите, чтобы названия компьютеров домена были скрыты. Это легко достигается с помощью добавления функции masquerade_envelope в ваш mc‑файл. Для этого скопируйте файл redhat. mc в файл hide_hosts. me и добавьте в конец файла hide_hosts. me строки:

Затем выполните команду:

Вот и все! Названия узлов будут скрыты. Описание прочих функций представлено в табл. 13.1.

Функции программы sendmail Таблица 13.1

Функция

Описание

Access_db

Определяет таблицу доступа. В этой таблице указаны хосты, которым разрешена или запрещена отправка почты через ваш почтовый сервер. Эта опция эффективно используется для борьбы со спамом. Защита от спама подробно рассмотрена в одноименном разделе в гл. 23

Accept_unresolvable_domains

Разрешает отправлять почту доменам, которые не могут быть распознаны

Bestmx_is‑local

Сообщения будут приниматься только в том случае, если запись МХ‑сервера DNS указывает на этот почтовый сервер

Blacklist_recipients

«Черный список». Еще одна опция для борьбы со спамом. Для ее работы необходима опция access_db

Dnsbl

Используется для работы с «черным списком», dnsbl – это сокращение от DNS Black List. В более ранних версиях эта опция называлась (Resolve Black List)

Domaintable

Используется для разрешения имен доменов

Genericstable

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

Local_procmail

Указывает, что доставлять почту нужно с помощью локальной утилиты procmail

Mailertable

Переопределяет маршрутизацию для конкретных доменов

Masquerade_entire_domain

Используется для маскировки (сокрытия) всего домена. Данная функция должна использоваться вместе с директивой MASQUERADE AS (или MASQUERADE_DOMAIN), например, MASQUERADE_AS(f117.ru)dnl

Masquerade_envelope

Позволяет скрыть имена хостов домена. Заменяет поле received from заголовка сообщения перед передачей сообщения другим

Redirect

Используется для перенаправления на другой почтовый сервер. Означает отказ от принятия почты с выдачей сообщения please try <address> (попытайтесь использовать этот адрес)

Relay_based_on_MX

Разрешает перенаправление (ретрансляцию) почты только для узлов, которые указаны в записях МХ‑сервера DNS

Relay_hosts_only

Разрешает ретрансляцию только для узлов, указанных в access_db

Relay_mail_from

Разрешает ретрансляцию только, если отправитель указан в списке RELAY базы accessdb

Smrsh

Использование ограниченной оболочки sendmail

Use_cf_file

При указании этой функции sendmail будет обращаться к файлу sendmail. cf за списком доверенных пользователей

Use_cw_file

При указании этой функции sendmail будет обращаться к файлу sendmail. cw за списком локальных узлов

Virtusertable

Преобразует адрес получателя в адрес локального пользователя

В файле /etc/mail/sendmail. cw перечислены все псевдонимы данного почтового сервера. Предположим, что имя вашего сервера mail. dhsilabs. ru. Если отправитель отправит почту по адресу den@mail. dhsilabs. ru, письмо будет без проблем доставлено пользователю den. А если кто‑то отправит письмо по адресу den@dhsilabs. ru, то его доставка вызовет определенные трудности, так как не ясно какому узлу домена dhsilabs адресовано сообщение? Для решения этой проблемы в файл sendmail. cw нужно поместить строку:

Теперь, когда будет приходить почта формата user@dhsilabs. ru, она будет доставлена почтовому серверу mail. dhsilabs. ru.

Напомню, что перед изменением файла sendmail. cf желательно остановить программу sendmail. Это делается с помощью команды:

Запустить sendmail заново можно с помощью команды:

Конечно, удобнее сначала отредактировать файл sendmail. cf с помощью m4, а потом выполнить команду /etc/init. d/sendmail restart для перезапуска программы sendmail.

Категория: Почтовый сервер | Просмотров: 485 | Добавил: spb_serge | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: