Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
20.04.2024
Размер:
27.6 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

120m

Unixoid

w Click

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

Дмитрий Чумак dchumak@itsumma.ru

OPENSTACK

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

ХАКЕР 12 /191/ 2014

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

ПРАКТИЧЕСКИЙ ОПЫТ БОЕВОГО ИСПОЛЬЗОВАНИЯ

OPENSTACK

hikrcn@shutterstock.com

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

ХАКЕР m

12 /191/ 2014

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

to

 

 

 

 

 

Боль и страдания OpenStack

 

 

 

 

 

 

 

 

 

m

w121Click

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-x cha

 

 

 

 

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

ы уже как-то писали краткий обзор «карманной об-

 

лачной инфраструктуры» в одном из предыдущих

 

номеров, но было это давно и неправда (подумать

 

только, уже почти три года прошло!). Так что на вся-

 

случай вот краткая выжимка: OpenStack — это открытая

 

Мкий

 

(Apache License 2.0) платформа, позволяющая малыми си-

 

лами организовать на любом количестве железных серверов

 

облачную инфраструктуру а-ля Amazon Web Services. Тут вам

 

и масштабирование виртуалок, и живые миграции, и балан-

 

сировка нагрузки по нодам, и устойчивость к выходу из строя

 

некоторого процента узлов. В числе основных разработчи-

 

ков — небезызвестная NASA и Rackspace, Red Hat, Canonical,

 

IBM, AT&T и некоторые другие конторы. В целом затея благая

 

и очень дельная — такой инструмент, в теории, был бы полезен

 

при разработке различных новых систем и сервисов, позволяя

 

на ходу жонглировать инфраструктурой, экспериментировать

 

с архитектурой. Но это все в теории и официальном описании.

 

А что в жизни?

 

ИСТОРИЯПЕРВАЯ

 

В жизни все сильно сложнее. OpenStack — это как беремен-

 

ность в шестнадцать. Завести его себе обычно оказывается

 

заметно проще, чем потом с ним адекватно сосуществовать.

 

Через день, неделю, если повезет, то через месяц придет

 

Осознание. К примеру, в один не очень прекрасный момент

 

по какой-то причине виртуалки просто перестанут создавать-

 

ся. Все хорошо, все есть — и место на дисках, и свободные

 

вычислительные мощности, и IP-адреса в сети. Но нет. Висит

 

себе в состоянии Creating Instance, и все. Полчаса, час, два,

 

пять. Ничего не происходит. В логах тишина. Еще несколько

 

часов, проведенных в гугле, наудачу перезагружаем «кроли-

 

ка», и оп — все внезапно заработало. Виртуалки создаются,

 

поднимаются, все снова хорошо. Вопрос «И что это было?»

 

повисает в воздухе.

 

ИСТОРИЯВТОРАЯ

 

Еще через месяц, к примеру, Hetzner, в котором стоят серве-

 

ры с твоим OpenStack’ом, вдруг решает провести техработы

 

по части электропитания. И оказывается, что Compute-нода

 

как раз под эти техработы попадает. Ты заблаговременно оста-

 

навливаешь на ней все сервисы, сам руками выключаешь сер-

 

вер. Ждешь положенные пару часов, нода после технических

 

работ поднимается. Вот только ничего не работает. Ни одна

 

виртуалка не доступна. Заходишь в панель — на первый взгляд

 

все выглядит прилично и как должно. Опять непонятно. Идешь

Самые причастные

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

to

122 m

w Click

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

.c

 

 

p

 

 

 

 

g

 

 

 

 

df

 

 

n

e

 

 

 

 

-xcha

 

 

 

Unixoid

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

ХАКЕР 12 /191/ 2014

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

руками на сервер по SSH, virsh list. Виртуалки на месте,

 

 

хранить в системах контроля версий, удобно сравнивать,

поднялись, virsh

-c

qemu+ssh://username@host/system

 

 

делать патчи и прочее.

 

оп! No route to host. Как так? ifconfig && iptables-save, се-

 

 

• Список элементов инфраструктуры, доступных для описа-

тевых интерфейсов нет. Логи, гугл, логи, гугл, логи, логи, гугл.

 

 

ния в темплейтах: серверы, IP-адреса, тома, группы без-

С мертвой точки дело не сдвигается. По старой виндузявой

 

 

опасности, пользователи, ключи и так далее.

 

привычке наудачу решаешь перезагрузить сервер еще раз.

 

 

• Heat предоставляет возможность организации автомати-

Так, на всякий случай. Сервер выходит из ребута, все подни-

 

 

ческого масштабирования под нагрузкой при интеграции

мается и работает. Стараясь не делать резких движений, выхо-

 

 

с Ceilometer (о нем чуть дальше).

 

дишь из панели стака и с сервера и решаешь по возможности

 

 

• Естественно, в темплейтах также описываются не только

больше никогда к нему не подходить.

 

 

отдельные ресурсы, но и их взаимоотношения — привязка

ЗЛОКЛЮЧЕНИЕ

 

 

 

 

 

 

томов и адресов к конкретным серверам, определение

 

 

 

 

 

 

конкретных серверов в конкретные группы безопасности,

Как уже успели на себе прочувствовать те немногие, кто ре-

 

 

распределение доступов к серверам между пользовате-

шился использовать OpenStack в относительном продакшене,

 

 

лями и многое другое. Это позволяет максимально полно

он еще «не готов для десктопа». Пока, к сожалению, он не дает

 

 

автоматизировать разворачивание необходимой инфра-

удовольствия ограничить общение с собой исключительно на-

 

 

структуры через API OpenStack’а, избегая дополнительного

жиманием кнопочек в веб-интерфейсе для создания новых

 

 

ручного вмешательства.

 

виртуалок и распределением доступов к ним. Шаг вправо, шаг

 

 

