Назад | Перейти на главную страницу

Как усилить защиту nginx vhosts (хостинг WordPress) от других пользователей во взломанных установках WP

Обзор:
У меня около дюжины установок WP, размещенных на Ubuntu 14.04 LTS с PHP 5.5.9 и Nginx 1.4.6. MySQL работает на альтернативном узле, а не в общедоступной сети.

Цель:
Чтобы каталоги и файлы каждой установки WP НЕ были доступны для чтения во всем мире. Если злонамеренный пользователь получает доступ к конкретной установке WP, я не могу позволить ему перейти к альтернативной установке WP и прочитать учетные данные БД.

Подробности:
Nginx работает как www-data. Для каждого виртуального хоста создается пользователь без оболочки. Каждый виртуальный хост поддерживает одну установку WP. Пулы PHP-FPM работают индивидуально для каждого пользователя / виртуального хоста. Пулы PHP-FPM подключаются к Nginx через socks, а не через loopback IP.

Читая следующее Wordfence статьи, я попытался установить права доступа к файлам следующим образом:
Файлы - 640
Справочники - 750

Когда я настраиваю разрешения как таковые, Nginx, работающий как www-data, больше не может правильно обращаться к файлам WP. Если я верну разрешения к 644 & 755, все работает как положено.

Сайты устанавливаются в следующей структуре:
/var/www/site1.com/public
/var/www/site2.com/public
/var/www/site3.com/public

и так далее.

Каждый каталог принадлежит соответствующему пользователю и группе пользователей. то есть:
site1-com: site1-com /var/www/site1.com

У нас был взломанный сайт WP, и они смогли загрузить на сервер скрипт файлового менеджера php. Насколько я понимаю, этот сценарий запускается пользователем www-data. (Проверено с ps auxЕсли это правда, я подозреваю, что злоумышленник может получить доступ ко всем другим установкам WP через свой скрипт файлового менеджера php.

Как я могу улучшить настройки разрешений, чтобы усилить безопасность? Я открыт для всех предложений, даже если это означает перенастройку всего стека.

Заранее спасибо.