Ж у р н а л   о   к о м п ь ю т е р н ы х   с е т я х   и   т е л е к о м м у н и к а ц и о н н ы х   т е х н о л о г и я х
СЕТИ И СИСТЕМЫ СВЯЗИ on-line
  ПОИСК: ПОДПИСКА НА НОВОСТИ: НОМЕР:
    ДОМОЙ • Архив: Новостей | Конференций | НомеровПодписка
 
   
 
   
    
РЕДАКЦИЯ
 
Все о журнале
Подписка
Как проехать
Где купить
Отдел рекламы
График выхода журнала
Адреса в Интернет

РУБРИКАТОР
   
• Инфраструктура
• Информационные
   системы

• Сети связи
• Защита данных
• Кабельные системы
• Бизнес
• Колонка редактора
• Электронная
   коммерция

• Только на сервере
• Системы
   учрежденческой
   связи

• Новые продукты


Rambler's Top100

  

"Песочницы" для Web-серверов

Эл Вильямс

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

Как только вы начинаете добавлять новые Web-серверы в вашу сетевую инфраструктуру, затраты на ИТ резко возрастают. Даже если нужды ваших пользователей абсолютно разные, вряд ли имеет смысл предоставлять каждой группе или отделу выделенный Web-сервер - ведь за него должен кто-то отвечать и обеспечивать его поддержку. У большинства же групп для этого просто нет ресурсов.

Традиционное решение вопроса - воспользоваться виртуальным хостингом, т. е. чтобы одна машина обслуживала несколько отделов при централизованном администрировании. Проблема здесь в том, что многие отделы не устроит выделение им места под размещение простых Web-страниц. Им наверняка захочется запускать CGI-сценарии, организовывать периодическое выполнение задач или даже инсталлировать на сервере новое ПО. Естественно, вы можете открыть доступ к CGI-каталогам, разрешить использовать языки сценариев, такие, как ASP или PHP, но тогда встает проблема безопасности. На общем (разделяемом) сервере один неосторожный пользователь способен поставить под угрозу конфиденциальные данные всех и каждого.

Другое решение состоит в использовании такого популярного продукта, как VMWare, позволяющего создавать множество виртуальных машин на одном компьютере. Тогда отпадает необходимость в покупке нового дорогостоящего оборудования, но проблема сложности инфрастуктуры не решается. Виртуальные машины совершенно независимы друг от друга, они могут работать даже под управлением разных ОС. А поэтому вам по-прежнему придется управлять множеством сайтов. Если только владельцы виртуальных машин не возьмут на себя все обязанности по управлению ими, вам придется самому заниматься обновлением и модернизацией самого разного ПО.

Срединный путь

К счастью, помочь в решении этой проблемы может относительно новый тип ПО при условии, что вы готовы использовать только одну ОС на всех ваших сайтах. Идея вкратце такова: развернуть на одной машине одно-единственное ядро ОС, а его системные ресурсы разделить между несколькими "облегченными" (lite) виртуальными серверами - так называемыми "песочницами" (sandboxes). В каждой такой песочнице независимо от всех прочих запускаются собственные Web-сервер и почтовое ПО. При этом, с одной стороны, у каждого виртуально сервера есть своя (локальная) учетная запись администратора (manager account), с другой - системный администратор может модифицировать все виртуальные серверы сразу.

