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