Гид по технологиям

Быстрая настройка безопасного sFTPGo на Rocky Linux

8 min read Инфраструктура Обновлено 07 Nov 2025
Установка sFTPGo на Rocky Linux
Установка sFTPGo на Rocky Linux

Что такое sFTPGo

sFTPGo — это конфигурируемый сервер для безопасной передачи файлов. Он поддерживает протоколы SFTP, FTP/S, HTTP/S и WebDAV. SFTPGo умеет работать с разными бэкендами хранения: локальными файловыми системами и облачными провайдерами (Amazon S3, Google Cloud Storage, Azure Blob). По умолчанию он использует SQLite, но поддерживает PostgreSQL и MariaDB/MySQL.

Короткое определение: sFTPGo — современный файловый сервер с веб-панелью и гибкими бэкендами хранения.

Кому пригодится эта инструкция

  • Системным администраторам, которые хотят быстро поднять защищённый FTP/S/WebDAV сервис.
  • DevOps-инженерам, которым нужен самодостаточный файловый сервис с веб-интерфейсом.
  • Командам, которые хотят заменить устаревшие FTP-серверы и добавить WebDAV/HTTPS.

Требования

  • Сервер с Rocky Linux 8 или 9.
  • Непривилегированный пользователь с sudo.
  • Домен, указывающий на IP сервера (рекомендуется для production).
  • Доступ к Let’s Encrypt или другим SSL-сертификатам для HTTPS/WebDAV.

Быстрый обзор шагов

  1. Установить sFTPGo (DNF или RPM).
  2. Запустить и включить сервис systemd.
  3. Открыть порты в firewalld (8080, 8090, 2022).
  4. Настроить SSL в конфиге /etc/sftpgo/sftpgo.json.
  5. Создать администратора через веб-интерфейс.
  6. Создать группы и пользователей.
  7. Подключаться через FileZilla (SFTP), WebClient (HTTPS) и WebDAV.

Установка sFTPGo через DNF

sFTPGo предоставляет репозиторий для нескольких дистрибутивов. На Rocky Linux удобно добавить репозиторий и установить пакет через DNF.

Добавьте репозиторий и обновите кэш:

ARCH=`uname -m`
curl -sS https://ftp.osuosl.org/pub/sftpgo/yum/${ARCH}/sftpgo.repo | sudo tee /etc/yum.repos.d/sftpgo.repo
sudo dnf update

Установите пакет:

sudo dnf install sftpgo

Когда появится запрос подтверждения — введите Y и нажмите Enter.

Установка sFTPGo через DNF

Если запросит подтверждение ключей GPG — подтвердите.

Подтверждение GPG-ключа репозитория sFTPGo

Запустите и включите сервис:

sudo systemctl start sftpgo
sudo systemctl enable sftpgo

Проверьте статус:

sudo systemctl status sftpgo

Проверка статуса сервиса sFTPGo

Важно: имена сервисов должны совпадать с установленным пакетом. Обычно это sftpgo.

Установка через RPM

Если вы предпочитаете загружать RPM вручную, можно скачать последнюю сборку с релизов GitHub.

Получите последнюю версию и скачайте пакет:

