ГЛАВА 33. LINUX RED HAT 7.1 КАК ПОЧТОВЫЙ СЕРВЕР: МОЩЬ SENDMAIL

1. Глава 33. Linux Red Hat 7.1 как почтовый сервер: мощь Sendmail

 

Глава 33 . Linux Red Hat 7.1 как почтовый сервер: мощь Sendmail

  • Концепция транспортного агента почты
  • Sendmail как основной транспортный агент почты
  • Конфигурирование Sendmail при помощи m4

В этой главе мы рассмотрим, как с использованием транспортного агента почты Sendmail превратить Linux в почтовый сервер организации.

Необходимость в почтовом сервере возникает тогда, когда связывается множество рабочих станций в сети и необходимо обеспечить для них сервис e-mail. Sendmail позволяет конфигурировать систему Linux для работы в качестве почтового сервера для внутренней переписки, отправки сообщений в Internet и получения сообщений из Internet.

В начале главы рассмотрена концепция МТА (Mail Transport Agent - Транспортный агент почты), затем дан краткий обзор Sendmail, основного МТА в мире Unix, а также некоторых альтернативных программ МТА. В завершение приведены рекомендации по конфигурированию Sendmail.

 

2. Концепция транспортного агента почты

 

Концепция транспортного агента почты

Обычно пользователи принимают за систему e-mail программное обеспечение для чтения, создания и отправки сообщений. Таким программным обеспечением может быть почтовый модуль Netscape Communicator, Eudora, Pegasus Mail или pine, но все эти программы просто реализуют удобный интерфейс к системам, которые действительно выполняют работу по маршрутизации и получению почты.

Ни в одном из этих случаев программное обеспечение пользователя фактически не выполняет отправку исходящей или получение входящей почты. Перечисленные программы являются Mail User Agents (MUAs - Почтовыми агентами пользователя). Существует множество разнообразных MUA - на все вкусы. И именно они реализуют пользовательский интерфейс в мир e-mail.

За такими MUA-программами стоят транспортные агенты почты. МТА выполняют доставку, получение и маршрутизацию почтовых сообщений. Все МТА твердо придерживаются некоторых стандартных протоколов (например, Простого Протокола Транспорта Почты, известного как SMTP), которые реализуют систему электронной почты Internet (и систему электронной почты почти каждой сети Unix).

Это различие между MUA и МТА имеет очень большое значение. При установке почтового сервера в сети организации или в любой другой компьютерной сети, необходимо работать именно с транспортными почтовыми агентами.

Дополнительные сведения о различных МТА доступны на странице Linux Electronic Mail Admi-nistrator-HOWTO по адресу http: //www. linuxdoc. org/HOWTO/Mail-Administrator-HOWTO.html.

 

3. Sendmail как основной транспортный агент почты

 

Sendmail как основной транспортный агент почты

Похоже, наиболее популярным МТА в мире Unix является программа Sendmail. Эта программа определяет почтовую систему, которая обеспечивает связь с Internet, поддерживая привычную адресацию (username@some. domain) и предоставляя стандартные услуги (такие, как автоматическая пересылка почты).

Являясь наиболее популярной программой, Sendmail вырос до самого мощного и сложного МТА систем Unix. Фактически, конфигурирование и управление системой Sendmail может быть настолько сложным в большой организации, что данному вопросу следовало бы посвятить целую книгу.

В главе обращено внимание на конфигурирование и использование Sendmail потому, что именно эта программа является МТА по умолчанию в Red Hat Linux, впрочем, как и в сетях Unix.

Предупреждение

В главе дан общий обзор программы Sendmail и задач ее конфигурирования. Чтобы получить более подробные сведения, обратитесь на Web-сайт www. sendipail. org.

Для начала коротко рассмотрим некоторые альтернативные МТА для Linux.

 

4. Small

 

Small

Sendmail может быть основным транспортным агентом почты в Unix, но в мире Linux чаще используется как МТА программа smail. Отконфигурировать smail проще, чем Sendmail (хотя не всегда). Программа smail обеспечивает те же функции с поддержкой SMTP и UUCP, что делает возможным ее использование в качестве интерактивного почтового сервера.

Пакет smail не входит в состав Linux Red Hat 7.1, в качестве МТА по умолчанию используется Sendmail. Для загрузки последней версии smail обратитесь по адресу ftp: / / ftp. planix. com/ pub/Smail/ или поищите после днюю версию пакета RPM по адресу http: //www.rpmfind.net.

 

5. Qmail

 

Qmail

Программ Qmail является альтернативой Sendmail. Хотя программа Qmail не столь известна, как smail, она выполняет некоторые функции, делающие ее конкурентоспособной на рынке МТА.

Разработчик Qmail обратил особое внимание на реализацию функций защиты. За последние годы в Sendmail обнаружен ряд ошибок в защите, которые впоследствии были исправлены. Философия Qmail состоит в том, чтобы сделать все возможное для исключения скрытых изъянов в системе безопасности, поскольку почта постоянно открыта для попыток взлома.

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

