Что учесть при установке CryptPad

Как и зачем разворачивать копию CryptPad на собственном сервере.

CryptPad — набор онлайн-инструментов с открытым кодом для коллективной работы (тексты, таблицы и др.) с бесплатным хранилищем файлов до 1 Гб. CryptPad обладает определенными возможностями анонимизации и шифрования и несколько отличается от привычных Google Docs. Мы уже рассказывали о CryptPad как таковом, а сейчас поговорим о том, как и зачем разворачивать копию на собственном сервере.

Что входит в CryptPad? 

В CryptPad входит ряд компонентов: 

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

Все данные этих приложений шифруются на стороне клиента (в браузере) перед их отправкой на сервер. Это значит, что получить доступ к документам могут только те, с кем вы ими поделились (сквозное шифрование). Расшифровать ваши данные не могут даже администраторы сервера. Существует несколько публично доступных установок CryptPad, но можно и создать собственную (self-hosted) версию. 

Зачем мне может быть нужна self-hosted версия? 

  • Во-первых, как и с другими децентрализованными инструментами, self-hosted версия повышает конфиденциальность. Хотя CryptPad и так шифрует данные на стороне клиента, с self-hosted версией даже метаданные (информация о том, кто и когда редактировал документы) будут храниться на вашем собственном сервере. 
  • Во-вторых, защита от блокировки: если публичные сервисы CryptPad станут недоступны для пользователей в РФ, ваша self-hosted версия не пострадает. 
  • В-третьих, на своей копии вы можете более строго настроить управление доступом и пользователями (например, запретить гостевой доступ и ввести обязательную двухфакторную аутентификацию). 
  • В-четвертых, вы контролируете резервное копирование. Можно настроить частоту и количество копий. Так вы будете уверены, что данные не пропадут из-за технического сбоя (такое иногда случается с облачными сервисами). 

Параметры сервера, документация по установке

Для установки self-hosted версии CryptPad вам понадобится сервер и специалист по администрированию (системный администратор или DevOps). Если у вас в команде нет такого специалиста, можно поискать его на платформе «IT-волонтер». Имейте в виду, что кроме изначальной установки, self-hosted решения требуют обновления и поддержки. Поэтому лучше сразу обсудить со специалистом, готов ли он/она заниматься этим в будущем. 

Требования для сервера согласно документации:

  • операционная система: Debian не старше 12-ой версии; 
  • процессор: 2+ ядра;
  • оперативная память: минимум 2 Гб;
  • дисковое пространство: зависит от объема данных, которые вы планируете хранить (минимум 20 Гб для базовой установки);
  • дополнительно: возможность настроить резервное копирование данных, SSL-сертификаты для защиты соединений. 

Аренда сервера с такими параметрами будет стоить от 5 евро в месяц (в зависимости от провайдера). 

На сайте разработчика доступна документация по установке.

Два дополнения к инструкции от Теплицы:

  • добавить в конфигурационный файл переменную `websocketPath: ‘/cryptpad_websocket’` (без нее не работает регистрация); 
  • запускать сразу с доменом (если сначала запустить по IP, потом невозможно подключить домен, надо переустанавливать заново). 

Последняя версия CryptPad доступна на GitHub

Базовые настройки безопасности 

Ограничение регистрации и гостевого доступа

  • Почему это важно. Если вы оставите свободную регистрацию на self-hosted версии CryptPad, любой человек, получивший доступ к вашему серверу, сможет создать учетную запись и использовать ее для размещения любых файлов, включая потенциально вредоносные или незаконные. В self-hosted установке администратор несет юридическую ответственность за файлы на сервере. Поэтому регистрацию лучше ограничить. 
  • Как это сделать. Закрыть регистрацию в административной панели. Разрешить регистрацию только по приглашениям. Гостевой доступ отключается через конфигурационный файл

Ограничение размера файлов

  • Почему это важно. Ограничение размера файлов помогает не перегружать сервер. Если у вас совсем небольшая установка на сервере с минимальными параметрами (например, для работы с текстовыми документами), то его легко перегрузить. Можно, конечно, напоминать коллегам, что тяжелые файлы складывать в ваш CryptPad не следует. Но проще ограничить размер файлов.
  • Как настроить. В административной панели.

Защита от брутфорс-атак

  • Почему это важно. С помощью брутфорс-атаки злоумышленники пытаются подобрать пароль пользователя путем перебора различных комбинаций. Без защиты от таких атак злоумышленник может получить доступ к учетным записям, особенно если кто-то из пользователей выбрал слишком простой или неуникальный пароль.
  • Как настроить. Отдельно настраивать не надо. За логин в CryptPad отвечает функция scrypt, которая специально занимает много времени на вычисление. Это сделано, чтобы делать брутфорс-атаки долгими и дорогими. На Github доступно объяснение принципа работы функции scrypt. Она принимает три параметра: пароль, имя пользователя и специальную строку для шифрования (уникальна для сервера). Чтобы усложнить взлом, надо настроить эту строку через конфигурационный файл

Настройка двухфакторной аутентификации

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

Настройка резервного копирования

  • Почему это важно. Self-hosted установки не только дают больше контроля над собственными данными, но и означают большую ответственность за их сохранность. Чтобы при технических неполадках не потерять документы, надо настроить резервное копирование. Подумайте, какая частота копирования подходит вам. Если вы активно работаете с файлами в вашем CryptPad, лучше копировать минимум раз в день. 
  • Как настроить. Через панель управления провайдера вашего сервера.