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

Должен ли я использовать системную учетную запись пользователя вместо обычной учетной записи пользователя для развертывания кода на сервере приложений?

У меня есть сервер приложений Tornado, работающий за веб-сервером Nginx. Сервер приложений содержит сценарии Python для таких задач, как обработка клиентских запросов, вызов базы данных, выполнение бизнес-логики и т. Д.

Конечно, код должен выполняться через учетную запись пользователя операционной системы. Теперь я вижу, что в Linux возможны два типа учетных записей ОС: обычная учетная запись пользователя и системная учетная запись (более поздняя, ​​созданная с использованием параметра --system, использует / usr / false и не имеет домашнего каталога).

Мои вопросы:

[1] Должен ли я использовать системную учетную запись пользователя вместо обычной учетной записи пользователя для развертывания и запуска кодов?

[2] Является ли системная учетная запись пользователя более безопасной, чем учетная запись обычного пользователя?

[3] В каком каталоге я должен хранить файлы кода (с точки зрения безопасности)?

Информация:

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

2) Я использую supervisord и virtualenv в своей производственной среде.

3) Я намерен провести подробный мониторинг файлов журнала.

Как системный администратор, я задаю этот вопрос с точки зрения безопасности. Будем рады поучиться у вас, ребята. Заранее спасибо.

Если вы можете выполнить развертывание с использованием учетной записи, это означает, что учетная запись имеет некоторую возможность удаленного доступа - что не имеет смысла для «системной учетной записи» - единственный способ, которым системная учетная запись может получить код в файловой системе, - это перенести его на сервер. Это не невозможно, но требует некоторого размышления.

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

Является ли системная учетная запись пользователя более безопасной?

Depends - secure - это очень широкий баннер для множества разных вещей. Но с точки зрения запуска демона он обеспечивает некоторую защиту.

В каком каталоге я должен хранить файлы кода (с точки зрения безопасности)?

Какая у вас модель безопасности? Где твои журналы? У кого должен быть законный доступ к системе? Предназначен ли компьютер для выполнения вашего кода или он выполняет другие функции?