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

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

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

 

 

 

 

 

Враг у воротw Click

 

 

 

 

 

m

 

 

 

 

 

 

Враг у ворот

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

МастерпредварительнойнастройкиUntangle

SSL и L2TP over IPsec VPN). К слову, при покупке стоит обратить внимание на прошивку — международная или для России. В последней из-за ограничений таможенного союза для туннелей IPsec VPN и SSL VPN используется ключ DES 56 бит. Политики доступа основываются на нескольких критериях (IP, пользователь и время). Средства контентной фильтрации позволяют легко ограничить доступ к сайтам определенной тематики и работу некоторых программ IM, P2P, VoIP, mail и прочих. Система IDS использует сигнатуры и защищает от сетевых червей, троянов, бэкдоров, DDoS и эксплойтов. Технология обнаружения аномалий (Anomaly Detection and Prevention) анализирует проходящие через шлюз пакеты на 2-м и 3-м уровнях OSI, выявляя несоответствия, определяет и блокирует 32 типа сетевых атак. Возможности End Point Security позволяют автоматически проверять тип ОС, наличие активного антивируса, firewall, установленные обновления, запущенные процессы, параметры реестра. Администратор может запретить выход в Сеть для систем, не удовлетворяющих определенным параметрам.

Реализовано множественное резервирование доступа в интернет и балансировка нагрузки. Поддерживается аутентификация средствами LDAP, Active Directory, RADIUS, что позволяет настраивать политики безопасности на основе уже принятых в организации правил. Возможна передача VoIP по протоколам SIP и Н.323 на уровне firewall и NAT, а также в VPN-туннелях.

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

UntangleServer

ОС: Untangle Server 9.2.1 Сruiser САЙТ ПРОЕКТА: untangle.com ЛИЦЕНЗИЯ: GPL РЕАЛИЗАЦИЯ: программная

АППАРАТНЫЕ ПЛАТФОРМЫ: x86, x64 СИСТЕМНЫЕ ТРЕБОВАНИЯ:

Pentium 4 или подобный AMD, 1 Гб RAM, 80 Гб HDD, 2 NIC

Любой *nix-дистрибутив можно настроить как полноценное UTMрешение, в репозиториях пакетов доступно все необходимое для этого. Но есть и минусы: все компоненты придется устанавливать и настраивать самостоятельно, а это уже требует некоторого

ФункциизащитыUntangleреализованыпутемподключениядополнительныхмодулей

опыта, и, что немаловажно, так мы лишаемся единого интерфейса управления. Поэтому очень интересны готовые решения, построенные на базе opensource-систем.

Дистрибутив Untangle, выпускаемый одноименной компанией, появившись в 2008 году, сразу привлек внимание сообщества своим подходом. Его основой послужил Debian, все настройки производятся при помощи простого и понятного интерфейса. Изначально дистрибутив назывался Untangle Gateway и был ориентирован для использования в небольших организациях (до 300 пользователей) как полноценная замена проприетарному Forefront TMG для обеспечения безопасного доступа в интернет и защиты внутренней сети от ряда угроз. Со временем возможности дистрибутива стали шире, и название было изменено на Untangle Server. Сегодня дистрибутив способен обеспечить работу до 5000 пользователей.

Изначально функции защиты Untangle реализованы в виде модулей. После установки базовой системы какие-либо модули защиты отсутствуют, администратор самостоятельно выбирает то, что ему нужно. Для удобства модули разбиты по пяти пакетам (Premium, Standard, Education Premium, Education Standard и Lite), доступность которых определяет лицензия, а сами пакеты разделены на две группы по назначению: Filter и Services. Все opensource-приложения собраны в бесплатном Lite, который содержит 13 приложений, обеспечивающих проверку трафика на

вирусы и spyware, контентный фильтр, блокировку баннеров и спама, файрвол, контроль протоколов, IDS/IPS, OpenVPN, политики доступа (Captive Portal). В их основе лежат популярные opensourceприложения, такие как Snort, ClamAV, SpamAssasin, Squid. Кроме этого, сервер Untangle обеспечивает все сетевые функции: маршрутизацию, NAT, DMZ, QoS, имеет DHCP- и DNS-серверы. Модуль Reports, входящий в пакет Lite, позволяет админу получать отчеты

