Продолжая использовать наш сайт, вы даете согласие на обработку файлов cookie, которые обеспечивают правильную работу сайта. Благодаря им мы улучшаем сайт!
Принять и закрыть

Читать, слущать книги онлайн бесплатно!

Электронная Литература.

Бесплатная онлайн библиотека.

Читать: Linux-сервер своими руками - Денис Николаевич Колисниченко на бесплатной онлайн библиотеке Э-Лит


Помоги проекту - поделись книгой:

Уровень модели OSI Протокол Уровень стека TCP/IP
7, 6 WWW (HTTP), FTP, TFTP, SMTP, POP, telnet, WAIS, SNMP 1
5, 4 TCP, UDP 2
3 IP, ICMP, RIP, OSPF, ARP 3
2, 1 Ethernet, PPP, SLIP 4

В следующем пункте рассмотрено такое важное понятие протокола TCP/IP как порт. В том же пункте будут рассмотрены структуры пакетов IP и TCP, поскольку рассмотрение этого материала без введения определения порта не имеет смысла.

1.7.6. Порты и демоны

Дальнейшее изложение материала построено, исходя из того, что вы уже знаете, что такое сервер и какие службы вам придется настраивать. В пункте Как устроена книга (п. 1.5) было подробно описано, в каких главах описана настройка той или иной службы. Здесь же давайте рассмотрим некоторые базовые понятия, каковыми являются понятие «демон» и «порт».

Как уже было отмечено, в заголовке каждого пакета указывается IP-адрес отправителя и IP-адрес получателя, а также номер порта. С IP-адресом отправителя и получателя все понятно, осталось сказать, что же такое порт. Дело в том, что сразу несколько приложений на одном компьютере могут осуществлять обмен данными через сеть. При этом, если в качестве адресата указывать только IP-адрес получателя, то приложения, выполняемые на нем, не смогут разобраться кому из них предназначены присланные данные. Чтобы решить эту проблему используется механизм портов. Номер порта — это просто номер программы, которая будет обрабатывать переданные данные. Каждой сетевой программе, которая работает по протоколу TCP/IP, сопоставлен свой номер порта. Например, 80 — это порт WWW-сервера (обычно это Apache), a 53 — это порт системы доменных имен.

Термин демон происходит от английского слова demon (или daemon) и означает программу, которая выполняется в фоновом режиме и дополняет операционную систему каким-нибудь сервисом. Как правило, пользователь не замечает работу демона: он даже и не подозревает, что данная программа запущена. Программа-демон чем-то напоминает резидентные программы в операционной системе DOS. Как видите, нет ничего общего с ужасными существами потустороннего мира. Обычно демон ожидает определенного события, после которого он активизируется и выполняет свою работу. Сетевые демоны ожидают получения пакета с определенным номером порта и, получив его, обрабатывают содержащиеся в нем данные. В книге мы еще неоднократно поговорим об этих «существах», поэтому сейчас не будем подробно останавливаться на них.

1.7.7. Структура пакетов IP и TCP

Вот теперь можно смело перейти к рассмотрению структуры пакетов IP и TCP. Протокол IP не ориентирован на соединение, поэтому не обеспечивает надежную доставку данных. Поля, описание которых приведено в табл. 1.6, представляют собой IP-заголовки и добавляются к пакету при его получении с транспортного уровня.

Структура заголовка IP-пакета Таблица 1.6