• Heat контролирует и изменения в инфраструктуре. Когда

влево — и можно наткнуться на что-то такое, про что еще даже

 

 

тебе надо что-то поменять, просто вносишь нужные правки

в гугле не написали. И на отладку может уйти не только не один

 

 

в соответствующий темплейт и обновляешь конфигура-

день, но даже не одна неделя. Ребята в одной из самых из-

 

 

цию Heat, и он уже там сам разбирается и приводит все

вестных компаний — поставщиков готовых решений на базе

 

 

к эталону.

 

OpenStack сравнивают этот процесс с постройкой дома (goo.

 

 

 

 

 

gl/LTrRKs):

 

 

 

 

 

 

Ничего знакомого в этом всем не заметил? Правильно, схо-

«При упоминании OpenStack хороша аналогия с домом.

 

 

жие идеи мы уже видели в таких проектах, как Chef и Puppet.

OpenStack опирается на множество сложных открытых проек-

 

 

Использовать или нет — это уже на твой вкус. Говорят, у Heat’а

тов, слепленных друг с другом через различные API, которые

 

 

даже есть какое-то подобие интеграции с ними, но мы пока

зачастую ставят в тупик даже самых прожженных инженеров.

 

 

не пробовали, так что детальнее рассказать, к сожалению,

С точки зрения бизнеса попытка самостоятельно во всем этом

 

 

не смогу.

 

разобраться может

пагубно

сказаться

 

 

 

Ceilometer

 

на сроках сдачи проекта и достижении

 

 

 

 

 

поставленных целей. Подход „сделай

 

 

 

 

Ceilometer — это инструмент для сбора

сам“ пока еще очень популярен в среде

 

 

 

 

различных статистических данных в об-

OpenStack-новичков и часто не приводит

 

 

 

 

лаке OpenStack. Основной целью проекта

их к сколько-нибудь удовлетворительному

 

 

 

 

является мониторинг нагрузки и изме-

результату, отчего мнение о всей системе

 

 

 

 

рения потребления ресурсов клиентами,

остается не очень лестное.

 

 

 

 

 

но возможности фреймворка могут быть

Главной целью

поставщика готовых

 

 

 

 

расширены и для других нужд. Доступ

решений в данном случае является по-

 

 

 

 

к метрикам можно получать через отдель-

мощь в проектировании и развертыва-

 

 

 

 

но реализованный REST API.

 

нии надежной площадки для проектов

 

 

 

 

АрхитектураCeilometer

 

клиента. И ключевой момент в данном

 

 

 

 

 

вопросе — правильный выбор опытного

 

 

 

 

Центральный агент (Central Agent) опра-

поставщика, который сможет собрать все

 

 

 

 

шивает данные по утилизации ресур-

необходимые части системы, корректно

 

 

 

 

сов, которые не связаны с виртуальными

их связать и в дальнейшем поддерживать

 

 

 

 

машинами или вычислительными узла-

то, что получилось. Пожалуйста, доверьте

 

 

 

 

ми (Compute Nodes). В каждой системе

поддержку OpenStack проверенному по-

 

 

 

 

Ceilometer может быть запущен только

ставщику».

 

 

 

 

 

 

 

один центральный агент.

 

В чем-то с ними даже можно согла-

 

 

 

 

Вычислительный агент

(Compute

ситься. Далеко не каждый может позво-

 

 

 

 

Agent) собирает данные измерений и ста-

лить себе тратить такое количество адми-

 

 

 

 

тистику с вычислительных узлов (в основ-

но-часов на даже банальное поддержание

 

 

 

 

ном гипервизора). Вычислительный агент

текущей работоспособности

системы,

 

 

 

 

должен быть запущен на каждом вычисли-

не говоря уже о каком-то дальнейшем

 

 

 

 

тельном узле, состояние которого необхо-

развитии.

 

 

 

 

 

 

 

димо отслеживать.

 

ОНОВИНКАХ

 

 

 

 

 

 

 

Коллектор (Collector)

отслеживает

 

 

 

 

 

 

очереди сообщений (на предмет уведомлений, которые при-

 

 

 

 

 

 

Но если капризы работоспособности OpenStack’а — это уже

Архитектура Heat

сылает инфраструктура, и на предмет результатов измерений

в некоторой степени стабильный вопрос, немало обшученный,

 

 

от агентов). Уведомления обрабатываются, преобразовыва-

то новинкам проекта, думаю, стоит уделить внимание.

 

 

ются в измерительные данные, затем подписываются и воз-

Heat

 

 

 

 

 

 

вращаются на шину передачи сообщений в соответствующую

 

 

 

 

 

 

тему. Коллектор может работать на одном или нескольких сер-

Heat — основной инструмент оркестровки, используемый

 

 

верах управления.

 

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

 

 

Хранилище данных (Data Store) — это база данных, кото-

архитектуры из темплейтов, описанных текстом, своего рода

 

 

рая может обрабатывать одновременные запись (с одного

подобием программного кода. Формат темплейтов у Heat свой

 

 

или нескольких коллекторов) и чтение данных (с API-сервера).

собственный, но, помимо него, поддерживается совмести-

 

 

Коллектор, центральный агент и API могут работать на любом

мость с форматом AWS CloudFormation. Таким образом, многие

 

 

узле.

 

уже готовые темплейты CloudFormation вполне можно будет за-

 

 

Эти службы сообщаются с помощью стандартной шины пе-

пускать и под OpenStack’ом. У Heat есть возможность общаться

 

 

редачи сообщений OpenStack. Только коллектор и API-сервер

с внешним миром как через родной ReST API OpenStack’а, так

 

 

имеют доступ к хранилищу данных. Поддерживаются SQL

и через совместимый API запросов CloudFormation’а.

 

 

