Рубрика:
Администрирование /
Администрирование
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Валентин Синицын
eBox – новая серверная платформа
Прочитав заголовок, сразу же подумали о POWER 6? Холодно! О Red Hat Enterprise Linux и Windows Server 2008? Теплее. Платформа, о которой пойдет речь, – программная, но это не очередная версия популярной ОС.
Вопреки распространенной поговорке, называющей UNIX дружественным пользователю (правда, весьма разборчивым в выборе друзей), именно в адрес этой категории ОС чаще всего приходится слышать обвинения в трудности и непонятности. Само по себе это неудивительно: сложный инструмент требует соответствующей подготовки, однако всегда хочется всего и сразу, поэтому проблема «А как бы получить инструмент чуть менее мощный, но значительно менее сложный?» сегодня актуальна, как и пять-семь лет назад.
В настольных системах для ее решения придумывают утилиты с труднопроизносимым названием «графические конфигураторы», а для облегчения труда администраторов серверов традиционно применяют веб-интерфейсы.
Классическим представителем последних является Webmin (www.webmin.com) – по меткому описанию разработчика Ubuntu Server Сорена Хансена (Soren Hansen) «двусторонний транслятор «конфигурационный файл – HTML-форма», который не столько упрощает настройку ОС и ее сервисов, сколько позволяет делать это, не прибегая к командной строке.
Дальнейшим логическим развитием данной идеи являются проекты вроде ClarkConnect (www.clarkconnect.com) и специализированные дистрибутивы-брандмауэры: SmoothWall, IPCop, m0n0wall [5] и другие. Их установка максимально автоматизирована, а пользователю предлагается менять лишь некоторые настраиваемые параметры вроде порта, на котором должна работать та или иная служба.
Давайте познакомимся с новым, не совсем обычным игроком на этом поле – eBox Platform [1].
Подобно ClarkConnect «сотоварищи», eBox – это среда для управления сервисами и сетью через веб-интерфейс. Однако в отличие от них, он доступен не только в виде готового CD, но и в форме deb-пакетов, которые можно интегрировать с подходящим дистрибутивом. Иными словами, если у вас уже есть сервер на базе Debian и вы хотите просто снабдить его веб-интерфейсом, ничего перестанавливать не придется (хотя с переносом существующих настроек придется повозиться – eBox затирает конфигурационные файлы своими собственными).
То же самое верно, конечно, и в отношении Webmin, но в отличие от него eBox старается всячески упростить администрирование и сделать процедуру настройки доступной даже начинающему UNIX-администратору. Это особо ценное качество для небольших компаний, располагающих специалистами по Windows, то есть людьми, знающими, как в принципе решать ту или иную задачу, но плохо представляющими себе специфику UNIX-систем.
Проект едва ли можно назвать молодым – он развивается уже три года и к тому моменту, когда вы будете читать эти строки уже, вероятно, достигнет заветной версии 1.0.
В начале сентября его основной разработчик испанская фирма Warp Networks (www.warp.es) завершила формирование Совета директоров eBox Platform (в который, кстати, вошли представители компаний Nokia, Технологического университета г. Хельсинки и даже бывший вице-президент Microsoft!) и сейчас готовится к запуску коммерческих сервисов, построенных вокруг eBox.
Сама же платформа является полностью свободным ПО, поставляющимся на условиях GNU GPLv2. По всей видимости, eBox будет основным инструментом настройки во всех версиях Ubuntu Server, начиная с Gusty Gibbon (7.10).
Где взять?
В разделе Downloads на сайте проекта [1] можно найти те самые пакеты Debian, о которых говорилось, ссылку на репозиторий Subversion, а также eBox Installer и eBox Live CD!.
Первый из них – установочный CD на базе Debian Sarge с преднастроенным eBox «на борту», второй, как нетрудно догадаться по названию, LiveCD с eBox (на базе Morphix). На момент подготовки статьи Live-версия несколько отставала от установочной.
При этом eBox Installer не следует считать аналогом/конкурентом ClarkConnect и других решений «под ключ»: это действительно Installer, то есть средство для установки eBox – не более. Здесь нет дружественного пользователю мастера первого запуска, как, скажем, в IPCop – только оригинальный установщик Debian и необходимые пакеты.
К настоящему моменту слово «Debian» прозвучало в тексте столько раз, что уже, наверное, стоит объяснить склонность автора именно к этому семейству дистрибутивов. Секрет прост: другие разновидности Linux, равно как и другие ОС, отличные от Linux 2.6, eBox попросту не поддерживает – в коде продукта присутствует некоторое количество «дебианизмов» (debianisms), причем каких именно, разработчики, к сожалению, не сообщают. Утверждается, впрочем, что перенос eBox на другой дистрибутив будет несложным делом, но, как говорится, «не знаем – не пробовали».
Какой бы способ установки eBox платформ вы ни выбрали, следует иметь в виду, что это действие является потенциально опасным: eBox глубоко интегрируется в систему и заменяет многие конфигурационные файлы своими собственными.
Исходя из этого, ему следует отвести отдельный компьютер (физический или виртаульный), а также, если установка производится не «с нуля», сделать резервные копии файлов настройки.
Процесс установки eBox на существующую систему Debian описан в соответствующем руководстве; мы же будем подразумевать, что инсталляция производилась посредством eBox Installer. В этом случае сразу после установки и перезапуска компьютера eBox будет доступен по адресу: https://имя-хоста:443, пароль по умолчанию – ebox.
Что внутри?
Сразу после входа в систему вашему вниманию предстанет следующее окно (см. рис. 1).
Рисунок 1. Добро пожаловать в eBox Platform!
Интерфейс eBox построен с использованием новомодных AJAX-технологий, поэтому не забывайте нажимать кнопку «Save changes», расположенную в правом верхнем углу, чтобы сохранить сделанные изменения. При необходимости их можно и откатить – нажмите на все ту же кнопку «Save changes» и в появившемся меню выберите пункт «Discard changes».
eBox русифицирован, но качество перевода (на мой взгляд) оставляет желать лучшего, поэтому я предпочитаю общаться с ним на языке Марка Твена и Хемингуэя.
Функционал eBox реализован в виде модулей, которые можно устанавливать и удалять, подгоняя тем самым возможности платформы под свои нужды. Существующие модули можно грубо разбить на две группы: работающие с сетью и работающие с сервисами. Начнем наш обзор с первой из них.
В свое время автор этих строк потратил не один день, пытаясь найти основанный на Linux маршрутизатор в духе IPCop (www.ipcop.org), способный работать сразу с несколькими интернет-провайдерами, причем не в режиме балансировки или обеспечения отказоустойчивости, а по принципу «Вся почта через соединение А, веб-трафик с хостов 192.168.1.0/24 – через соединение Б».
В конечном итоге было решено остановиться на обычном универсальном дистрибутиве и скриптах Shorewall (www.shorewall.net). eBox Platform – единственная известная мне система, способная решить эту задачу «из коробки». Давайте посмотрим, как именно.
Базовым элементом сетевой подсистемы eBox является интерфейс. Он может быть статическим (Static), получающим адрес по DHCP, а также включенным в VLAN (тип Trunk 802.1q).
Помимо этого, все интерфейсы подразделяются на внутренние (internal) и внешние (external) – последние считаются соединенными Интернетом, и для проходящих через них пакетов автоматически выполняется NAT-преобразование. На них также не будут доступны сервисы, сконфигурированные для внутреннего использования. К каждому физическому интерфейсу, сконфигурированному статически, может быть подключено несколько виртуальных (ethX:Y).
Среди параметров сетевого интерфейса не был перечислен шлюз по умолчанию, и неспроста. В терминах eBox шлюз (gateway) является отдельной сущностью с такими атрибутами, как адрес (он должен быть задан статически), вес (weight) и пропускная способность в каждом из направлений (используется при шейпинге трафика). Создав два и более шлюза, можно создавать на их основе особые правила (Multi-gateway rules), определяющие, как именно следует маршрутизировать пакеты.
Однако предварительно имеет смысл создать так называемые «сетевые объекты» (Network objects). Сетевой объект – это не более чем именованный набор узлов сети, каждый из которых определяется IP-адресом в CIDR-нотации и (опционально) MAC-адресом.
Согласитесь, запрещать доступ к bash.org.ru для «бездельников из саппорта» куда веселее, чем для безликих 192.168.0.1-3, да и вам самим будет куда проще разобраться с настройками спустя один-два месяца или после очередного корпоратива. При этом каждый IP-адрес может принадлежать не более чем к одному сетевому объекту.
Несколько огорчает то, что при составлении списка адресов, входящих в объект, нельзя использовать исключения, то есть ситуация «192.168.0.0/24 кроме 192.168.0.10» реализуется только прямым перечислением оставшихся 253 адресов.
Русские буквы в названиях тоже лучше не применять – возможны странные ошибки, причем иногда с отложенным временем срабатывания.
Впрочем, использование или неиспользование сетевых объектов является делом добровольным – практически всюду, где можно указать имя сетевого объекта, система позволяет ввести и обычный IP-адрес.
Вернемся к нашим провайдерам. Модуль Balance traffic решает задачу, сформулированную несколькими параграфами ранее: определяет провайдера (т.е. шлюз) для пакета, пришедшего от данного сетевого объекта или IP-адреса по указанному протоколу (TCP/UDP) и имеющего соответствующие порты отправителя и получателя.
Хотите, чтобы все гости с ноутбуками (которые получают IP из диапазона 10.1.0.220-10.1.0.230) пользовались дешевым, но не слишком быстрым спутниковым каналом? Нет проблем: создайте соответствующий объект и укажите его в качестве отправителя (см. рис. 2). А установив переключатель Traffic balancing в положение Enabled, вы просто распределите нагрузку между каналами: здесь все определяется весом, который вы указали при создании шлюза.
Рисунок 2. Теперь все IP-адреса, включенные в «Guest notebooks», будут отправляться прямиком через ISP2
Несмотря на наличие столь богатых возможностей по управлению трафиком, я все же не спешу установить eBox на свой маршрутизатор. Почему? Дело в том, что платформа не поддерживает ни PPTP, ни PPoE, а именно их-то и используют мои провайдеры. Судя по спискам рассылки и информации в trac [2], вряд ли можно ожидать, что ситуация изменится в ближайшем будущем, если только кто-то из заинтересованных лиц не выпустит соответствующий неофициальный модуль.
Наконец, никакая уважающая себя локальная сеть не должна обходиться без брандмауэра. Для этих целей в eBox включены модули Packet Filter и Redirects (см. рис. 3). Настройки межсетевого экрана разбиты на три категории: правила фильтрации для сетевых объектов, доступ к сервисам и обмен данными между внутренними сетями. Часть настроек выполняется автоматически: активировав некоторый сервис, вы автоматически откроете доступ к нему из соответствующих сетей. Модуль Redirects служит для проброса портов (port forwarding) к серверам, работающим за NAT.
Рисунок 3. Настройки пакетного фильтра. Красный фон кнопки «Save changes» сигнализирует о наличии несохраненных изменений
В том, что касается управления службами, ситуация более простая. Здесь обычно срабатывает правило «один модуль – один сервис». Наиболее интересные (на мой взгляд) модули, входящие в состав eBox, таковы:
- Jabber. Сервер популярной сети обмена мгновенными сообщениями для компьютеров корпоративной сети, а при желании – и для внешних хостов. В последнем случае необходимо убедиться, что в поле «Domain name» указано реально существующее доменное имя, а флажок «Global Jabber Network Connection» установлен. Через этот же модуль осуществляется и управление учетными записями пользователей Jabber.
- OpenVPN. Легковесное решение для организации виртуальной частной сети (VPN). Возможна работа как в режиме сервера, так и в режиме клиента. Процедура настройки для типовых ситуаций (Road Warrior и безопасное соединение двух офисов) описаны в руководстве пользователя eBox [3]. Сертификаты, необходимые для работы OpenVPN, можно получить через модуль Certificate Authority Management (см. ниже).
- Файл-сервер и служба печати. Осуществляет разделяемый доступ к файлам по протоколу SMB/CIFS (клиенты Microsoft Windows). eBox также может выступать в роли основного контроллера домена (PDC) Windows NT. Для настройки службы в любом из режимов достаточно указать имя домена/Netbios и пользовательскую квоту. Управление пользователями осуществляется через модуль Users.
- Шейпинг трафика. Здесь можно ограничить ширину канала для некоторых IP- и MAC-адресов, а также заранее созданных сетевых объектов и служб (HTTP, FTP и так далее). Для правильной работы данного модуля очень важно ввести корректные значения в поля «Upload» и «Download» в настройках шлюза.
- Менеджер сертификатов. Ваш личный центр сертификации (CA), позволяющий выдавать, обновлять и отзывать сертификаты, используемые модулями eBox (например, рассмотренным выше OpenVPN) и сторонними приложениями (см. рис. 4).
Рисунок 4.Модуль CA Management искусно прячет тонкую механику OpenSSL за приятным веб-интерфейсом
Помимо этого присутствуют традиционные серверы DHCP и NTP (с возможностью синхронизации часов клиентских компьютеров по локальной сети), DNS-кэш (кстати, не на базе dnsmasq, как это обычно бывает, а на основе полноценного BIND), почтовый сервер с защитой от вирусов и спама (Postfix + SpamAssassin + ClamAV, доступ к постовым ящикам пользователей осуществляется по протоколам POP3/IMAP4 – эту функциональность обеспечивает Courier) и прозрачный веб-прокси с фильтрацией контента (Squid + DansGuardian).
А как оно устроено?
Стройная объектно-ориентированная структура eBox наводит на мысли о Java и C++, но коль скоро мы имеем дело со сложным административным инструментом для UNIX, выбор языка программирования практически однозначен – это Perl. Помимо собственно интерпретатора (www.perl.org) потребуются Apache (httpd.apache.org) и mod_perl (perl.apache.org) [4]. Следующий компонент платформы eBox – это Mason (www.masonhq.com), язык шаблонов на базе Perl. Традиционно он применяется для отделения логики CGI-скрипта от ее HTML-представления, но eBox идет еще дальше и использует Mason не только для веб-интерфейса, но и для генерации конфигурационных файлов. Каждый раз, когда вы сохраняете настройки, платформа заново создает их, используя заранее приготовленные шаблоны (кстати, это означает, что все изменения, внесенные в конфигурацию вручную, будут потеряны), а затем перезапускает соответствующие сервисы.
Наконец, последний неотъемлемый компонент работающей eBox-платформы – это демон GСonf (gnome.org/projects/gconf). Традиционно ассоциирующийся с рабочим столом GNOME (а у отдельных личностей – даже с реестром Microsoft Windows), GConf представляет среду для хранения настроек (т.е. пар «ключ-значение»), организованных в некоторую иерархию. Он действительно уходит корнями в GNOME, но при этом является вполне самодостаточным (как, например, GLib) и не привязан к данному графическому окружению. Модули eBox используют его для хранения своих настроек, а поскольку это происходит централизованно, платформа легко может резервировать и восстанавливать свою собственную конфигурацию (модуль Backup), а также имитировать транзакционность, откатывая большую часть сделанных изменений по нажатию на кнопку «Discard Changes».
Где узнать больше?
Как и подобает приличному открытому продукту, производимому коммерческой компанией, eBox Platform поставляется с полным комплектом документации, причем весьма неплохого качества. Вашему вниманию предлагаются три руководства (на английском и испанском языках): User's Guide (для пользователей), Developer's Guide (для разработчиков) и Installation Guide (инструкция по установке), не считая контекстной справки, которая появляется по щелчку на ссылке «Show Help» в веб-интерфейсе.
Руководство пользователя описывает основные функции eBox. Оно не является заменой учебника по той или иной технологии и поможет вам только в том случае, если вы уже представляете, что хотите сделать и ищете подсказку, как достичь желаемого средствами eBox. Впрочем, для достаточно сложных тем, а также вопросов, связанных с архитектурой платформы, даются более подробные пояснения.
Руководство разработчика ориентировано на людей, желающих разрабатывать для eBox свои собственные модули. Его потенциальный читатель должен иметь достаточное представление о Perl, так что если вам никогда раньше не приходилось работать в этом языке с исключениями – приготовьтесь удивляться.
Инструкция по установке – самый тонкий документ из трех: всего одна веб-страница. Памятуя о Debian-ориентированности eBox, можно было бы ожидать увидеть здесь советы по переносу платформы на другие дистрибутивы, но увы – все сводится к eBox Installer и apt-get.
И наконец...
По законам жанра, здесь должна стоять фраза вроде: «Конечно, мы рассмотрели далеко не все возможности eBox. За бортом остались...», но я предпочту этого не делать. Моей целью было дать вам общее представление о платформе eBox Platform накануне ее официального запуска, и если после прочтения у вас сформировалось мнение «Да, на это стоит посмотреть» или, наоборот, «Нет, мне это не нужно» – значит, я не зря потратил время на ее написание. Со своей стороны, думаю, что eBox будет интересен небольшим предприятиям, которым нужен надежный и простой в управлении сервер по типу «все в одном», а также консалтинговым фирмам, внедряющим Linux-решения в таких организациях.
- Сайт eBox Platform – http://www.ebox-platform.com.
- eBox Trac – http://trac.ebox-platform.com.
- eBox User's Guide – http://www.ebox-platform.com/users-guide.
- Мичурин А. Оцениваем возможности mod_python и mod_perl. //Системный администратор, №8, 2007 г. – С. 62-66.
- Яремчук С. m0n0wall – дистрибутив для создания межсетевого экрана. //Системный администратор, №5, 2007 г. – C. 74-77.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|