Обратите внимание на «карьеру» нашего сервера: мы постепенно наращиваем его, добавляя новые функции. Сначала он был рядовым сервером локальной сети, затем он начал предоставлять доступ пользователей к Интернет, а потом мы построили сервер удаленного доступа.
1.7. Что такое сервер? (или Курс Молодого Администратора)
Эта глава предназначена для начинающих системных администраторов, которые вообще с трудом представляют, что такое сервер и с чем его едят. Я принципиально не буду называть таких читателей «чайниками», поскольку сам когда-то таким был. В этой главе я попытаюсь вкратце объяснить некоторые термины, которые связаны с сетью (я имею в виду компьютерной!), а также с протоколом TCP/IP. Эту главу можно рассматривать как своеобразный курс молодого бойца (администратора). Сразу нужно отметить, что углубляться в технические подробности мы не станем — для этого существует множество другой литературы, например, «Компьютерные сети. Принципы, технологии, протоколы» В.Г. Олифера.
1.7.1. Архитектура сети: одноранговая и клиент/сервер
Начнем с самого главного — архитектуры сети. Существуют две основные архитектуры сети: одноранговая (peer-to-peer) и клиент/сервер (client/ server), причем вторая практически вытеснила первую. В одноранговой сети все компьютеры равны — имеют один ранг. Любой компьютер может выступать как в роли сервера, то есть предоставлять свои ресурсы (файлы, принтеры) другому компьютеру, так и в роли клиента, другими словами — использовать предоставленные ему ресурсы. Одноранговые сети преимущественно распространены в домашних сетях или небольших офисах. В самом простом случае для организации такой сети нужно всего лишь пара компьютеров, снабженных сетевыми платами и коаксиальный кабель (нужна еще пара терминаторов (заглушек), но я обещал сильно не углубляться).
Когда сеть создана физически (компьютеры связаны с помощью коаксиального кабеля), нужно настроить сеть программно. Для этого необходимо, чтобы на компьютерах были установлены сетевые операционные системы (Linux, FreeBSD, Windows NT, Windows 98) или сетевые системы с поддержкой сетевых функций (Windows 95, Windows for Workgroups).
Компьютеры в одноранговой сети объединяются в рабочие группы. Каждая рабочая группа имеет свой идентификатор — имя рабочей группы. Если вы сейчас работаете в Windows 9x, узнать имя рабочей группы вы можете, запустив апплет Сеть с Панели управления (см. рис. 1.4).
Рис. 1.4. Идентификатор рабочей группы в ОС Windows 9x
Для примера допустим, что в вашей одноранговой сети три компьютера А, В, С. Первые два входят в рабочую группу WG1, а компьютер С — в рабочую группу WG2 (см. рис. 1.5).
Рис. 1.5. Схема одноранговой сети
Даже несмотря на то, что компьютеры входят в один сегмент сети (физически подключены к одному кабелю), компьютеры А и В не будут «видеть» компьютер С, а компьютер С не будет видеть компьютеры А и В. Если выполнить команду поиска компьютера в Windows 9x (Пуск→Поиск→Найти компьютер), компьютер «увидит» компьютеры А и В, но будет сообщено, что они находятся в другой рабочей группе — WG1.
Единственное ограничение доступа, которое возможно в одноранговой сети, это использование пароля для доступа к какому-нибудь ресурсу. Для того, чтобы получить доступ к этому ресурсу, например, принтеру, нужнознать пароль. Это называется управлением доступом на уровне ресурсов. В сети клиент/сервер используется другой способ управления доступом — на уровне пользователей. В этом случае можно разрешить доступ к ресурсу только определенным пользователям. Например, ваш компьютер А через сеть могут использовать два пользователя: Иванов и Петров. К этому компьютеру подключен принтер, который можно использовать по сети. Но вы не хотите, чтобы кто угодно печатал на вашем принтере, и установили пароль для доступа к этому ресурсу. Если у вас одноранговая сеть, то любой, кто узнает этот пароль, сможет использовать ваш принтер. В случае с сетью клиент/сервер вы можете разрешить использовать ваш принтер только Иванову или только Петрову (можно и обоим).
Для получения доступа к ресурсу в сети клиент/сервер пользователь должен ввести свой уникальный идентификатор — имя пользователя (login — логин) и пароль (password). Логин пользователя является общедоступной информацией и это правильно: возможно, если кто-нибудь захочет отправить пользователю сообщение по электронной почте, то для этого ему достаточно знать его логин (естественно, и имя сервера электронной почты, который «знает» этого пользователя).
Использование логина и пароля для доступа к ресурсам называется аутентификацией пользователя (user authentication). Существуют и другие виды аутентификации, например, аутентификация источника данных или однорангового объекта, но сейчас мы рассматривать их не будем. В любом случае, аутентификация — это проверка подлинности.
После рассмотрения архитектуры одноранговой сети можно прийти к выводу, что единственное преимущество этой архитектуры — это ее простота и дешевизна. Сети клиент/сервер обеспечивают более высокий уровень производительности и безопасности.
В отличие от одноранговой сети, в сети клиент/сервер существует один или несколько главных компьютеров — серверов. Все остальные компьютеры сети называются клиентами или рабочими станциями (workstations). Как я уже писал выше, сервер — это специальный компьютер, который предоставляет определенные услуги другим компьютерам. Существуют различные виды серверов (в зависимости от предоставляемых ими услуг): серверы баз данных, файловые серверы, серверы печати (принт-серверы), почтовые серверы, Web-серверы и т.д.
В табл. 1.1 перечислены лишь немногие функции, выполняемые сервером, и рекомендуемое программное обеспечение, которое необходимо для реализации этих функций.
Функции и программное обеспечение сервера Таблица 1.1
Функция | Программное обеспечение | Дистрибутив | Глава |
---|---|---|---|
Авторизация удаленных пользователей (dialup) | Пакет ррр | Да | 17 |
Автоматическое конфигурирование узлов сети | dhcp | Да | 8 |
Доступ (совместный) к файлам | NFS, FTPd (ProFTPD, wu-ftpd) | Да | 8, 13 |
Доступ к сети Microsoft | Пакет samba | Да | 9 |
Кэширование передаваемой информации | Пакет Squid | Да | 15 |
Маршрутизация | route(d) | Да | 8, 14 |
Обмен сообщениями электронной почты | Пакеты sendmail (или postfix/qmail) и imap | Да (Да/Нет), Да | 13 |
Подсчет передаваемого по сети трафика | ядро Linux, IPChains | Да | 8, 14 |
Передача секретной информации | modSSL | Да (не во всех дистрибутивах) | 12 |
Разрешение (резолвинг) имени компьютера в IP-адрес | Пакет bind | Да | 10 |
Сетевая печать | Lpd, Samba, CUPS | Да | 6, 9 |
Функции Web-сервера | Пакет apache | Да | 12 |
Фильтрация пакетов | IPChains (IPTables в новых версиях Linux) | Да | 14 |
Управление базой данных | MySQL / PostgreSQL / InterBase | Да / Да / Не во всех | 16 |
IP-Маскарадинг | IPChains | Да | 14 |