UTM ОБЪЕДИНЯЮТ ФУНКЦИИ ФАЙРВОЛА С DPI, СИСТЕМУ ЗАЩИТЫ ОТ ВТОРЖЕНИЙ (IDS/ IPS), АНТИСПАМ, АНТИВИРУС И КОНТЕНТНУЮ ФИЛЬТРАЦИЮ

ХАКЕР 07 /162/ 2012

119

ХАКЕР 07 /162/ 2012

0119

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

to

BUY

SYN/ACK

 

 

 

 

 

w

 

 

 

 

w Click

 

 

SYN/ACKm

 

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

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

Сергей«grinder»Яремчук(grinder@synack.ru)

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

по всем возможным ситуациям: сетевой активности, протоколам, обнаруженному спаму и вирусам, активности пользователей; результат можно отправить по e-mail и экспортировать в PDF, HTML, XLS, CSV и XML.

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

иFailover, контроль полосы пропускания канала и приложений, модуль для работы с Active Directory, резервирование настроек

инекоторые другие функции. За плату предоставляется и поддержка, хотя ответы на многие вопросы можно найти на официальном форуме. Кроме этого, проект предлагает готовые серверы с предустановленным Untangle.

Для настройки предлагается удобный интерфейс, написанный на Java, все изменения и статистика работы выводятся в реальном времени. При работе с Untangle от администратора не требуются глубокие знания *nix, достаточно понимать, что надо получить

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

EndianFirewall

ОС: Endian Firewall Community 2.5.1 САЙТ ПРОЕКТА: endian.com/en/community ЛИЦЕНЗИЯ: GPL

АППАРАТНЫЕ ПЛАТФОРМЫ: x86

СИСТЕМНЫЕ ТРЕБОВАНИЯ: CPU 500 МГц, 512 Mб RAM, 2 Гб HDD

Разработчики Endian Firewall предлагают несколько версий своего продукта, реализованных в виде как аппаратной, так и программной платформы. В том числе есть версия и для вирту-

альных машин. Для всех релизов указана лицензия GPL, однако для свободной загрузки доступен лишь ISO-образ Community Edition и исходный код. Операционная система построена на базе CentOS и содержит все специфические для Linux приложения, обеспечивающие функции файрвола, IDS/IPS, антивирусную проверку HTTP/FTP/POP3/SMTP-трафика, защиту от спама, фильтр контента, антиспуфинг- и антифишинг-модули, систему отчетов. Возможно создание VPN средствами OpenVPN и IPsec с аутентификацией по ключу или сертификату. Контентный фильтр содержит готовые настройки для более чем 20 категорий и подкатегорий сайтов, есть blacklist и функции контекстной фильтрации. Используя ACL, можно указать параметры доступа для отдельного пользователя, группы, IP, времени и браузера. Ведется статистика по соединениям, трафику, работе пользователей. При наступлении определенных событий на e-mail админа отправляется сообщение. Предусмотрена локальная аутентификация пользователей, аутентификация с помощью Active Directory, LDAP

РедактированиеправилSnortвEndianFirewall

и RADIUS. Интерфейс позволяет легко создать VLAN, управлять QoS; поддерживается SNMP. Изначально дистрибутив комплектуется антивирусом ClamAV, опционально возможно задействовать антивирусный движок Sophos.

Для настроек используется веб-интерфейс и командная строка. Первоначальные установки производятся при помощи мастера, который позволяет задать тип подключения к интернету, назначать интерфейсы (LAN, Wi-Fi, DMZ). Внешнему интерфейсу можно присвоить несколько IP-адресов, поддерживается MultiWAN. Для удобства настроек сетевые интерфейсы разбиты на зоны — RED, ORANGE, BLUE и GREEN, правила firewall уже содержат установки, определяющие обмен между ними. Настройки распределены по группам, названия которых говорят сами за себя, при должной внимательности разобраться очень просто.

ЗАКЛЮЧЕНИЕ

Конечно, UTM не заменяют, а дополняют средства защиты, установленные на отдельных ПК, создавая дополнительный рубеж обороны на входе в LAN. В зависимости от конкретных условий подойдут разные варианты. С защитой небольших и средних сетей вполне справляются OpenSource’ные Endian Firewall и Untangle. z

 

 

 

UTM

 

KERIO CONTROL

 

 

 

