Шрифт:
Интервал:
Закладка:
Итак, приступим к настройке. Остановите сервис named.
Сгенерируйте общие ключи для каждой пары узлов. Общие ключи используются при «общении» первичного и вторичного серверов DNS.
[[email protected]] # dnssec-keygen -a hmac-md5 -b 128 -n HOST ns1-ns2 Kns1-ns2.+157+49406
Мы используем алгоритм HMAC-MD5, 128-битное шифрование, ns1-ns2 — это имя ключа. После выполнения этой команды будет создан файл Kns1-ns2.+176+40946.private. Откройте его в любом текстовом редакторе. Вы увидите примерно следующее:
Private-key-format: v1.2
Algorithm: 157 (HMAC_MD5)
Key: ms7dfts87Cjhj7FD91k7a3==
Ключ «ms7dfts87Cjhj7FD91k7a3==» и будет тем секретом, который будет передаваться между серверами. Запишите это значение на бумаге (которую потом нужно будет уничтожить) и удалите файлы Kns1-ns2.+157+49406.key и Kns1-ns2.+157+49406.private.
Добавьте в файлы конфигурации первичного и вторичного серверов DNS директивы, указывающие на использование ключа (листинги 13.8 и 13.9).
Листинг 13.8. Фрагмент файла named.conf первичного сервера DNS
key ns1-ns2 {
algorithm hmac-md5;
secret "ms7dfts87Cjhj7FD91k7a3==";
};
# прописываем вторичный сервер DNS — 192.168.1.2:
server 192.168.1.2 {
keys { ns1-ns2; };
};
options {
# разрешаем передачу зоны вторичному серверу DNS
allow-transfer { 192.168.1.2; };
};
Листинг 13.9. Фрагмент файла named.conf вторичного сервера DNS
key ns1-ns2 {
algorithm hmac-md5;
secret "ms7dfts87Cjhj7FD91k7a3==";
};
# прописываем первичный сервер DNS — 192.168.1.1:
server 192.168.1.1 {
keys { ns1-ns2; };
};
options {
# никому не передаем зону
allow-transfer { none };
};
Можно также настроить передачу зоны «по ключу». Для этого директива allow-transfer в файле конфигурации первичного сервера DNS должна выглядеть так:
allow-transfer { key ns1-ns2; };
Осталось только «спрятать» файлы конфигурации обоих серверов DNS от посторонних глаз — ведь они содержат ключи в открытом виде.
chmod 600 named.conf
Запустите сервис named. Теперь о его безопасности будет заботиться TSIG.
Глава 14
Почтовый сервер
Неискушенные пользователи обычно принимают за систему электронной почты ту программу, с помощью которой они читают и пишут сообщения (mail, pine, Netscape Messenger, MS Outlook Express). На самом деле эта система состоит из нескольких компонентов (рис. 14.1):
♦ пользовательские агенты — те самые mail, pine и т.п., реализующие интерфейс к системе пересылки почты;
♦ транспортный агент (MTA, Mail Transfer Agent), пересылающий сообщения с одного компьютера на другой;
♦ агент доставки, сортирующий почту и помещающий ее в ящики пользователей или другое хранилище сообщений;
♦ агент доступа, скачивающий доставленную почту из хранилища по протоколу POP или IMAP, и агент подачи, доставляющий письма от пользователей на сервер исходящих сообщений по протоколу SMTP. В качестве агента подачи может работать транспортный агент.
Рис. 14.1. Структура почтовой системы
При установке почтового сервера в сети организации или в любой другой компьютерной сети необходимо настраивать именно транспортный агент. Основными транспортными агентами пересылки почты на сегодняшний день являются sendmail, postfix и qmail. Кроме основной функции — пересылки сообщений электронной почты — каждый их них имеет собственные эксклюзивные возможности.
Старейшим транспортным агентом, фактическим стандартом, работавшим еще в самых ранних версиях UNIX, является sendmail. Разработчики qmail обратили особое внимание на обеспечение безопасности: до 1998 года реализация функций защиты в sendmail до такой степени оставляла желать лучшего, что в конференциях вообще не рекомендовалось ее использовать. Программа postfix считается проще других в настройке.
Я решительно предпочитаю sendmail, которая в настоящее время обеспечивает должный уровень безопасности и настраивается достаточно легко. В этой главе я объясню, как настроить sendmail для организации небольшого почтового сервера с использованием протокола SMTP. В качестве агента доставки я рассмотрю procmail, а в качестве агента доступа, работающего по протоколу POP3, — программу fetchmail. Для заинтересовавшихся я разместил на сайте http://dkws.narod.ru руководство по настройке qmail.
Вкратце напомню о протоколах SMTP и POP, которые будем конфигурировать:
♦ SMTP (Simple Mail Transfer Protocol) — сервис в сетях TCP/IP для передачи почтовых сообщений. Обычно для SMTP используется порт 25 (см. файл /etc/services).
♦ POP (Post Office Protocol) — используется для получения почты с сервера. Порт по умолчанию — 110 (для протокола POP3).
14.1. Установка и настройка sendmail
Программа sendmail устанавливается из пакета sendmail, входящего в состав Red Hat-совместимых дистрибутивов. Я использую пакет sendmail-8.11.0. Последнюю версию sendmail можно скачать по адресу www.sendmail.org.
Прежде чем приступить к настройке sendmail, вам необходимо правильно настроить DNS. Настройка сервера DNS подробно обсуждалась в главе 13. Необязательно настраивать сервер DNS на том же компьютере, где будет работать sendmail: достаточно будет указать DNS-сервера вашей сети в файле /etc/resolv.conf, чтобы система разрешения имен корректно работала. Впрочем, sendmail можно настроить для работы и без использования DNS, но этот вариант я рассматривать не буду.
14.1.1. Базовая настройка sendmail
Основным файлом конфигурации sendmail является sendmail.cf, расположенный в каталоге /etc/mail (в некоторых дистрибутивах — /etc, смотри rpm -ql sendmail). Об этом файле говорят, что он длиннее, чем лимузин у Билла Гейтса, и что его редактирование происходит в режиме «глаза боятся, руки делают». Если вы не верите мне, откройте этот файл, и вы убедитесь в этом. Редактировать данный файл вручную могут только профессионалы-администраторы или разработчики программы sendmail.
К счастью, базовую настройку sendmail можно выполнить при помощи графического конфигуратора netconf. К сожалению, этот конфигуратор (точнее, пакет linuxconf, в который он входит) в современные дистрибутивы включать перестали. Но не все потеряно: его можно скачать с сайта разработчика http://www.solucorp.qc.ca/linuxconf. Многие опытные пользователи Linux критически относятся к возможностям пакета linuxconf и предпочитают прямое редактирование конфигурационных файлов, но для новичка эти утилиты, несомненно, удобнее.
Запустите утилиту netconf из-под суперпользователя (рис. 14.2).
Рис. 14.2. Конфигуратор netconf
Выберите в меню Mail delivery system, затем Configure basic information. В поле Present your system as просто введите свое доменное имя. Затем обязательно отметьте флажок Accept email for ваш_домен (рис. 14.3).
Рис. 14.3. Основная конфигурация sendmail
Если вы этого не сделаете, через ваш сервер можно будет перенаправить сообщения на другой сервер — а это лишний трафик через вас, который вам совсем ни к чему. Когда-то даже существовал такой вид атаки на отказ через электронную почту: письмо от несуществующего пользователя [email protected] другому несуществующему пользователю [email protected] отправлялось через компьютер host.com, который позволял перенаправлять сообщения (не включив режим Accept email for host.com). Обратно шло сообщение о том, что адресат не существует, но и оно не могло быть доставлено по той же причине... возникала косвенная рекурсия, и сервер host.com падал.
В качестве протокола отправки сообщений (Mail gateway protocol) установите smtp. Этой информации уже вполне достаточно, чтобы ваш sendmail функционировал.
Теперь сделайте так, чтобы 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) и введите следующее:
- Операционная система UNIX - Андрей Робачевский - Программное обеспечение
- Разработка приложений в среде Linux. Второе издание - Майкл Джонсон - Программное обеспечение
- Искусство программирования для Unix - Эрик Реймонд - Программное обеспечение
- Linux - Алексей Стахнов - Программное обеспечение
- Fedora 8 Руководство пользователя - Денис Колисниченко - Программное обеспечение
- Недокументированные и малоизвестные возможности Windows XP - Роман Клименко - Программное обеспечение
- Изучаем Windows Vista. Начали! - Дмитрий Донцов - Программное обеспечение
- Windows Vista - Виталий Леонтьев - Программное обеспечение
- Архитектура операционной системы UNIX - Морис Бах - Программное обеспечение
- Windows Vista. Трюки и эффекты - Юрий Зозуля - Программное обеспечение