Поле Описание
Source IP-address (IP-адрес отправителя) Отправитель пакета
Destination IP-address (IP-адрес получателя) Получатель пакета
Protocol (Протокол) TCP или UDP
Checksum (Контрольная сумма) Значение для проверки целостности пакета
TTL (Time to Live, время жизни пакета) Определяет, сколько секунд дейтаграмма может находиться в сети. Предотвращает бесконечное блуждание пакетов в сети. Значение TTL автоматически уменьшается на одну или более секунд при проходе через каждый маршрутизатор сети
Version Версия протокола IP — 4 или 6. Шестая версия протокола IP рассматривается в гл. 8 (4 бита)
Header Length (Длина заголовка) Минимальный размер заголовка — 20 байт (4 бита)
Type of Service (Тип обслуживания) Обозначение требуемого для этого пакета качества обслуживания при доставке через маршрутизаторы IP-сети. Здесь определяются приоритет, задержки, пропускная способность. (8 бит)
Total Length (Общая длина) Длина дейтаграммы IP-протокола (16 бит)
Identification (Идентификация) Идентификатор пакета. Если пакет фрагментирован (разбит на части), то все фрагменты имеют одинаковый идентификатор (16 бит)
Fragmentation Flags (Фрагментационные флаги) 3 бита для флагов фрагментации и 2 бита для текущего использования
Fragmentation Offset (Смещение фрагмента) Указывает на положение фрагментов относительно начала поля данных IP-пакета. Если фрагментации нет, смещение равно 0x0 (13 бит)
Options and Padding (Опции и заполнение) Опции

Протокол TCP, в отличие от протокола IP, ориентирован на установление соединения и обеспечивает надежную доставку данных. Структура TCP-пакета описана в табл. 1.7.

Структура TCP-пакета Таблица 1.7

Поле Описание
Source port (Порт отправителя) Порт TCP узла-отправителя
Destination Port (Порт получателя) Порт TCP узла-получателя
Sequence Number (Порядковый номер) Номер последовательности пакетов
Acknowledgement Number (Номер подтверждения) Порядковый номер байта, который локальный узел рассчитывает получить следующим
Data Length (Длина данных) Длина TCP– пакета
Reserved (Зарезервировано) Зарезервировано для будущего использования
Flags (Флаги) Описание содержимого сегмента
Window (Окно) Показывает доступное место в окне протокола TCP
Checksum (Контрольная сумма) Значение для проверки целостности пакета
Urgent Pointer (Указатель срочности) При отправке срочных данных (поле Flags) в этом поле задается граница области срочных данных

1.8. Общие рекомендации

Поздравляю с успешным окончанием курса молодого бойца (администратора)! Осталось только сказать несколько слов об общей настройке сервера. Настройку сервера «с нуля» следует проводить именно в такой последовательности, которая описана в книге. После установки системы следует разобраться с правами пользователей, определить, кто и к чему будет иметь доступ. Именно с этого и начинается локальная безопасность сервера. Нет смысла настраивать все службы с соблюдением всех требований безопасности, если пользователь pupkin имеет доступ ко всему и его пароль 123! (или же установлены права доступа к корневой файловой системе, позволяющие всем модифицировать ее).

Я рекомендую использовать RAID-массивы, если это, конечно, позволяют ваши финансы. Использование массивов RAID значительно повысит надежность вашего сервера. К тому же, при использовании аппаратных массивов, настройка которых не рассматривается в этой книге, можно существенно повысить производительность сервера, особенно при использовании SCSI-дисков. Хотя в последнее время производительность некоторых моделей АТА-дисков (АТА133) практически не уступает производительности дисков с интерфейсом SCSI, а по цене АТА-диски дешевле, чем SCSI.

После того, как вы наведете порядок на локальном уровне, можно приступать к настройке сети. Сначала следует сконфигурировать сервер как обыкновенную рабочую станцию и проверить корректность работы компьютера в сети. Всему этому посвящена гл. 7.

В гл. 8 описана настройка сервера. Вне зависимости от того, какой сервер вы настраиваете — почтовик или сервер баз данных, вам нужно сначала настроить суперсервер — xinetd или же inetd.

В восьмой главе объясняется, что такое суперсервер и как его нужно настраивать. Настройка фундаментальных серверных служб описана в той же главе. Однако это не означает, что вам нужно настраивать все, например, вы можете не использовать сетевую файловую систему или протокол DHCP.

Существует простое правило: если вам не нужна какая-нибудь служба, просто отключите ее, но ни в коем случае не оставляйте ее ненастроенной — это потенциальная «дыра» в вашем сервере.

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

1.9. Обзор дистрибутивов Linux

Сейчас на отечественном рынке можно купить практически любой дистрибутив Linux, а самый новый или какой-нибудь малораспространенный можно заказать через Интернет-магазин, например, www.linuxcenter.ru. Самыми распространенными на сегодняшний день являются дистрибутивы:

