Узел + PM2 - Как надежно считать закрытый ключ SSL с некорневым пользователем?

Я ищу способ выполнить узел через PM2 при чтении закрытого ключа SSL, который помещается в безопасный каталог.

Подробнее: Стек Bitnami LEMP с Узлом

полномочия для/etc/ssl/private:

drwx------ 2 root root  4096 private

полномочия для файла ключей:

-rw-r----- 1 root root 1704 my_key_file.key

С вышеупомянутыми полномочиями и nginx и php хорошо работают без проблем безотносительно (я предполагаю, что это вызвано тем, что ведущее устройство nginx обрабатывает выполнения как корень?), и так делает рабочий узел как sudo.

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

Каковы мои опции здесь? Путем я понимаю это, это - что-то как эти опции:

  • Ослабьте полномочия на папке/файле с закрытым ключом (Плохо, включает изменения в/etc/ssl/private!)
  • Скопируйте private_key и сделайте его читаемым только безопасным пользователем, который выполняет pm2 (Грязный бит, включает отслеживание скопированных файлов для обновлений и т.д.),
  • Выполненное ведущее устройство PM2 как корень, который затем порождает процесс/экземпляр как некорневого пользователя (Во многом как то, как nginx работает, не уверенный, если это даже возможно),
  • Выполненный PM2 как корень, изменитесь, код для отбрасывания его собственного уровня полномочий после выполнения некоторых вещей как корень (как обрисовано в общих чертах здесь - выглядит немного грязным и также могла бы быть угроза безопасности),

Любой вид справки значительно ценится!Спасибо

4
задан 20 February 2015 в 09:55
1 ответ

Вы можете создать группу с именем ssl-cert и добавить в эту группу pm2user .

sudo groupadd ssl-cert
sudo usermod -a -G ssl-cert pm2user

Затем измените группу каталога / etc / ssl / private и его содержимое на ssl-cert . Вам также потребуется добавить групповые разрешения на выполнение для закрытого каталога .

sudo chown -R root:ssl-cert /etc/ssl/private/
sudo chmod 650 /etc/ssl/private/
sudo chmod 640 /etc/ssl/private/my_key_file.key

Это позволит PM2 получить доступ к файлу. Это более или менее безопасно? Это может зависеть от того, кто имеет доступ к серверу и насколько широко используется группа ssl-cert . Сведите использование группы к абсолютному минимуму: только учетные записи без входа. Вероятно, вам потребуется перезапустить службы Nginx и PM2, чтобы они повторно подключились с новыми разрешениями.

2
ответ дан 3 December 2019 в 03:56

Теги

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