On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

Интернет- сервер под Linux

Александр Рубин

(Linux - свободно распространяемый UNIX клон, написанный с нуля Линусом Торвалдсом (Linus Torvalds) с помощью большой команды добровольцев по всей Сети.) С начала 1998 года интерес к Linux во всем мире резко возрос.Компьютерные журналы публикуют статьи про эту ОС и интервью с ее ЛинусомТорвалдсом. Под Linux были "портированы" практически все коммерческиесистемы управления базами данных: Interbase, Ingres, Informix, Oracle, DB2 идругие. Коммерческие производители софта и железа начали серьезно относится кLinux. Сначала IBM, а потом Compaq заявили о выпуске своих серверовBrandName с ОС Linux. О всплеске интереса к Linux в России можно судить по статистикепоисковой системы Rambler. В списке самых "запрашиваемых" слов (Top 100Search 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, SmailZmail и др.)

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 и др) хорошо известны. Таким образом скрипт вызывает SquidRedirectors и вместо загрузки программы, генерирующей баннер, загружаетлюбую картинку с локального сервера. Благодаря этому скрипту можно сильноснизить нагрузку на канал в Интернет. "Прозрачный" 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 использовался также как сервер документооборота LotusNotes. В течении 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


Литература по серверам: разное