Glashkoff.com

Полезные советы, софт для Windows и Android, создание сайтов на WordPress

Создание сайтов

VestaCP: тёмная сторона панели управления сервером

Статья написана как дополнение к инструкции «Настройка VPS для быстрой работы WordPress (VestaCP+Nginx+MySQL)», чтобы вы знали, как обстоят дела с Вестой в 2019 году.

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

Настройка VPS 9
VestaCP

Несовместимости

Чтобы обеспечить управление сервером, нужно понимать устройство Linux. Панель лишь облегчает рутинные операции, но не избавляет админа от понимания того, что творится «там». Поэтому начинающие пользователи, когда в какой-момент обнаруживают, что всё сломалось, начинают рассматривать проблему в контексте панели, что, в общем-то, логично. Но на деле проблема в позиционировании панели и том, что она на самом деле беспомощна при какой-либо мало-мальски нестандартной конфигурации.

Вебсерверный софт, позволяющий сайтам работать, не является частью Весты. Он ставится отдельно, пускай даже и скриптом панели. Nginx, Apache, PHP и вообще любой софт может иметь разные названия служб, исполняемых файлов, их файлы конфигурации могут находится на одной ОС в одном каталоге, другой системе — в другом каталоге. Например, служба PHP-FPM может называться php-fpm, а может php7.3-fpm. Такое разнообразие Вестой не поддерживается, поэтому в какой-момент после обновления софта всё может превратиться в тыкву, то есть перестать работать. И приходится либо подгонять систему под панель, либо модифицировать панель самостоятельно, либо отказываться от панели вовсе.

Система шаблонов

Файлы конфигураций в Linux — это обычные текстовые файлы. Vesta не редактирует их напрямую. Она использует шаблоны — заготовки конфигураций, где вместо значений параметров используются ключевые слова. Об этом я рассказывал в статье «VestaCP и WordPress: несколько советов по настройке». Напрямую файлы конфигураций менять нельзя — VestaCP почему-то не пересоздаёт при изменении настроек эти файлы, а пытается внедрить туда конфиг, сгенерированный по шаблону. В итоге всё ломается, потому что в текстовом документе получается мешанина из кусков старых настроек и новых.

Концепция шаблонов в целом хороша: можно одни и те же настройки применять выборочно к любому количеству сайтов. Но то, как шаблоны реализованы в этой панели, можно назвать лишь глупостью:

1. Нет внятной документации (не объяснено толком, как это работает).

2. Названия не интуитивны.

3. Нет системы версионирования (с обновлением панели модифицированный стандартный шаблон может потерять изменения).

4. Нет разделения на «родные» и пользовательские шаблоны.

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

Отношение создателей

VestaCP — сложный программный продукт. Отношение к его развитию должно быть соответствующим. Однако то, как разработчики управляют проектом, выступает примером «как делать не надо».

  1. Нет истории изменений, где можно было бы оперативно узнать, что в новых версиях сделано. На Гитхабе о новых версиях ничего не написано, на форуме новости появляются с запозданием.
  2. Отсутствие анонсов выхода новых версий. Это нужно, чтобы админы подготовились к обновлению.
  3. Нет баг-трекера. Когда на форуме появляются сообщения о найденных проблемах, разработчики либо посылают заводить issue на Гитхабе, либо называют это багом какого-то стороннего софта, либо, чаще всего, просто игнорируют посты. И что писать в issue — непонятно, нет процедуры получения отладочной информации. Да и смысл туда писать, если там не устранены баги, описанные в 2015 году.
  4. В случае обнаружения явных проблем с панелью — тянут время, отмалчиваясь.

Поэтому, устанавливая VestaCP на свой VPS, знайте: вам никто не поможет. Даже я, потому что давно удалил это ПО на всех серверах, мне доступных, переведя управление на Webinoly.

Авторы работают в отрыве от сообщества, в какой-то своей параллельной Вселенной. Их позиция: максимальная внезапность выхода новых версий, игнорирование просьб пользователей и сообщений о багах.

Например, несмотря на репозиторий на Гитхабе с открытым кодом, о выходе новых версий и о том, что там изменилось, можно узнать только на форуме:

Форум Весты, раздел Updates

Обратите внимание на даты — разработка версии 0.9.8-18 велась больше года. За это время пользователи, уставшие от того, что панель толком не работает с новыми версиями PHP 7.x, успели по 100500 раз самостоятельно переписать скрипты панели, сделать свои костыли, чтобы актуальный софт работал правильно.

И вдруг аккурат перед новогодними праздниками VestaCP обновилась у тех, кто забыл выключить автообновление. Да, релиз 0.9.8.-18 состоялся не 9 января, а 29 декабря 2017-го! Не могу представить, что было в голове у разработчиков, решивших выкатить обновление ПО, от которой зависит работа сайтов, в момент новогодних отпусков админов. Тогда-то я и заподозрил, что авторы живут в альтернативной реальности, где новогодних праздников не существует. Естественно, многое сломалось, были багфиксы, борьба с глюками и испорченные выходные, в том числе у меня. Как человеку, написавшему о настройке VestaCP, мне писали десятки людей, отчаявшихся получить хоть какой-то ответ на официальном форуме. Некоторые просили помочь, другие требовали, третьи угрожали непонятно зачем. В целом истерия была весьма и весьма значительной.

