11.2. Организация и состав Linux-сервера
11.2. Организация и состав Linux-сервера
Что такое сервер? С точки зрения пользователей сети, сервер — это удаленный компьютер, выполняющий некоторые функции, например, прием и отправку электронной почты. С точки зрения нас, администраторов, сервер — это программа, выполняющая определенные функции. Раз уж мы рассматриваем почтовый сервер, то на этом компьютере должна быть установлена специальная программа, которая будет отправлять и принимать сообщения.
Компьютер без этой программы (которую мы также будем называть сервером) — это просто рабочая станция. Мало просто установить операционную систему Linux, нужно еще установить программы-серверы, которые будут выполнять те самые функции, которых ждут от сервера.
Построение Linux-сервера нужно начать с настройки суперсервера — xinetd (в более старых дистрибутивах — inetd). Суперсервер — это основа основ: без него не будет работать большинство сетевых сервисов, таких как POP3, IMAP, FTP (если он не запускается отдельно). Сервер xinetd называется суперсервером, потому что он отвечает за установление TCP-соединения, то есть прослушивает пакеты и передает их на обработку другим программам, управляя таким образом другими серверами. Например, если в запросе клиента будет требование установить соединение с двадцать первым портом, то суперсервер вызовет сервер FTP: конечно, при условии, что соединение с 21 портом разрешено (в противном случае клиент получит сообщение «Connection refused»).
Примечание
По правде говоря, не все так просто, как я описал. На практике за установление TCP-соединений отвечает демон tcpd (в ранних версиях Linux его не было). Программы-сервисы (httpd, ftpd) могут постоянно находиться в памяти (режим standalone): в этом случае они сами обрабатывают пакеты, и суперсервер их уже не вызывает. Но это уже детали, и они картины не меняют
Отнеситесь к настройке xinetd с должным вниманием: от того, как вы его настроите, будет зависеть работа вашего сервера.
После настройки xinetd можно приступить к настройке конкретных сетевых сервисов. Я вам рекомендую настраивать не все подряд (по принципу «чтобы было»), а только те сервисы, которые вам сейчас нужны. Например, если вы настраиваете почтовик, то нечего на нем устанавливать DNS-сервер, веб-сервер и FTP-сервер. Лучше хорошо настроить две-три нужные службы, чем использовать десяток (включая нужные и ненужные) с настройками «по умолчанию». Помните, что ненастроенная служба — это потенциальная дыра в системе безопасности вашего сервера.
Если вы настраиваете серверы провайдера, я настоятельно рекомендую разделить серверные функции между разными компьютерами. Не нужно, чтобы один компьютер обслуживал и входящие звонки, и почту, и разрешение имен. Для провайдера целесообразно разделить функции серверов так:
? Два отдельных DNS-сервера — первичный и вторичный. Пусть себе стоят в углу — DNS-серверы редко требуют администрирования, если, конечно, вы не выдаете доменные имена по десять раз за день.
? Главный сервер, который обслуживает одновременно и вводящие звонки (dial-in), и почту.
? Отдельный веб-сервер. Обычно на веб-сервере устанавливаются интерпретаторы PHP, perl и сервер баз данных MySQL, Если пользователям нужен доступ к их файлам, можно настроить на этом же компьютере FTP, но я рекомендую вместо FTP использовать ssh. Конечно, если ваши пользователи пойдут на такие жертвы ради безопасности.
Если же вы ограничены в средствах, можно все это добро установить на одном компьютере. Надежность схемы «все в одном» значительно ниже, и в основном она используется для тестирования — проведения небольших экспериментов с сетевыми сервисами.
Сейчас мы подробно разберемся, что нужно устанавливать на ваш будущий Linux-сервер. Предположим, что вам нужно настроить веб-сервер. Тогда нужно установить и настроить следующее программное обеспечение:
? Суперсервер xinetd — вы уже знаете, для чего он нужен. Настройку любого Linux-сервера нужно начинать именно с настройки xinetd.
? Пакет apache (в некоторых дистрибутивах он называется httpd). Программа Apache выполняет функции веб-сервера: именно она передаст пользователю веб-страницу, когда тот введет URL страницы в окне браузера.
? Если ваши пользователи желают программировать на PHP, нужно установить пакет PHP. Связке веб-сервера Apache, интерпретатора PHP и сервера баз данных MySQL посвящена целая глава, поэтому мы не будем сейчас подробно на этом останавливаться.
Теперь рассмотрим второй распространенный случай — почтовый сервер. Почтовый сервер отвечает за отправку и прием сообщении электронной почты. Обычно он использует протоколы SMTP (Simple Mail Transfer Protocol) и POP (Post Office Protocol). Для создания почтового сервера нужно установить и настроить следующее программное обеспечение:
? Суперсервер xinetd.
? Почтовый агент (MTA, Mail Transfer Agent), которая будет отправлять и принимать сообщения. Обычно эту роль выполняет программа sendmail, а кроме нее довольно распространены программы qmail и postfix, выполняющие аналогичные функции.
? Пакет imap, обеспечивающий получение пользователями своей почты по протоколам POP3 или IMAP.
? Программу procmail, сортирующую почту. С ее помощью можно организовать автоответчик и другие полезные услуги.
? Программу fetchmail, позволяющую получать почту с других POP3-серверов.
? Желательно также установить какой-нибудь антивирус, например, KAV, и «прикрутить» его к sendmail (или другому SMTP-серверу); тогда входящие и исходящие сообщения будут автоматически проверяться на вирусы.
Третьим распространенным примером Linux-сервера является DNS-сервер. Для его организации вам достаточно установить и настроить суперсервер xinetd и сам DNS-сервер — пакет bind.
Следующий пример Linux-сервера — это шлюз. Шлюз позволяет соединить две сети различного типа, например, локальную сеть и Internet. Для его создания нужно установить и настроить следующее программное обеспечение:
? Суперсервер xinetd.
? Пакет ppp, содержащий сервер для работы с протоколом PPP (Point to Point Protocol). Данный пакет нужно устанавливать лишь в том случае, если вы сами подключаетесь к Интернету по протоколу PPP или вы настраиваете сервер входящих звонков (dial-in) для доступа удаленных пользователей в Интернет через ваш компьютер.
? Пакет iptables — это межсетевой экран, или брандмауэр. Именно эта программа будет выполнять функции шлюза, то есть переадресовывать пакеты из одной сети в другую (из локальной в глобальную). Кроме того, брандмауэр может отфильтровывать пакеты, что позволяет оградить вашу сеть от вторжения извне.
? Пакет squid — это прокси-сервер, который кэширует веб-страницы.
В таблице 11.1 перечислены лишь немногие функции, выполняемые сервером, и рекомендуемое программное обеспечение, которое необходимо для реализации этих функций. В графе «Дистрибутив» сказано, входит ли нужный пакет в состав популярных дистрибутивов.
Серверное программное обеспечение Таблица 11.1
Функция Программное обеспечение Дистрибутив Авторизация удаленных пользователей (dialup) PPP Да Автоматическое конфигурирование узлов сети dhcp Да Совместный доступ к файлам NFS, FTPd (ProFTPD, wu-ftpd) Да Доступ к сети Microsoft samba Да Кэширование передаваемой информации Squid Да Маршрутизация route(d) Да Обмен сообщениями электронной почты sendmail Да postfix Да qmail Нет imap Да Подсчет передаваемого по сети трафика ядро Linux, IPChains {в старых дистрибутивах с ядром 2.2.x и меньше) или IPTables (в новых дистрибутивах с ядром 2.4.x и 2.6.x) Да Передача секретной информации modSSL Нет Разрешение имени компьютера в IP-адрес bind Да Сетевая печать Lpd, Samba, CUPS Да Функции веб-сервера apache Да Фильтрация пакетов IP-Маскарадинг IPTables (IPChains в старых версиях Linux) Да Управление базой данных MySQL Да PostgreSQL Да InterBase НетДанный текст является ознакомительным фрагментом.