После долгих колебаний я, наконец, заказал небольшой VPS для себя, в основном веб-хостинг (несколько веб-сайтов, для меня и моих друзей), среди прочего (хостинг mumble server, wave server и т. Д.). По сути, это будет базовая коробка LAMP.
Я хотел бы предложить немного места для хостинга нескольким друзьям и позволить им настроить его. Это означает, что им потребуется собственный FTP-доступ и, возможно, SSH (если он достаточно безопасен).
У меня есть некоторый опыт настройки / администрирования LAMP, но не очень большой в общем администрировании сервера (настройка пользователей, ftp и т. Д.). Вот почему я хотел бы начать с основ и создать что-то надежное и безопасное.
У каждого из моих друзей будет свой пользователь в системе, но что с этим делать? Могу ли я создать одну группу для каждого пользователя или все они будут в одной группе? Думаю, это изменится только в том случае, если я разрешаю им входить в систему через SSH, но об этом позже.
Моя первая проблема - это общий веб-хостинг. Даже если я не буду размещать конфиденциальные данные, я не хочу, чтобы пользователи возились с чужими файлами. Я решил эту проблему перед использованием PHP / CGI и Apache suexec
, но после прочтения Потрясающие статьи Стюарта Герберта о веб-платформах, Я хочу пойти с mpm-itk
. Есть ли у вас отзывы по этому поводу?
Поскольку мой целевой пользователь в некотором роде фанатично, я подумывал позволить им настроить свой собственный php.ini. Что ты об этом думаешь ? Есть ли при этом какие-либо потенциальные угрозы безопасности?
Например, они могут сильно увеличить свой лимит памяти и повлиять на других пользователей, но я не думаю, что это будет проблемой.
Трудно развернуть ваш сайт без доступа по FTP, верно? Я прочитал много руководств по pureftpd, в которых объясняется, как создавать виртуальных пользователей. На самом деле это не относится ко мне, не так ли? Я просто думал о том, чтобы разрешить пользователям входить через ftp, chroot в их домашний каталог, и все. Есть еще что-нибудь (кроме отключения root-доступа по ftp)?
Это своего рода моя главная проблема. Как пользователь, мне всегда нравилось подключаться к моей учетной записи через SSH, просто для выполнения некоторых пакетных операций или извлечения архива непосредственно на сервер, вместо того, чтобы загружать каждый отдельный файл через FTP. Однако я не хочу, чтобы мои пользователи могли просматривать всю файловую систему и т. Д. Я не очень хорошо знаком с конфигурацией SSH, поэтому есть ли способ разрешить пользователям подключаться и «перемещать» их в свой дом ?
Я уже поправляюсь на своей стороне, но мне бы очень хотелось услышать мнение всех мудрых гуру о том, как делать все правильно и как избежать ошибок новичков. У меня есть легко нажимаемая кнопка «Сброс ОС» в интерфейсе администратора моего VPS, но я не хочу, чтобы ей приходилось нажимать ее регулярно после того, как я увидел сообщение «H @ ked by th3 H4xx00r5» на всех моих размещенных веб-сайтах. .
Я развертываю весь свой веб-контент через SFTP, SCP или путем редактирования на сервере (или через используемую мной CMS). FTP, как таковой, не должно быть необходимости.
Во-вторых, если у вас есть правильные разрешения для пользователей и групп, они не смогут просматривать веб-сайты других людей через командную строку.
Разумеется, возможность входа через SSH должна быть разрешена по точно указанным вами причинам.
Я лично не позволю людям «настраивать» свои собственные файлы php.ini - я не использую VPS, который я использую аналогично вашему (т.е. размещаю несколько сайтов для себя и друзей). Это ваш сервер, и вы разрешаете другим использовать его: позвольте им использовать его в соответствии с вашими правилами. Я не могу вспомнить провайдера общего хостинга, на которого я когда-либо смотрел, который позволяет людям настраивать свои настройки php.ini.
Однако в какой-то момент это будет сводиться к тому, чтобы доверять своим друзьям НЕ сделать что-то злое / глупое / жестокое по отношению друг к другу.
Если вы не можете им доверять - я бы не позволил им иметь доступ вне CMS.
Например, я установил веб-корни другого пользователя следующим образом:
drwxr-x--- <user> apache
Это позволяет apache видеть и содержимое сервера, но только пользователь может вносить изменения.
Я управляю хостом уже много-много лет. За это время я обнаружил несколько вещей: если вы позволите своим пользователям запускать сценарии CGI, это будет более или менее «все ставки потеряны». Они не всегда могут делать что-то непреднамеренно, но есть вероятность, что позже вы почувствуете боль, позволив это.
Во-первых, вы резко увеличили вероятность появления дыр в безопасности. У меня были пользователи, которые устанавливали phpBB (под моей оболочкой suexec), а затем никогда не обновляли его ... У меня были люди, которые сами писали сценарии CGI, которые ждали появления дыр в безопасности - только отсутствие популярности предотвратило это.
Я поместил каждого пользователя в отдельную группу. Это пригодилось, когда я создал пользователя для определенной цели (например, MUD, когда они были популярны), и владелец MUD мог затем настроить файлы, используя разрешения группы.
В любом случае, если вы готовы помочь и готовы тратить время на то, чтобы люди не совершали плохих поступков, в большинстве случаев это довольно просто. Просто отнимает время у лучших вещей ИМХО.