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