1. Red Hat Linux.

2. Linux Mandrake.

3. ALT Junior Linux.

4. ASP Linux.

5. Black Cat Linux.

6. Slackware.

7. Astaro Security Linux.

8. SuSE Linux.

В книге я подробно рассмотрел дистрибутивы Red Hat Linux и Linux Mandrake, указал отличия между ними. Однако я не буду агитировать вас использовать Mandrake или Red Hat, наоборот, вы можете использовать эту книгу для настройки любого дистрибутива. Если что-то не будет работать, например, в SuSE или Slackware, прочитайте поставляемую с дистрибутивом документацию, там наверняка найдутся ответы на все ваши вопросы. Несмотря на то, что большинство дистрибутивов, приведенных выше, совместимо с Red Hat, у каждого дистрибутива есть определенные отличия, поэтому не верьте надписям на компакт-дисках наподобие «100%-ная совместимость с Red Hat». Каждый дистрибутив имеет свое предназначение, например, ALT Junior больше подходит для домашнего компьютера, чем для сервера.

Итак, начнем наш обзор с дистрибутива Red Hat Linux.Бесспорно, это один из самых популярных и распространенных дистрибутивов. «Красная шапочка» (именно так переводится название дистрибутива) является своеобразным образцом в мире Linux. He зря же, когда сравнивают дистрибутивы, говорят об их совместимости с Red Hat.

Прежде всего, следует отметить простоту установки этого дистрибутива. Программа установки Red Hat отличается интуитивно-понятным интерфейсом и богатыми функциональными возможностями. При этом, как и для многих современных дистрибутивов, установка может выполняться как в графическом, так и в текстовом режимах. Кстати, первую графическую программу установки Linux, если я не ошибаюсь, предложила именно компания Red Hat. Должен заметить, что установка системы в текстовом режиме выполняется немного быстрее, чем в графическом.

После установки вы получаете практически функционирующую систему: все в ней настроено и работает, остается настроить систему «под себя». Конечно, есть небольшие недоработки, но разработчики не могли же предусмотреть всех вариантов?

На сегодняшний день последними версиями являются версии 7.2 (7.3) и 8.0. По сравнению с предыдущими версиями программа установки стала еще более простой, гибкой и функциональной. Например, появилась возможность сохранения параметров установки, что позволяет установить точно такую же конфигурацию системы на другие компьютеры сети. При установке осуществляется конвертирование файловой системы ext2 в ext3. Переход на новую файловую систему обеспечивает более надежную ее работу.

Среди нововведений можно отметить оконную среду Gnome 1.4 и файловый менеджер Nautilus, который существенно облегчает операции по копированию, перемещению и удалению файлов.

Все параметры системы полностью настраиваются. Можно даже выставить уровень сложности интерфейса пользователя: от новичка до эксперта. Также нужно отметить, что исчезла грань между локальными и сетевыми ресурсами.

Настройка устройств осуществляется теперь намного проще благодаря новой утилите конфигурирования системы. Теперь все конфигураторы системы собраны в одной оболочке, которая называется Контрольной панелью. Расширена поддержка устройств, в том числе добавлена поддержка устройств USB и Firewire.

Особое внимание уделено безопасностисистемы: firewall теперь настраивается в процессе установки системы, а графическая утилита конфигурирования значительно упрощает процесс создания цепочек.

Следующий на очереди — дистрибутив Linux Mandrake. LINUX Mandrake — это мощная операционная система для платформ Intel Pentium, AMD Athlon и PowerPC. Эта операционная система прекрасно сочетает в себе мощь Linux и простой интерфейс пользователя. ОС Mandrake как нельзя лучше подходит для начинающего пользователя, при этом ее можно устанавливать на компьютеры практически любого типа — от домашнего ПК до сервера сети, чего нельзя сказать о других дистрибутивах, которые имеют более четкое применение.

Программа установки по своей простоте, наверное, обогнала Red Hat. После установки система нормально работает, так как автоматически устанавливаются драйверы для большинства устройств (кроме программных win-устройств). Нет даже небольших недоработок со стороны программы установки.

