36

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

Данный пост будет длинным, возможно чересчур эмоциональным и будет содержать негатив по отношению к ПО Nextcloud. Просто перескажу, с чем можно столкнуться при эксплуатации этой системы. Если вам очень нравится Nextcloud и вас все устраивает, то возможно, дальше вам читать не стоит. И не обновляйтесь пока. Блаженен тот, кто в неведении.

Итак, в компании, где я работаю, для организации внутреннего «облака» используется Nextcloud. Данное ПО было установлено еще несколько лет назад, начинали мы с версии 9. За эти годы впечатление система оставила неплохое. Работа шла, пользователи обменивались файлами, совместно редактировали документы – работали, в общем.

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

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

И вот настал день Х, обновляемся последовательно со старого 25-го релиза на 28-й. Разумеется, дождались выхода первого патча, 28.0.1. Из опыта знаю, что никогда, никогда нельзя обновляться на самую последнюю мажорную версию, если для нее не вышло хотя бы одно обновление, закрывающее самые первые, и зачастую самые лютые баги.

Причина обновления банальная – закончилась поддержка старой версии, плюс остро не хватало уникальной фишки 28-й. А именно, в ней появилась функция, ограничивающая возможность пользователей вставлять в имена файлов и папок запрещенные для Windows символы. При наличии таких символов, параллельный доступ по SMB к данным Nextcloud коверкал имена «неправильных» файлов, что уже успело нанести нам некоторый ущерб ранее (долго потом гадали, как раньше назывался файл, к примеру, GJLGRY~K.PDF). Что ж, долго Nextcloud к этому шел, но ладно.

Разумеется, перед обновлением был создан полный бэкап. Само обновление закончилось успехом, ничего не предвещало беды. А потом спустя время посыпались звонки. К сожалению, у нас техническая поддержка, системный администратор, программист (плюсом различная побочка и «факультативы») – это один человек. Немного непросто справляться в такой ситуации, и получилось так, что я упустил время. Была бы возможность сразу протестировать систему вдоль и поперек, я бы, конечно, сразу и откатился на бэкап, будучи изумлен увиденным. Но прошло несколько часов, и восстановление из бэкапа теперь приведет к потере наработок за эти часы, что недопустимо, без каких-либо оговорок. Да и объяснять пользователем (среди которых еще директора и замы!), что им придется вспоминать, что они делали и сделать это еще раз – та еще задача. Гораздо проще для их ушей прозвучит фраза «оно обновилось само и все сломалось, ждем патча от горе-разработчиков». Те, кто обновлял приложения на смартфоне, вопросы задавать не будут (приучены, что нельзя откатиться обратно).

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

  • Комментарии к файлам. В случае, если после того, как был открыт во внутреннем просмотрщике какой-нибудь документ PDF, мы открываем другой и попытаемся оставить к нему комментарий – то он прикрепится к первому.

  • Перетаскивание файла для загрузки (Drag’n’Drop) не работает. При попытки перетащить файл в окно Nextcloud интерфейс начинает «прыгать». Теперь загрузить файлы можно только через кнопку плюсик, которая еще и подписана как New (тот случай, когда кнопку «релизнуть» нажимаешь быстрее остальных).

  • Расшаривание папок по ссылке не работает. Вернее, ссылка-то генерируется, но вот если по ней пройти, то появляется пустая вкладка с бесконечным крутящимся кружком. И сюда 🐖 подложили, ну ок.

  • При переходе по папкам туда-сюда, открытии документов начинаются странные глюки. Например, может открыться случайный файл на просмотр (из числа открытых ранее), хотя мы пытались открыть папку.

  • Комментарии вообще перенесли на вкладку События (что на боковой панели справа, открывается через меню файла -> Подробности). Что сказать, спасибо – очень логично (нет).

  • Та самая вкладка События для части папок вообще не открывается, пишет «Не удалось загрузить список событий». Соответственно, поля ввода комментариев тоже нет и оставить их невозможно.

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

  • Прокрутка списка иногда приводит к тому, что часть строк пропадает, вместо них появляется белый прямоугольник. Вау, низкий поклон профессионализму разработчиков 👏, так даже я не умею.

  • Бонусом у меня в интерфейсе администратора перестал открываться лог ошибок – «не удалось загрузить». Разработчикам настолько стыдно, что они его решили скрыть?

  • и еще куча мелких багов, о которых даже говорить не хочу, больно. Разработчики умудрились сломать почти всё 😱.

