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

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

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

Подробности: стек Bitnami LEMP с Node

разрешения для / etc / ssl / private:

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

разрешения для ключевого файла:

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

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

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

Какие у меня здесь варианты? Насколько я понимаю, это примерно такие варианты:

Любая помощь приветствуется! Спасибо

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

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

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

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, чтобы они повторно подключились с новыми разрешениями.