Linux-сервер своими руками
Шрифт:
Чипсеты семейства ServerSet IV поддерживают процессоры Intel Pentium IV, память DDR SDRAM (200 МГц), максимальный объем ОЗУ равен 64 Гб.
Производством материнских плат с чипсетом ServerSet III занимаются такие компании как SuperMicro (www.supermicro.com), Tyan (www.tyan.com), а также некоторые другие. О стоимости таких плат говорить не стану, так как цены, скорее всего, изменятся к моменту выхода этой книги из печати.
Теперь перейдем к мозгу сервера — процессору. Как вы заметили, при обзоре чипсетов я ни разу не упомянул процессоры других производителей, кроме Intel. И не случайно, так как я рекомендую использовать именно процессоры Intel, которые обеспечивают более высокую степень надежности по сравнению с процессорами других
При покупке оперативной памяти следуйте простому правилу: чем больше, тем лучше. Лишняя память никогда не помешает. Покупайте такой объем ОЗУ, какой вы можете себе позволить. Только перед этим убедитесь, какой тип памяти поддерживает ваш чипсет, а также максимальный объем ОЗУ.
Лучше всего подойдет жесткий диск с интерфейсом SCSI, обеспечивающий 10000 rpm (rotates per minute). В крайнем случае подойдет и АТА/ 100(133) на 7200 rpm и двумя мегабайтами кэша. Если вы заботитесь о сохранности своих данных, нужно позаботиться об обеспечении должного уровня избыточности. Было бы очень хорошо, если ваша материнская плата обладала контроллером RAID. Если у вас нет средств на приобретение аппаратного контроллера RAID, ОС Linux предоставляет средства для создания программных контроллеров RAID — об этом говорилось в гл. 4. При использовании программных контроллеров нужно учитывать, что при этом увеличивается нагрузка на центральный процессор.
Хорошо зарекомендовали себя винчестеры IBM, WD, Quantum. Сейчас у меня установлено два винчестера Quantum. Единственный недостаток этих винчестеров — пожалуй, высокий уровень шума, создаваемый ими при работе (особенно при открытом корпусе), но для сервера это не столь существенно. А в остальном эти винчестеры довольно быстрые и надежные.
Не покупайте дешевые сетевые платы для сервера. Такую роскошь, как пятидолларовую плату Realtek, можно установить разве что на рабочей станции. Серверу приходится обрабатывать запросы многочисленных пользователей, поэтому нужно покупать сетевой адаптер со встроенным процессором. При этом снижается нагрузка на центральный процессор и повышается производительность системы.
Если вы устанавливаете модемный пул, я бы порекомендовал использовать оборудование компании ZyXEL. Модемы ZyXEL зарекомендовали себя как очень надежные модемы, способные работать практически на любых линиях.
8
Конфигурирование сервера
8.1. Суперсерверы inetd и xinetd
В данной главе пойдет речь об общей настройке Интернет-суперсерверов inetd и xinetd, а также о настройке сервера xinetd для работы с протоколом IPv6.
Для начала все же определимся, почему inetd(xinetd) называется суперсервером? Да потому, что он отвечает за установление TCP-соединения, то есть он прослушивает пакеты и запускает необходимые программы для обработки информации. Таким образом, получается, что сервер inetd (xinetd) управляет другими серверами и потому называется суперсервером. Например, если в запросе клиента будет требование установить соединение с двадцать первым портом, то суперсервер вызовет сервер ftp, конечно, при условии, что соединение с 21-м портом разрешено (в противном случае клиент получит сообщение Connection refused).
По правде говоря, все не так просто как я описал — на практике все намного сложнее: за установление TCP-соединений отвечает демон tcpd (в более ранних версиях Linux его не было), программы-сервисы (httpd, ftpd) могут постоянно находиться в памяти (режим standalone), в этом случае они сами обрабатывают пакеты, и, соответственно, суперсервер их уже не вызывает.
8.1.1. Настройка сервера inetd
Для начала разберемся с настройкой inetd. Этот сервер использовался в дистрибутиве RedHat до версии 7, в более новых версиях он заменен
на xinetd (описание этого суперсервера приведено далее в п. 8.1.4…8.1.7). При конфигурирования inetd вам потребуется отредактировать два файла /etc/inetd.conf и /etc/services. Первый, собственно, и есть файл конфигурации суперсервера, а во втором перечислены все сетевые службы, которые доступны в вашей системе. Формат файла /etc/services следующий:postoffice в данном случае является псевдонимом. Для некоторых служб могут потребоваться использование нескольких протоколов (как в листинге 8.1 для POP3 используется два протокола — TCP и UDP) и/или нескольких портов (см. листинг 8.2).
В других версиях ftp может потребоваться только одна запись — ftp 21/tcp. Из соображений безопасности лучше закомментировать символом # сервисы, которые вы не планируете использовать, например, если у вас роутер, то зачем вам sendmail (port 25)?
Теперь переходим к файлу /etc/inetd.conf. Каждая запись в этом файле имеет следующий формат:
где:
Имя — имя сетевой службы, которое должно быть указано в файле /etc/services.
Тип_сокета — в этом поле указывается тип сокета, то есть тип технологии доставки данных для указанной службы. Наиболее часто используются значения: stream (поток) — для протокола TCP, dgram (дейтаграмма) — для протокола UDP и raw –непосредственно для протокола IP.
Протокол — имя протокола.
Флаги — с помощью флагов указывается статус ожидания. В качестве значения этого поля указывается ключевое слово wait или nowait. Если указано wait, то суперсервер inetd будет ожидать завершения работы данной сетевой службы на данном сокете, прежде чем перейти в состояние ожидания других запросов других служб на подключение к этому сокету. То есть в данной ситуации суперсервер перестает «слушать» порт до тех пор, пока на нем не завершит работу уже запущенная сетевая служба. Значение nowait приводит к обратной ситуации: после запуска описываемой сетевой службы суперсервер продолжает прослушивать сокет в ожидании других подключений. Обычно для служб с типом сокета stream устанавливается статус ожидания nowait, а для служб с типом сокета dgram — статус ожидания wait.
Пользователь — в этом поле указывается имя пользователя, с правами которого запускается описываемая сетевая служба (соответствующий ей сервер).
Путь — в этом поле указывается полное имя сервера (включая путь к нему), который должен быть запущен для обслуживания данного соединения.
Аргументы — все оставшиеся поля воспринимаются как аргументы для запускаемого сервера.
Ниже (см. листинг 8.3) приведен пример записи в файле /etc/inetd.conf.
Листинг 8.3. Фрагмент файла/etc/inetd.conf
где:
ftp — имя сетевой службы;
stream — задает тип сокета stream (потоковый сокет);
tcp — протокол (указан протокол tcp, так как именно этот протокол использует служба FTP в качестве протокола транспортного уровня);
nowait — суперсервер продолжает «слушать» порт после выполнения одного сервера для определенного порта;
root — сервер FTP будет запущен с правами root;
/usr/sbin/tcpd — сервер, который будет вызван для обработки соединения;