базы данных, совместимые с SQLAlchemy, а также MongoDB

Как это вообще работает?

 

 

 

 

и HBase. Однако разработчики Ceilometer рекомендуют

• Темплейты облачной инфраструктуры — это обычные уме-

 

 

именно MongoDB, в связи с более эффективной обработкой

ренно человеко-понятные plain-text документы, их можно

 

 

одновременных операций чтения/записи данных. Кроме того,

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

ХАКЕР m

12 /191/ 2014

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

Боль и страдания OpenStack

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

123Click

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

только конфигурация Ceilometer с MongoDB прошла тщательное тестирование и развертывание в коммерческих средах. Для базы данных Ceilometer рекомендуется использовать выделенный узел, так как инфраструктура может создавать изрядную нагрузку на БД. Согласно оценкам разработчиков, измерение инфраструктуры на коммерческом уровне предполагает до 386 записей в секунду и 33 360 480 событий в день, что потребует до 239 Гб для хранения статистики за месяц.

В проекте Ceilometer реализованы три типа измерений:

Cumulative (кумулятивные): их еще можно назвать инкрементальными — значения, которые все время растут (к примеру, аптайм виртуальной машины);

Gauge (индикатор): отдельные события и значения (например, IP-адреса, привязанные к тому или иному серверу, или данные по вводу-выводу дисковой подсистемы);

Delta (дельта): изменение со временем (например, пропускная способность сети).

Каждый измеритель собирает данные с одного или не-

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

• counter_name. Строка названия счетчика. По общепри-

 

 

 

 

 

нятому соглашению точка используется как разделитель

 

 

 

 

 

при переходе от наименее конкретного слова к наиболее

 

 

 

 

 

конкретному (например, disk.ephemeral.size);

 

 

 

 

counter_type. Тип счетчика (кумулятивный, индикатор,

 

 

 

 

 

дельта, см. выше);

 

 

 

виртуальной машины и так далее). Это поле несуще-

 

 

 

 

counter_volume. Объем измеряемых данных (такты ЦП,

Архитектура Ceilometer

 

число байтов, переданных по сети, время развертывания

 

 

 

ственно для счетчиков типа индикатор; в этом случае

 

 

 

 

 

ему должно быть присвоено значение по умолчанию

 

 

 

 

 

 

Кусок примерного темплейта для Heat

(обычно 1);

 

 

 

 

 

• counter_unit. Описание единицы измерения счетчика.

 

 

 

 

 

Для обозначения используются единицы измерения

 

 

 

 

 

системы СИ и их утвержденные сокращения. Количество

 

 

 

 

 

информации должно выражаться в битах (б) или байтах

 

 

 

 

 

(Б). Когда измерение представляет собой не количество

 

 

 

 

 

данных, описание всегда должно содержать точную

 

 

 

 

 

информацию, что измеряется (виртуальные машины,

 

 

 

 

 

дисковые тома, IP-адреса и так далее);

 

 

 

 

 

• resource_id. Идентификатор измеряемого ресурса (UUID

 

 

 

 

 

виртуальной машины, сеть, образ);

 

 

 

 

 

• project_id. Идентификатор проекта, которому принад-

 

 

 

 

 

лежит ресурс;

 

 

 

 

 

• user_id. Идентификатор пользователя, которому принад-

 

 

 

 

 

лежит ресурс;

 

 

 

 

 

• resource_metadata. Некоторые дополнительные мета-

 

 

 

 

 

данные для информационного наполнения сообщения

 

 

 

 

 

об измерении.

 

 

 

 

 

Полный список доступных на данный момент измере-

 

 

 

 

 

ний можно найти в документации Ceilometer (https://wiki.

 

 

 

 

 

openstack.org/wiki/Ceilometer).

 

 

 

 

 

Ceilometer — это довольно перспективный проект, ставя-

 

 

 

 

 

щий своей целью унификацию возможностей по сбору инфор-

 

 

 

 

 

мации обо всех аспектах жизни облачной инфраструктуры.

 

 

 

 

 

Использование Ceilometer позволяет поставить «карманное

 

 

 

 

 

облако» на достаточно крепкие коммерческие рельсы.

 

 

 

 

 

ЗЕЕНД

 

 

 

 

 

Как видно, не все так просто в Датском королевстве. Есть там

 

 

 

 

 

место и бедам и приключениям. OpenStack развивается очень

 

 

 

 

 

активно, но все еще не готов к быстрому и простому использо-

 

 

 

 

 

ванию в производстве, как некоторые продукты коммерческой

 

 

 

 

 

виртуализации прошлого поколения.

 

 

 

 

 

Если виртуализация — это одно из основных направлений

 

 

 

 

 

твоей деятельности, то, без сомнения, уже пора начинать

 

 

 

 

 

в нем разбираться. Если нет, но все равно интересно, то,

 

 

 

 

 

пожалуйста, пробуй, но в производство без крайней нужды

 

 

 

 

 

пускать не советую. На данный момент лучше будет поль-

 

 

 

 

 

зоваться классическими системами виртуализации всем,

 

 

 

 

 

у кого нет особых против того противопоказаний. Сбережете

 

 

 

 

 

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

 

 

 

 

 

не очень отдаленном будущем тоже открывать направление

 

 

 

 

 

поддержки OpenStack-решений. Кажется, это будет доволь-

 

 

 

 

 

но интересно :).

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

to

124 m

w Click

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

.c

 

 

p

 

 

 

 

g

 

 

 

 

df

 

 

n

e

 

 

 

 

-xcha

 

 

 

SYN/ACK

Мартин «urban.prankster»

Пранкевич martin@synack.ru

УСТАНОВКА

ИНАСТРОЙКА LIFERAY

ВUBUNTU LINUX 14.04: HTTP://YOUTU.BE/ EWBZTOWV4FG

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

