Выбрать главу

Сетевые средства Linux

Посвящается жертвам 11 сентября 2001 года. Надеюсь, что добро все же одержит победу над злом.

Введение

Компьютерные сети изменили нашу жизнь. Они были почти незаметны в 1970-х и даже в 1980-х. Однако в начале 1990-х годов что-то произошло. Возможно, это было появление World Wide Web и графических Web-броузеров, благодаря которым Internet пришла во многие семьи. Возможно, число сетевых соединений превысило какой-то критический предел. Может быть, этот предел превысило количество сетевых программ. Как бы то ни было, сейчас о сетях знают все. А самое главное, что каждый знает о существовании Internet.

Internet объединяет миллионы компьютеров, на многих из которых выполняются серверы — программы, принимающие запросы от клиентов и обрабатывающие их. Благодаря тому что протоколы, на которых базируется Internet, допускают межплатформенное взаимодействие, в обмене данными могут участвовать клиенты и серверы, выполняющиеся на различных компьютерах и в разных операционных средах. В последние годы одной из самых популярных операционных систем стала Linux. Установленная на недорогом компьютере x86, система Linux обеспечивает эффективную работу серверов, поддерживающих узлы небольшого и среднего размеров. С увеличением производительности компьютеров появляется возможность выполнения в среде Linux серверов, обрабатывающих большие объемы данных. В результате от системного администратора часто требуется умение настраивать систему Linux и серверы, выполняющиеся в ее среде.

На каких же серверах следует остановить свой выбор? Существуют сотни, если не тысячи, серверных программ. В большинстве книг, посвященных системе Linux, основное внимание уделяется нескольким популярным серверам: HTTP-серверу (обычно это Apache), серверам удаленной регистрации, таким как Telnet и SSH, файловым серверам, примерами которых являются NFS и Samba, и некоторым другим типам серверов. В данной книге рассматриваются самые различные серверы. Разнообразие рассматриваемых вопросов не дает возможности подробно изучить работу и особенности настройки каждого из серверов, но все же приведенной информации достаточно, чтобы обеспечить выполнение соответствующих программ. Помимо наиболее популярных серверов, в настоящей книге также рассматриваются средства, которым обычно уделяется мало внимания, но которые, тем не менее, чрезвычайно важны для нормального функционирования сети. Так, например, здесь есть главы, посвященные DHCP-серверу, временному серверу и системе Kerberos. В данной книге не излагаются основы функционирования сетей. Считается, что читатель уже имеет представление о сетевых средствах и собирается повысить свою квалификацию.

Главы, в которых описываются сложные серверы, такие как Apache и Samba, не содержат исчерпывающего их описания. За общей информацией об этих инструментах следует рассмотрение их расширенных функций, ориентированное на администратора, имеющего некоторый опыт работы. Новичкам, прежде чем изучать эти главы, желательно прочитать книги, содержащие вводный курс администрирования данных серверов.

На кого рассчитана эта книга

Данная книга содержит расширенные сведения о сетевых средствах Linux и ориентирована на специалистов, которые уже работали с сетями и системой Linux. Первые главы содержат сведения о настройке низкоуровневых сетевых средств Linux. Чтобы материал этих глав был понятен, надо иметь общее представление о Linux, или, по крайней мере, о UNIX, и знать терминологию, применяющуюся при описании сетевых средств. Если же вы не знакомы с системой Linux, вам имеет смысл прочитать вводные материалы, например, книгу Марселя Гагне (Marcel Gagnе) Linux System Administration: A User's Guide (Addison-Wesley, 2002) или нашу с Вики Стенфилдом (Vicki Stanfield) книгу Linux System Administration (Sybex, 2001).

Если вы хотите больше узнать о таких серверах, как Apache и Samba, но не собираетесь покупать книгу, полностью посвященную одному продукту, либо если вы хотите получить сведения о небольших, но очень важных серверах, таких как xntpd и xfs, эта книга — для вас. В ней вы также найдете многочисленные практические советы, например, о том, как запустить сервер и завершить работу с ним, как создать резервную копию информации в сети, как ограничить сферу действий сервера поддеревом chroot, как построить брандмауэр, и т.д. Эти сведения позволят вам по-новому взглянуть на процесс администрирования вашей сети и, возможно, повысить производительность и надежность ее работы.

При написании данной книги я ориентировался на администраторов сетей небольшого и среднего размеров. В такой сети могут присутствовать компьютеры под управлением UNIX, Windows, MacOS и других операционных систем, и, конечно же, к ней подключена хотя бы одна машина Linux. В большинстве глав описываются общие принципы работы того или иного инструмента, а затем приводится информация о его использовании. Эту книгу можно использовать как справочное пособие. Если вы хотите иметь книгу, в которой описаны самые разнообразные сетевые средства Linux, то вы держите ее в руках.

Версии Linux

Одна из причин возникновения проблем при администрировании Linux состоит в том, что Linux нельзя рассматривать как единую операционную систему; это скорее набор систем, созданных на базе одного ядра. Разновидности Linux называют версиями или дистрибутивными пакетами. В состав дистрибутивного пакета входят ядро, инсталляционная программа, ориентированная на данную версию Linux, набор утилит, специальных инструментов, пользовательских программ и т.д. Кроме того, любой дистрибутивный пакет включает сценарии; некоторые из них предназначены для запуска серверов, другие — для настройки компонентов системы. В разных дистрибутивных пакетах содержатся разные версии ядра и различные наборы инструментальных средств. При инсталляции некоторых дистрибутивных пакетов часто устанавливаются специальные серверы, например почтовый сервер, в роли которого, в зависимости от версии Linux, выступают программы sendmail, Exim или Postfix. Характерные черты каждой версии Linux накладывают свой отпечаток на работу с ней и особенно на ее администрирование.

Во многих книгах игнорируются различия между разными версиями Linux. Основное внимание в них уделяется одному дистрибутивному пакету, а остальные упоминаются лишь время от времени. При написании этой книги я ставил перед собой цель более или менее подробно описать все популярные версии. В частности, здесь рассматриваются особенности Caldera OpenLinux 3.1, Debian GNU/Linux 2.2, Mandrake 8.1, Red Hat 7.2, Slackware 7.0, SuSE 7.3 и TurboLinux 7.0. У меня не было возможности детально рассмотреть каждую систему, я старался привлечь внимание читателя к главным различиям между ними. Так, например, в книге вы найдете сведения о том, какие средства используются в каждой версии Linux для запуска серверов, какие программы обеспечивают FTP-взаимодействие, и т.д. В некоторых главах рассматриваются различные программы, реализующие конкретный тип сервера. Сделано это для того, чтобы вы могли составить представление о различиях в конфигурации, устанавливаемой по умолчанию в разных дистрибутивных пакетах.

Структура книги

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

Часть I. Эта часть короче других; она содержит лишь четыре главы. В ней описана настройка ядра системы, приведены общие сведения о конфигурации средств TCP/IP, стеках протоколов и сценариях запуска.

Часть II. В этой части рассматриваются серверы, к которым, вероятнее всего, будут обращаться лишь компьютеры вашей локальной сети. В ней обсуждаются сервер DHCP, система Kerberos, серверы Samba и NFS, организация печати с помощью LPD, временные серверы, почтовые серверы POP и IMAP, серверы новостей, серверы удаленной регистрации, система X Window и сервер VNC, сервер шрифтов, сервер удаленного администрирования и средства резервного копирования.