Опубликован: 21.11.2006 | Доступ: свободный | Студентов: 1811 / 140 | Оценка: 4.09 / 4.00 | Длительность: 38:34:00
Лекция 10:

Программа sendmail

Аннотация: В данной лекции: рассматриваются файлы и каталоги sendmail, синтаксис команд sendmail, файл конфигурации sendmail.

В этой лекции

  • Файлы и каталоги sendmail
  • Синтаксис команд sendmail
  • Файл конфигурации sendmail

Чтобы правильно посылать и принимать почту от других систем, на почтовом сервере под управлением ОС Linux должна быть установлена программа — почтовый транспортный агент (Mail Transport AgentMTA). Работа МТА заключается в обработке почтовых сообщений, а не в доставке их локальному пользователю, как иногда думают. Если МТА принимает сообщение, направленное локальному пользователю, то он просто передает его другой программе, которая занимается его доставкой. Сообщения, адресованные пользователям удаленных хостов, будут направляться либо на эти хосты, либо передаваться узлу, который сможет далее переслать их по назначению. После того как сообщение передано, работа МТА завершена.

Для ОС Linux существует довольно много программ — почтовых транспортных агентов. Некоторые из них обладают более широкой функциональностью, в то время как другие легче в работе, с точки зрения администратора почтовой системы. Прабабушкой всех МТА-программ для платформы UNIX является программа sendmail. Довольно часто ее называют самой универсальной программой МТА, но в то же время она наиболее сложна в настройке. Компоненты программы sendmail описаны в этой лекции. Вопросы конфигурирования sendmail для работы на почтовом сервере под управлением ОС Linux рассмотрены в "Установка и конфигурирование sendmail" , "Установка и конфигурирование sendmail".

sendmail и безопасность

Программа sendmail используется на многих платформах уже на протяжении нескольких десятков лет. В первые годы ее применения были выявлены практически все черные входы и дыры в программе, которые позволяли хакерам проникать в систему. Например, общеизвестна реакция sendmail на SMTP команды debug и wiz. Получив при анонимном SMTP-сеансе посредством этих команд доступ в систему, через другие программы хакер мог получить права пользователя root. Когда программа sendmail стала популярной, то все черные ходы были закрыты и ошибки в программе были исправлены.

К сожалению, многие администраторы почтовых систем отвергают возможность применения sendmail, ссылаясь на старые черные ходы в ней, которые уже давно закрыты. Конечно, время от времени обнаруживаются новые ошибки в программе, которые позволяют получить несанкционированный доступ к системе. Однако это случается не чаще, чем с другими пакетами для работы с почтой. Так как квалификация хакеров в сети Internet с каждым годом повышается, соответствующим образом должна расти сложность программного обеспечения. Единственное, что может противопоставить растущему числу хакеров программа sendmail, это наличие профессиональных программистов, которые работают над ее улучшением. Они достаточно квалифицированы, чтобы постоянно исправлять и улучшать программный код sendmail, сохраняя его стабильность и уровень безопасности. Не так много пакетов для работы с почтой могут похвастаться тем же.

Так что было бы неосмотрительно только из-за слухов о неблагонадежности sendmail отказываться от ее преимуществ.

Файлы и каталоги sendmail

Программа sendmail не работает в одиночку. Для обеспечения нормальной работы sendmail требуется наличие определенных файлов и каталогов. В этом разделе описаны файлы и каталоги, которые требуются для работы программы sendmail. Иногда, в зависимости от заданной конфигурации, могут понадобиться и другие файлы. В "Установка и конфигурирование sendmail" описаны некоторые дополнительные файлы, необходимые для работы sendmail.

Программа sendmail

Путь: /usr/sbin/sendmail

Программа sendmail является главным двигателем при передаче почты. Обычно она запускается в фоновом режиме в виде процесса-демона, который ожидает появления входящих почтовых сообщений и проверяет очередь исходящих почтовых сообщений через установленные интервалы времени. В качестве альтернативы можно определенным образом сконфигурировать sendmail для запуска по запросу программы inetd, управляющей всеми TCP-портами. Таким образом можно сэкономить ресурсы памяти на сервере, так как при этом программа sendmail не работает в фоновом режиме, а следовательно, не занимает память. Вместе с тем такая организация работы sendmail приводит к снижению производительности, так как в этом случае sendmail при каждом запуске должна перечитывать файлы конфигурации. Программа sendmail может получать доступ к каталогам пользователя root, так как ей задан setuid root. Другие пользователи также могут запускать sendmail, но при этом они не смогут получить доступ ко многим каталогам, которые требуются для работы sendmail, например к очереди почтовых сообщений.

Основной файл конфигурации

Путь: /etc/sendmail.cf

Для правильной работы sendmail на локальном почтовом сервере необходимо сконфигурировать ее в соответствии со своими специфическими требованиями. Все определения, касающиеся обработки почты программой sendmail, хранятся в файле конфигурации /etc/sendmail.cf. Все они называются наборами правил (rule set). Наборы правил применяются в sendmail для анализа адресов отправителя и получателя сообщения, а также для определения способа его доставки получателю. При запуске программа sendmail читает содержимое файла конфигурации, так что, если в него вносились какие-либо изменения, нужно перезапустить sendmail, чтобы они возымели действие.

Каталог очереди почтовых сообщений

Путь: /var/spool/mqueue

Каталог mqueue создается для хранения всех почтовых сообщений, которые ожидают обработки в очереди. Владельцем этого каталога является пользователь root. Программа sendmail удостоверяется в том, что все файлы очереди почтовых сообщений хранятся в этом каталоге и имеют соответствующие права доступа, которые не позволяют обычным пользователям читать сообщения, находящиеся в очереди. Местоположение каталога очереди почтовых сообщений можно изменять. Это делается либо изменением соответствующего параметра в файле sendmail.cf, либо запуском sendmail из командной строки со специальным параметром.

Программа для отображения состояния очереди почтовых сообщений

Путь: /usr/sbin/mailq

Программа mailq является символической связью с программой sendmail. При ее запуске программа sendmail отображает содержимое очереди почтовых сообщений.

Создание базы данных псевдонимов

Путь: /usr/sbin/newaliases

Программа newaliases также является символической связью с программой sendmail. При ее запуске считываются текстовые псевдонимы из файла aliases и с помощью стандартного пакета по поддержке баз данных в ОС Linux создается база данных псевдонимов. В ОС Linux при этом обычно создается хешированный файл базы данных.