Должен ли я запускать все процессы единорога как www-data (без полномочий root)?

Я запускаю приложение Rails 3 с Unicorn и Nginx. В настоящее время Unicorns работает от имени пользователя root и благодаря этой строке в unicorn.rb:

user "www-data"

но мне интересно, должен ли я просто запускать весь процесс Unicorn как www-data. Не будет ли проблем с этим? Я использую файловый сокет, поэтому открытие порта (‹1024) не будет проблемой. Что-нибудь еще, о чем я должен знать?


person pupeno    schedule 24.07.2012    source источник


Ответы (1)


Вы не должны запускать свое приложение как root. Это дает приложению root-права, что, в свою очередь, означает, что если вы совершите ошибку и откроете файловую систему, злоумышленник может получить root-права без особых усилий.

Я избегаю работы с www-data или другими общими пользователями. Вместо этого я создаю пользователя для конкретного приложения и даю ему собственные уникальные разрешения. В моем случае я запускаю несколько приложений на одном сервере, и это обеспечивает дополнительный уровень защиты в случае взлома одного приложения.

Вот хорошее чтение о некоторых вещах, которые могут пойти не так: https://jhalderm.com/pub/papers/dcvoting-fc12.pdf

person Ben Miller    schedule 24.07.2012
comment
Итак, вы думаете, что функция переключения пользователей unicorn (и некоторых других веб-серверов) не должна существовать? - person pupeno; 26.07.2012
comment
Я предпочитаю не использовать его. Когда дело доходит до системного администрирования, я слишком осторожен. Кто бы мог ожидать, что что-то вроде Paperclip выявит такие уязвимости? Дело не в том, что их не должно быть, в них не должно быть необходимости, если системы настроены правильно. - person Ben Miller; 26.07.2012
comment
Примечание: проблема со скрепкой была решена, я просто использую это как пример того, как предположение о безопасности стороннего программного обеспечения может быть ошибкой. - person Ben Miller; 26.07.2012