ХАКЕР 12 /191/ 2014

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

ЗНАКОМИМСЯ С LIFERAY

Корпоративные порталы (Enterprise Information Portal — EIP) из моды постепенно превратились в незаменимый инструмент бизнеса, обеспечивая сотрудников единой точкой доступа к данным, инструментами управления бизнес-процессами и средствами обмена информацией. Проект Liferay, распространяемый

под Open Source лицензией, вполне успешно конкурирует с большинством коммерческих решений.

ПРОЕКТLIFERAY

Liferay (liferay.com) представляет собой веб-платформу для строительства бизнес-решений, объединяющую разные приложения в единое информационное пространство. С его помощью можно построить порталы с интеграцией корпоративных приложений, динамические веб-сайты, базу знаний и социальные сети. Сотрудники для доступа к данным и обмена информацией будут использовать одно приложение. Распространяется с исходным кодом под двойной лицензией: GNU GPL и коммерческой. Liferay далеко не новичок на рынке и пользуется в мире популярностью. Начиная с 2011 года аналитическое агентство Gartner в отчете Magic Quadrant for Horizontal Portals (goo.gl/IRlKzi) относит Liferay к лидерам,

где он находится рядом с решениями от Microsoft, IBM, SAP и Oracle. С официального сайта портал скачали более четырех миллионов раз, разработчики говорят о примерно 350–500 тысячах установок в организациях самого разного назначения. Cреди них и компании с мировым именем: министерство обороны Франции, Cisco, Andorra Telecom и многие другие.

 

Как и принято в любых подобных системах, Liferay легко

 

адаптируется под любые условия. После установки базовая

 

система содержит только некоторый оптимальный набор. Все

 

дополнительные функции Liferay реализованы посредством

 

подключения модулей, называемых портлетами. В Liferay

Rolff@shutterstock.com

Marketplace (liferay.com/marketplace) доступно большое чис-

ло готовых к использованию компонентов, часть из которых

 

 

распространяется бесплатно.

 

Портлеты можно создавать самостоятельно на разных

 

языках программирования: Java, PHP, Ruby, Python, фрейм-

 

ворке Grails и других. Разработчики предоставляют IDE, SDK

 

и API, упрощающие создание приложений. Поэтому портлеты

 

и темы для Liferay можно найти поиском в GitHub, sf.net, Google

Bruce

Code и других ресурсах. Документация и открытость проекта

позволяет при необходимости легко подключить любое при-

ложение. К слову, текущая версия Liferay в установке по умол-

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

ХАКЕР m

12 /191/ 2014

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

Путь через портал

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

125Click

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

чанию не поддерживает русский,

 

SharePoint, то

есть пользовате-

локализация (translate.liferay.com)

 

ли могут работать с файлами MS

выполнена за счет портлета (для

 

Office, находящимися на локальных

русского 86%).

 

 

 

дисках, и загружать их в хранилище

Сервер Liferay готов к примене-

 

Liferay.

Поддерживаются версии

нию в организациях любого разме-

 

документа, блокировка редакти-

ра, легко масштабируется, может

 

рования, автоматическая конвер-

работать в кластере и разверты-

 

тация формата, галерея изобра-

ваться в облаке. Поддерживается

 

жений, поиск, доступ по WebDAV,

интеграция со службами каталогов

 

публикация и многое другое.

LDAP и Active Directory, система-

 

Внешний вид портала, веб-сайта

ми Single Sign-On (CAS, OpenSSO,

 

или отдельной страницы меняется

NTML, SiteMinder). Для

работы

 

при помощи тем и макетов. Внеш-

с почтой подойдет любой SMTP/S,

 

ний вид и функциональность ка-

IMAP/S или POP3/S сервер. Все

 

бинета

полностью настраивается

приложения и информация при по-

 

как администратором, так и самим

мощи различных методов (SOAP,

 

пользователем при помощи тем,

REST, RSS, внутренние API) инте-

 

шаблонов, портлетов и виджетов.

грируются в единый интерфейс,

 

Для статей, записей и подобного

упрощающий

работу с

Liferay.

 

также

предусмотрены шаблоны,

На сегодня это десятки продуктов:

 

что позволяет

стандартизировать

для генерации отчетов, системы

 

документацию. Реализован и ка-

электронного

документооборота,

 

талог программного обеспечения,

CMS, ERP/CRM, система бизнес-

 

 

 

 

он позволяет определить набор

аналитики Pentaho BI, Libre/OpenOffice и многое другое. Все

В Liferay Marketplace

ПО, доступного пользователям для загрузки.

 

это позволяет быстро и с минимумом затрат внедрить корпо-

найдем большое коли-

Проект разработал собственный клиент синхронизации

ративный портал с нужными функциями.

 

чество портлетов

документов с

порталом Liferay Sync (liferay.com/products/

Портал, созданный с применением Liferay, может включать

 

liferay-sync), поддерживающий drag’n’drop, журналирова-

в себя систему управления контентом, блоги, wiki, форум, базу

 

ние изменений и откат к предыдущим версиям, возможность

знаний, доску сообщений, соцсеть, документооборот (с под-

 

редактирования файла сразу несколькими пользователями.

держкой MS Office), средства организации совместной рабо-

 

Доступны версии для Windows, OS X, iOS и Android. При такой

ты (календарь, задачи, оповещение, обмен сообщениями),

 

функциональности какой-то особой подготовки от пользо-

управление бизнес-процессами и взаимодействием с клиен-

 

вателя и администратора при работе с Liferay не требуется.

тами, планирование ресурсов и многое другое. Пользователь,

 

Все действия

выполняются интуитивно, поддерживается

кроме мессенджера, получает доступ к электронной почте

 

drag’n’drop, AJAX делает среду интерактивной.

 