Как я уже говорил, операционная система Linux Mandrake подойдет и для сервера, и для рабочей станции. Разработчики позаботились о системных администраторах, снабдив систему большим числом конфигураторов, с помощью которых можно настроить все сервисы сервера. Не забыли они и о пользователях: в состав дистрибутива входят распространенные оконные среды, офисные пакеты, графические редакторы, браузеры, MP3-плейеры.

В версии 9.0 произошли такие изменения:

1. Добавлена возможность минимальной установки. Для этого потребуется всего 64 Мб (!) на жестком диске.

2. Улучшены процедуры обнаружения оборудования.

3. Поддерживаются большие объемы ОЗУ (более 1 Гб) и многопроцессорность. Если у вас установлен всего один процессор и объем ОЗУ меньше 1 Гб, в целях повышения производительности системы я рекомендую перекомпилировать ядро системы, отключив поддержку этих функций.

4. Поддерживаются журналируемые файловые системы ЕХТЗ, ReiserFS, XFS и JFS.

5. Добавлена поддержка таких устройств: Firewire, USB, USB2, 1830 DRM, ATA133, GeForce3.

6. Переработан Центр Управления (Control Center).

Система основана на ядре версии 2.4.19. В состав дистрибутива входят такие приложения:-

1. Среда KDE 3.0.3 с интегрированным офисным пакетом К Office.

2. Среда GNOME 2.0.1 плюс Evolution 1.0.8 , WindowMaker 0.8, IceWM 1.2, Enlightenment 0.16.5, BlackBox 0.62

3. Офисные пакеты StarOffice 6.0 и KOffice 1.2. Оба пакета поддерживают формат MS Office.

4. Браузеры Mozilla 1.1, Konqueror 3.02 и Galeon 1.2.5.

5. Графический пакет GIMP 1.2.3.

6. Компиляторы GCC 3.2, библиотеки Glibc 2.2.5.

7. Сервер Apache 1.3.26.

8. Интерпретатор PHP 4.2.3.

9. Серверы баз данных MySQL 3.23.52 и PostgreSQL 7.2.2

10. Агенты МТА Sendmail и Postfix.

ALT Junior Linux — однодисковый дистрибутив для домашних и начинающих пользователей. Этот дистрибутив можно использовать как дистрибутив для рабочей станции, но не как серверный дистрибутив. В его состав входит все необходимое программное обеспечение для домашнего компьютера, в том числе есть несколько довольно неплохих игрушек.

Дистрибутив ALT Junior 1.0 основывается на ядре 2.4.5, поддерживает большинство современных чипсетов, графические 3D-ускорители Matrox G-серии, ATI Rage & ATI Radeon, Intel 810/815, 3DFX Voodoo 3/4/5. Добавлена поддержка всех видеоплат nVidia.

ASPLinux 7.2 — это еще один универсальный дистрибутив, который подойдет как для сервера, так и для рабочей станции. Отдельно хочу отметить уникальную программу установки. Помимо своей простоты, она обладает некоторыми функциями, которых мне не хватало в других дистрибутивах:

1. Возможность установки основных пакетов (ядро и библиотеки) под конкретный процессор, что повышает производительность системы и не требует перекомпиляции ядра после установки системы для оптимизации ее работы.

2. Появилась возможность создавать корневую файловую систему на устройстве RAID.

3. Добавлена поддержка новых контроллеров RAID.

ОС ASPLinux 7.2, в отличие от других дистрибутивов, поддерживает все процессоры семейства i386: от i80386DX до Pentium IV.

Единственным неудобством является отсутствие драйвера для 3D-ускорителей nVidia (у меня Riva TNT2), но его можно свободно загрузить с сайта www.nvidia.com

Особого внимания заслуживает поддержка русского и украинского языков.

Для вас, как системного администратора, повышенный интерес должен представлять пакет pptpd, который позволяет организовывать сети VPN для клиентов Windows, а также пакет portslave, который в сочетании с улучшенной версией pppd позволяет организовать сервер удаленного доступа с авторизацией через сервер RADIUS и использованием функции «обратный звонок» (callback).

Заслуживает также внимания полностью переработанная документация: она находится на специальном компакт-диске с документацией (Documentation CD).

