Слайд 2Проблемы
Нежелательный контент (спам, трояны)
Изменение кода сайта (кража данных пользователей, вставка нежелательного контента
![Проблемы Нежелательный контент (спам, трояны) Изменение кода сайта (кража данных пользователей, вставка](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/388288/slide-1.jpg)
— показ скрытой рекламы, перенаправление на другой ресурс)
Несанкционированное использование ресурсов сервера (рассылка спама и др.)
Слайд 3Причины проблем
Сеть:
Скрипты сайта
Вебсервер
Другие сетевые службы (ftp, ssh, СУБД...)
Локальный доступ:
Пользователи имеющие доступ (ssh,
![Причины проблем Сеть: Скрипты сайта Вебсервер Другие сетевые службы (ftp, ssh, СУБД...)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/388288/slide-2.jpg)
ftp)
Или получившие доступ к серверу при успешной атаке по сети
Физический доступ к серверу:
Данные на жёстких дисках
Слайд 4Способы защиты
Контроль работы скриптов
Защита сетевых сервисов
Разграничение прав между пользователями на исполняемые процессы
Разграничение
![Способы защиты Контроль работы скриптов Защита сетевых сервисов Разграничение прав между пользователями](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/388288/slide-3.jpg)
прав на доступ к файловой систему
Ограничение доступа к сетевым сервисам
Защита данных хранимых на жёстком диске
Слайд 5Drupal: защита изнутри
Обновления ядра и модулей
Модуль update status
Фильтр исполнения PHP
Лишние модули
Пользователь №1
Модуль
![Drupal: защита изнутри Обновления ядра и модулей Модуль update status Фильтр исполнения](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/388288/slide-4.jpg)
paranoia
Блокирует создание форматов включающих исполнение PHP
Блокирует изменения аккаунта №1
Блокирует отключение модуля paranoia
Слайд 6Drupal + HTTPS
Вариант использования:
http://example.com/* - контент пользователям
Запрет доступа к http://example.com/admin*
Доступ к админке
![Drupal + HTTPS Вариант использования: http://example.com/* - контент пользователям Запрет доступа к](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/388288/slide-5.jpg)
https://example.com only!
Как сделать? Нам поможет:
custom_url_rewrite_inbound(
&$result, $path, $path_language)
Переменные например
$_SERVER['HTTP_X_SSL_CONNECT']
$_SERVER['HTTP_X_FORWARDED_HOST']
$_SERVER['HTTP_HOST'] и др.
Слайд 7Фильтруем контент: технические средства
«Фейсконтроль» сайта — роботам вход воспрещён: captcha
Самобучающиеся фильтры
Модуль Spam
![Фильтруем контент: технические средства «Фейсконтроль» сайта — роботам вход воспрещён: captcha Самобучающиеся](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/388288/slide-6.jpg)
на алгоритме Байеса
Правила для URL в модуле Spam
Публичные спамбазы и блоклисты
Mollom — проект Дриса Байтаерта
Akismet
Слайд 8Фильтруем контент: организационные методы
Общественная модерация
Премодерация
Постмодерация
Пример вики-модерации на drupal.ru
Ничего не удаляется!
Больше 100 модераторов
Легкость
![Фильтруем контент: организационные методы Общественная модерация Премодерация Постмодерация Пример вики-модерации на drupal.ru](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/388288/slide-7.jpg)
внесения правок
Бан одним кликом
Тем эффективнее, чем больше человек задействовано в модерации
Слайд 9Apache mod_security
mod_security — «файрвол для вебприложений»
Проверка GET и POST
Фильтрация подозрительного содержимого (ввод-вывод)
![Apache mod_security mod_security — «файрвол для вебприложений» Проверка GET и POST Фильтрация](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/388288/slide-8.jpg)
на основе правил
SQL injections
XSS
Команды ОС
Обнаружение троянов
Аномалии HTTP-запросов
Слайд 10Установка PHP
mod_php в Apache — один пользователь на все процессы
open_base_dir — можно
![Установка PHP mod_php в Apache — один пользователь на все процессы open_base_dir](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/388288/slide-9.jpg)
указывать для каждого виртуального хоста
FastCGI в Apache и NGINX — можно легко разделить пользователей виртуальных хостов
Suhosin — патч и модуль расширения к PHP
Слайд 11Средства ОС
Кража паролей — самый частый способ «взлома»
FTP на продуктиве лучше отключать
![Средства ОС Кража паролей — самый частый способ «взлома» FTP на продуктиве](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/388288/slide-10.jpg)
(use SFTP)
Защита от последствий украденного пароля на VPS/сервере:
Права владения на скрипты сайта передаются другому пользователю (например root)
Папки files и tmp — единственные места, куда Drupal требует прав на запись
Совет: index.html с правами на запись
Слайд 12Средства ОС
POSIX ACL на файловой системе:
Более гибкая схема, чем механизм user:group:other –
![Средства ОС POSIX ACL на файловой системе: Более гибкая схема, чем механизм](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/388288/slide-11.jpg)
rwx
Упрощённо говоря ACL задавать отдельные права на файл для нескольких пользователей и групп
Пакет acltools: getfacl/setfacl
Слайд 13Блокировка перебора паролей
Можно сделать в друпале через hook_user()
Fail2ban — защита от перебора
![Блокировка перебора паролей Можно сделать в друпале через hook_user() Fail2ban — защита](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/388288/slide-12.jpg)
паролей и от DOS
Защита входов SSH и FTP
Защита авторизационных форм вебсервера
Защита авторизации Drupal:
failregex = \|user\|\|.*\|Login attempt failed (.+)\.$
Блокирует IP или производит другие действия
Слайд 14Сетевой файрвол
Ограничения доступа на уровне сетевых протоколов и портов
Не всем приложениям нужен
![Сетевой файрвол Ограничения доступа на уровне сетевых протоколов и портов Не всем](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/388288/slide-13.jpg)
доступ отовсюду из сети: ограничения по IP
Всегда ли нужен файрвол?
Слайд 15Последний рубеж
ФС в файле через loopback-интерфейс
Или ФС в отдельном разделе
Включить поддержку криптографии
![Последний рубеж ФС в файле через loopback-интерфейс Или ФС в отдельном разделе](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/388288/slide-14.jpg)
в ядре
AES, Blowfish, DES...
Критичные данные на шифрованном разделе
Пример для Linux:
Слайд 16Мониторинг работы
Мониторинг работы основных сервисов локально и перезапуск при необходимости (вебсервер, СУБД,
![Мониторинг работы Мониторинг работы основных сервисов локально и перезапуск при необходимости (вебсервер,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/388288/slide-15.jpg)
PHP)
Комплексный мониторинг (Zabbix, ZenOSS)
CPU
Память
Место на ФС
Доступность сетевых сервисов
Уведомления по почте, СМС
Вебинтерфейс с таблицами и графиками
Агенты под Linux, *BSD, Windows
Слайд 17Ссылки на самое вкусное
Коды примеров и файлов конфигурации можно скачать:
Ссылки на п/о:
http://fail2ban.org
http://modsecurity.org
http://suhosin.org
http://zabbix.com
Статьи
![Ссылки на самое вкусное Коды примеров и файлов конфигурации можно скачать: Ссылки](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/388288/slide-16.jpg)
по теме:
www.drupal.ru/node/31163 - fail2ban + Drupal
http://tr.im/x5cQ - настройка шифрования ФС