Drupal для параноиков: безопасность сайта и системного окружения VPS и выделенных серверов А.Графов

Содержание

Слайд 2

Проблемы

Нежелательный контент (спам, трояны)
Изменение кода сайта (кража данных пользователей, вставка нежелательного контента

Проблемы Нежелательный контент (спам, трояны) Изменение кода сайта (кража данных пользователей, вставка
— показ скрытой рекламы, перенаправление на другой ресурс)
Несанкционированное использование ресурсов сервера (рассылка спама и др.)

Слайд 3

Причины проблем

Сеть:
Скрипты сайта
Вебсервер
Другие сетевые службы (ftp, ssh, СУБД...)
Локальный доступ:
Пользователи имеющие доступ (ssh,

Причины проблем Сеть: Скрипты сайта Вебсервер Другие сетевые службы (ftp, ssh, СУБД...)
ftp)
Или получившие доступ к серверу при успешной атаке по сети
Физический доступ к серверу:
Данные на жёстких дисках

Слайд 4

Способы защиты

Контроль работы скриптов
Защита сетевых сервисов
Разграничение прав между пользователями на исполняемые процессы
Разграничение

Способы защиты Контроль работы скриптов Защита сетевых сервисов Разграничение прав между пользователями
прав на доступ к файловой систему
Ограничение доступа к сетевым сервисам
Защита данных хранимых на жёстком диске

Слайд 5

Drupal: защита изнутри

Обновления ядра и модулей
Модуль update status
Фильтр исполнения PHP
Лишние модули
Пользователь №1
Модуль

Drupal: защита изнутри Обновления ядра и модулей Модуль update status Фильтр исполнения
paranoia
Блокирует создание форматов включающих исполнение PHP
Блокирует изменения аккаунта №1
Блокирует отключение модуля paranoia

Слайд 6

Drupal + HTTPS

Вариант использования:
http://example.com/* - контент пользователям
Запрет доступа к http://example.com/admin*
Доступ к админке

Drupal + HTTPS Вариант использования: http://example.com/* - контент пользователям Запрет доступа к
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 Самобучающиеся
на алгоритме Байеса
Правила для URL в модуле Spam
Публичные спамбазы и блоклисты
Mollom — проект Дриса Байтаерта
Akismet

Слайд 8

Фильтруем контент: организационные методы

Общественная модерация
Премодерация
Постмодерация
Пример вики-модерации на drupal.ru
Ничего не удаляется!
Больше 100 модераторов
Легкость

Фильтруем контент: организационные методы Общественная модерация Премодерация Постмодерация Пример вики-модерации на drupal.ru
внесения правок
Бан одним кликом
Тем эффективнее, чем больше человек задействовано в модерации

Слайд 9

Apache mod_security

mod_security — «файрвол для вебприложений»
Проверка GET и POST
Фильтрация подозрительного содержимого (ввод-вывод)

Apache mod_security mod_security — «файрвол для вебприложений» Проверка GET и POST Фильтрация
на основе правил
SQL injections
XSS
Команды ОС
Обнаружение троянов
Аномалии HTTP-запросов

Слайд 10

Установка PHP

mod_php в Apache — один пользователь на все процессы
open_base_dir — можно

Установка PHP mod_php в Apache — один пользователь на все процессы open_base_dir
указывать для каждого виртуального хоста
FastCGI в Apache и NGINX — можно легко разделить пользователей виртуальных хостов
Suhosin — патч и модуль расширения к PHP

Слайд 11

Средства ОС

Кража паролей — самый частый способ «взлома»
FTP на продуктиве лучше отключать

Средства ОС Кража паролей — самый частый способ «взлома» FTP на продуктиве
(use SFTP)
Защита от последствий украденного пароля на VPS/сервере:
Права владения на скрипты сайта передаются другому пользователю (например root)
Папки files и tmp — единственные места, куда Drupal требует прав на запись
Совет: index.html с правами на запись

Слайд 12

Средства ОС

POSIX ACL на файловой системе:
Более гибкая схема, чем механизм user:group:other –

Средства ОС POSIX ACL на файловой системе: Более гибкая схема, чем механизм
rwx
Упрощённо говоря ACL задавать отдельные права на файл для нескольких пользователей и групп
Пакет acltools: getfacl/setfacl

Слайд 13

Блокировка перебора паролей

Можно сделать в друпале через hook_user()
Fail2ban — защита от перебора

Блокировка перебора паролей Можно сделать в друпале через hook_user() Fail2ban — защита
паролей и от DOS
Защита входов SSH и FTP
Защита авторизационных форм вебсервера
Защита авторизации Drupal:
failregex = \|user\|\|.*\|Login attempt failed (.+)\.$
Блокирует IP или производит другие действия

Слайд 14

Сетевой файрвол

Ограничения доступа на уровне сетевых протоколов и портов
Не всем приложениям нужен

Сетевой файрвол Ограничения доступа на уровне сетевых протоколов и портов Не всем
доступ отовсюду из сети: ограничения по IP
Всегда ли нужен файрвол?

Слайд 15

Последний рубеж

ФС в файле через loopback-интерфейс
Или ФС в отдельном разделе
Включить поддержку криптографии

Последний рубеж ФС в файле через loopback-интерфейс Или ФС в отдельном разделе
в ядре
AES, Blowfish, DES...
Критичные данные на шифрованном разделе
Пример для Linux:

Слайд 16

Мониторинг работы

Мониторинг работы основных сервисов локально и перезапуск при необходимости (вебсервер, СУБД,

Мониторинг работы Мониторинг работы основных сервисов локально и перезапуск при необходимости (вебсервер,
PHP)
Комплексный мониторинг (Zabbix, ZenOSS)
CPU
Память
Место на ФС
Доступность сетевых сервисов
Уведомления по почте, СМС
Вебинтерфейс с таблицами и графиками
Агенты под Linux, *BSD, Windows

Слайд 17

Ссылки на самое вкусное

Коды примеров и файлов конфигурации можно скачать:
Ссылки на п/о:
http://fail2ban.org
http://modsecurity.org
http://suhosin.org
http://zabbix.com
Статьи

Ссылки на самое вкусное Коды примеров и файлов конфигурации можно скачать: Ссылки
по теме:
www.drupal.ru/node/31163 - fail2ban + Drupal
http://tr.im/x5cQ - настройка шифрования ФС
Имя файла: Drupal-для-параноиков:-безопасность-сайта-и-системного-окружения-VPS-и-выделенных-серверов-А.Графов-.pptx
Количество просмотров: 117
Количество скачиваний: 0