Регистрация Вход
Библиотека /
Поиск по библиотекеМоя библиотекаИскать книгу(обмен)

Александр Рубин. Интернет-cервер под Linux

Александр Рубин. Интернет-cервер под Linux


--------------------------------------------------------------- © Copyright Александр Рубин (rubin@alvis.ru) Home page: http://www.alvis.ru/~rubin/ Системный администратор ЗАО "Альвис Плюс" Статья опубликована в журнале Data-communications RE Date: 29 Mar 1999 --------------------------------------------------------------- (Linux - свободно распространяемый UNIX клон, написанный с нуля Линусом Торвалдсом (Linus Torvalds) с помощью большой команды добровольцев по всей Сети.) С начала 1998 года интерес к Linux во всем мире резко возрос. Компьютерные журналы публикуют статьи про эту ОС и интервью с ее Линусом Торвалдсом. Под Linux были "портированы" практически все коммерческие системы управления базами данных: Interbase, Ingres, Informix, Oracle, DB2 и другие. Коммерческие производители софта и железа начали серьезно относится к Linux. Сначала IBM, а потом Compaq заявили о выпуске своих серверов BrandName с ОС Linux. О всплеске интереса к Linux в России можно судить по статистике поисковой системы Rambler. В списке самых "запрашиваемых" слов (Top 100 Search Words) слово "linux" стоит на втором (!) месте, в то время как "nt" - на 40. И это при том, что полгода назад слова "linux" вообще не было в этом списке. Кейт Доусон (http://www.tbtf.com/archive/0138.html#s03) еще в феврале 1998 опубликовал информацию IDС о том, что число установок Linux во всем мире достигло порядка 7 млн. Цифра, сравнимая с количеством установок NT. В России (как и во всем мире) разные клоны UNIX традиционно используются Интернет- провайдерами. Крупные провайдеры работают на серверах Sun, более мелкие - на свободно распространяемых UNIX: FreeBSD и Linux В качестве Internet сервера Linux предоставляет все необходимые возможности: почтовый сервер, web-сервер, прокси-сервер, dns и news-сервера, развитые средства маршрутизации. Все это может хорошо работать на одной машине. Linux не сильно требовательна к "железу". Небольшой маршрутизатор на Linux может успешно работать на PC с 486 процессором. Такой сервер может маршрутизировать TCP/IP в сети из 10-20 а то и больше машин с каналом в Интернет 64-128к. В Linux существует понятие дистрибутива и ядра. На самом деле Linux - это только ядро. Дистрибутив - это поставка ядра Linux и прикладных программ, поставляемых с ядром. Один из самых популярных дистрибутивов Linux - RedHat (последняя версия - RedHat 5.2). Практически во все новые дистрибутивы входит основной набор серверных программ. В RedHat входит Mail сервер sendmail, web-сервер Apache, DNS-сервер named. Sendmail - является традиционным для UNIX SMTP-сервером. Несмотря на некоторые трудности в конфигурировании - это надежное средство работы с почтой. Основное достоинство sendmail - гибкость. В sendmail можно настроить практически все что нужно: алиасы, сложный форвард, несколько виртуальных серверов, защита от спама, ограничения размера почтового ящика и многое другое. Для Linux также существуют также другие smtp сервера (Qmail, Smail Zmail и др.)

Web сервер Apache


