С точки зрения безопасности, настройка прав владения и разрешений для LEMP-сервера для управления через wp-cli и панель управления wordpress?

Я использую LEMP VPS со следующей настройкой:

cd /home/$USER/public/myDomain.com        # change directory to myDomain.com
chown -R nginx:nginx .                    # change file ownership
find . -type d -exec chmod 750 {} \;      # change permissions for directories
find . -type f -exec chmod 640 {} \;      # change permissions for files
chmod 400 wp-config.php                   # change permission for wp-config

Проблема в том, что я не могу войти в папку «myDomain.com» без входа в систему как root. Кроме того, я не могу запустить wp-cli как $ USER , мне нужно выполнить следующее:

sudo -u nginx wp <wp-command>             # running wp-cli as user `nginx`

Итак, как сказано в заголовке, каковы настройки безопасности для владение файлом и разрешение на LEMP VPS.

0
задан 23 October 2020 в 09:57
1 ответ

Это полностью описано в NGINX и PHP-FPM. Какими должны быть мои разрешения?.

По существу:

  • В целях безопасности всегда имейте пользователя для конкретного сайта, который для удобства будет назван в честь вашего доменного имени, например. для example.com создайте пользователя example.
  • Настройте NGINX, чтобы он был членом группы пользователей для конкретного сайта: usermod -a -G example nginx
  • Теперь вы можете защитить вещи по мере необходимости, указав chmod для пользователя, где PHP должен читать/выполнять файлы, и удаление бита группового chmod, где NGINX не нужен доступ

С предлагаемой установкой chmod 400 для wp-config.php приведет к доступу только для чтения к конфигурации, только для пользователя сайта (и NGINX не сможет его обслужить, и это хорошо).

Относительно где должны храниться файлы

При наличии: ник (пользователь sudo) и пример пользователя (зависит от сайта). ..:

Файлы веб-сайта следует либо переместить в независимую от пользователя папку (например, в /var/www/example.com). Или (немного хуже) быть помещенным в домашний каталог пользователя веб-сайта, например. /home/example/example.com.

Если вы собираетесь использовать одного пользователя SSH для подключений, вы можете просто изменить его на конкретного пользователя по своему желанию. Например. если вы предпочитаете всегда подключаться с ник, но иногда работать с example.com, вы должны измениться на пользователя веб-сайта с помощью sudo -iu example.

Хранение файлов веб-сайта в домашнем каталоге пользователя с поддержкой sudo не кажется безопасным и наименее предпочтительным:

  1. если файлы веб-сайта принадлежат нику (и у вас не будет пример пользователя), в случае взлома веб-сайта они могут получить административный доступ ко всему серверу
  2. если файлы веб-сайта принадлежат примеру, единственный способ работа заключается в снижении ограничений на /home/nick с 07:00 до 07:50, по крайней мере).

Благословенное FHS расположение для обслуживаемых файлов на самом деле /srv/ , что спорно, но в любом случае лучше, чем домашние каталоги.

0
ответ дан 23 October 2020 в 08:21

Теги

Похожие вопросы