С тех пор (декабрь 2017-го) выходят только багфиксы. Кстати, на Гитхабе выход релизов остановился как раз 29 декабря 2017 года.

Подчеркну: VestaCP сама по себе замечательная панель управления, ей не повезло с создателями. В какой-то момент стало понятно, насколько плохо продумана обратная связь разработчиков с пользователями, когда дело касается багов. Это довольно странно, учитывая, что авторы получают прибыль за счёт продажи платных плагинов к панели и пакетов поддержки.

О существовании проблемы коммуникации стало известно многим, когда 8 апреля 2018 года была обнародована новость о баге в VestaCP, позволяющем злоумышленникам выполнить команды с наивысшими правами под пользователем root. Крупному облачному хостингу DigitalOcean даже пришлось временно заблокировать порт 8083, чтобы остановить заражение серверов своих клиентов.

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

На сайте нет раздела новостей, поэтому оповещения о проблеме со стороны разработчиков не было. Общение проходило на официальном форуме, для актуальных новостей приходилось искать сообщения от модераторов среди десятков постов возмущённых и расстроенных пользователей.

Вначале разработчики не смогли разобраться в причине взлома и вначале за пару дней переписали возможную уязвимую функцию проверки пароля. Хорошо хоть честно признали, что уверенности в устранении уязвимости нет, просто о взломе новых версий никто не сообщил. Тут, правда, было и остаётся одно «но»: на Github не у всех аккаунты есть, чтобы issue заводить, а для регистрации на форуме требуется пройти весьма странную капчу, задающую весьма сложные для новичков вопросы:

Либо просто выглядящими издевательски для людей с нарушенным восприятием цвета:

Причём в случае неверного ответа капча исчезает и нужно полностью обновить страницу, потеряв введённые в другие поля данные.

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

Если вы думаете, что я сгущаю краски, что разработчики не обязаны были общаться с комьюнити VestaCP, расскажу продолжение истории: один из модераторов (разработчиков?) под ником skid 17 октября 2018 года опубликовал на форуме сообщение, где рассказал, что инфраструктура Весты была взломана, и посоветовал скорее обновиться до свежей версии панели. Выяснилось, что с 31 мая по 13 июня установочный скрипт VestaCP был модифицирован злоумышленниками. Подробный разбор можно почитать здесь (на английском).

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

Какие изменения в VestaCP будут дальше — непонятно. Если разработчики, участвующие в проекте, окончательно его забросят, если сервера с VestaCP снова взломают, а на форуме никто не ответит — это будет, безусловно, печальным событием. Такое случается.

Альтернативы VestaCP

На самом деле прямых альтернатив не осталось. Вот чтоб были красивые странички с кнопками. Сейчас наступил такой момент, что выгоднее написать своё решение, чем ковыряться с чужим. Возможно, где-то на Github растёт проект, который станет образцом для подражания и назидания всем панелям, но в данный момент альтернативы VestaCP я не вижу.

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

Спам на форуме BrainyCP
Спам на форуме BrainyCP

Если авторы не могут разобраться со спамом на собственном форуме, могут ли они своевременно исправлять баги основного продукта?

Virtualmin, модуль для панели Webmin, вроде как развивается, но это не самый удобная панель. IMHO, проще вручную создавать виртуальные хосты.

cPanel — продукт, подходящий больше для организации хостингов, чем для управления сервером. К тому же cPanel платный и для взаимодействия с Nginx нужно долго и тщательно настраивать.

Plesk — платная платформа для веб-хостинга, слишком дорогая замена для Весты.

ISPmanager — спорное и дорогое решение, особенно в свете статей вроде «Мошенничество ISPmanager или просто хотим ваших денег». Я сам неоднократно сталкивался со страннейшими багами этой панели.

Похожие записи:

2 комментария

  1. Сергей

    А как насчет потребления ресурсов панелью? В Дижитал Оушен бесплатно доступна Плеск панель, к примеру, она на порядок лучше Весты.

    Ответить

    • Дмитрий Глашков

      Сервис VestaCP не оказывает заметного влияния на производительность сервера, тут проблем не заметил. Сидит себе в памяти, многого не требует.
      А Plesk платная. Да, я в курсе, что версия в маркетплейсе DO бесплатна при управлении тремя доменами включительно, но часто этого маловато. Это замечательный продукт, но функционал панели избыточен для управления, скажем, сервером за 3$ в месяц при минимальной цене на месячную подписку в 10$.

      Ответить

Написать комментарий

Правила:
  • 1. Уважайте стороннее мнение. Токсичные комментарии удаляются.
  • 2. Комментарии со ссылками видны после проверки модератором.
  • 3. Обсуждение нелицензионного софта и других незаконных тем запрещено.

Тема Rowling от Anders Norén. Копирование материалов сайта разрешается только с указанием автора и активной ссылкой на источник.