Термин UTM введен Чарльзом Колоджи (Charles Kolodgy) из аналитической компании IDC (International Data Corporation) в документе «Worldwide Threat Management Security Appliances 2004-2008 Forecast» (опубликован в сентябре 2004 года), чтобы обозначить универсальные устройства защиты, которые способны справиться со все нарастающим числом сетевых атак. Изначально подразумевалось наличие лишь трех функций (firewall, DPI и антивирус), теперь возможности, предоставляемые UTM-устройствами, гораздо шире.

Продукт Kerio Control (kerio.ru/ru/control) особо представлять нет необходимости. Ранее он назывался Kerio WinRoute Firewall и пользовался популярностью среди сисадминов, в том числе благодаря простоте и понятности настроек, с которыми мог разобраться даже новичок. На сегодня

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

нагрузки, резервирование WAN, VPN-сервер, детальный мониторинг и систему отчетов. Kerio Control можно установить на ПК под управлением ОС Windows, развернуть на «голом железе» или на виртуальной машине. Управление осуществляется при помощи интуитивно понятного веб-интерфейса.

INFO

Комплексные системыUTM постепенно вытесняют традиционные решениявродеfirewall,поэтомустоит присмотретьсякним повнимательней.

120

ХАКЕР 07 /162/ 2012

0120

ХАКЕР 07 /162/ 2012

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

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

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

to

BUY

SYN/ACK

 

 

 

 

 

w

 

 

 

 

w Click

 

 

SYN/ACKm

 

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

 

 

 

 

 

ЕвгенийЗобнин(execbit.ru)w Click

 

 

 

 

 

m

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

КоманднаяИГРА

НАСТРАИВАЕМСВЯЗКУ NGINX+PHP-FPM+ TEST-COOKIE+GEOIP+ NAXSIДЛЯХОСТИНГА

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

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

122

ХАКЕР 07 /162/ 2012

0122

ХАКЕР 07 /162/ 2012

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

ВВЕДЕНИЕ

Допустим, в нашем распоряжении есть несколько серверов, которые мы хотим использовать для хостинга веб-сайтов, владельцам которых мы не можем доверять. В то же время мы хотим обеспечить высокий уровень сервиса из коробки, обеспечив такие функции, как поддержка PHP, начальная защита от DDoS и опциональный фильтр по географическому признаку. Для изоляции FastCGI-процессов обычно принято использовать модули Apache suexec или suphp, которые по понятным причинам нельзя применить в сочетании

с nginx. Поэтому мы воспользуемся встроенными возможностями альтернативной FastCGI-реализации PHP-FPM, которая опирается на механизм так называемых пулов. Благодаря им PHP-процессы можно разделить в обособленные группы, которые будут исполняться с полномочиями указанных нами пользователей. Начальную защиту от DDoS возложим на плечи модуля testcookie-nginx-module, который отшибает клиентов, проверяя наличие у них реализации HTTP cookie и поддержки редиректа. В дополнение к нему я предлагаю использовать модуль geoip, который может выступать в качестве опционального средства борьбы с ботами на основе при-

надлежности их IP-адресов к определенному региону земного шара. По умолчанию он будет отключен, однако мы подготовим каркас для быстрого включения геофильтра по запросу клиента. Все это будет работать под управлением дистрибутива Debian (Ubuntu), но без каких-либо проблем должно завестись и в Arch Linux, и во FreeBSD. Приступим.

NGINX, MYSQL, PHP-FPM И ПЕСОЧНИЦА

Для начала установим и настроим каркас из nginx, MySQL и PHP:

$ sudo apt-get install mysql-server mysql-client \

php5-fpm php5-mysql nginx

Выполним базовую настройку nginx:

#vi /etc/nginx/nginx.conf

#Для достижения максимальной производительности

#делаем число рабочих процессов равным

#числу процессорных ядер

worker_processes 4;

#Уменьшаем число вызовов gettimeofday(),

#чтобы не тратить ресурсы впустую

timer_resolution 100ms;

error_log /var/log/nginx/error.log;

pid /var/run/nginx.pid;

events {

#Количество одновременных коннектов,

#обслуживаемых одним рабочим

worker_connections 4096;

Редактируемnginx.conf

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

Командная wиграClick

 

 

 

 

 

m

 

 

 

 

 

 

Командная игра

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

}