У меня только один вопрос к разработчикам Срамотаcloud Nextcloud – вы там что, совсем упоролись перед новым годом? Вы свое творение вообще запускали? Эта версия 28.0.1 была установлена мною из стабильной ветки и вышла еще до НГ! Что же тогда творится у вас в бета-версиях, там наверно совсем караул? И боюсь представить, что там вообще «под капотом», может еще и дыр для хакеров и вирусов на годы вперед понаделано…🤷‍♂️

В общем, Nextcloud,

Nextcloud, или как выпускать обновления с закрытыми глазами Облака, Nextcloud, Системное администрирование, Обновление, Баг, Длиннопост

Баги не просто тупые и «детские», их просто невозможно было бы не заметить при хотя бы каком-то минимальном тестировании софта, да даже просто при однократном запуске. Вас там не один-два человека сидит софт пилит. Да, я понимаю, что эта система бесплатная в основном, что разработчики мне и моим пользователям ничего не должны. И вообще весь код на Гитхабе – берите и сами правьте, что нужно. Но выпускать откровенно сырую версию в стабильной ветке – у меня просто нет слов. Это даже не бета-версия по качеству (его отсутствию), это смачный плевок какашками в лицо пользователям.

Но и я тоже хорош оказался, чего греха таить. Вот какие вещи я вынес из этой истории:

  • Обновление по-хорошему нужно делать вечером или в выходной, когда в системе никто не работает. И сразу досконально тестировать. Прописная истина, вот только на практике сложно – я много лет отказывался от личной жизни, больше могу, извините.

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

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

  • В идеале вообще не обновляться и не трогать то, что работает. Но это абсолютно непрофессионально для сисадмина и вообще чревато. Последствия в виде возможного взлома потом перевесят все мучения, вызванные багами. Некоторые компании после взлома вообще говорят «пока».

  • Если все же решили обновляться – прошерстить весь интернет, пытаясь выяснить, с чем возможно придется столкнуться. Хорошо, когда много лишнего времени, которого никогда нет.

  • Бэкап должен быть всегда перед любым обновлением, но, к сожалению, иногда он слишком быстро протухает. Терять данные или жить с глюками системы до следующего патча – тут уж каждый сам для себя решает.

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

  • Устраиваться на одну должность, никаких совмещений обязанностей. Уверяю, что даже совместить только техподдержку и системного администрирование – это на грани возможного. В итоге все равно дойдете до того, что придется принимать антидепрессанты и седативные/успокоительные вкупе с десятком других лекарств от сопутствующих болячек. Правда, в небольших компаниях с ИТ всегда сложности и непонятки. Исконно считается, что сисадмин и программу напишет, и чайник починит, и вообще сделает все, что попросят – «все равно весь день сидит в монитор зырит, лентяй». А если еще и в маленьком городе живете – выбирать будет особо не из чего, если не говорить об удаленке.

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

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

Все мы сталкивались с лютыми багами на примере той же Windows 10. То от принтеров нас отучают (думаю это с подачки «зеленых», бумагу экономить надо, лес беречь), то звук или блютус сломают. То еще что-нибудь испортят. А в Windows версии 11 успех решили дополнительно закрепить. Обновление сродни русской рулетке. И это платная ОС, установленная на большинстве компьютеров мира. И такое качество. Впрочем, Windows я люблю, иначе никак – благодаря ей я заработал приличную сумму денег на помощи в решении ее проблем у пользователей.

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

А что сейчас – взять хотя бы предзаказы тех же игр, тонна багов на старте. Десятки патчей, тормоза, денуво. И за все это удовольствие вас еще и заплатить попросят. И кстати, весьма и весьма немало. Еще и заплатить попробуй найди способ в связи известными событиями.