Одним из таких решений является продукт FreeVSD (http://www.freevsd.org). Предназначенный главным образом для Интернет-провайдеров, он тем не менее хорошо справляется и с другими задачами, включая обеспечение разработки ПО параллельно с поддержкой уже имеющихся Web-сайтов и тестирование нового ПО без помех для их нормального функционирования.

Устанавливать FreeVSD просто. Системный администратор подготавливает шаблон файловой системы, называемый skel (в поставку входят несколько заранее подготовленных шаблонов). Этот шаблон становится затем основой для файловой системы каждого виртуального сервера. Затем системный администротор размещает в skel файлы и программы, которые понадобятся менеджерам виртуальных серверов для поддержки работы их сайтов.

Виртуальный сервер FreeVSD функционирует в среде chroot - следовательно, для любой работающей на этом сервере программы skel выглядит как полноценная файловая система. Никакие файлы или программы за пределами skel ей недоступны. Кроме того, FreeVSD подменяет некоторые важные команды. В результате команда ps, например, выводит на экран только процессы, связанные (ассоциированные) с текущей виртуальной машиной. А команды su, cp и mv модернизируются таким образом, чтобы распознавать полномочия локальных администраторов.

Системный администратор оставляет за собой право монопольного владения ПО, которое должно быть защищено от несанкционированного использования, в частности программами ls и cat. В рамках skel одноименные файлы на самом деле являются жесткими ссылками на исходные программы, хранящиеся совсем в другом месте. Таким образом, суммарный расход ресурсов системой FreeVSD незначителен, поскольку каждый экземпляр skel разделяет большую часть файлов со всеми прочими экземплярами. (Создатель FreeVSD утверждают, что каждый виртуальный сервер занимает 20 Мбайт, при этом каждый экземпляр skel содержит файлов на 500 Мбайт.) Все это упрощает системному администратору задачу предотвращения крупных проблем, которые могли бы быть инициированы неосторожным пользователем.

Виртуальный сервер должен иметь собственную копию всех тех файлов, которые его владелец может пожелать изменить, - это конфигурационные файлы серверов e-mail и Apache, журналы регистрации событий и все прочее, что меняет от сервера к серверу. Так, в системе может иметься всего одна физическая копия приложения MySQL, но каждый виртуальный сервер способен запускать собственный экземпляр этой СУБД, точно сконфигурированный для его нужд. Как правило, владельцем этих конфигурационных файлов является локальный администратор, действующий как пользователь root для данного виртуального сервера.

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

Сетевые компоненты

Хотя с FreeVSD вроде бы все просто, но тем не менее существует несколько моментов, о которых вам следует знать. Каждый виртуальный сервер имеет собственный IP-адрес и способен отвечать на сетевые запросы через обычные порты. Однако приложения, функционирующие в песочнице FreeVSD, не могут работать с системными полномочиями root, а лишь с полномочиями локального администратора данной виртуальной машины. В большинстве Unix-систем только пользователь с полномочиями root может открывать привилегированные порты (т. е. порты с номерами меньше 1024). Поскольку Web-серверу обычно необходим порт 80, это может стать проблемой. Но ее можно обойти.

В новейших ядрах ОС Linux (версий 2.4 и вышедших позднее) пользователю root доступны функции ПО IPtables для маршрутизации пакетов к непривилегированному порту. В стандартной инсталляции ПО IPtables порту 80 каждой машины поставит в соответствие порт 8080, а порту 443 (протокол HTTPS) - порт 8443. Поскольку каждая машина имеет собственный IP-адрес, ясно, какая из них должна отвечать на тот или иной входящий запрос. В отличие от способов, применявшихся в более старых версиях ядра, использование IPtables позволяет корректно регистрировать IP-адреса источников входящих запросов. Если пользователь root четко представляет, какими портами должна оперировать каждая виртуальная машина, то этот метод работает хорошо.

Со своей стороны администратор виртуальной машины правомочен установить квоты на полосу пропускания и дисковое пространство либо для всего виртуального сервера, либо для каждого пользователя. Он может так сконфигурировать сервер Apache, чтобы на каждой виртуальной машине можно было размещать по нескольку Web-сайтов. Обычно это говорит об использовании виртуального хостинга на базе имен (name-based virtual hosting), хотя вполне возможна ситуация, чтобы одна виртуальная машина имела несколько IP-адресов.

Инсталляция ПО

Администратор виртуального сервера может инсталлировать любое ПО, какое ему заблагорассудится, при соблюдении двух условий. Во-первых, желательно, чтобы это ПО не "конфликтовало" с теми элементами skel, которые принадлежат системному администратору (root). Если для работы пакета требуется внести изменения в некий общий каталог, принадлежащий root, то даже администратор виртуального сервера не сможет инсталлировать это ПО. Во-вторых, данное ПО не "вправе" требовать полномочий root. Такое приложение, например, не должно открывать порты с номерами ниже 1024.

Даже при этих ограничениях имеется масса полезного ПО, которое вы сможете инсталлировать в рамках файловой системы skel. Вы легко установите на виртуальный сервер практически любую программу CGI, служебную утилиту, ПО анализа журнальных файлов, да и всевозможные модули Apache будут "безропотно" работать. У администратора даже есть доступ к ПО GCC (GNU Compiler Collection), так что программы, которые нужно скомпилировать из исходных кодов на языках Си или С++, не породят проблем.

Администраторы регистрируются на своих машинах посредством протоколов telnet или, что предпочтительнее, SSH. Из командной строки вы сможете делать все привычные для администратора сервера Unix операции. Кроме того, в ПО FreeVSD имеется Web-интерфейс, а также клиентское Windows-приложение для нужд администрирования.

Выбор оптимального масштаба

Системы вроде FreeVSD идеально подходят для разделения одного физического сервера между несколькими пользователями или отделами. Даже если нужды ваших пользователям не требуется множества серверов, все же выделение каждому отделу его собственной "песочницы" может существенно упростить администрирование.

У ПО FreeVSD есть несколько очевидных преимуществ по сравнению с выделенным или виртуализированным (с помощью ПО VMWare) сервером. В частности, FreeVSD позволяет обойтись меньшими ресурсами, чем в том лучае, когда приходится устанавливать новое оборудование для каждого отдела, поскольку все виртуальные серверы FreeVSD используют общие дисковое пространство и ресурсы ядра. И что еще важнее - администрирование ПО FreeVSD осуществляется значительно проще, чем администрирование нескольких машин, как реальных, так и виртуальных.

Недостатком этого подхода, разумеется, является требование, чтобы машина обладала достаточной мощностью для одновременной работы нескольких виртуальных серверов. А они не обладают совершенной защитой друг от друга. Поскольку каждый виртуальный сервер в действительности является совокупностью процессов, выполняющихся на одном и том же физическом сервере Unix, то потенциально один виртуальный сервер может заставить все прочие "голодать", лишив их ресурсов. И все же экономичность и простота использования FreeVSD - это прекрасный выход из ситуации, когда виртуального хостинга недостаточно, а выделенный сервер является слишком дорогим удовольствием.


интернет магазин белый кот




  
2 '2003
СОДЕРЖАНИЕ

бизнес

• Юридические аспекты хранения электронных данных

инфраструктура

• Технология Hyper-Threading повышает производительность серверов

• Новое в RSVP

• "Песочницы" для Web-серверов

• Тестируем регулировщики трафика территориально распределенных сетей

информационные системы

• Абонентские сервисы в контакт-центре

• Обращаем ошибки себе на пользу

• На все руки мастер

сети связи

• Обеспечение безопасности сетей ОКС-7

• "Софтсвич" - это по-нашему!

кабельные системы

• Развитие стандарта на кабельные системы жилых зданий

• Сети Industrial Ethernet

защита данных

• Обзор решений HIP

новые продукты

• "Дэйтлайнер" соединяет

только на сервере

• ETM сделает менее уязвимой телефонную сеть вашей компании


• Калейдоскоп



 Copyright © 1997-2007 ООО "Сети и Системы Связи". Тел. (495) 234-53-21. Факс (495) 974-7110. вверх