В завершении этого небольшого обзора отмечу довольно нестандартный дистрибутив Astaro Security Linux. С помощью этого дистрибутива вы можете превратить обыкновенный офисный компьютер в настоящий бастион. Все, что для этого нужно – просто загрузиться с инсталляционного диска, ввести необходимые параметры сети и больше не подходить к этому компьютеру: можно сразу отключить монитор, потому что все администрирование сервера производится по протоколу https через браузер. К сожалению в этом дистрибутиве не поддерживаются SCSI (впрочем, SCSI-диски на шлюзе — это излишество) и шины ISA, что не позволяет использовать старые сетевые платы.

1.10. Глоссарий

В этом небольшом пункте приведены описания основных терминов, которые использовались в первой главе, а также некоторых новых.

Аутентификация — проверка подлинности.

Интерфейс — средства и правила взаимодействия компонент системы между собой.

Коллизия — попытка одновременного доступа двух или более машин к среде передачи информации. Самый простой (и немного некорректный) пример коллизий — это параллельный телефон. В вашей жизни наверняка случалось, что кому-то нужно одновременно поговорить по телефону, и вы пытались набрать номер одновременно.

Концентратор (хаб) — устройство, которое просто передает полученные пакеты во все свои порты независимо от адресата. Все устройства, подключенные к концентратору Ethernet (включая другие концентраторы), «видят» весь сетевой трафик, но получить пакет должен только тот узел, которому он адресован. Все остальные узлы должны игнорировать этот пакет.

Маршрутизатор (router) — устройство для пересылки пакетов. Маршрутизатор собирает информацию о топологии межсетевых соединений и на основании этой информации пересылает пакеты сетевого уровня в сеть назначения. Маршрутизатор может быть программным и аппаратным.

Маршрутизация (routing) — процесс передачи пакетов данных между двумя подсетями.

Мост (bridge) — устройство для соединения двух или более физических сетей. Мосты передают пакеты порту, к которому подключен адресат. Однако в отличие от большинства коммутаторов Ethernet, мосты не передают фрагменты пакетов при возникновении коллизий и пакеты с ошибками, поскольку все пакеты буферизуются перед их пересылкой в порт адресата. Мосты не зависят от протокола.

Порт — физическое или логическое устройство, через которое осуществляется процесс приема-передачи данных.

Протокол — совокупность правил, определяющая взаимодействие абонентов вычислительной системы и описывающая способ выполнения определенного класса функций.

Сервер — специальный компьютер, который предоставляет определенные услуги другим компьютерам.

Сокет (socket) — во многом аналогичен дескриптору файла (file handle). Сокет обеспечивает конечную точку соединения. Приложение, создавая сокет, указывает три параметра: IP-адрес узла, протокол (TCP или UDP) и порт, используемый приложением.

Узел — устройство, подключенное к сети.

Шлюз (Gateway) — межсетевой преобразователь. Выполняет функции, аналогичные мосту, но используется для связи сетей разных типов, например, LAN и WAN. Обычно для устройства, которое связывает две локальные сети, используется термин «маршрутизатор», а для устройства, которое соединяет вашу локальную сеть с Интернет, — шлюз, хотя оба эти устройства выполняют одну и ту же функцию — маршрутизацию пакетов.

2

Установка системы

2.1. Установка Red Hat Linux

Установку данного дистрибутива я буду рассматривать на примере, который применим к версиям, начиная с 6 (и, по крайней мере, до 8.x). Вообще не следует гнаться за новизной в версиях при создании сервера, так как, допустим, версия 6.0 (Hedwig) обладает достаточно низкими (по сегодняшним меркам) системными требованиями, что позволяет использовать устаревшую технику с максимальной отдачей. Например, старенький Intel 486DX4, на котором жутко «тормозят» Windows вместе с MS Office, можно с большим успехом использовать в качестве шлюза для выхода в Интернет (см. табл. 2.1). Это позволит вам сэкономить значительные денежные средства. Тем не менее, весь описанный далее механизм настройки сервера применим и к новым версиям (с некоторыми поправками, которые будут приведены в тексте). Более того, при использовании версий 6.0 и 8.0 вы не заметите почти никакой принципиальной разницы, так как конфигурирование всех основных служб остается одинаковым во всех версиях. Резюмируя, еще раз хочу сказать, что все примеры, приведенные в этой книге, должны работать в дистрибутиве любой версии, начиная с шестой. Однако может возникнуть аппаратная несовместимость, так как версия 6 по умолчанию не поддерживает шины AGP. При этом вам следует либо использовать видеокарту PCI, либо самостоятельно переустановить XFree86 и сервер для вашей видеокарты (о том, что это такое, читайте далее). Версии 7.x, а тем более 8.x, этой проблемы лишены.

