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

Настройка сервера веб-разработки для нескольких проектов

Я пытаюсь настроить сервер разработки, который будет использоваться для нескольких (веб-проектов) разными командами (состоящими из разных людей, некоторые из которых могут быть задействованы более чем в одном проекте). Я доверяю всем своим пользователям, однако по юридическим причинам (конфиденциальные данные потенциально могут храниться в некоторых проектах) мне нужно иметь возможность ограничить их доступ к некоторым частям сервера.

Мне нужен следующий стек:

Большинству (если не всем) пользователей необходим доступ к ssh, поэтому об ограничении подключений к sftp и их заключении в тюрьму не может быть и речи. Я выяснил следующее:

  1. nginx не выполняет произвольный код, поэтому может работать с разрешениями для всех проектов
  2. php-fpm жестяная банка выполнить произвольный код, поэтому его нужно ограничить. Я решил запустить отдельные пулы, каждый с доступом только к одному проекту
  3. mysql не представляет угрозы для безопасности
  4. varnish это отдельная проблема, с которой мне придется разобраться позже

Моя первоначальная идея заключалась в том, чтобы заключить в тюрьму пользователей, использующих ssh-соединения, но это похоже на «быстрое исправление», а не на решение - кроме того, это было бы ограничивающим и утомительным обслуживанием. Вторая мысль заключалась в том, чтобы использовать SELinux (с которым у меня нет опыта) для ограничения доступа к файлам, связанным с проектом. Я думал, что сработает следующее (margo это пример названия проекта):

Это сработает? У меня очень базовое (т.е. несуществующее) понимание SELinux, и я хотел проверить, является ли это правильным способом решения проблемы, прежде чем я начну выполнять операции, которые могут привести к простою сервера. Информации о SELinux очень много, но я не смог найти ничего, хотя бы отдаленно связанного с моей конкретной проблемой, и большинство статей трудно понять неопытному пользователю SELinux.