← Документация Hope·HopeDFShopedc.ru
HopeDFS · Документация

Установка на Linux

1. Требования

ОС Linux x86_64 с glibc ≥ 2.28: Ubuntu 20.04/22.04/24.04, Debian 10–12, RHEL/AlmaLinux/Rocky 8–9, Astra Linux 1.7+, РЕД ОС 7.3+
Права служба работает от root (доступ к файлам любых владельцев, xattr, плавающие IP)
Файловая система шар с поддержкой пользовательских xattr: ext4, XFS, Btrfs, ZFS (xattr=sa), NFS 4.2 (с user_xattr на сервере), CephFS. Для шар со снимками по расписанию и дедупликацией рекомендуется XFS (reflink=1) или Btrfs: на ext4 снимки хранят полные копии изменённых файлов
Порты входящие: 445/tcp — SMB, 7443/tcp — HTTPS (панель, API, обмен узлов кластера и серверов разных площадок при репликации), 3702/udp и 5357/tcp — видимость в папке «Сеть» Windows (WS-Discovery); опционально 2049/tcp — NFSv4, 443/udp — SMB over QUIC; исходящие к контроллеру домена: 636/tcp (LDAPS), к серверу DNS HopeDC / BIND / FreeIPA — 53 (регистрация имён динамическим обновлением), к серверу почты — 587 / 465 / 25 (уведомления, если настроены)
Время синхронизация NTP обязательна при работе в домене (Kerberos допускает расхождение ≤ 5 мин)
Ресурсы от 1 vCPU / 512 МБ ОЗУ; под нагрузку — 2–4 vCPU, 2–4 ГБ

Порт 445 не должен быть занят Samba или ksmbd (установщик проверит; STOP_SAMBA=1 остановит их).

2. Установка

scp bin/hopedfs.gz linux/install.sh root@10.0.0.21:/tmp/
ssh root@10.0.0.21
cd /tmp && gunzip -f hopedfs.gz
BIN_SRC=/tmp/hopedfs bash install.sh

Повторный запуск с новым бинарником обновляет программу (предыдущая сохраняется как /opt/hopedfs/hopedfs.bak.<время>), конфигурация не затрагивается.

Переменные install.sh: MODE=server|witness, BIND=0.0.0.0|<IP>[,<IP>], NODE_NAME=FS1, ADMIN_PORT=7443, SMB_PORT=445, STOP_SAMBA=1.

Имя узла по умолчанию — имя хоста Linux прописными буквами, как NetBIOS-имя Windows (fs-msk → FS-MSK); имя хоста hopedfs даёт имя продукта HopeDFS. Первая роль файлового сервера получает то же имя — под ним клиенты видят сервер (\\FS-MSK\Шара). Регистр имени на подключение не влияет.

Сервер без доступа в интернет (Ubuntu)

Комплект hopedfs-v<сборка>-ubuntu-offline.tar.gz содержит всё для установки на изолированный сервер: программу, установщик, Лицензионное соглашение, документацию и контрольные суммы. Дополнительные пакеты и доступ в сеть не нужны. Перенесите архив (например, на флешке) вместе с файлом .sha256, затем на сервере:

sha256sum hopedfs-*-ubuntu-offline.tar.gz          # сверить с .sha256
tar xzf hopedfs-*-ubuntu-offline.tar.gz && cd hopedfs-*-ubuntu-offline
sudo bash install.sh                                 # параметры те же: STOP_SAMBA=1, BIND=…, NODE_NAME=…

Установщик проверяет архитектуру, glibc, systemd и контрольные суммы файлов, затем ставит программу (/opt/hopedfs, документация — в /opt/hopedfs/docs). Повторный запуск с новым комплектом — обновление с сохранением конфигурации; uninstall.sh удаляет программу, оставляя конфигурацию и данные. Подробно — README.txt в комплекте.

Короткий вариант — hopedfs-v<сборка>-linux-x86_64.tar.gz: только исполняемый файл hopedfs и install.sh (берёт бинарник из своей папки): tar xzf … && cd hopedfs-*-linux-x86_64 && sudo bash install.sh.

3. Что устанавливается

Путь Назначение
/opt/hopedfs/hopedfs бинарник (веб-панель встроена), ссылка /usr/local/bin/hopedfs
/opt/hopedfs/EULA.txt текст Лицензионного соглашения (hopedfs --eula); принимается в панели при первом входе
/var/lib/hopedfs/node.json параметры узла (ID, имя, ключ кластера) — права 0600
/var/lib/hopedfs/cluster_state.json конфигурация: шары, роли, учётки, домен (одинакова на всех узлах кластера)
/var/lib/hopedfs/tls/ самоподписанный сертификат панели (можно заменить своим: server.crt, server.key)
/var/lib/hopedfs/license.key лицензия узла (у каждого узла своя, не реплицируется)
/var/lib/hopedfs/eula_acceptance.json запись о принятии Лицензионного соглашения на узле: редакция, SHA‑256, учётка, IP, время
/var/lib/hopedfs/ransom/ журналы файлов инцидентов защиты от шифровальщиков (на узле, обнаружившем атаку)
/var/log/hopedfs/hopedfs.log.* журнал службы (ротация по дням, хранится 14 дней)
/var/log/hopedfs/audit.jsonl журнал аудита (ротация при 50 МБ)
<папка шары>/.hopedfs/ служебная папка шары, клиентам не видна: снимки «Предыдущих версий» (snapshots/), база репликации площадок (dfsr/), страховочные копии и карантин защиты от шифровальщиков (ransom/)
<папка шары>/!!_Archive_2019.docx и ещё 2 файла скрытые файлы-ловушки защиты от шифровальщиков (раздел 17 «Руководства администратора»); не удаляйте их — удаление по SMB считается атакой
/etc/systemd/system/hopedfs.service служба (hopedfs-witness.service для свидетеля)

