Настройка FTP в TrueNAS: пошаговая инструкция для безопасного файлового сервера | AdminWiki

TrueNAS FTP: Полное руководство по настройке и безопасному использованию

15 января 2026 10 мин. чтения #devops #ftp #nas #proxmox #truenas #настройка truenas #файловый сервер #хранение данных
Содержание статьи

Представь, что у тебя есть мощный NAS-сервер на базе TrueNAS, и тебе нужно организовать простой и надежный доступ к файлам для коллег, клиентов или твоих собственных устройств. FTP (File Transfer Protocol), несмотря на свой возраст, остается одним из самых универсальных и понятных протоколов для этой задачи. В этом руководстве мы разберем, как настроить FTP-сервер в TrueNAS от А до Я, с акцентом на безопасность и производительность.

Что такое FTP и зачем он нужен в TrueNAS?

FTP — это сетевой протокол для передачи файлов между клиентом и сервером. В контексте TrueNAS он позволяет:

  • Организовать общее файловое хранилище для команд.
  • Автоматизировать загрузку/выгрузку данных (бэкапы, логи, медиа).
  • Предоставить доступ внешним пользователям без установки сложного ПО.
  • Интегрироваться с legacy-системами, которые поддерживают только FTP.
Важно: Стандартный FTP (порт 21) передает данные, включая логины и пароли, в открытом виде. Для использования в интернете или недоверенных сетях обязательно настраивай FTPES (FTP over Explicit TLS/SSL).

Подготовка TrueNAS к настройке FTP

Прежде чем включать службу, давай подготовим окружение. Нам понадобится:

1. Создание Dataset для FTP

Лучше выделить под FTP отдельный Dataset — это упростит управление правами и квотой.

gui
Storage → Datasets → ADD DATASET
Имя: ftp_share
Комментарий: Основное хранилище FTP
Тип ACL: POSIX (если не нужны сложные права Windows)
Квота: Установи при необходимости

2. Настройка пользователей и групп

Создадим отдельного системного пользователя и группу для изоляции службы.

cli
# Через Shell TrueNAS (опционально, можно через GUI)
# Создаем группу
sudo pw groupadd ftpusers -g 2001

# Создаем пользователя без домашнего каталога и оболочки
sudo pw useradd ftpdaemon -u 2001 -g ftpusers -c "FTP Service Account" -s /usr/sbin/nologin -d /nonexistent

Или через GUI: Credentials → Local Users → Add.

Пошаговая настройка FTP-сервера в TrueNAS

Теперь перейдем к основной части. Идем в Services → FTP и включаем службу.

Конфигурация основных параметров

Заполняем настройки согласно таблице:

Параметр Рекомендуемое значение Объяснение
Порт 21 Стандартный порт FTP. Можешь сменить для безопасности (например, 2121).
Клиенты 32 Максимальное количество одновременных подключений.
Попытки входа 3 Защита от брутфорса.
Таймаут 120 Время неактивности в секундах до отключения.
Режим root ❌ ВЫКЛЮЧЕН Критически важная настройка безопасности! Никогда не включай.
Анонимный доступ ❌ ВЫКЛЮЧЕН (обычно) Включай только для публичных, неважных данных.
Всегда chroot ✅ ВКЛЮЧЕН Ограничивает пользователя его домашним каталогом.

Настройка TLS/SSL (FTPES) для шифрования

Этот шаг обязателен, если FTP доступен из интернета или локальной сети с недоверенными устройствами.

  1. В разделе SSL/TLS выбери «Использовать существующий сертификат».
  2. Если сертификата нет, создай самоподписанный: System → Certificates → Add → Type: Internal Certificate.
  3. В настройках FTP укажи созданный сертификат.
  4. Поставь галочку «Require SSL/TLS for Authentication» или «Require SSL/TLS for All Logins» для принудительного шифрования.
config
# Пример конфигурации proftpd, которую генерирует TrueNAS (просмотр через Shell)
sudo cat /usr/local/etc/proftpd.conf