Я считаю, что если хочется что-то поменять к лучшему в ИТ, то прежде всего, нужно начать с себя. Я, к примеру, вообще отказался от покупки видеоигр. Да, у меня большая библиотека в Стиме и мне немного обидно, что она больше не обновляется. Что нет удобного лаунчера, а вместо него теперь десяток ярлыков на рабочем столе, ведущих к папкам с запахом рома. Да, мне оказалось куда приятнее подождать полгода-год после релиза игры и тупо скачать ее с торрента, не заплатив не копейки. А потом удалить ее через час в 4/5 случаев, ибо мое время стоит дороже того шлака, который они называют играми. Аморально, и, если так будут поступать почти все – наверно видеоигр больше не будет. Или же начнут выходить действительно качественные продукты, оптимизированные и вылизанные еще на старте продаж. Может так и «ранний доступ» (бесплатный бета-тест в других словах) уйдет в небытие. Как знать, как знать. Но это лучше, чем и дальше ныть в стиле «выпускают одно говно, наживаются на микротранзакциях, оптимизаций нет, цены заоблачные, опять нужно новое железо и т.п.» и продолжать грызть порядком протухший кактус.

Наряду с этим, я регулярно отправляю баг-репорты для программ, которыми пользуюсь, независимо от модели их распространения. Обратная связь позволяет кардинально улучшить продукты, что, несомненно, будет только на пользу их пользователям. Но, конечно, когда я сталкиваюсь с полным пофигизмом и вредительством, навроде Nextcloud, я уже баг-репорты не пишу. Это впустую потраченное время, которое можно использовать разумнее – например, поискать альтернативное ПО.

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

Лига Сисадминов

2.3K постов18.8K подписчиков

Правила сообщества

Мы здесь рады любым постам связанным с рабочими буднями специалистов нашей сферы деятельности.

Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий

Бездумное обновление - игрушка дьявола... Работает - не трогай...

раскрыть ветку (15)
2
DELETED
Автор поста оценил этот комментарий

ага, потом правда удивляются почему все доки уплыли. там вагон CVE 2 из которых за короткое время 9.8cvss
https://www.opencve.io/cve?vendor=nextcloud

даже 4 бля! 4 9.8 за 2 месяца. охуеть.

раскрыть ветку (14)
0
Автор поста оценил этот комментарий

все доки уплыли

вагон CVE

Если там хранятся важные данные, система хранения должна в принципе рассматриваться как абсолютно ненадёжная и безопасность должна выстраиватться исходя из этого (обрубанием внешних доступов, разграничением прав и т. д.). Поэтому какая разница, сколько там уязвимостей за какой период, просто разрешаем доступ к этому файловому серваку только тем ПК, с которых это необходимо, на этих ПК права режем до минимально необходимых, ставим антивирь, периодически ручками проверяем эти ПК. На серваке ставим надёжный пароль, рубим доступ к терминалу, кроме как с выделенных компов, настраиваем фаервол так, чтобы по SSH доступ имел только админ этого сервака и руководитель ИТ отдела (или вовсе его выпиливаем и работаем физически подключённым монитором и клавиатурой), а как юзеры туда могли подключаться только выделенные сотрудники с тех ПК, над которыми провели вышеописанные операции. И как при таком раскладе что-то утечёт куда-то?

раскрыть ветку (9)
2
DELETED
Автор поста оценил этот комментарий

1) выделенный сотрудник запросто унесет все данные, ПД или к конкурентам

2) https://www.opencve.io/cve/CVE-2024-22212 - утечка документа на чужой сервер, доступ к директорским докам

3) удаление чужих данных - https://www.opencve.io/cve/CVE-2023-39962


там есть где разгуляться.

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

раскрыть ветку (4)
0
Автор поста оценил этот комментарий

1 - лечится только работой с сотрудниками.

2 - как я писал выше, система должна рассматриваться, как абсолютно ненадёжная, поэтому если есть необходимость дифференциации прав доступа, делаем отдельные хранилища и отпиливаем доступы фаерволом, сетевым оборудованием и т. д.

"на чужой сервер" - несного не понял, что имеется в виду.

3 - то же, что и в предыдущем пункте.


