Колисниченко Д.Н. - Linux-сервер своими руками (1077324), страница 74
Текст из файла (страница 74)
Этот агент прошел долгий путь со днясвоего создания. Раньше (до 1998 года) в конференциях вообще рекомендовалось вместо использования sendmail перейти на qmail, обладающий лучшейзащищенностью. Действительно, в то время sendmail имел много брешей сточки зрения безопасности, а тем, кто решался все-таки использовать его,рекомендовалось регулярно обновлять sendmail. Сейчас sendmail обладаетдолжным уровнем безопасности и достаточно легко настраивается, в чем выубедитесь в этой главе.
Возможно, postfix обладает и более простой настройкой, но у меня почему-то не сложилась работа с этой программой. О qmailмогу сказать только то, что редко встретишь программу с более сложнойнастройкой. Для заинтересовавшихся я разместил на прилагаемом компактдиске руководство по настройке qmail.Сейчас я попробую объяснить, как настроить небольшой почтовый сервер, использующий РОРЗ и SMTP. Для начала установите необходимое программное обеспечение. При этом вам понадобятся пакеты sendmail и imap.Да простят меня почитатели PostFix, но я действительно предпочитаюsendmail.
Возможно, postfix проще конфигурируется, но это дело вкуса.315Почтовый сервер73.7. Настройка sendmailЕсли вы используете дистрибутив, совместимый с RedHat, то вам потребуется установить соответствующие пакеты. Я использую sendmaiI-8.11.0 иimap-4.7c2. Последнюю версию sendmail можно выкачать из Интернет поадресу http://www.sendmail.org.Прежде, чем приступить к настройке sendmail, вам необходимо правильно настроить DNS.
Настройка сервера DNS подробно обсуждалась в гл. 10.Если вы настраиваете только почтовый сервер, вамTWs'paekage allowsyou to configureнеобязательно настраиватьSendmaii,the maiUteliretysystem : !сервер DNS на этом же компьютере. Достаточно будетуказать DNS-сервера вашейсети в файле/etc/resolv.conf, чтобы система разрешения имен корректно работала. Впрочем,sendmail можно настроитьдля работы без использования DNS, но этот вариант ярассматривать не буду.Для того, чтобы приступить к базовой настройкеsendmail, запустите утилитуnetconf (см. рис.
13.1). Онаработает как и из-под ХWindow, так и из-под консоли. Утилита netconf есть вRedHat Linux, Mandrake,ASPLinux и в других дистрибутивах, ее точно нет ъ KSILinux. Естественно, вы должPuc. 13.1. Конфигуратор netconfны быть зарегистрированы всистеме как root. Если у вас нет программы netconf, вы получите незабываемое удовольствие от редактирования файла /etc/sendmail.cf вручную.Именно в этом файле хранятся все настройки sendmail.Выберите в меню 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. Письмо отправ: ;316Почтовый серверBase Infopresent your systemsil|mailer. dhsilabs.com|!ii Accept email far toMail gatewayMail gateway protocoljsmtpРис. 13.2. Основная конфигурация sendmailляется через компьютер hostcom, который позволяет перенаправить сообщение (не включен режим «Accept email for domain.com»). Почтовый сервердомена В.com отправляет сообщение по адресу not_exists@A.com о том, чтопользователь not_exists@B.com не существует.
В свою очередь, почтовикдомена А.сот сообщает, что пользователя not_exists@A.com также не существует и отправляет сообщение по адресу not_exists@B.com. Возникает косвенная рекурсия. А теперь представьте, что такое сообщение не одно, а,скажем, 100 и объем каждого хотя бы 1 Мб! В результате один из серверовв цепочке domainl.com — host.com — domain2.com должен «упасть».Прошу извинения, я немного отошел от темы, продолжим конфигурироватьsendmail. Протокол отправки сообщений установите smtp (Mail gateway protocol).Этой информации уже вполне достаточно, чтобы ваш sendmail функционировал.
Вы можете установить дополнительные опции программы sendmailс помощью netconf.Теперь сделайте так, чтобы sendmail принимал почту только с разрешенныхадресов. Для этого даже не нужно настраивать сам sendmail — нужно толькоподправить файлы / e t c / h o s t s . a l l o w и /etc/hosts .deny. В первом из нихсодержится список хостов, которым разрешен доступ к этой машине, а вовтором — которым запрещен. Обратите внимание: несмотря на название «разрешен» или «запрещен», ограничения, которые устанавливаются первым317Почтовый серверфайлом намного строже.
Например, для запрещения доступа всем хостам,кроме компьютеров вашей сети, в файл /etc/hosts. allow добавьте строку:492.168.1.Здесь имеется в виду, что сеть имеет адрес 192.168.1.0 и маску255.255.255.0. Более подробно о формате файлов hosts. allow и hosts. denyвы можете прочитать, введя команду man hosts.allow.Теперь настала очередь РОРЗ. После установки пакета imap у вас практически все настроено, т.е.
я хочу сказать, что уже можно проверять конфигурацию. Перезапустите демон inetd или xinetd, в зависимости от того,который вы используете, и введите следующее:telnet <имя_только_созданного_почтовика> 25В ответ вы должны увидеть примерно следующее:T r y i n g 192.168.1.1 . . .Connected to 192.168.1.1Escape character is ЛА]'220 de.dhsilabs.com ESMTP Sendmail 8.11.0/8.8.7 Sun, 17 Jun2001 10:54:22 +300Это означает, что sendmail работает, осталось проверить насколько правильно он это делает.
С этой целью введите примерно следующее:mail f r o m : m e @ m y . h o s t . c o m2202 . 1 . 0 m e @ m y . h o s t . c o m . . . . Sender Okrcpt to: d e n @ d e n . d h s i l a b s . c o m2 2 0 2 . 1 . 5 d e n @ d e n . d h s i l a b s . c o m . . . . Recipient OkПосле этого введите команду 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.Затем добавьте аккаунт для РОРЗ:Имя пользователяdenПарольпароль, который используется для входа в систему.Серверden.dhsilabs.comПортНО318Почтовый серверВ результате вы должны получить то сообщение, которое ввели послеdata. При этом возможны проблемы при разрешении имени.
Чтобы ихизбежать необходимо правильно настроить DNS или вместо имени почтового сервера использовать его IP-адрес. При добавлении нового пользователяне забудьте установить его пароль для входа в систему. Если этого несделать, а пытаться получить почту без указания пароля, вы получите сообщение «Сбой аутентификации».Базовая настройка программы sendmail выполняется очень просто сиспользованием конфигуратора, но иногда базовой настройки недостаточно.Для более точной настройки нужно ознакомиться с файлами конфигурациипрограммы sendmail.Примечание.В большинстве случаев, вас будет устраивать базовая настройка до тех пор, пока васне возьмут под свой «протекторат" спаммеры — тогда вам нужно будет прочестьгл.
23 о методах защиты от спама. Однако может сработать один из законов Мерфи —для вашей системы не будет разработан конфигуратор sendmail и тогда вам всеравно придется разбираться с файлами конфигурации.Основным файлом конфигурации sendmail является файл / e t c/sendmail. cf. В некоторых дистрибутивах этот файл расположен в каталоге /etc/mail. Об этом файле говорят, что он длиннее, чем лимузин у БиллаГейтса и что его редактирование происходит в режиме «глаза боятся, рукиделают». Если вы не верите мне, откройте этот файл, и вы убедитесь в этом.Редактировать данный файл вручную могут только профессионалы-администраторы или разработчики программы sendmail.Обычно для редактирования этого файла используется макропроцессорпг4.
Сначала вы подготавливаете специальный mc-файл. В этом файле записаны настройки .sendmail, но в более «читабельном» виде. При редактировании конфигурационных файлов также сказывается и их размер. Для сравнения: размер моего mc-файла — 2459 байт, а файла sendmail. cf — 46302байт. Одно дело, редактировать файл размером в два килобайта, и совсемдругое, если размер файла равен 46 килобайтам. В отличие от конфигурационного файла sendmail, вы сразу поймете, для чего предназначен тот илииной mc-файл. Затем, отредактировав mc-файл, нужно запустить макропроцессор т4 для создания файла конфигурации sendmail:m4 my_config.mc > /etc/sendmail.cfПеред выполнением этой команды я настоятельно рекомендую сохранить где-нибудь исходный файл sendmail.cf.