посредством встроенного веб-клиента. Также реализована

 

Теперь самое интересное. Liferay выпускается под двой-

система оповещений и рассылки (email, RSS, SMS или любого

 

ной лицензией: Community Edition под лицензией GNU GPL

другого).

 

 

 

 

 

 

 

и коммерческой Enterprise Edition. Возможности CE несколько

Одна установка Liferay

может

 

 

 

 

урезаны:

недоступна

поддержка

обслуживать несколько организа-

 

 

 

 

 

24 × 7 × 1, встроенные функции ана-

ций и сайтов. Портал поддержива-

 

 

 

 

 

литики, аудита, контроля произ-

ет одновременно несколько язы-

 

 

 

 

 

водительности. Но что-то из этого

ков интерфейса, при подключении

 

LIFERAY VS MS SHAREPOINT

 

можно компенсировать при помо-

выдается страница по настройкам

 

 

щи бесплатных плагинов. Все ос-

браузера. Внешний вид портала

 

 

новные функции портала остались

 

 

 

 

 

автоматически подстраивается под

 

 

 

 

 

нетронутыми, и на первых порах

размер экрана, в том числе под мо-

 

Нетрудно заметить, что Liferay напрямую

конкурирует

 

смысла в покупке EE нет, достаточ-

бильные устройства.

 

 

 

с MS SharePoint. Даже сами разработчики в первое время

 

но использовать CE, чтобы как ми-

Реализована система

досту-

 

не стеснялись называть его открытым аналогом SP. Между

 

нимум присмотреться к Liferay.

па, основанная на принадлежно-

 

любыми решениями для организации порталов много об-

 

В ЕЕ плата берется в зависимо-

сти к организации, роли и группе.

 

щего (Oracle Portal, IBM WebSphere Portal, SAP NetWeaver

 

сти от функциональности серве-

В итоге пользователь получает до-

 

Portal не исключение), все они предоставляют базовый

 

ра, никаких клиентских лицензий

ступ к документам и приложениям

 

набор функций, и подчас он практически полностью совпа-

 

(вроде Client Access License, ис-

только на основании своей роли,

 

дает. Но есть, конечно, и различия в организации. Самое

 

пользуемой в продуктах Microsoft)

группы и организации. Информа-

 

главное — это отсутствие привязки к разработкам одного

 

не предусмотрено, поэтому в слу-

ция, выкладываемая в блог или

 

производителя. Естественно, что SP интегрирован с дру-

 

чае расширения ничего доплачи-

сайт, может

премодерироваться

 

гими решениями Microsoft (сервер, MS SQL, MS Office

 

вать не придется. Стоит отдельно

и публикуется только после ут-

 

и другими), без которых либо его функциональность нель-

 

отметить

большое

количество

верждения

уполномоченным ли-

 

зя использовать, либо функции будут неполными. То есть,

 

официальных партнеров, занима-

цом. После установки уже имеет-

 

чтобы все заработало по полной, понадобятся лицензии

 

ющихся внедрением Liferay по все-

ся несколько

встроенных

ролей

 

и еще на ряд продуктов, даже если они больше нигде ис-

 

му миру.

 

 

и групп под основные операции,

 

пользоваться не будут. И если подсчитать, то эти затраты

 

На сегодня актуальная вер-

но легко создать новые. Аноним-

 

окажутся немалы.

 

 

 

сия — 6.2, но уже ведется разра-

ный пользователь получает доступ

 

Аналогичная ситуация и с другими портальными ре-

 

ботка 7.0.0, и можно ознакомиться

к каким-то базовым

страницам,

 

шениями. Liferay здесь сильно выигрывает, так как не за-

 

с предрелизом. Проект предостав-

а сотрудники или бизнес-клиенты

 

висит от одного поставщика и прекрасно вписывается

 

ляет хорошую подборку докумен-

обладают

изначально

большими

 

в уже существующую инфраструктуру, не требуя при вне-

 

тации (на английском). Поэтому от-

правами.

 

 

 

 

 

дрении дополнительных расходов на приобретение ПО.

 

вет можно найти на любой вопрос

Для создания контента пред-

 

Администратор будет работать с привычными продуктами.

 

и без официальной поддержки.

лагается

встроенный

редактор

 

На eApps готовый сервер с Liferay-Tomcat обойдется всего

 

Но иногда документация запазды-

с функцией проверки правопи-

 

в 34 доллара в месяц, при этом будет доступна круглосу-

 

вает, поэтому некоторые вопросы

сания, но в Marketplace доступно

 

точная поддержка и прочие вкусности. Есть и минусы. Се-

 

по версии 6.2 следует смотреть

несколько альтернатив. Любая ин-

 

годня нетрудно найти специалиста по SP, а вот внедрением

 

в более ранних релизах. Например,

формация в Liferay структурирует-

 

Liferay занимаются не так много компаний. Но при само-

 

Getting

Started (goo.gl/JcSs0P)

ся при помощи тегов и категорий.

 

стоятельном внедрении отыскать нужную информацию

 

на момент написания этих строк

Liferay поддерживает протокол MS

 

не так уж и сложно.

 

 

для 6.2 отсутствовал.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

to

126m

w Click

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

.c

 

 

p

 

 

 

 

g

 

 

 

 

df

 

 

n

e

 

 

 

 

-xcha

 

 

 

SYN/ACK

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

ХАКЕР 12 /191/ 2014

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

 

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Также следует отметить наличие еще одного продукта

 

 

 

в панели управления предложен удобный инструмент. Прове-

Liferay Social Office (liferay.com/products/liferay-social-office),

Настройка страницы

ряем наличие JDK:

ориентированного на организацию совместной работы, с ба-

 

 

 

$ java -version

зовыми функциями портала.

 

 

 

УСТАНОВКАLIFERAYВUBUNTULINUX

