Рекомендации по обеспечению безопасности для мультихостинга Nginx + для пассажиров
Я планирую предложить бесплатный мульти-хостинг для платформы ruby на основе стойки с использованием nginx и passenger для обслуживания этих приложений. Я работаю над несколькими вариантами, и я хотел бы спросить несколько советов о лучших методах безопасности для этого типа установки в среде с несколькими хостингами:
Первый вариант, над которым я работаю, - это веб-интерфейс, который позволит пользователям загружать свои приложения. Чтобы сделать его довольно автоматизированным, я мог бы создать парсер, чтобы проверить, что код ruby /framework не содержит вредоносных команд, например%x(и других тоже. Я не уверен, действительно ли возможно охватить все возможности, но это должно быть смягчается тем фактом, что при загрузке создается пользователь Unix (вместе с поддоменом nginx), и загруженное приложение будет работать внутри каталога пользователя, и этот пользователь не будет иметь специальных разрешений для всего сервера вне своего собственного каталога;
Второй вариант - разрешить доступ sftp (или доступ sftp/ssh) без каких-либо разрешений вне их каталога. В этом случае должен быть осуществлен скрининг участника (форма подписки), но потенциально он даст больше гибкости.
Из вашего опыта, что было бы наиболее подходящим вариантом? Во-вторых, для варианта 2 с доступом по sftp или даже по sftp и ssh это будет подходящей настройкой безопасности? имейте в виду, что nginx потребуется доступ на чтение во всем дереве /users/...., поэтому он не может быть слишком ограничительным. Заранее спасибо за совет!
1 ответ
Тебе это не понравится.. Общий хостинг вроде как мертвый. Больше никто этого не делает.
Вы бы лучше предложили услугу VPS, где вы контролируете изображения, которые они используют. Ой, подожди. Amazon опередил вас, как и все другие компании, такие как Heroku и EngineYard.
Причина того, что VPS больше популярны в этом сезоне, а виртуальный хостинг отсутствует?
Безопасность имеет большое значение. Защитить виртуальный сервер намного проще, чем защитить каталог.
Также проще ограничить использование ЦП, ОЗУ и диском пользователя, а также пропускную способность ввода-вывода.
Если вы действительно хотите сделать это как общий сервер / многопользовательский режим, тогда второй вариант, возможно, лучше, хотя, честно говоря, они оба отстой.
Не давайте им доступ по SSH. Дайте им доступ к Git, как PHPFog и др. Это ограничивает их просто загрузкой файлов.
Вы не можете эффективно анализировать / фильтровать код, который они загружают, потому что вы когда-нибудь найдете только эксплойты, которые вы знаете, как искать. Новые подвиги пройдут мимо вас, и тогда будет слишком поздно.