http {

# Стандартные опции

include /etc/nginx/mime.types;

access_log /var/log/nginx/access.log;

#Держать keepalive-соединение открытым только

#2 секунды

keepalive_timeout 2;

#Настройки сайтов в отдельных конфигах

#(это стандартный каталог для Debian-like

#дистрибутивов)

include /etc/nginx/sites-enabled/*;

}

Теперь нам необходимо создать инфраструктуру для поддержки большого числа пользователей, каждый из которых может иметь несколько сайтов. Схема работы хостеров обычно такова: при регистрации нового пользователя в системе создается каталог /home/ имя_пользователя/, где размещаются несколько каталогов, включая www и logs, первый из которых содержит корневые каталоги вебсайтов, а второй — логи веб-сервера, связанные с этими сайтами. Когда пользователь регистрирует новый домен или привязывает его к IP хостера, в каталоге www автоматически создается подкаталог, имя которого равно имени виртуального хоста, а сам каталог становится корнем для веб-сервера при запросе этого домена. Есть проверенные и отработанные методики создания такой схемы с помощью Apache, но в случае nginx они будут совсем другими.

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

# vi /etc/nginx/sites-avalible/template

server { listen 80;

server_name _HOSTNAME_;

access_log /home/_USERNAME_/logs/_HOSTNAME_.access_log main; error_log /home/_USERNAME_/logs/nginx/_HOSTNAME_.access_log info; root /home/_USERNAME_/www/_HOSTNAME_;

}

Этот шаблон мы будем использовать для генерации настоящего конфига, который затем должен быть помещен в каталог /etc/nginx/ sites-enabled/. Общая логика работы «админки» хостера следующая: при регистрации нового пользователя создается новый UNIX-юзер, принадлежащий группе www-users, в пользовательском каталоге которого создаются подкаталоги www и logs. Когда пользователь регистрирует новый домен, генерируется новый конфиг на основе приведенного шаблона, с заменой _HOSTNAME_ на имя домена,

ДефолтовыйконфигPHP-FPM

ХАКЕР 07 /162/ 2012

123

ХАКЕР 07 /162/ 2012

0123

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

to

BUY

SYN/ACK

 

 

 

 

 

 

 

w

 

 

 

 

 

w Click

 

 

SYN/ACKm

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сравнениепроизводительностиnginx+PHP-FPMиApache+mod_php

а _USERNAME_ на имя пользователя (и пользовательского каталога), и создается каталог для домена в подкаталоге www пользователя. Полученный конфиг помещается в /etc/nginx/sites-enabled/, веб-серверу отдается команда перечитать конфиг. Как все это реализовать, я рассказывать не буду, этим должны заниматься кодеры. В принципе, уже только этого (вкупе с ssh-сервером) хватит

для нормального хостинга статических веб-сайтов, однако наши пользователи хотят получить еще и PHP с поддержкой MySQL. Просто настроить вызов скриптов через встроенный модуль FastCGI нельзя, потому что в таком случае PHP-скрипты всех пользователей будут иметь одинаковые права и ошибка в одном скрипте приведет к компрометации всех остальных пользователей. Мы реализуем более сложную схему, в которой обработкой CGI-запросов будет заниматься PHP-FPM (PHP FastCGI Process Manager), а изоляция PHP-процессов одних пользователей от PHP-процессов других будет выполнена с помощью механизма пулов. Первое, что необходимо сделать для реализации такой схемы, — это добавить в приведенный выше шаблон следующий блок (перед последней фигурной скобкой):

# vi /etc/nginx/sites-avalible/template

location ~ \.php$ {

try_files $uri =404;

fastcgi_pass unix:/var/run/php5-fpm/_USERNAME_.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME \

$document_root$fastcgi_script_name;

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

ЕвгенийЗобнин(execbit.ru)w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

fastcgi_param PATH_INFO $fastcgi_script_name;

include /etc/nginx/fastcgi_params;

}

Это стандартный блок обработки CGI-запросов с тем исключением, что он передает запросы не стандартному обработчику, а в сокет /var/run/php5-fpm/_USERNAME_.sock, который и будет слушать PHP-FPM. Каждый пользователь в нашей конфигурации будет иметь собственный пул процессов PHP, конфигурируемый с помощью еще одного шаблона:

#vi /etc/php5/fpm/template

[_USERNAME_]

#Принимать запросы через этот UNIX-сокет listen = /var/run/php5-fpm/_USERNAME_.sock

#Владелец сокета

listen.owner = _USERNAME_

listen.group = www-users

listen.mode = 0600

#Юзер и группа, с правами которых будут исполняться

#PHP-процессы

user = _USERNAME_

group = www-users

#Динамически регулировать количество дочерних процессов pm = dynamic

#Максимальное количество процессов

pm.max_children = 50

#Количество процессов, порождаемых после старта pm.start_servers = 20

#Минимальное и максимальное количество ожидающих

#процессов

pm.min_spare_servers = 5

pm.max_spare_servers = 35

Этот шаблон мы будем использовать для генерирования конфига пула для каждого пользователя. Другими словами, при регистрации нового пользователя наша админка теперь должна не только

ВЕБ-ФАЙРВОЛНАБАЗЕNGINXИNAXSI

Проект Naxsi (Nginx Anti XSS SQL Injection) представляет собой модуль Web Application Firewall для nginx, который позволяет защититься от большинства популярных атак, направленных на веб-сайты, — SQL Injections, Cross Site Scripting, Cross Site Request Forgery, Local & Remote File Inclusions. В отличие от большинства подобных проектов, Naxsi не опирается на сигнатуры, а использует более простую модель,

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

вHTTP-запросах. Каждый символ в таком запросе получает балл,

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

Разработки стартовали в июле 2011-го и ведутся в рамках Google Code (naxsi.googlecode.com), в сентябре того же года проект был взят под крыло OWASP. Сегодня соответствующий пакет можно найти

в репозиториях многих дистрибутивов Linux (в частности, Debian/Ubuntu) и в портах FreeBSD. Для установки из сырцов следует пересобрать nginx с новым модулем (--add-module=../naxsi-x.xx/naxsi_src, при этом

naxsi должен быть указан первым). Для конфигурирования в секции http следует подключить правила «include /etc/nginx/naxsi_core. rules», не забыв скопировать сам файл из архива в выбранное место. Далее в location указываем адрес сайта и путь к файлу с настройками работы (в архиве есть пример default_location_config.example).

В этом файле, помимо прочего, указаны значения CheckRule для срабатывания блокировки. После этого Naxsi начнет генерировать whitelist, состоящий из легальных запросов. По окончании обучения следует удалить директиву LearningMode и перевести Naxsi в обычный режим (в LearningMode Naxsi тоже блокирует неправильные запросы, но каждый раз проверяются все правила, что дополнительно нагружает систему). Теперь при появлении запроса выполняется подсчет баллов,

ив случае превышения CheckRule запрос блокируется. Возможны

иложные срабатывания, когда блокируется вполне легитимный запрос, для таких случаев разработчики предлагают скрипт rules_generator.py, позволяющий анализировать логи и автоматически создавать WL.

Сергей Яремчук (grinder@synack.ru)

124

ХАКЕР 07 /162/ 2012

0124

ХАКЕР 07 /162/ 2012

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

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

 

 

 

 

 

Командная wиграClick

 

 

 

 

 

m

 

 

 

 

 

 

Командная игра

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Wiki-страничка,посвященнаяPHP-FPM

заводить нового UNIX-пользователя и размещать в его домашнем каталоге набор подкаталогов, но и генерировать новый конфиг /etc/php5/fpm/pool.d/ИМЯ_ПОЛЬЗОВАТЕЛЯ.conf и перезагружать PHP-FPM командой /etc/init.d/php5-fpm reload. Все, теперь пользователи могут создавать новые сайты и ставить на них Wordpress, PHPMyAdmin, Drupal и другой софт. Теперь займемся тюнингом nginx для обеспечения большей безопасности нашего веб-сервера и приложений пользователей.

NGINX И DDOS

Чтобы обезопасить сервер и веб-сайты клиентов от всякого рода заразы и хацкеров, необходимо принять ряд мер. Во-первых, следует применить некоторые настройки nginx, детально описанные в статье «Полный тюнинг движка» (][_07_2010). Во-вторых, мы должны обеспечить хоть какую-то защиту от DDoS. Это гораздо более важно, чем все остальное, так как в случае с хостингом одна хорошая DDoSатака сможет повалить не только веб-сайт жертвы, но и страницы всех остальных клиентов, что не очень хорошо скажется на репутации сервиса. Начальную защиту от разного рода SYN/ACK и UDPфлуда довольно просто реализовать с помощью iptables, о чем

мы также уже не раз писали. Совсем другое дело — DDoS-атака, направленная на сам веб-сайт, то есть различные его страницы, которые при обработке запроса могут дать высокую нагрузку на сервер (HTTP-флуд). Опасность такой атаки заключается в, так сказать, «низком уровне вхождения». Если недоброжелатели смогут найти на веб-странице одного из наших клиентов действительно плохо написанный скрипт, который достаточно долго исполняется, потребуется не так много ресурсов, чтобы завалить сайт многократным обращением к этой странице с помощью простейшего бота. Конечно, мы можем ограничить время исполнения скриптов в настройках самого PHP, а также установить eAccelerator для ускорения их работы (это необходимо сделать в любом случае), что позволит несколько

ПроверкаработоспособностиPHP-FPM

снизить «планку вхождения», но не решит проблему полностью. Поэтому нам нужен блокиратор самих ботов. Ботов можно отлавливать, используя несколько косвенных признаков. Наиболее важные из них — это реализация функций, которые априори есть в браузере, но обычно не реализованы в DDoS-ботах по причине ненужности. Обычно программеры слишком ленивы, чтобы реализовать такую функциональность в ботах, поэтому 90% атак можно отбить, просто проверяя наличие поддержки cookie, функции перенаправления

и поддержки JavaScript в HTTP-клиенте.

Именно так действует модуль testcookie-nginx-module. Его задача — попытаться установить в клиенте случайно сгенерированный кукис, затем перенаправить клиента на тот же адрес с добавлением заранее заданного GET-параметра и при переходе клиента на этот адрес проверить успешность установки cookie. Если какой-то из этих шагов клиент выполнить не сможет, значит он либо не имеет поддержки cookie, либо не умеет обрабатывать редиректы. В любом случае это будет свидетельствовать о наличии на другой стороне соединения бота, который будет отшиблен на заранее указанный URL. Устанавливаетсямодульстандартнымдляnginxметодом:пересборкой веб-серверасподдержкоймодуля.Сделатьэтоможнотак:

$ sudo apt-get install build-essential

$ cd /tmp

$ wget http://goo.gl/Mh7IJ

$ wget http://goo.gl/gyvs3 -O test-cookie.tar.gz

$ tar -xzf nginx-1.2.0.tar.gz

$ tar -xzf test-cookie.tar.gz

$ cd nginx-1.2.0

$ ./configure --prefix=/usr/local \

--add-module=kyprizel-testcookie-nginx-module-*

$ make

$ sudo apt-get remove nginx

Принципработымодуляnginx-testcookie-module(дляботовбезподдержкиJavaScriptисподдержкойJavaScript)

ХАКЕР 07 /162/ 2012

125

ХАКЕР 07 /162/ 2012

0125

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

to

BUY

SYN/ACK

 

 

 

 

 

w

 

 

 

 

w Click

 

 

SYN/ACKm

 

w

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

.c

 

 

p

 

 

 

 

g

 

 

 

 

df

 

 

n

e

 

 

 

 

-xcha

 

 

 

$ sudo make install

Также установим стартовый скрипт nginx:

$ cd /tmp

$ wget http://goo.gl/H08BC $ cd /etc/init.d/

$ sudo tar -xjf /tmp/nginx-init-ubuntu_v1.2.1.tar.bz2 $ chmod +x nginx

$ sudo update-rc.d -f nginx defaults

Теперь, когда nginx работает, добавим опции модуля testcookie- nginx-module в конфиг веб-сервера (секцию http):

# vi /etc/nginx/nginx.conf

http {

#По умолчанию модуль отключен testcookie on;

#Имя cookie для проверки testcookie_name BPC;

#Строка, используемая при генерировании cookie testcookie_secret keepmesecret;

#Сессионный ключ

testcookie_session $remote_addr;

#Имя GET-параметра для проверки cookie testcookie_arg attempt;

#Пытаться установить cookie три раза testcookie_max_attempts 3;

#Применять модуль только в отношении GET-запросов testcookie_get_only on;

}

Так действие модуля будет автоматически распространяться на все сайты всех клиентов. Чтобы отключить его для выбранного сайта, достаточно просто добавить строку «testcookie off;» в конфиг нужного виртуального хоста внутри /etc/nginx.d/sites-enabled/ (не забываем, что после регистрации нового сайта в этот каталог будет помещен новый конфиг виртуального хоста, сгенерированный из шаблона). Это самый простой пример использования модуля. В фай-

ле doc/usecases.txt ты найдешь пять примеров конфигов, начиная от наиболее простого, который применили мы, и заканчивая примером шифрования кукиса с помощью AES-128 и его последующей дешифровки на стороне клиента с помощью JavaScript-кода. Ни один бот не сможет пройти такой тест.

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

ЕвгенийЗобнин(execbit.ru)w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

ФИЛЬТРАЦИЯ ПО ГЕОГРАФИЧЕСКОМУ ПРИЗНАКУ

Второй и более радикальный метод борьбы с DDoS — это блокирование клиентов по географическому признаку. Часто источник DDoS находится в тех частях света, с которых легальные юзеры никогда на сайт не заходят. Это значит, что некоторые типы атак можно отбить, просто блокируя IP-адреса по географическому признаку. Конечно, каждый сайт будет иметь свой список легитимных источников трафика, поэтому данный метод борьбы стоит сделать опциональным и активировать по запросу клиента или после обнаружения атаки.

Модуль, реализующий эту функциональность, называется geoip. Он включен в стандартную поставку nginx, поэтому устанавливать дополнительные пакеты не нужно. Однако чтобы он работал правильно, придется загрузить базу блоков IP-адресов и соответствующих им стран:

$ cd /etc/nginx/

$ sudo wget http://goo.gl/hzB5W

Теперь просто подключаем базу IP-адресов в конфиге nginx (в секции http):

geoip_country /etc/nginx/conf/GeoIP.dat

А в конфиг виртуального хоста нужного сайта добавляем следующую строку:

if ($geoip_country_code = CN) {

return 444;

}

Здесь CN — это двухбуквенный код неугодной страны, в данном случае Китая, а 444 — код ответа веб-сервера. Не составит труда написать скрипт, который будет добавлять такие строки в нужные конфиги при выборе соответствующей опции через админку. Хотя принудительно блокировать ботнеты можно и вручную.

ВЫВОДЫ

Использовать nginx в качестве веб-сервера для хостинга не только можно, но и нужно. В отличие от Apache, он может обслужить гораздо большее количество клиентов при минимальной нагрузке на систему. В сочетании с PHP-FPM и анти-DDoS модулями ты сможешь создать защищенный и устойчивый к атакам сервер, который будет работать годами, не требуя дополнительных расходов на сопровождение. z

РЕАЛИЗАЦИЯМЕХАНИЗМАДИНАМИЧЕСКОГОСОЗДАНИЯ ВИРТУАЛЬНЫХХОСТОВ

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

# vi /etc/nginx/sites-enabled/default

server

{

if ($host ~* www\.(.*))

{

set $host_without_www $1;

rewrite ^(.*)$ http://$host_without_www$1/ permanent;

}

server_name_in_redirect off;

listen 80;

server_name _;

access_log /var/log/nginx/$host.access_log main;

error_log /var/log/nginx/logs/$host.access_log info;

root /var/www/$host;

}

Этот конфиг позволяет динамически создавать новые виртуальные хосты простым созданием каталога в /var/www/. Чтобы добавить новый виртуальный хост, просто выполни команду mkdir /var/www/exemple.com, и новый виртуальный хост сразу начнет функционировать.

WWW

habrahabr.ru/ post/139931/— авторскоеописание модуляtestcookie- nginx-moduleна русскомязыке.

habrahabr.ru/

post/141989/— установкаcookie черезFlash.

WARNING

Незабывай перезапускатьnginx послекаждойправки конфигов.

126

ХАКЕР 07 /162/ 2012

0126

ХАКЕР 07 /162/ 2012

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

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

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

to

BUY

SYN/ACK

 

 

 

 

 

w

 

 

 

 

w Click

 

 

SYN/ACKm

 

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

 

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

 

ИльяРудь(irud@live.ru)

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

А

Н

К

З

 

 

соответствия

КАКСДАВАТЬ СЕРТИФИКАЦИЮ MICROSOFT

ТвоемувниманиюпредлагаетсянебольшойFAQ посертификациисамогокрупногософтверного вендора,приправленныйсубъективным мнениемчеловека,которыйсдалнеодин экзаменипоследниепятьлетработаетвсфере образованияисертификации.

128

ХАКЕР 07 /162/

2012

0128

ХАКЕР 06 /161/

2012

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