Qmail выполняет и обычные функции, характерные для традиционных МТА: пересылка, использование псевдонимов, списки рассылки, управление загрузкой и т.п.

Домашняя страница Qmail - http: //www.qmail.org. На ней приведен список коммерческих организаций, обеспечивающих необходимую поддержку.

 

6. Конфигурирование Sendmail при помощи m4

 

Конфигурирование Sendmail при помощи m4

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

Настройки Sendmail сохраняются в /etc/sendmail .cf. Даже беглый взгляд на конфигурационный файл, заданный по умолчанию в Red Hat Linux 7.1, позволяет оценить всю сложность конфигурирования системы.

Просматривая файл, обратите внимание, что он содержит большое количество чрезвычайно загадочных правил, определяющих поведение Sendmail. Любой пользователь, не являющийся экспертом в Sendmail, совершил бы серьезную ошибку, взявшись конфигурировать базисную систему, вручную создавая и редактируя файл конфигурации.

К счастью, для создания файла конфигурации в Sendmail предусмотрена специальная программа m4. Она позволяет создавать более простые файлы конфигурации. Затем т 4 обрабатывает эти файлы и преобразует их в файлы конфигурации Sendmail. Все, кроме самых опытных пользователей, создают файл конфигурации Sendmail именно этим способом.

Примечание

Дискуссии по вопросу конфигурирования Sendmail при помощи m4 доступны на странице http://www.sendmail.org/m4/readme.html . Пример конфигурирования Sendmail при ПОМОЩИ т 4 приведен на странице http: //www.sendmail.org/m4/intro.html.

Этот параграф начинается с инсталляции необходимых для работы т 4 файлов конфигурации Sendmail, затем дан обзор интерактивного почтового сервера.

 

7. Инсталляция файлов конфигурации Sendmail

 

Инсталляция файлов конфигурации Sendmail

На момент написания книги программа Sendmail была поделена на три отдельных RPM-пакета: пакет собственно программ, пакет конфигурационных утилит и пакет документации. Если вы обращаетесь к Sendmail впервые (или впервые конфигурируете программу), вам следует установить все три пакета. Вы можете их установить с CD-ROM, прилагаемого к книге:

$ rpm -i /mnt/cdrom/RedHat/RPMS/sendmail-cf-8.9.3-10.i386.rpm

Не все файлы конфигурации Sendmail по умолчанию инсталлируются при установке Red Hat Linux 7.1.Для полной инсталляции необходимо предварительно монтировать CD-ROM, прилагаемый к книге (например, как /mnt/cdr,om) и выполнить команду rpm для инсталляции двух пакетов.

$ rpm -i /mnt/cdrom/RedHat/RPMS/sendmail-e.11.2-14.1386.rpm

$ rpm -i /mnt/cdrom/RedHat/RPMS/sendmail-cf-e.11.2-14.1386.rpm

Файлы документации Sendmail по умолчанию не инсталлируются при установке Red Hat Linux 7.1. Если у вас нет второго диска Red Hat CD-ROM (к книге он не прилагается), вам придется загрузить пакет sendmail-8.11.2-14.1386. rpm с узла ftp.redhat. com или www. fpmf ind .net. Если он загружен, например, в каталог / trap, то для установки достаточно выполнить команду:

$ rpm -i /tmp/sendmail-doc-8.11.2-14.1386.rpm

 

8. Создание интерактивного почтового сервера

 

Создание интерактивного почтового сервера

Теперь можно посмотреть на файл конфигурации интерактивного (online) почтового сервера. Интерактивный почтовый сервер легче конфигурировать и понять, чем серверы, работающие в режиме off-line.

Примечание

Несмотря на то, что программа т4 облегчает конфигурирование Sendmail, количество ее опций огромно. В этой главе рассмотрены только те опции, с которыми работают файлы конфигурации. Примеры конфигурационных файлов расположены в подкаталогах каталога /usr/share/sendmail-cf. Созданный вами конфигурационный файл Sendmail располагается В каталоге /usr/share/sendmail-cf/cf.

Интерактивный почтовый сервер является почтовым сервером сети, соединенной с Internet по выделенной линии. Когда отправитель извне направляет почтовое сообщение пользователю локальной сети, оно может быть доставлено непосредственно адресату, а когда пользователь сети посылает письмо, оно отправляется немедленно.

Чтобы направить входящие сообщения к почтовым ящикам пользователей или отправить сообщения, созданные пользователями, необходимо соответствующим о'бразом отконфигурировать Sendmail. Ести существуют препятствия для доставки сообщений, например отсутствие соединения с Internet сообщения будут поставлены в очередь для отправки после установления связи с Internet.

Файл конфигурации, созданный в т4, подобен следующему:

Примечание