Окно Control Panel

 

 

 

 

Если Java нет, в ответ не получаем список пакетов, которые

Liferay написан на Java и поэтому работает на любой плат-

 

 

 

нужно установить. Ставим:

форме, для которой доступна JRE и сервер приложений.

 

 

 

$ sudo apt-get update

Официально поддерживается работа с ОС Windows, *nix, OS

 

 

 

X. По умолчанию в качестве СУБД используется Hypersonic

 

 

 

$ sudo apt-get install unzip default-jdk

SQL, которая ставится автоматически, но она подходит лишь

 

 

 

default-jre mysql-server mysql-client

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

 

 

 

 

ных средах лучше подключить: MySQL, PostgreSQL, MS SQL,

 

 

 

Далее необходимо установить переменные JAVA_HOME:

Oracle, DB2, Sybase или Ingres. Готовые образы с предуста-

 

 

 

$ sudo nano /etc/bash.bashrc

новленным Liferay можно найти в Amazon AWS, Bitnami, eApps

 

 

 

и многих других облачных сервисах. Это самый простой

 

 

 

JAVA_HOME=/usr/lib/jvm/default-java

и быстрый способ протестировать в работе Liferay (хотя раз-

 

 

 

export PATH=$PATH:$HOME/bin:$JAVA_HOME/bin

вертывание Liferay на подготовленную ОС занимает от силы

 

 

 

 

минут пять). Для теста подойдет любой современный компью-

 

 

 

Скачиваем с sf.net/projects/lportal нужный файл и распа-

тер с 2+ Гб ОЗУ (на облачных серверах минимально работает

 

 

 

ковываем в каталог.

и с 1 Гб). Проект предлагает готовые комплекты с серверами

Окно Basic

$ sudo unzip liferay-portal-tomcat-jre-6.2

приложений Tomcat, Geronimo, GlassFish, JBoss, Jetty, JOnAS,

Configuration

Resin и исходный код. Установим Liferay CE с сервером при-

 

 

 

-ce-ga2-20140321144642639.zip –d /opt

ложений Tomcat на систему, работающую под управлением

 

 

 

 

Ubuntu 14.04 LTS с СУБД MySQL. Выбор сервера приложе-

После установки

Запускаем:

ний — вопрос вкуса. Другие варианты установки отличаются

доступно несколько

$ cd /opt/liferay-portal-6.2-ce-ga2/tomcat-7.0.42/bin/

только особенностями конфигурирования используемых при-

встроенных ролей

ложений. В случае необходимости миграции на другую СУБД

 

 

 

$ sudo ./startup.sh

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

ХАКЕР m

12 /191/ 2014

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

Путь через портал

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

127Click

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Собственно, это всё. В ответ

 

 

 

 

 

 

или, если это новый пользователь,

получим список переменных. Если

 

 

 

 

 

 

создать учетную запись. Настрой-

ошибок не последовало (tail -f ../

 

 

 

 

 

 

кам поддается буквально все: цвет,

logs/catalina.out, netstat -ant | grep

 

 

 

 

 

 

расположение, текст и так далее.

8080), переходим на портал. От-

 

 

 

 

 

 

Управление любыми указанными

крываем браузер и подключаемся

 

 

 

 

 

 

настройками понятно и логично,

