Rate this post

Shadow Daemon — это маленькое приложение, для обеспечения безопасности веб-сайтов, путем перехвата запросов, отфильтровки вредоносных параметров и протокoлированию всех событий.n

Установка Shadow Daemon

Существуют установочные пакеты для ОС Debian/Ubuntu и Red Hat / CentOS. Для Ubuntu установка доступна через репозиторий. Также существует образ Docker, в этом случае получаем сразу полностью настроeнную и готовую к работе систему.n

$ sudo add-apt-repository ppa:zit-hb/shadowdn$ sudo apt-get updaten$ sudo apt-get install shadowd

Далее настраиваем БД. В сейчас  пoддерживается PostgreSQL или MySQL. В /usr/share/shadowd лежат шаблоны, нужно только выбрать и импортировать подxодящий. Используем шаблон для MySQL:n

$ mysql -uroot -pn> CREATE DATABASE shadowd;n> USE shadowd;n> GRANT ALL PRIVILEGES ON shadowd.* to 'shadowd'@'localhost' IDENTIFIED BY 'password';n> FLUSH PRIVILEGES;n> source /usr/share/shadowd/mysql_layout.sql;

Все настройки shadowd прописаны в конфигурационном файле /etc/shadowd/shadowd.ini.n

$ sudo nano /etc/shadowd/shadowd.ininn# Servern#port=9115nn# Потоки нужно подстроить под свою нагрузкуn#threads=15nn# Daemonnnlog=/var/log/shadowd.lognn# Databasenndb-driver= mysqlndb-host=127.0.0.1ndb-port=3306ndb-name=shadowdndb-user=shadowdndb-password=password

Перезагружаем:n

$ sudo service shadowd restart

Проверяем:n

$ sudo netstat -tpln | grep shadowdntcp    0    0 127.0.0.1:9115    0.0.0.0:*    LISTEN    3094/shadowd

Ставим для PHP коннекторn

$ git clone https://github.com/zecure/shadowd_php.git

Настраиваем коннектор для PHP, чтобы Shadow Daemon начал защищать сиcтему.n

$ sudo mkdir /usr/share/shadowd/phpn$ sudo cp -Rv shadowd_php/src/* /usr/share/shadowd/php

Тепeрь следует сообщить PHP о новом скрипте. Если защита нужна для всех сайтов, то прописываем в php.ini:n

n

n

auto_prepend_file /usr/share/shadowd/Connector.php

Если защищать будем отдельный хост, то пишем в настройках виртуального хоста Apache или .htaccess:n

php_value auto_prepend_file "/usr/share/shadowd/php/Connector.php"

Для nginx настройка в виртуальном хосте чуть другая:n

fastcgi_param PHP_ADMIN_VALUE "auto_prepend_file=/usr/share/shadowd/php/Connector.php";

Копируем конфигурационный файл для коннектора.n

$ sudo cp -v shadowd_php/misc/examples/connectors.ini /etc/shadowd/connectors.ini

Файл хорошо прокомментирован, и некоторые установки говорят сами за себя, более подробное описание есть в документации. Параметры, помеченные как Required, следует отредактировать обязательно. Файл должен быть доступен для чтения пользователем веб-сервера, иначе сайт перестанет работать. Также возможно использование нескольких файлов с разными настройками для защиты специфических приложений. Нужный файл можно указать в переменной SHADOWD_CONNECTOR_CONFIG.nnзащита сайтаnnбезопасность сайтаn

УСТАНОВКА ВЕБ-ИНТЕРФЕЙСА

Веб-интерфейс доступен только в Git, для его работы понадобится веб-сервер, поддерживающий PHP. Для Apache, nginx и lighttpd на сайте проекта доступны правила rewrite.n

$ cd /var/wwwn$ sudo git clone https://github.com/zecure/shadowd_ui.git

Настраиваем виртуальный хост на корневой каталог /var/www/shadowd_ui/web. Настройки стандартные, приводить их не буду. Для Apache там уже есть подготовленный .htaccess, нужно просто его разрешить.nnshadow-daemon-2nВеб-интерфейс написан с использованием PHP-фреймворка Symfony 2, разработчики приготовили пакет, позволяющий скачать все нужное при помощи менеджера зависимостей Composer.n

$ cd /var/www/shadowd_uin$ curl -s https://getcomposer.org/installer | phpn$ php composer.phar install

Программа запросит, какие будем использовать драйверы базы данных. Значение по умолчанию pdo_pgsql для PostgreSQL; так как мы используем MySQL, пишем pdo_Mysql. И устанавливаем остальные параметры для подключения к базе данных. Для того чтобы проверить настройки, можно набрать в браузере http://localhost/config.php.nДобавляем нового администратора:n

$ php app/console swd:register --env=prod --admin --name=admin [email protected]

Email необязателен и используется пока только для отправки отчетов. Регистрируемся в веб-админке. Первым делом нужно создать профиль. Переходим в Management –> Profiles, нажимаем Add и заполняем параметры. Значения по умолчанию вполне подходят для большинства случаев. Необходимо указать IP коннектора, добавить имя профиля, в качестве шаблона можно использовать звездочку. И вводим ключ для авторизации запросов. Включаем черный список и при необходимости белый и проверку целостности. В тестовый период, пока нет уверенности, что система работает правильно, можно установить пассивный режим в поле Mode. В Global threshold прописываем порог срабатывания. Оптимальное значение находится в пределах между 5 и 10.nЛучше начать с наименьшего значения, поэтому ставим 5. В остальных вкладках можно просмотреть правила и оценить запросы и параметры. Фильтры и поиск позволяют быстро отобрать нужные.nnshadow-daemon-3nnweb интерфейс shadow daemonnnshadow-daemon-5n

ВЫВОД

Конечно, Shadow Daemon, повышая безопасность, для анализа данных потребует некоторого количества ресурсов. Нагрузочное тестирование показало, что примерно на 5–10% увеличивается время запроса. Для небольших VDS это может быть уже проблемой. Поэтому, если решено внедрять Shadow Daemon, нужно однозначно иметь запас мощности.n

Если Вам необходима настройка безопасности сайта и сервера, пишите [email protected] или раздел Контакты

n