Внимательно отнеситесь к апострофам (одиночным кавычкам) в конфигурационных файлах m4. Первая (открывающая) кавычка - всегда обратная ("), расположенная на стандартной клавиатуре над клавишей Tab. Вторая (закрывающая) кавычка (') - обычный апостроф (одиночная кавычка).

Рассмотрим каждую строку этого файла конфигурации.

Строка 1. include (` .. /m4/cf .m4') Это общие файлы конфигурации, необходимые для того, чтобы сформировать файл конфигурации Sendmail,

Строка 2. OSTYPE (`linux') Указание типа операционной системы (Linux) для установки соответствующих значений по умолчанию.

Строка 3. undef ine ('UUCP_RELAY') He указывая перенаправление UUCP-сообщений, определяем, что нет host-компьютера для получения UUCP-почты, и получатели почты ,в формате UUCP должны быть подключены непосредственно. Учитывая то, что UUCP-почта разрабатывалась во времена, когда большинство сетей непосредственно связаны не были, для большинства случаев можно оставить UUCP RELAY неопределенным.

Строка 4. undef ine (`BITNET_RELAY'} Поскольку локальная сеть не связана с сетью Bitnet, адреса, использующие формат Bitnet, работать не будут.

Строка 5. FEATURE (redirect) Теперь любая почта, направленная по адресу address. REDIRECT, будет перенаправлена с указанием нового адреса пользователя. Если пользователь сменил адрес, его новый адрес может связываться со старым адресом при помощи добавки .REDIRECT.

Строка 6. FEATURE (always_add_domain) Эта возможность гарантирует, что поле From всегда содержит локальный домен, а содержимое этого поля можно использовать для посылки ответного сообщения.

Строка 7. MAILER (local) Поддержка локальной почты позволяет Sendmail доставлять сообщения в локальные почтовые ящики Unix.

Строка 8. MAILER (smtp) Поддержка SMTP позволяет Sendmail передавать сообщения непосредственно на почтовые серверы адресатов. Этот режим работает в системе, где сервер соединен с Internet и обеспечиваются услуги DNS.

Примечание

Ключевое слово dn1 в конце большинства строк конфигурационного файла sendmail означает "delete through newline" (удалить до конца строки) и позволяет уменьшить число пустых строк в выходном файле . cf (см. ниже).

Для создания файла конфигурации Sendmail из файла конфигурации m4, необходимо создать файл m4 в каталоге /usr/lib/sendmail-cf /cf. Пусть этот файл будет иметь имя online .me. Расширение . тс обычно присваивается файлам конфигурации m4.

Примечание

Если у вас нет опыта работы с Sendmail, обратитесь к простым примерам файлов конфигурации в этом каталоге, включая generic-linux.mc и redhat .me. Можете просто скопировать их в online.me.

Перейдем в каталог /usr/lib/sendmail-cf /cf и выполним следующую команду.

$ m4 online.me > online.cf

Эта команда обрабатывает файл, используя т4, и генерирует файл конфигурации Sendmail, называемый online. cf.

Затем создается резервная копия существующего файла sendmail. cf. Файл sendmail. cf необходимо заменить только что созданным. Следующие команды выполняются администратором системы (root-пользователем).

# ср /etc/sendmail.cf /etc/sendmail.cf.keep

# ср online.cf /etc/sendmail.cf

Последний этап - перезапуск демона Sendmail.

# /etc/re.d/init.d/sendmail restart

Команды управления демонами могут располагаться в других каталогах, если вы пользуетесь другими дистрибутивами, отличными от Red Hat Linux.

Если демон Sendmail запускался при начальной загрузке, то он загрузит новый файл конфигурации. Если необходимо загрузить Sendmail вручную, используйте следующую команду.

# /usr/sbin/sendmail -bd

По умолчанию демон Sendmail запускается во время начальной загрузки в большинстве дистрибутивов Linux, если пользователь не укажет иначе. Если необходимо добавить Sendmail в цикл загрузки, можно использовать команду /usr/sbin/sendmail -bd в файле re. local.

 

9. Что дальше

 

Что дальше

Эта глава завершает основную часть книги описанием установки почтового сервера в системе под управлением Linux. Располагая этими знаниями и опытом использования, конфигурирования и управления Linux, вы сможете решить любую задачу.

В оставшейся части книги приведены приложения, которые могут оказаться полезными при ежедневном использовании Linux. В частности, в приложении С ("Команды Linux") приведено краткое руководство по синтаксису основных команд Linux, многие из которых используются регулярно.

Приложение В пополнит ваш список ресурсов, полезных для углубления знаний и приобретения навыков работы в системе Linux. Linux - огромная территория, которую нельзя освоить быстро. Большинство экспертов-знатоков Linux изучают новые приемы, познают секреты и совершенствуют навыки почти ежедневно. Не бойтесь идти по их стопам. Не стесняйтесь задавать вопросы в группах новостей по Linux или авторам-популярных приложений Linux. В большинстве случаев авторы счастливы помочь и дать совет неоперившимся пользователям Linux. В конце концов, способствовать распространению знаний, опыта и навыков среди подрастающих пользователей Linux - почетная обязанность разработчиков и опытных пользователей этой системы.