Представь, что у тебя есть мощный NAS-сервер на базе TrueNAS, и тебе нужно организовать простой и надежный доступ к файлам для коллег, клиентов или твоих собственных устройств. FTP (File Transfer Protocol), несмотря на свой возраст, остается одним из самых универсальных и понятных протоколов для этой задачи. В этом руководстве мы разберем, как настроить FTP-сервер в TrueNAS от А до Я, с акцентом на безопасность и производительность.
Что такое FTP и зачем он нужен в TrueNAS?
FTP — это сетевой протокол для передачи файлов между клиентом и сервером. В контексте TrueNAS он позволяет:
- Организовать общее файловое хранилище для команд.
- Автоматизировать загрузку/выгрузку данных (бэкапы, логи, медиа).
- Предоставить доступ внешним пользователям без установки сложного ПО.
- Интегрироваться с legacy-системами, которые поддерживают только FTP.
Подготовка TrueNAS к настройке FTP
Прежде чем включать службу, давай подготовим окружение. Нам понадобится:
1. Создание Dataset для FTP
Лучше выделить под FTP отдельный Dataset — это упростит управление правами и квотой.
Storage → Datasets → ADD DATASET
Имя: ftp_share
Комментарий: Основное хранилище FTP
Тип ACL: POSIX (если не нужны сложные права Windows)
Квота: Установи при необходимости
2. Настройка пользователей и групп
Создадим отдельного системного пользователя и группу для изоляции службы.
# Через 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 доступен из интернета или локальной сети с недоверенными устройствами.
- В разделе SSL/TLS выбери «Использовать существующий сертификат».
- Если сертификата нет, создай самоподписанный: System → Certificates → Add → Type: Internal Certificate.
- В настройках FTP укажи созданный сертификат.
- Поставь галочку «Require SSL/TLS for Authentication» или «Require SSL/TLS for All Logins» для принудительного шифрования.
# Пример конфигурации 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 и назначим им права.
- Убедись, что у пользователя, которому нужен FTP-доступ, есть созданная учетная запись в Credentials → Local Users.
- В настройках этого пользователя укажи «Home Directory» — это будет его корневой каталог в FTP.
- Настрой права (Permissions) на Dataset
ftp_shareтак, чтобы у пользователя (или группыftpusers) были нужные права (чтение, запись).
ftp_clients), добавь в нее пользователей и назначь права на Dataset для этой группы. Это упростит управление.
Тестирование подключения к FTP-серверу
После сохранения настроек и запуска службы (Services → FTP → RUN) протестируем подключение.
Из командной строки Linux/macOS
# Базовое подключение (если 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)
- Хост: IP-адрес твоего TrueNAS.
- Порт: 21 (или кастомный).
- Тип шифрования: «Require explicit FTP over TLS» (для FTPES).
- Тип входа: Нормальный.
- Введи логин и пароль пользователя TrueNAS.
Продвинутые настройки и тюнинг
Ограничение скорости (Throttling)
Чтобы FTP не забивал весь канал, установи лимиты в настройках службы:
- Local User Bandwidth: Ограничение для локальных пользователей (например, 10 MB/s).
- Anonymous Bandwidth: Ограничение для анонимных сессий.
Пассивный режим (PASV) и настройка фаервола
Для работы из-за NAT или фаервола критически важен пассивный режим. TrueNAS настраивает его автоматически, но проверь:
# В GUI FTP-настроек:
Пассивный порт мин.: 30000
Пассивный порт макс.: 31000
# Эти порты должны быть открыты на фаерволе TrueNAS и роутере (проброшены).
# На роутере: проброс TCP портов 30000-31000 на IP TrueNAS.
Мониторинг и логи
Логи FTP находятся в /var/log/proftpd/. Для просмотра в реальном времени:
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-сервера: обязательный чек-лист
- Всегда используй FTPES (TLS) для шифрования трафика.
- Никогда не включай «Root Login».
- Ограничь доступ по IP, если возможно, через фаервол TrueNAS.
- Используй сложные пароли для пользователей FTP.
- Регулярно обновляй TrueNAS для получения патчей безопасности.
- Рассмотри возможность использования SFTP (встроен в SSH) вместо FTP для повышенной безопасности.
Часто задаваемые вопросы (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. Пример скрипта для ежедневного бэкапа:
#!/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):
0 2 * * * /path/to/backup_to_truenas.sh
Заключение
Настройка FTP в TrueNAS — это прямой процесс, который открывает широкие возможности для обмена файлами. Ключевые моменты для успеха:
- Безопасность прежде всего: Всегда используй FTPES (TLS), отключай root и анонимный доступ.
- Правильная структура: Выдели отдельный Dataset и управляй правами через группы.
- Тестируй в изоляции: Сначала настрой и проверь все в локальной сети, прежде чем открывать доступ извне.
- Рассмотри альтернативы: Для частого или безопасного доступа SFTP может быть лучшим выбором.
Теперь у тебя есть полностью рабочий и, что важно, защищенный FTP-сервер на базе TrueNAS. Он готов стать надежным узлом в твоей файловой инфраструктуре, будь то для автоматических бэкапов, обмена документами в команде или медиа-библиотеки.