к порту 8080 (http://localhost:8080).

 

 

 

 

 

 

с ними справится пользователь

Вначале предстоит пройти уста-

 

 

 

 

 

 

без особой подготовки, поэтому

новки,

предложенные

Basic

 

 

 

 

 

 

расписывать их смысла нет. Но,

Configuration.

 

 

 

 

 

 

 

учитывая, что их много, при первом

Здесь три подраздела:

 

 

 

 

 

 

 

знакомстве лучше просто все пере-

• Portal — название и язык

 

 

 

 

 

 

 

пробовать самому.

по умолчанию, флажок Add

 

 

 

 

 

 

 

Меню вверху страницы позво-

Sample Data позволит добавить

 

 

 

 

 

 

ляет управлять сайтом, персональ-

записи и наглядно оценить воз-

 

 

 

 

 

 

ными настройками пользователя

можности портала;

 

 

 

 

 

 

 

(включая добавление новых стра-

• Administrator User — данные

 

 

 

 

 

 

ниц) и администрировать Liferay.

администратора (имя и email);

 

 

 

 

 

 

Под кнопкой

Admin скрываются

• Database — выбор СУБД

 

 

 

 

 

 

 

две основные настройки: в Site

для работы, по умолчанию стоит

 

 

 

 

 

 

Administration

добавить объект

Hypersonic.

 

 

 

 

 

 

 

(страницу, статью, документ, вики,

 

 

 

 

 

 

 

 

 

теги, навигацию и прочее), управ-

В принципе, все понятно. Нам

 

 

 

 

 

лять страницей, макетом и на-

нужна MySQL. В поле Database

 

 

 

 

 

стройками сайта.

выбираем Change и из списка MySQL, вводим учетную за-

Локализация Liferay

Здесь же выбирается логотип, тема сайта, указывается

пись и пароль и нажимаем Finish Configuration. Некоторое

 

описание, стиль ссылок, вид с мобильных устройств, правка

время придется подождать, пока будет выполнена установ-

 

CSS и многое другое. Глобальные установки Liferay доступ-

ка. Настройки будут сохранены в файле portal-setup-wizard.

 

ны только для администратора в панели управления (Control

properties.

 

 

 

 

 

 

Panel).

 

 

 

Единственный минус такого способа — для подключения

 

Здесь четыре основных пункта:

 

будет использоваться учетная запись администратора БД,

 

• Users — управление учетными записями пользователей

что в промышленных установках не очень хорошо с точки зре-

 

и организаций, группами и ролями, политикой паролей,

ния безопасности. Хотя после тестирования данные учетной

 

мониторинг активности;

 

записи можно легко поправить, прописав новую информацию

 

• Sites — управление сайтами, шаблонами сайтов и стра-

в файл portal-ext.properties.

 

 

 

 

 

ниц;

 

 

 

Пару слов о конфигурационных файлах. Все настройки из-

 

• Apps — установка и конфигурация портлетов, управление

начально сохранены в JAR-файлах, но трогать их нельзя. Все

 

лицензией;

 

изменения следует заносить в overriding-файлы с расширени-

 

• Configuration — установки портала, функции администри-

ем properties. Но администратор может редакти-

 

 

 

 

рования.

 

ровать только два из них — portal-ext.properties

 

 

 

 

 

 

 

и portal-setup-wizard.properties. Эти два файла

На вкладках Control

Портлеты поставляются в виде WAR/LPKG-

считываются последними и

переопределяют

архивов. С помощью меню вверху страницы

установки в других файлах. Сделать это можно

Panel можем устано-

их можно установить (Admin → Control Panel →

в любом текстовом редакторе. Малое количество

Configuration → AppManager → Install), указав

упрощает перенос настроек между несколькими

вить уровни журна-

URL или файл на локальном носителе. Чтобы ска-

серверами. Параметров внутри много, и все они

чать портлет, потребуется учетная запись в Store.

расписаны в документации. Некоторые продви-

лирования, указать

Например, в Liferay CE 6.2 почему-то убра-

нутые настройки доступны только через правку

ли поддержку русского по умолчанию. Но это

файлов. Например, возможность просмотра

данные SMTP/POP3-

несложно решить. Скачиваем (его легко най-

сессий пользователей, нагружающих систему,

ти поиском) и устанавливаем портлет, как на-

доступна лишь после активации ее в конфигура-

сервера, очистить

писано выше. Затем идем в Admin → Control

ционном файле.

 

 

Panel → Configuration → Portal Settings → Display

Как вариант, можем сразу создать БД и нуж-

ОЗУ, сбросить кеш

settings и редактируем список доступных язы-

ную учетную запись. Название базы lportal ис-

ков Available Languages. Сохраняем результат.

пользуется в Liferay по умолчанию, поэтому и мы

 

 

 

 

После этого русский будет в списке Default

выберем его.

 

 

 

 

 

 

Language. Выбираем. Здесь же регулируем ча-

$ mysql -u root -p

 

 

 

 

 

 

совой пояс, лого сайта, доступ к приложениям

 

 

 

 

 

Google и прочие настройки.

 

mysql> CREATE DATABASE lportal

 

 

 

На других вкладках Control Panel можем просмотреть ре-

DEFAULT CHARACTER SET utf8;

 

 

 

сурсы, свойства системы/портала, установить уровни журна-

mysql> GRANT ALL PRIVILEGES ON lportal.*

 

 

 

лирования, указать данные SMTP/POP3-сервера, выполнить

TO 'liferay' IDENTIFIED BY 'password';

 

 

 

некоторые операции администрирования (очистить ОЗУ,

mysql> quit;

 

 

 

 

 

сбросить кеш, проверить таблицы БД и другие), ограничить

 

 

 

 

 

 

 

максимальный размер загружаемого файла и указать список

Переходим к порталу. Принимаем условия лицензионного

 

разрешенных расширений. В случае необходимости соз-

соглашения, указываем пароль администратора и ключевое

 

дания нескольких порталов в Admin есть соответствующий

слово для его восстановления.

 

 

 

пункт. Процесс этот предельно прост: нажимаем «Добавить»

ЗНАКОМСТВОСИНТЕРФЕЙСОМLIFERAY

 

 

 

и указываем название, почтовый домен, виртуальный хост

 

 

 

и опционально максимальное количество пользователей.

В результате получаем готовый портал. Точнее, в зависимости

 

Описать все настройки здесь невозможно.

от задач, его еще настраивать и настраивать, но основа уже

 

ВЫВОД

 

 

 

есть, и дальнейшие действия не требуют особой подготовки.

 

 

 

 

После входа встречает приветственная страница Welcome

 

Liferay представляет собой очень мощное, но одновременно

To Liferay Portal, здесь мы получаем ссылки на основную до-

 

понятное в конфигурировании и сопровождении решение,

кументацию, которая может пригодиться при первом знаком-

 

которое прекрасно интегрируется практически в любую сеть

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

 

и уже заслужило доверие именитых организаций.

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

128 m

SYN/ACK

w Click

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

ESPER

ЗНАКОМИМСЯ С ESPER — БИБЛИОТЕКОЙ ДЛЯ СОЗДАНИЯ ПРИЛОЖЕНИЙ ОБРАБОТКИ СОБЫТИЙ

Продукты класса SIEM отличаются от обычных Log-серверов как минимум наличием корреляционного движка, способного превратить огромный поток событий в набор

алертов. В данной статье мы рассмотрим некоторые возможности библиотеки Esper, позволяющей реализовать свой корреляционный движок, не уступающий по возможностям подсистемы корреляции промышленных SIEM-решений, а в чем-то даже превосходящий их.

ESPER,ПРИНЦИПРАБОТЫ

Esper представляет собой мощную Java/.NET-библиотеку с открытым исходным кодом, которая служит для сложной обработки событий, называемой производителями SIEM модным словом «корреляция». Помимо самой библиотеки, которую можно использовать в своих Java/.NET-проектах, EsperTech предлагает готовое приложение Esper Enterprise Edition, включающее в себя Web GUI, редактор и отладчик EPL-выражений, REST-веб-сервисы, набор адаптеров для событий: CSV, JMS in/out, API, DB, Socket, HTTP.

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

EPL (Event Processing Language), который очень похож на SQL,

однако сама логика работы Esper принципиально отличается от СУБД. Вместо того чтобы хранить события и периодически

выполнять запросы, Esper хранит правила (запросы) и пропу- Web GUI Esper Enterprise Edition скает сквозь них поток событий, словно через решето (или набор решет). Как только условия правил выполняются, библиотека мгновенно отдает результат приложению.

Правила описываются с помощью двух основных способов:

event patterns — шаблоны событий, которые позволяют выявлять наличие или отсутствие последовательностей или комбинаций событий в потоке или наборах потоков;

event stream queries — запросы, через которые пропускается поток событий, оставляющие только необходимые по заданным правилам.

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

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

ХАКЕР 12 /191/ 2014

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Николай Клендар bsploit@gmail.com

Silberkorn@shutterstock.com

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

ХАКЕР m

12 /191/ 2014

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

Esper на службе корреляции

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

129Click

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

КОРРЕЛЯЦИОННЫЕПРАВИЛА

Посмотрим, как Esper может быть полезен в контексте обеспечения ИБ. Представь, что у нас есть источник firewall, который логирует события обо всех соединениях со следующими полями: timestamp (дата, время), eventid (код события), src_ip (адрес источника), dst_ip (адрес назначения), src_port (порт источника), dst_port (порт назначения).

Самое время описать первое правило, которое будет детектировать сканирование адресов:

// м н ов н д ов

select * from firewall.win:time(30 sec)

group by src_ip

having count(distinct dst_ip) > 50

Разберем его подробно: для начала выбираем все поля для событий в потоке источника firewall, далее все события пропускаем через скользящее временное окно, длина которого составляет 30 с. Для событий, находящихся в окне, выполняем группировку по адресу источника и отдаем только те, для которых количество уникальных адресов назначений превышает 50.

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

select * from firewall.win:time(30 sec)

where src_ip not in ('192.168.1.254','192.168.1.253')

group by src_ip

having count(distinct dst_ip) > 50

Да, кстати, тут нет ошибки: Esper, в отличие от SQL, допускает применение конструкции where в запросах, содержащих агрегатные функции. Несмотря на то что правило будет работать, более оптимальным был бы запрос с применением фильтра потоков:

//

о ов н

о о

select * from firewall(src_ip not in

('192.168.1.254','192.168.1.253')).win:time(30 sec)

group by src_ip

having count(distinct dst_ip) > 50

Фильтр потока отсеивает события еще до попадания их в окно, в то время как фильтр where применяется для всех событий, находящихся в окне, после чего считываются агрегатные функции, значения которых отфильтровываются конструкцией having. Чем меньше событий в окне, тем меньше ресурсов мы потребляем.

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

//

о ов н

о о

select * from firewall(src_ip not in

('192.168.1.254','192.168.1.253')).win:time(30 sec)

group by src_ip

having count(distinct dst_ip) > 50

output first every 1 hour

Идем дальше. Заворачиваем в наш мегакоррелятор события с антивирусов — назовем этот поток antivirus — со следующими полями: timestamp (дата, время), host_ip (адрес хоста), virus_name (имя вируса). Антивирус может регистрировать достаточно много событий, обрабатывать каждое при большом числе компьютеров в сети не хватит ни времени, ни сил, но если хост, на котором сработал антивирус, неожиданно начинает сканировать сеть, то это точно не должно остаться без внимания. Для того чтобы поймать такую активность, нам необходимо скоррелировать сканирование и обнаружение вируса, будем делать это с помощью шаблонов (patterns):

Один из способов

//

ом

м в

о о scanning_hosts о н

нны

описания типа событий

 

о ы

н

ов н

 

 

 

 

insert

into scanning_hosts

 

 

 

 

select

*,window(dst_ip) victims from firewall

 

(src_ip not in ('192.168.1.254',

 

 

 

'192.168.1.253')).win:time(30 sec)

 

 

 

group by src_ip

 

 

 

 

 

having

count(distinct dst_ip) > 50

 

 

 

//

о

м

он д

о

о ы

 

 

н в

о ы

м

н ов н

 

select current_timestamp.toDate() alert_time,

 

'Critical' severity, host_virus.host_ip, host_scan.

 

victims from pattern[

 

 

INFO

every host_virus=antivirus -> host_scan=

scanning_hosts(src_ip = host_virus.host_ip)

 

where timer:within(1 minute)

Esper применяется

]

 

 

 

в разных областях:

group by host_virus.host_ip

 

трейдинге, антифроде,

output first every 1 hour

 

обнаружении вторжений

 

 

 

 

и аномалий, мониторин-

С помощью insert into помещаем события, соответствую-

ге. Все эти области объ-

щие попыткам сканирования, в новый поток scanning_hosts.

единяет необходимость

Чтобы при расследовании инцидента сразу видеть, какие хо-

сложной обработки

сты были просканированы, то есть содержались во времен-

событий с минимальной

ном окне на момент обнаружения, используем конструкцию

задержкой.

window(имя_поля). Далее описываем шаблон с помощью

 

служебного слова pattern, который сработает для каждого со-

 

бытия сканирования, следующего за событием антивируса

 

в течение минуты, в случае совпадения адреса завирусован-

 

ного хоста с адресом из потока сканирующих машин. После

 

выявления данной последовательности событий мы получим

 

текущую дату, критичность, адрес хоста и список потенциаль-

 

ных жертв, которые начал сканировать зараженный хост.

Пример отладки EPL-

Зачастую

не только

наличие

определенных событий,

выражения для детек-

но и их отсутствие в течение определенного времени требует

тирования сканирова-

внимания, поскольку это может свидетельствовать о выходе

ния адресов

из строя оборудования, ошибке конфигурирования или ата-

 

 

 

 

 

 

 

 

 

 

Соседние файлы в папке журнал хакер