Примечание. Описание шестой версии операционной системы Linux Red Hat в книге приведено намеренно. Тому есть две веские причины. Во-первых, в состав шестой версии Red Hat входит суперсервер inetd, в то время как в состав более поздних версий (начиная с версии 7) входит супер сервер xinetd. А различия в настройке первого и второго довольно большие. Вы сами убедитесь в этом, прочитав гл.  8. Суперсервер inetd прекрасно работает на старых серверах, которые были настроены еще до вас. К тому же, inetd является предком xinetd, поэтому для большего понимания функционирования xinetd следует разобраться с inetd.

Во-вторых, отличия в программе установки: программа установки более поздних версий Linux более дружелюбна. А вдруг вам придется столкнуться со старым дистрибутивом Linux или с установкой одного из варианта Unix: далеко не все варианты Unix имеют понятную программу установки. 

Действительно, сравнивая системные требования Linux и продуктов от Microsoft, разницу ощущаешь сразу. Компьютер на базе процессора Pentium 133 и 32 мегабайтами ОЗУ на платформе Linux прекрасно справлялся с обязанностями Internet-шлюза, почтовика и прокси-сервера. Для того чтобы организовать те же функции на платформе Windows 2000 Server, вам необходим, по крайней мере, процессор Celeron 300 МГц и 256 Мб ОЗУ. Минимальные системные требования для установки Red Hat 6 приведены в табл. 2.1, а в табл. 2.2 указаны рекомендуемые системные требования для настройки сервера на ее основе.

Системные требования ОС Red Hat 6 Таблица 2.1 

Показатель Значение
Процессор 486DX
ОЗУ, Мб 8
Жесткий диск Минимум 150 Мб

При использовании системы X Window (графической среды под Linux) вам понадобятся еще 8…16 Мб ОЗУ и 200…300 Мб дополнительного места на жестком диске. При установке сервера, как правило, система X Window не нужна, однако, чтобы удовлетворить всем читательским запросам, описание системы X Window приведено в гл. 20 данной книги.

Рекомендуемые системные требования для установки сервера Таблица 2.2

Показатель Значение
Процессор Pentium 133 МГц
ОЗУ, Мб 32
Жесткий диск, Мб 600

В зависимости от выполняемых задач вам может потребоваться дополнительное место на диске, например, для кэша прокси-сервера. Прокси-сервера используются для уменьшения времени загрузки Web-страниц (и не только). Конечно, это не единственное применение прокси-серверов, но об этом мы подробнее поговорим в гл. 15, а здесь немного рассмотрим как они работают. Войдем, так сказать, в курс дела.

Если пользователь подключен к Интернет через прокси-сервер и запрашивает какую-нибудь страницу, то запрос идет через прокси-сервер, который сперва ищет ее в своем кэше. Если запрашиваемая страница найдена, он передает ее пользователю, а если нет, то получает ее из Интернет, кэширует (сохраняет в кэше) и затем возвращает пользователю. Уже при повторном запросе данной страницы она будет загружаться из кэша прокси-сервера. При этом резко увеличивается скорость загрузки страницы, так как обычно прокси-сервер находится в одной подсети с пользователем, а передача данных в рамках одной сети осуществляется намного быстрее, даже если прокси-сервер и пользователь связаны каналом 33 Кбит/с. Обратите внимание, что кэшированию не подлежат часто обновляемые страницы, содержащие оперативную информацию, например, прогноз погоды.



Поделиться книгой:

На главную
Назад