# Ключевые строки при включенном TLS:
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2 TLSv1.3
TLSRequired on
TLSOptions NoCertRequest
TLSRSACertificateFile /path/to/your/cert.pem
TLSRSACertificateKeyFile /path/to/your/key.pem

Настройка доступа пользователей

Теперь свяжем пользователей TrueNAS с FTP и назначим им права.

  1. Убедись, что у пользователя, которому нужен FTP-доступ, есть созданная учетная запись в Credentials → Local Users.
  2. В настройках этого пользователя укажи «Home Directory» — это будет его корневой каталог в FTP.
  3. Настрой права (Permissions) на Dataset ftp_share так, чтобы у пользователя (или группы ftpusers) были нужные права (чтение, запись).
Совет: Для массового доступа создай группу (например, ftp_clients), добавь в нее пользователей и назначь права на Dataset для этой группы. Это упростит управление.

Тестирование подключения к FTP-серверу

После сохранения настроек и запуска службы (Services → FTP → RUN) протестируем подключение.

Из командной строки Linux/macOS

bash
# Базовое подключение (если TLS не требуется)
ftp your_truenas_ip
# Или с указанием порта
ftp your_truenas_ip 21

# Для FTPES (шифрование) используй lftp или curl
lftp -e "set ftp:ssl-force true; set ssl:verify-certificate false;" -u username your_truenas_ip

# Или с помощью curl для теста скачивания
curl --insecure --ftp-ssl -u username:password -O "ftpes://your_truenas_ip/path/to/file.txt"

Из графического клиента (FileZilla)

  1. Хост: IP-адрес твоего TrueNAS.
  2. Порт: 21 (или кастомный).
  3. Тип шифрования: «Require explicit FTP over TLS» (для FTPES).
  4. Тип входа: Нормальный.
  5. Введи логин и пароль пользователя TrueNAS.
Ошибка "GnuTLS error -15: An unexpected TLS packet was received" в FileZilla? Часто возникает из-за неправильного выбора типа шифрования. Попробуй "Only use plain FTP" для теста в локальной сети или проверь настройки TLS в TrueNAS.

Продвинутые настройки и тюнинг

Ограничение скорости (Throttling)

Чтобы FTP не забивал весь канал, установи лимиты в настройках службы:

  • Local User Bandwidth: Ограничение для локальных пользователей (например, 10 MB/s).
  • Anonymous Bandwidth: Ограничение для анонимных сессий.

Пассивный режим (PASV) и настройка фаервола

Для работы из-за NAT или фаервола критически важен пассивный режим. TrueNAS настраивает его автоматически, но проверь:

config
# В GUI FTP-настроек:
Пассивный порт мин.: 30000
Пассивный порт макс.: 31000

# Эти порты должны быть открыты на фаерволе TrueNAS и роутере (проброшены).
# На роутере: проброс TCP портов 30000-31000 на IP TrueNAS.

Мониторинг и логи

Логи FTP находятся в /var/log/proftpd/. Для просмотра в реальном времени:

bash
sudo tail -f /var/log/proftpd/proftpd.log
# Логи TLS (если включено)
sudo tail -f /var/log/proftpd/tls.log

Частые проблемы и их решение (Troubleshooting)

1. "Connection refused" или таймаут подключения

  • Проверь, что служба FTP запущена в Services.
  • Убедись, что порт 21 (или выбранный тобой) не заблокирован фаерволом TrueNAS: Network → Firewall → Rules.
  • Проверь настройки сети и доступность IP-адреса.

2. Ошибка аутентификации "Login incorrect"

  • Убедись, что пользователь существует и его домашний каталог корректно указан.
  • Проверь, не включен ли у пользователя параметр «Disable Password».
  • Попробуй сбросить пароль пользователя.

3. Нет прав на запись (Permission denied)

  • Проверь права (ACL) на Dataset через Storage → Datasets → Permissions.
  • Убедись, что пользователь или его группа имеют право на запись (Write).
  • Попробуй упростить права, установив «Apply Owner» и «Apply Group».

4. Медленная скорость передачи

  • Проверь, не включено ли ограничение скорости (Throttling) в настройках FTP.
  • Попробуй отключить TLS для теста в локальной сети (возможно, нагрузка на CPU).
  • Проверь состояние дисков и сетевого интерфейса в Reporting.

