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

Хранение ключей безопасности на веб-сервере Ubuntu

Я запускаю Ubuntu 12.04 Precise со средой DUNG (Django, Unix, Nginx & Gunicorn), и мое приложение (а также различные файлы конфигурации) хранится в виртуальной среде python внутри /srv, который www-data пользователь имеет доступ к.

Все процессы nginx и gunicorn запускаются как www-data.

Мое веб-приложение требует защищенных учетных данных, которые я храню в environment.sh файл. Этот файл содержит различные экспорты и запускается с использованием source до того, как будут выполнены процессы пулеметчика.

Меня беспокоит расположение environment.sh файл и его разрешения. Можно ли хранить этот файл внутри /srv папка, в которой www-data имеет к нему доступ? Или он должен храниться и принадлежать root где-то еще, например /var/myapp/environment.sh?

Также, что касается www-data пользователь, если какой-либо из моих веб-процессов (которые запускаются как www-data) скомпрометированы, и кто-то получает к ним доступ, означает ли это, что пользователь потенциально может прочитать любой файл в системе, даже если он не может писать? Включая мои безопасные ключи?

Вы можете установить идентификаторы пользователей и групп в конфигурации Gunicorn, которые будут использоваться рабочими процессами. Установите переменные среды в файле, принадлежащем пользователю root и без разрешений на чтение (rw -------). Это избавит ваш скомпрометированный процесс www-data от чтения данных непосредственно из файла конфигурации, но скомпрометированный процесс www-data все еще может считывать переменные прямо из памяти.

пс. +1 за НАЗАНИЕ :)