Управление службой: systemctl status|restart|stop hopedfs, журнал: journalctl -u hopedfs -f.

4. Первый вход

https://<IP>:7443/ → Administrator и пароль из /var/lib/hopedfs/initial_admin_password.txt. При первом входе прочитайте и примите Лицензионное соглашение («Принимаю») — до этого разделы панели недоступны (общие папки и другие службы при этом работают). Текст заранее: hopedfs --eula, /opt/hopedfs/EULA.txt или страница https://<IP>:7443/eula. Смените пароль (раздел «Локальные учётки») и удалите файл. Язык панели — переключатель RU / EN в правом верхнем углу (и на странице входа).

После принятия соглашения откроется чек-лист «Начало работы» — первичная настройка по шагам, с проверкой по реальным настройкам сервера; на каждой странице панель при первом открытии покажет короткую подсказку (раздел 21 «Руководства администратора»).

Рекомендуемые первые шаги: 1. «Лицензия» — примените ключ, если редакция не Free. 2. «Домен» — подключите сервер к домену (раздел 4 «Руководства администратора»). 3. «Общие папки» — создайте шары и включите у них расписание снимков («Предыдущие версии»). 4. «Защита от шифровальщиков» — включена сразу в режиме «Блокировать»; на первую неделю можно выбрать «Только оповещать», добавить в исключения учётки резервного копирования и задать webhook для оповещений.

Забытый пароль к панели: ссылка «Забыли пароль?» на странице входа — письмом на адрес из свойств учётки или аварийным токеном вендора (раздел 22 «Руководства администратора»). Сброс пароля из консоли:

systemctl stop hopedfs && hopedfs set-password Administrator 'НовыйПароль' && systemctl start hopedfs

5. Первая шара за 2 минуты

  1. Создайте папку: mkdir -p /srv/data/Общая.
  2. Панель → «Общие папки» → «Создать шару»: имя Общая, путь /srv/data/Общая, шаблон NTFS «Стандартный» (администраторы — полный доступ, пользователи — чтение и создание своих файлов).
  3. Windows: \\10.0.0.21\Общая → войти как 10.0.0.21\Administrator. Доменные пользователи (после подключения к домену) входят по Kerberos — обращаясь к серверу по имени: \\HOPEFS\Общая.
  4. Свойства папки → «Безопасность» — те же NTFS-разрешения, что и в панели.
  5. Свойства шары → «Предыдущие версии» → включите расписание снимков: из них восстанавливаются файлы (в том числе после атаки шифровальщика).

6. Удаление

systemctl disable --now hopedfs && rm -f /etc/systemd/system/hopedfs.service /usr/local/bin/hopedfs
rm -rf /opt/hopedfs /var/lib/hopedfs /var/log/hopedfs        # конфигурация и журналы

Файлы шар не удаляются. NTFS-метаданные остаются в xattr user.hopedfs.* (удалить: find /srv/data -exec setfattr -x user.hopedfs.sd {} \; и т.п.). В корне каждой шары остаются служебная папка .hopedfs (снимки, база репликации, хранилище защиты) и три файла-ловушки — удалите их вручную, если данные больше не нужны.

7. Обновление

Из панели (версия 1.1.0 и новее): «Настройки» → «Обновления» — онлайн по манифесту сервера обновлений или загрузкой файла hopedfs.gz для закрытого контура; пакет проверяется, прежний бинарник сохраняется (/opt/hopedfs/hopedfs.prev), при неудачном запуске новой версии — автоматический откат. Подробно — раздел 19 «Руководства администратора». Нужен только systemd (дополнительные службы не устанавливаются).

Скриптом — тем же способом, что и установка: install.sh с новым бинарником. Так ставится и первая версия с разделом «Обновления» (1.1.0), и любая версия на серверах без systemd.

Конфигурация, лицензия и данные сохраняются; служба перезапускается, клиенты переподключаются сами. В кластере — по одному узлу («Кластер» → «Приостановить» → обновление → «Возобновить»). После обновления обновите страницу панели в браузере (Ctrl+F5), чтобы загрузилась новая версия интерфейса. Установленная версия: hopedfs --version (номер и время сборки).