фиг ты зарежешь всем доступы

Дифференцируем данные по важности, разносим в разные хранилища, дифференцируем доступы разных юзверей к различным хранилищам.

кто-то захочет из дома

О да, человеку выходные нафиг не нужны и делать ему дома нехрен, кроме как рабочие файлы дома тыкать.

с мобильного

Та же хрень. А с учётом того, что на мобильном особо не поработаешь - это вообще пиздец какой-то.


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


Да и вообще следует помнить, что или мы данные защищаем, или они удобно доступны с любой точки мира. Уложить эти две противоположности в одно практически работающее в реальном мире решение невозможно.

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

Да и вообще следует помнить, что или мы данные защищаем, или они удобно доступны с любой точки мира. Уложить эти две противоположности в одно практически работающее в реальном мире решение невозможно.

Золотые слова. Напоминает золотое же правило физики - "выигрывая в чем-то одном, проиграем в другом".

DELETED
Автор поста оценил этот комментарий

1 - лечится только работой с сотрудниками.

вы серьезно думаете, что в случае автора, где нет денег на выделенного админа, enterprise версию найдутся деньги на это?


О да, человеку выходные нафиг не нужны и делать ему дома нехрен, кроме как рабочие файлы дома тыкать.

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


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

ага, а потом такой же админ - да хуле тот впн апгрейдить и патчи ставить


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

алло - откройте любой ЛК, озона, страховой и тд. они доступны со всего мира. и там ПД.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

вы серьезно думаете, что в случае автора, где нет денег на выделенного админа, enterprise версию найдутся деньги на это?

Если этого не делается - все остальные меры безопасности просто не имеют смысла. Если у нас есть крот, который все данные, право доступа к которым имеет, выносит - никакие прораммные и аппаратные средства не помогут.

топ менеджмент работает и по выходным бывает и не с рабочего места

Для таких случаев меры безопасности нужно прорабатывать отдельно. Впрочем, я за всю жизнь эту "работу топ-менеджеров не с рабочего места" видел только в виде звонков дежурному сотруднику "Эй, ХХХ, сделай вот это и побыстрее!".


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


откройте любой ЛК

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

0
Автор поста оценил этот комментарий

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

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

Вот только "доступ у всех отовсюду" и "хранение конфиденциальной информации" - так-то диаметрально противоположные вещи.

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Про конфиденциальную информацию я пока речи не вел.

и

который все же нежелательно "слить"

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

Автор поста оценил этот комментарий

Вот вот. За обновленную забагованную систему максимум сильно поругают, и то всегда отвертишься, сказав "разрабы виноваты". И будешь прав, т.к. есть четкая граница ответственности - ты эту прогу в конце концов сам не писал. А вот за необновленную "работает - не трогай" в случае утечки/взлома могут и голову оторвать админу, а то и по статье привлечь за халатность. И правильно сделают. Жаль я до сих пор встречаю людей, которые и автообновления винды выключают сразу после установки, и обновления и корпоративных систем игнорируют. Да, обновления все чаще приносят много вреда, появляется соблазн их выключать. Но когда (даже не "если", именно "когда"!) взломают - по-другому запоешь.


PS: за ссылку спасибо, реально охренеть.

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

в случае утечки/взлома

Обрубить доступ извне, порезать на устройствах права юзверям до минимально необходимых и установить антивири на устройствах юзверей - не судьба? Ой, это же ручками нужно что-то долго делать, не, хуйня, не наш вариант. Пусть веб-мордой все серваки в интернет светят и по ssh извне будут доступны и на ПК работников пусть черти ебутся. А виноваты пусть будут разрабы. А мы тут белые и пушистые, с нимбом на голове, но зато работать не устали.

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

Я не говорю, что на необходимые мероприятия вроде обозначенных нужно положить жезл. Это грамотный админ и без пинка сделает. Но закрыть доступ извне к веб-морде облака, это так себе предложение. Смысл тогда был в этом облаке, может файлового SMB/CIFS сервера "как у всех" хватило бы? Я не могу это дальше прокомментировать, извините.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Смысл тогда был в этом облаке

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

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку