Почему я должен развертываться как другой сайт (развернуть) пользователь? - PullRequest
2 голосов
/ 05 июня 2010

Каковы преимущества развертывания вашего сайта в качестве специального пользователя для развертывания? И должен ли я управлять своим основным доменом и поддоменами как один пользователь?

1 Ответ

4 голосов
/ 13 февраля 2011

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

С учетом вышесказанного, вот несколько рекомендуемых советов по развертыванию:

  • ВСЕГДА изолируйте ваши веб-приложения в своем собственном пространстве разрешений. В большинстве операционных систем это означает предоставление им собственной непривилегированной учетной записи пользователя, которая знает ТОЛЬКО о веб-приложении, которое находится в его каталоге. Используйте подход «Запретить все сначала, разрешить секунду», когда речь идет о предоставлении разрешений этому пользователю во всей операционной системе.
    ПОСЛЕДСТВИЯ. Может быть сложнее делать какие-то особые вещи с вашим приложением в системе, и может потребовать от вас потратить некоторое время и деньги на автоматизированные системы конфигурации, такие как Puppet или Chef, просто чтобы вам не нужно было помнить, какие были эти настройки каждый раз. Но главное преимущество заключается в том, что если ваше приложение взломано, злоумышленник, скорее всего, получит доступ только к учетной записи этого пользователя и, следовательно, не будет иметь права наносить значительный ущерб. Песочница особенно важна в многодоменных или многоприкладных средах. Если вы работаете в Linux, вы можете заглянуть в SELinux.

  • Стратегии развертывания могут различаться. Лучший способ, который я нашел, - это создать привилегированную учетную запись sudo на удаленном хосте для развертывания через (mr_deployer). Таким образом, ваш сервер развертывания может использовать возможности sudo для настройки системы по своему усмотрению, но веб-приложение при запуске будет работать как непритязательный пользователь, которого вы создали (mr_app). Вы можете просто изменить права доступа к файлам приложения, которыми владеет my_app, непосредственно перед его запуском. ПОСЛЕДСТВИЯ. Веб-приложениям не нужны возможности sudo. Это большая уязвимость безопасности. Вы не НАСА. У вас нет времени или опыта, чтобы сделать его надежным. И даже НАСА иногда ошибается.

  • ВСЕГДА отключайте возможности root SSH на ваших хостах. Если нет веских причин (и даже тогда ...), вы никогда не должны использовать SSH в качестве пользователя root и развертывать приложения.
    ПОСЛЕДСТВИЯ: Если вы можете использовать SSH, кто-то другой может. Преимущество развертывания от имени другого пользователя состоит в том, что хакерам сложнее угадать имя пользователя: пользователи «root» или «администратор» присутствуют в каждой системе.

  • Просто помните: если хакер может взломать приложение пользователя, пользователь, вероятно, будет взломан. Уменьшите количество ущерба, которое может нанести один пользователь: это девиз многих системных администраторов.

Удачи! - Хармон

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...