VER=$(curl -s https://api.github.com/repos/drakkan/sftpgo/releases/latest | grep tag_name | cut -d '"' -f 4 | sed 's/v//g')
wget https://github.com/drakkan/sftpgo/releases/download/v$VER/sftpgo-$VER-1.x86_64.rpm

Установите RPM:

sudo rpm -Uvh sftpgo-$VER-1.x86_64.rpm

Вы увидите вывод установки в терминале.

Установка sFTPGo из RPM

Запустите и включите сервис:

sudo systemctl enable sftpgo
sudo systemctl start sftpgo

Проверьте статус:

sudo systemctl status sftpgo

Статус sFTPGo после установки через RPM

Открытие портов в firewalld

sFTPGo использует несколько портов для разных протоколов. Откройте их в firewalld:

  • HTTP/HTTPS административный интерфейс: 8080/TCP
  • SFTP (SSH-based): 2022/TCP
  • WebDAV (HTTPS): 8090/TCP

Выполните команды:

sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --permanent --add-port=8090/tcp
sudo firewall-cmd --permanent --add-port=2022/tcp
sudo firewall-cmd --reload

Проверьте добавленные порты:

sudo firewall-cmd --list-ports

Вы должны увидеть 8080/tcp 8090/tcp 2022/tcp в списке.

Порты sFTPGo в firewalld

Важно: если у вас включен облачный брандмауэр (например, в провайдере), откройте те же порты и там.

Настройка sFTPGo и SSL

Примерный основной конфигурационный файл — /etc/sftpgo/sftpgo.json. В нём включаются службы webdavd и httpd, указываются пути до сертификатов и порты.

Откройте файл в редакторе:

sudo nano /etc/sftpgo/sftpgo.json

По умолчанию SFTP работает на порту 2022. Чтобы включить WebDAV на 8090 и HTTPS-админку на 8080, найдите секции webdavd и httpd и установите параметры примерно так:

  "webdavd": {
    "bindings": [
      {
        "port": 8090,
        "address": "",
        "enable_https": true,
        "certificate_file": "/etc/letsencrypt/live/sftp.your-domain/fullchain.pem",
        "certificate_key_file": "/etc/letsencrypt/live/sftp.your-domain/privkey.pem",
        "min_tls_version": 12,
        "client_auth_type": 0
      }
    ],

и

  "httpd": {
    "bindings": [
      {
        "port": 8080,
        "address": "",
        "enable_web_admin": true,
        "enable_web_client": true,
        "enabled_login_methods": 0,
        "enable_https": true,
        "certificate_file": "/etc/letsencrypt/live/sftp.your-domain/fullchain.pem",
        "certificate_key_file": "/etc/letsencrypt/live/sftp.your-domain/privkey.pem",
        "min_tls_version": 12,
        "client_auth_type": 0,
        "hide_login_url": 0,
        "render_openapi": true
      }
    ],

Замените пути к сертификатам на ваши. В примере используется Let’s Encrypt и каталог /etc/letsencrypt.

Сохраните файл и перезапустите сервис:

sudo systemctl restart sftpgo

Проверяйте логи systemd, если служба не стартует:

sudo journalctl -u sftpgo -f

Совет: убедитесь, что файлы сертификатов доступны от имени пользователя, под которым работает sFTPGo.

Создание администратора и начальная настройка через веб-интерфейс

Откройте браузер и перейдите на https://<ваш-домен>:8080. На первом экране система предложит создать администратора.

Пример URL: https://sftp.your-domain:8080/web/admin

Введите логин и пароль администратора и создайте учётную запись.

Создание администратора sFTPGo

После входа вы увидите панель администратора.

Панель управления sFTPGo

Создание групп и пользователей

  1. Перейдите в раздел Groups.
  2. Нажмите New Group и задайте имя, например manager. Здесь же можно ограничить квоты и пропускную способность.

Создание группы

  1. Перейдите в раздел Users и создайте пользователя alice, присвойте ему группу manager и задайте домашнюю директорию.

Создание пользователя

  1. Проверьте список пользователей.

Список пользователей

Подключение по SFTP через FileZilla

Настройка клиента FileZilla:

  • Protocol: SFTP - SSH File Transfer Protocol
  • Host: sftp.your-domain
  • Port: 2022
  • Logon Type: Normal
  • User: alice
  • Password: <пароль>

Нажмите Connect. При первом подключении вы увидите предупреждение о ключе сервера — подтвердите.

Подключение через FileZilla

Подтверждение сертификата/ключа сервера SFTP

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

Загрузка файла через SFTP

Доступ через sFTPGo WebClient

WebClient работает по HTTPS на 8080. Прямой путь для клиентов обычно: https://sftp.your-domain:8080/web/client/login

Войдите под пользователем alice и загрузите/скачайте файлы прямо из браузера.

Вход в WebClient sFTPGo

WebClient с загруженным файлом

WebClient поддерживает 2FA и шаринг ссылок между пользователями.

Подключение через WebDAV

Используйте файловый менеджер: Windows Explorer, macOS Finder или любой файловый менеджер Linux (Nautilus, Dolphin, Thunar).

Пример URL: davs://sftp.your-domain:8090/

Выберите secure WebDAV (davs) и введите учётные данные alice.

Настройка WebDAV в файловом менеджере

Введите логин и пароль:

Ввод учётных данных для WebDAV

После подключения вы увидите сетевое расположение с файлами.

Подключённый WebDAV в проводнике

Критерии приёмки

  • Сервис sftpgo запущен и активен: systemctl status sftpgo.
  • Порты 8080, 8090 и 2022 открыты в системном и облачном брандмауэрах.
  • HTTPS работает для httpd и webdavd, сертификаты корректны.
  • Админ-панель доступна и создан администратор.
  • Пользователь может подключиться по SFTP и WebDAV и загрузить файл.

Тесты приёмки и контрольные случаи

Минимальный набор тестов:

  • Тест 1: Подключение через SFTP (порт 2022) — успешный логин и загрузка файла.
  • Тест 2: Вход в WebClient (порт 8080) — доступ к списку файлов и загрузка.
  • Тест 3: Подключение по WebDAV (порт 8090) — просмотр и копирование файла.
  • Тест 4: Проверка SSL — отсутствие предупреждений о сертификате для домена.
  • Тест 5: Негативный сценарий — блокировка неверного пароля после N попыток (если настроено).

Рекомендации по безопасности

  • Всегда ставьте TLS 1.2 или 1.3 и отключайте старые версии TLS/SSL.
  • Используйте современные наборы шифров и отключите слабые алгоритмы.
  • Ограничьте доступ по IP для административной панели, если возможно.
  • Включите двухфакторную аутентификацию для админов и важных пользователей.
  • Логируйте события и отправляйте их в централизованный хранилище логов.
  • Настройте брутфорс-защиту (fail2ban или аналог).
  • Ограничьте права для домашней директории пользователей и не давайте root-доступ к файлам.

Жёсткое усиление безопасности — чек-лист для админа

  • TLS 1.3 или минимум TLS 1.2 включён.
  • Сертификаты автоматически обновляются (certbot + systemd timer).
  • Админ-панель доступна только по HTTPS и ограничена по IP.
  • 2FA включён для всех админов.
  • Логи пересылаются на удалённый лог-сервер.
  • fail2ban настроен по логам sFTPGo.
  • Периодические аудиты прав и квот пользователей.

Альтернативные подходы и когда sFTPGo не подходит

Когда выбрать другое решение:

  • У вас миллион мелких подключений в секунду — возможно, нужен специализированный масштабируемый объектный шлюз (Nginx + S3 proxy или CDN).
  • Нужна tight интеграция с существующей LDAP/AD без поддержки в sFTPGo — рассмотрите серверы с расширенной поддержкой LDAP или проксирование через PAM.
  • Требуется поддержка старого нешифрованного FTP в закрытой сети — используйте специализированные FTP-серверы, но помните о рисках.

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

  • vsftpd/ProFTPD — классические FTP-серверы.
  • FileBrowser, Nextcloud — если нужен полный веб-интерфейс для совместной работы.
  • S3-native решения (MinIO) — если вы целиком хотите объектное хранилище.

Модель принятия решений (heuristic)

Если цель — безопасный, лёгкий в управлении сервер с поддержкой SFTP, WebDAV и веб-клиента, выбирайте sFTPGo. Если приоритет — масштабирование объектов или tight интеграция с корпоративным SSO, проверьте альтернативы.

Миграция и совместимость

  • Для перехода с локальной FS на облачный бэкенд (S3/GCS/Azure) протестируйте синхронизацию и производительность на отдельной стадии.
  • Проверьте ограничение на размер файлов и время отклика при использовании облачных бекендов.
  • При переключении БД (SQLite → PostgreSQL) выполните бэкап и миграцию конфигурации согласно документации sFTPGo.

Роль‑ориентированные чек‑листы

Администратор:

  • Установить и запустить сервис.
  • Настроить SSL и firewall.
  • Создать админа и группы.

DevOps:

  • Описать деплой в Ansible/Terraform.
  • Настроить мониторинг и alerting.

Пользователь:

  • Получить учётную запись.
  • Подключиться через SFTP/WebClient/WebDAV.

Факты и ключевые числа

  • Порты по умолчанию: 2022 (SFTP), 8080 (httpd), 8090 (webdavd).
  • Поддерживаемые СУБД: SQLite (по умолчанию), PostgreSQL, MariaDB/MySQL.
  • Бэкенды хранения: локальная FS, S3, Google Cloud Storage, Azure Blob.

Мини‑методология развертывания (4 шага)

  1. Подготовка: выделите домен, получите сертификаты, убедитесь в доступности портов.
  2. Установка: DNF или RPM, запуск сервиса.
  3. Конфигурация: настроить /etc/sftpgo/sftpgo.json, SSL, firewall.
  4. Проверка: создать админа, пользователей, выполнить тесты SFTP/WebDAV/HTTPS.

Примеры конфигураций и сниппеты

  • Перезапуск и проверка логов:
sudo systemctl restart sftpgo
sudo journalctl -u sftpgo -f
  • Автоматическое обновление сертификатов (certbot example):
sudo certbot --nginx -d sftp.your-domain
# или certbot certonly для ручной конфигурации

Технические сценарии восстановления и отката

Если новая конфигурация не стартует:

  1. Откатите /etc/sftpgo/sftpgo.json к рабочей версии (из бэкапа).
  2. Перезапустите sftpgo и проверьте логи: sudo journalctl -u sftpgo -b.
  3. Если проблема в сертификате — временно отключите enable_https и перезапустите сервис для диагностики.

Короткая заметка о конфиденциальности и данных

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

Сопроводительная терминология (1‑строчная)

  • SFTP: защищённый протокол передачи файлов поверх SSH.
  • WebDAV: расширение HTTP для работы с файловыми ресурсами по сети.
  • httpd (в sFTPGo): встроенный веб-сервер для панели управления и WebClient.

Социальные превью и анонс

OG заголовок: Быстрая настройка sFTPGo на Rocky Linux OG описание: Подробный пошаговый гайд по установке sFTPGo с SSL, WebDAV и примерами подключения по SFTP.

Короткий анонс (100–200 слов):

Запустите защищённый файловый сервер на Rocky Linux за 10–20 минут. В этом руководстве показаны оба способа установки sFTPGo (DNF и RPM), конфигурация сертификатов Let’s Encrypt для HTTPS и WebDAV, открытие портов в firewalld и создание пользователей через веб‑панель. Приведены тесты приёмки, рекомендации по безопасности, чек‑листы для администраторов и сценарии отката. Подходит для небольших команд и внутренних сервисов, где требуется удобный веб‑клиент и поддержка SFTP/WebDAV одновременно.


Заключение

Вы установили и настроили sFTPGo на Rocky Linux, открыли необходимые порты, подключили SSL и создали пользователей. Теперь у ваших пользователей есть выбор: SFTP через FileZilla, WebClient через браузер и WebDAV в проводнике. Дополнительно проверьте рекомендации по безопасности и настройте мониторинг для стабильной эксплуатации.

Важно: регулярно обновляйте sFTPGo и системные пакеты, и проверяйте сертификаты на срок действия.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Herodotus: механизм и защита Android‑трояна
Кибербезопасность

Herodotus: механизм и защита Android‑трояна

Включить новое меню «Пуск» в Windows 11
Windows руководство

Включить новое меню «Пуск» в Windows 11

Панель полей сводной таблицы в Excel — руководство
Excel

Панель полей сводной таблицы в Excel — руководство

Включить новое меню «Пуск» в Windows 11
Windows 11

Включить новое меню «Пуск» в Windows 11

Дубликаты Диспетчера задач в Windows 11 — как исправить
Windows

Дубликаты Диспетчера задач в Windows 11 — как исправить

История просмотров Reels в Instagram — как найти
Instagram

История просмотров Reels в Instagram — как найти