По статистике NetCraft (http://www.netcraft.com/Survey/) web - сервер Apache работает на 53% всех серверов в Интернет По результатам исследований Алексея Тутубалина, создателя русского Apache (http://www.lexa.ru/ru-survey/) и Валерия Коржова (http://ruc.osp.ru/igor/spider.html) Apache установлен на 74% и 72 % русскоязычных Интернет -серверов. (Данные на декабрь 1998 года). Всего Алексей Тутубалин исследовал 9193 российских Web серверов, а Валерий Коржов - 8099. Русский Apache, согласно Тутубалину, установлен на 53% серверов. Успех сервера Apache в всем мире, по мнению СomputerWeekly, (N6, 1998, c.1,20,46) основан на трех составляющих Apache распространяется бесплатно, причем бесплатно распространяется не только двоичный код, но и исходный текст. Это обеспечивает серверу исключительную гибкость. Архитектура Apache отличается модульностью, что также облегчает настройку. Apache часто обновляется. Первая версия появилась в декабре 1995 г. и с тех пор разработчики несколько раз переписывали ядро системы заново в целях усовершенствования продукта. Кроме того, хотя коллектив разработчиков Apache официально не берет на себя обязательств по обслуживанию пользователей, на практике качество сервиса оказывается гораздо лучшим, чем у коммерческих продуктов конкурентов. Быстродействие сервера. Начиная с версии 1.2 Apache поддерживает протокол HTTP 1.1, который выполняет загрузку Web-страниц в 4 - 8 раз быстрее, чем HTTP 1.0. Компании Microsoft и Netscape реализовали HTTP 1.1 гораздо позже, чем группа разработчиков Apache. (Небольшой сравнительный анализ, правда несколько устаревший, некоторых WWW серверов, а также полный список всех известных серверов Web можно найти в Библиотеке Мошкова, http://kulichki.rambler.ru/moshkow/WEBMASTER/serwerswww.txt) Apache, вернее его русский вариант (Russian Apache) - это, де-факто, стандарт для русскоязычного Web-сервера. (Последняя версия - 1.3.3 PL27.3, можно бесплатно взять с http://apache.lexa.ru/) Именно в Русском Apache впервые появилась серверная перекодировка "под клиента", то есть вывод Web -страницы в той кодировке, которую поддерживает операционная система и броузер. Последние версии Русского Apache содержат развитые средства работы с русским языком: возможность задания разных кодировок для разных директорий на сервере, перекодировка "под клиента", задание разных префиксов или директорий для разных кодировок (например, http://www-win.company.ru и http://www-koi.company.ru или http://www. company.ru/win и http://www.company.ru/koi). Перекодируется также информация, поступающая от клиента (запросы GET, PUT, POST). Основу русифицированной версии составляет Web-сервер Apache к которому добавлен ряд новых функций. Кроме перекодировки русских букв к новым функциям относятся: Выдача правильных значений параметра "Content-Type:- Charset=" в соответствии с указанным согласованием; Вывод при необходимости заголовка "Expires:" для proxy-серверов корректное кэширование Web-страниц (если proxy-сервер совместим с протоколом HTTP 1.1). По "настраиваемости" и гибкости данный сервер, несомненно занимает одно из первых мест. Сравнение с Microsoft Internet Information Server (IIS) 3.0 явно не пользу Microsoft. Например, такую простую вещь как задание двух вариантов стандартного документа сервера (например, index.htm и index.html или index.cgi) в IIS сделать стандартными средствами нельзя. В Apache можно настроить практически все. При этом настройку может производить как администратор сервера (с помощью файлов настройки или даже с помощью графической утилиты), так и конкретной пользователь (с помощью специального файла (обычно .htdocs), если администратор разрешил эту опцию). Ключевые возможности Apache Поддержка виртуальных хостов (virtual hosts) - позволяет держать на одной машине несколько виртуальных web- серверов. Развитая система аутентификации - позволяет ограничить доступ к разным директориям на основе файла паролей или по IP адресу. Работа с CGI скриптами, вcтроенный интерпретатор Perl Модульность системы Модульность Apache позволяет не только подключить свои модули, но и даже дописать недостающие функции. Валерий Коржов (http://ruc.osp.ru/igor/spider.html) описывает случай, когда во время тестирования типов Web серверов сервер города Сызрани (http://www.syzran.ru) ответил, что он называется Syzran. Когда же исследователи заглянули на основную страницу сервера, они обнаружили картинку "Powered by russian Apache", то есть это оказался все тот же Apache, но переделанный под свои нужды.

Анализ Log файлов


Вся информация о том, кто и когда посещал ваш сервер и какие директории на нем смотрел сохраняется в log файлах (обычно access_log, error_log и др). Существует множество программ (скриптов), анализирующих Log файлы и выдающих отчеты (обычно в формате HTML) с графиками. Большая коллекция ссылок на такие программы представлена на сервере Cgi-Resources (http://www.cgi-resources.com/). Скрипты на языке Perl, анализирующие Log файлы, можно найти в разделе Logging Accesses and Statistics (http://www.cgi-resources.com/Programs_and_Scripts/Perl/Logging_Accesses_and_Statistics/)

Squid


Proxy - сервер squid обеспечивает две основные функции, необходимые для работы корпоративной и распределенной сети: ускоряет работу с Интернет (www, ftp) для пользователя и дает возможность администратору ограничить пользователю доступ к разным ресурсам Интернет. (Squid, последняя версия 1.22, можно бесплатно взять с http://squid.nlanr.net/Squid/) При использовании squid можно на 20-30% снизить нагрузку на канал в Интернет, что при использовании низкоскоростных каналов (модем 33.600, выделенная линия 64 кб) или большого количества пользователей ведет к ускорению работы для каждого пользователя в отдельности. Сервер squid позволяет ввести ограничения на доступ пользователям к разным сайтам, при этом разные пользователи могут обладать разными правами. Можно сделать и так, что у каждого пользователя есть свой логин и пароль на доступ в Интернет и работать он сможет с любой машины в локальной сети. В это случае администратор может отследить кто какие ресурсы использует. Дополнительные функции Squid Иерархия Proxy Редиректоры (Redirectors) "Прозрачный" Proxy Squid позволяет создавать иерархию Proxy (иерархию кэшей). Иерархия кешей это структура кеширующих прокси-серверов расположенных логически как родительский/дочерний и братский узлы, таким образом, что кеши ближайшие к каналу в Internet являются родителями тем, которые находятся дальше от точки входа в Internet. При обращении пользователя к Proxy серверу, Squid ищет информацию сначала в своем кэше, а затем, последовательно, во всех кэшах иерархии. Можно зарегистрировать свой сервер Squid в базе NLANR (http://ircache.nlanr.net/Cache/joining.html) и выбрать себе подходящие родительские/дочерние узлы. Если ваш провайдер Интернет использует Proxy сервер можно попросить его включить ваш сервер Squid в его иерархию. Преимущества иерархического кеширования заключаются в снижении загрузки канала, уменьшении времени доступа, лучшей устойчивости к сбоям. Squid Redirectors "подменяют" одни документы другими. Эту функцию можно использовать для блокирования доступа пользователей к различным серверам (например, содержащим информацию "для взрослых"). Также представляет интерес возможность фильтровать рекламу (баннеры) на WWW страницах. Андрей Ковалев (http://ethereal.ru/~avk/anti-ad.html) предлагает простой скрипт (на Perl) для Squid, позволяющий фильтровать рекламу. Его идея основана на том, что URL большинства "баннерных служб" (Reklama.Ru, InterReklema и др) хорошо известны. Таким образом скрипт вызывает Squid Redirectors и вместо загрузки программы, генерирующей баннер, загружает любую картинку с локального сервера. Благодаря этому скрипту можно сильно снизить нагрузку на канал в Интернет. "Прозрачный" Proxy позволяет пользоваться Proxy сервером без настройки браузера. По умолчанию Squid работает через порт 3128, поэтому чтобы пользователь работал через Proxy ему необходимо настроить соответствующие опции Браузера. Сервер Squid можно настроить на работу через порт 80, после этого весь стандартный http трафик пойдет через Squid. Анализ Log файлов На странице http://squid.nlanr.net/Squid/Scripts/ перечислены ссылки на программы, позволяющие анализировать Log файлы Squid. Программа sqmgrlog (http://www.orso.x5.net/index.html) генерирует отчет (в HTML формате) по использованию Интернет (кто куда "ходил" по http и ftp) на основе файла access.log. Если в Squid используется аутентификация, в отчете вместо IP адресов будет присутствовать имя пользователя. Отчет можно разместить на Web так, чтобы его можно было читать через WWW. Все рассмотренное выше программное обеспечение распространяется в исходных кодах и будет также работать под большинством реализаций UNIX, как некоммерческих (например FreeBSD), так и коммерческих.

FireWall


При использовании FireWall (см ниже) proxy-сервер позволит пользователям закрытой корпоративной сети работать с WWW и FTP. Одна из ключевых возможностей Linux, встроенная в ядро системы, - это так называемые функции "маскарадинг" (IP Masquerade) и "файерволинг" (Firewalling). IP Masquerade - вариант Proxy сервера. С помощью IP Masquerade можно организовать подключение к Интернет машин в локальной сети через один IP адрес(через одну телефонную линию). В этом случае Linux-машина используется как Gateway. Машина-gateway подключается к Интернет с помощью модема. На все машины в локальной сети назначаются "фиктивные" IP-адреса (из свободной зоны, например c 192.168.0.1 по 192.168.0.10). После этого все машины в данной локальной сети получают доступ в Интернет через gateway. IP Masquerade - это, также, хорошее средство защиты сети, так как все машины, кроме gateway, не видны из Интернет. С помощью возможностей "файерволинга" можно организовать firewall сервер на базе Linux. Существуют два типа Firewall сервера IP Firewall (или Firewall с фильтрацией пакетов) Proxy сервер Собственно говоря, первый тип сервера обеспечивает защиту сети от атак извне, а второй - позволяет устанавливать ограничения для пользователей внутренней сети. IP Firewall построен на фильтрации пакетов. С помощью firewall этого типа можно фильтровать пакеты, на основе данных о портах, сети отправителя пакета и информации о типе пакета. Например, можно закрыть все порты за исключением нескольких. После этого все пакеты, посланные на закрытые порты будут отражены firewall-сервером. Proxy сервер обеспечивает "непрямой" выход в Интернет через Firewall. С помощью Proxy сервера пользователь работает с ресурсами Интернет не напрямую, а через сервер. Таким образом для каждого пользователя можно задавать список доступных им ресурсов Интернет. Реализация Firewall сервера для Linux может включать в себя все три компонента: IP Masquerade IP Firewall Proxy сервер (Squid) С помощью IP Masquerade мы закрываем все компьютеры в локальной сети (кроме серверов) от атак извне (другими словами, мы их делаем невидимыми, задав им "несуществующие" адреса и подменяя их на адрес данной машины). С помощью IP Firewall мы защищаем сервера (важные сервисы Интернет, например www, ftp и другие) от "направленных" атак хакеров. С помощью Proxy сервера мы, даем возможность пользователям закрытой корпоративной сети работать в Интернет, сокращаем интенсивность обращения к внешним ресурсом за счет кеширования данных, а также устанавливаем для них ограничения.

Контроллер домена Windows NT


Одна из основных функций Windows NT - контроллер домена и подключение сетевых дисков с Windows станций. После выхода системы "Samba Server 2.0" эта возможность теперь есть и для Linux. С помощью этой системы каждый пользователь корпоративной сети может работать со своей рабочей директории на сервере Linux как с обычным сетевым диском Windows. Можно редактировать и сохранять файлы (например html документы) прямо на сервере, не прибегая к услугам Ftp. Точно также с консоли Linux можно получить доступ к сетевым дискам в сети Microsoft. На каждую директорию средствами операционной системы можно установить дисковые "квоты" и после этого использовать Linux как файл-сервер.

Интеграция с Novell


Интеграция между Linux и Novell может осуществляться путем: Монтирования томов Novell на Linux Использование сервера печати Novell на Linux Маршрутизации протокола IPX Эмуляторы Mars Caldera Недостатки Как и любое другое сетевое решение Linux- сервер не лишен недостатков. Основной его недостаток - отсутствие большого количества прикладных программ, не относящихся к Интернет. Еще год назад под Linux не было "настоящих" систем управления базами данных. Сейчас c серверным ПО эта проблема практически решена. На сегодняшний день под Linux нет стандартных средств документооборота (GroupWare) и систем планирования рабочего времени (Shreduling). И хотя IBM заявляет, что планирует выпуск системы документооборота Lotus Notes под Linux, рассчитывать на появление большого количества такого рода продуктов, наверное, не стоит. Однако, новое ПО постоянно появляется

Опыт практической эксплуатации Linux


Автор статьи успешно использует Linux в качестве платформы для Интернет сервера и маршрутизации. Интернет- сервер (IBM PC, Pentium II, 64мб RAM, 3гб HDD IDE) обслуживает порядка 60 машин в распределенной гетерогенной сети. Сеть включает в себя два сегмента, связанных по выделенной линии 64к.

Переход на Linux


Первоначально, в качестве Интернет- сервера использовался сервер под NT. (Web- сервер - Microsoft Internet Information Server, Mail Server - Lotus Notes). Сервер под NT использовался также как сервер документооборота Lotus Notes. В течении 3-х месячной эксплуатации Mail Server работал очень неустойчиво, часто не выдерживал большой нагрузки (прием пересылка больших писем), чем доставлял много хлопот системным администраторам. В основную поставку Lotus Notes не входило система защиты smtp сервера от "спэма", что позволило недоброжелателям из Интернет пользоваться данным сервером для рассылки своего "спэма". В результате сервер был включен в "черный список". Все эти проблемы можно было решить путем установки более мощной машины (2-х процессорного Pentium -II) и покупкой дополнительного программного обеспечения. Однако все это требовало серьезных финансовых затрат. Было принято решение перейти на сервер Linux. На сервере Linux установлен Web -сервер (Apache Rus.), Ftp- сервер, прокси-сервер (Squid), Mail-сервер (Sendmail), Dns-сервер (Named), Samba-server. Web-сервер отвечает за работу 3 виртуальных серверов, для каждого из которых ведутся свои log-файлы. За разные директории сервера отвечают различные сотрудники. Прайс-листы сервера обновляются менеджерами по локальной сети с помощью Samba Server. Другие директории обновляются сотрудниками по Ftp. Прокси-сервер был установлен для контроля за доступом к Интернет и "разгрузки" выделенной линии (64к). После эксплуатации сервера в течении 6 месяцев удалось "разгрузить" канал в Интернет на 30-50%.

Распределенная сеть


Сеть, как уже говорилась, состоит из двух сегментов, связанных выделенной линией (точнее ISDN каналом). За маршрутизацию TCP/IP из (в) Интернет и внутри первого сегмента отвечает маршрутизатор Cisco. Один канал (ISDN B1, 64к) отведен на Интернет, второй (B2, 64к) обслуживает выделенную линию между сегментами сети. Во втором небольшом (10 машин) сегменте сети установлен второй Linux сервер, которые используется как маршрутизатор, firewall и mail- сервер. Этот сервер маршрутизирует трафик внутри своей локальной сети, в Интернет (через выделенную линию и Cisco) и в локальную сеть первого сегмента. (см. Рисунок) /* здесь должна быть схема сети */ Маршрутизация почты между сегментами реализована через Алиасы (Aliases). Главный сервер поддерживает общий почтовый домен (company.ru). В конфигурации Маil -сервера записано, что почту пользователя из второго сегмента надо пересылать на Linux сервер, находящийся во втором сегменте. Пользователи сегмента 2 скачивают почту со своего локального сервера, что также препятствует "загрузке" выделенной линии. Точно также, когда пользователь второго сегмента отправляет почту, локальный сервер пересылает ее на основной сервер. Если почта предназначена пользователю локальной сети основной Mail сервер просто копирует письмо в соответсвующюю директорию на сервере. Если же письмо адресовано пользователю Интернет, Mail сервер отправляет его через SMTP. Mail - сервер на главной Linux -машине обслуживает несколько почтовых доменов.

Итак, вкратце, достоинства Linux:


Большие серверные возможности Гибкая настройка и управление. Бесплатное распространение. Исходя из всего вышесказанного, Linux - может быть хорошим и недорогим решением для Интернет и даже корпоративного сервера. Информация о ПО, рассмотренном в этой статье Русский Apache: http://apache.lexa.ru/ Можно бесплатно скачать самую свежую версию. Документация, "Как настроить?", FAQ. "Дистрибутивный" Apache: http://www.apache.org Squid: http://squid.nlanr.net/Squid/ Свежая версия системы, документация, FAQ Squid FAQ на русском: http://www.lgg.ru/~linux/books/Squid-faq.html

Документация по Linux в Интернет:


Русскоязычные ресурсы: Телеконференции: fido7.ru.linux, fido7.ru.unix.linux - "основная" русскоязычная конференция по Linux. Рассматриваются все вопросы связанные с ОС Linux от программирования до настройки. WWW: http://www.linux.org.ru - Новости, 10mb документации на русском языке, переводы Man Pages, HowTo, FAQ, ссылки на другие ресурсы по Linux, поиск по серверу. Есть также Web форум, где можно задать свои вопросы и получить ответы на них. Один из самых популярных сайтов про Linux http://kulichki.rambler.ru/moshkow/ - "юниксоидам всех стран". Большая коллекция ссылок на ресурсы по UNIX и LINUX (книги М.Уэлш. Инсталляция Linux и первые шаги, А.Костарев. Настройка Linux Интернет сервером, Конфигурирование ядра Linux. (пер.А.Костарев) Владимир Водолазский. Путь к Linux(для новичков) и др.) http://www.linux.opennet.ru/ Большой каталог ссылок (с описанием) на Linux ресурсов, обзоры программ, статьи. Удобный интерфейс, рубрикация, поиск. http://xtalk.price.ru/linux/ Страница Бориса Тоботраса. Всякая всячина про Linux, Перевод Linux Meta-FAQ, украинизация Linux, ссылки http://www.dkd.ot.lt/hompag/linux/koi8/Cover/Cover.htm Линукс-Чайник. Введение в Linux, "Где взять?", "Как установить?", новости, полезные советы. http://linuxfocus.nevod.ru/Russian/ Журнал LinuxFocus по русски. " LinuxFocus - в настоящий момент это единственный многоязыковой электронный журнал посвященный операционной системе Linux. LF создается и развивается усилиями многих добровольцев со всего мира. " http://www.nevod.ru/linux/ - База данных русифицированного программного обеспечения (Проект), Ежедневные новости Linux от НЕВОД'а, много иллюстраций (схем), Русский FreshMeat (новости Linux) http://www.irwin.ru/linux/ - Каталог программ, проектов, сайтов, документации. Подборка ссылок на русские ресурсы с описаниями http://www.citforum.ru/operating_systems/unix.shtml - Подборка статей и книг по Unix и Linux http://linux.inf.ru/ Linux Information Site: Linux Gazette, документация по-английски, FTP архив. Довольно неудобный текстовый интерфейс. Англоязычные ресурсы: Телеконференции: alt.os.linux - "Альтернативная" (неофициальная) конференция по Linux comp.os.linux.* - группа конференций, каждая из которых посвящена определенному аспекту ОС. Администрирование, установка, "железо", вопросы и ответы и др. WWW: http://www.linux.org - Официальный сервер Linux http://www.linuxhq.org - Информация про ядро Linux http://sunsite.unc.edu/LDP - Linux Documentation Project (Документация). Один из самых известных сайтов. http://slashdot.org - Новости Linux http://www.freshmeat.net - ПО под Linux Дистрибуция http://www.redhat.ru - Один из самых известных и популярных дистрибутивов Linux http://www.slackware.com/ Дистрибутив SlackWare http://www.suse.de - Дистрибутив S.u.S.E, немецкая разработка http://www.cheapbytes.com/ - большое количество различных дистрибутивов Linux на CD (Debian, SlackWare, RedHat, OpenLinux и др.) В России http://www.vinchi.ru/ Vinchi Group. RedHat Linux 5.2 на CD + Некоторая русская документация, переводы HOW-TO, все необходимое для русификации (10$) http://cheapbytes.homepage.ru/ Российское представительство CheapBytes Александр Рубин Системный администратор ЗАО "Альвис Плюс" (rubin@alvis.ru)

Наша библиотека является официальным зеркалом библиотеки Максима Мошкова lib.ru

Реклама