Безопасность FTP-сервера: обязательный чек-лист

  1. Всегда используй FTPES (TLS) для шифрования трафика.
  2. Никогда не включай «Root Login».
  3. Ограничь доступ по IP, если возможно, через фаервол TrueNAS.
  4. Используй сложные пароли для пользователей FTP.
  5. Регулярно обновляй TrueNAS для получения патчей безопасности.
  6. Рассмотри возможность использования SFTP (встроен в SSH) вместо FTP для повышенной безопасности.
Альтернатива: Если безопасность — приоритет, в TrueNAS есть встроенная служба SFTP (SSH File Transfer Protocol). Она использует SSH-туннель, более безопасна по умолчанию и не требует отдельной настройки шифрования. Включи ее в Services → SSH и отметь «Allow SFTP Connections».

Часто задаваемые вопросы (FAQ)

Можно ли использовать FTP в TrueNAS Scale?

Да, процесс настройки FTP в TrueNAS CORE и TrueNAS SCALE практически идентичен. Интерфейс и расположение меню (Services → FTP) одинаковы. Оба дистрибутива используют proftpd в качестве FTP-сервера.

Как создать несколько изолированных FTP-аккаунтов с разными каталогами?

Создай для каждого пользователя в Credentials → Local Users и укажи в поле «Home Directory» его уникальный путь (например, /mnt/pool/ftp_share/user1). Убедись, что у каждого пользователя есть права только на свой каталог. Включи опцию «Always chroot», чтобы пользователь не мог выйти за пределы своего домашнего каталога.

FTP не работает после обновления TrueNAS. Что делать?

Сначала проверь, что настройки службы сохранились и она запущена. Иногда сброс настроек FTP и их повторное применение помогает. Зайди в Services → FTP, останови службу, отредактируй любую настройку, сохрани, а затем снова включи. Проверь логи (/var/log/proftpd.log) на наличие ошибок.

Чем FTP в TrueNAS отличается от SMB или NFS?

FTP — это протокол для передачи файлов по сети, в то время как SMB (Windows) и NFS (Linux) — это протоколы для совместного доступа к файлам, которые позволяют монтировать сетевые диски. FTP обычно медленнее из-за накладных расходов и однопоточности, но он универсален и работает из любой ОС без дополнительных драйверов. Используй FTP для загрузки/скачивания, а SMB/NFS — для постоянной работы с файлами.

Как автоматизировать загрузку файлов на FTP TrueNAS?

Используй cron-задачи в сочетании с утилитами командной строки, такими как lftp или curl. Пример скрипта для ежедневного бэкапа:

bash
#!/bin/bash
# Скрипт backup_to_truenas.sh
lftp -e "
set ftp:ssl-force true;
set ssl:verify-certificate false;
put /local/path/backup.tar.gz -o /ftp_share/backups/backup_$(date +%Y%m%d).tar.gz;
quit" -u username,password ftpes://your_truenas_ip

Добавь вызов этого скрипта в crontab (crontab -e):

crontab
0 2 * * * /path/to/backup_to_truenas.sh

Заключение

Настройка FTP в TrueNAS — это прямой процесс, который открывает широкие возможности для обмена файлами. Ключевые моменты для успеха:

  • Безопасность прежде всего: Всегда используй FTPES (TLS), отключай root и анонимный доступ.
  • Правильная структура: Выдели отдельный Dataset и управляй правами через группы.
  • Тестируй в изоляции: Сначала настрой и проверь все в локальной сети, прежде чем открывать доступ извне.
  • Рассмотри альтернативы: Для частого или безопасного доступа SFTP может быть лучшим выбором.

Теперь у тебя есть полностью рабочий и, что важно, защищенный FTP-сервер на базе TrueNAS. Он готов стать надежным узлом в твоей файловой инфраструктуре, будь то для автоматических бэкапов, обмена документами в команде или медиа-библиотеки.

Поделиться:
Сохранить гайд? В закладки браузера