FTP-доступ в ISPmanager 6 реалізовано через ProFTPD. Ви можете створювати окремих FTP-користувачів для кожного сайту з обмеженням доступу лише до потрібної директорії.
Створення FTP-користувача
Головне меню → FTP-користувачі → Створити.
| Поле | Опис |
|---|---|
| Логін | Ім'я користувача FTP |
| Пароль | Пароль для підключення |
| Шлях | Директорія доступу (chroot) |
| Квота | Ліміт дискового простору |
Chroot гарантує, що користувач фізично не може вийти за межі вказаної директорії навіть командою cd ../../ — ProFTPD підміняє корінь файлової системи на рівні процесу, а не просто ховає верхні каталоги в інтерфейсі клієнта.
Додаткові параметри доступу
- Тип акаунта: звичайний користувач або доступ лише на читання
- Обмеження за IP: доступ дозволено лише з вказаних адрес
- Максимальна кількість одночасних підключень
- Обмеження швидкості передавання (throttling) для одного користувача
Параметри підключення FTP
| Параметр | Значення |
|---|---|
| Хост | IP сервера або ftp.example.com |
| Порт | 21 |
| Режим | Пасивний (PASV) |
| Протокол | FTP або FTPS (явний) |
SFTP замість FTP
SFTP працює через SSH і не потребує окремого налаштування — якщо у користувача є SSH-доступ, SFTP працює автоматично:
# FileZilla:
Протокол: SFTP
Хост: ваш_IP
Порт: 22
Логін/пароль: системний користувач
# Або ключ SSH замість пароля
Масове перенесення файлів через rsync по SSH
Для перенесення великих обсягів даних FTP програє за надійністю: обрив з'єднання означає передавання заново. rsync поверх SSH докачує лише змінені файли і вміє продовжити перервану синхронізацію — це помітно швидше при повторних заливаннях того самого сайту.
# Синхронізація локальної папки з сервером по SSH
rsync -avz --progress ./site/ user1@your_IP:/var/www/user1/data/www/example.com/www/
# Повторний запуск докачає лише змінені файли
Пасивний режим FTP (для файрволу)
# ISPmanager → Налаштування → FTP-сервер → Діапазон пасивних портів
# Приклад: 49152-65534
# Відкрийте ці порти в UFW:
sudo ufw allow 49152:65534/tcp
Без відкритого діапазону пасивних портів підключення по FTP часто «зависає» на команді LIST: команди керування по 21-му порту проходять, а канал передавання даних на випадковому високому порту блокується файрволом.
Типові помилки FTP-підключення
| Повідомлення | Що означає |
|---|---|
530 Login incorrect | Невірний логін або пароль, або користувача заблоковано в панелі |
425 Unable to build data connection | Не відкрито діапазон пасивних портів на файрволі, або NAT не пробрасує їх |
550 Permission denied | У користувача немає прав на запис у вказану директорію, або перевищено квоту |
| Список файлів порожній, хоча вони є на сервері | Chroot вказує не на ту директорію — користувач бачить лише вміст свого кореня |
FTP, FTPS і SFTP: порівняння
| Критерій | FTP | FTPS | SFTP |
|---|---|---|---|
| Шифрування | Немає | Так (TLS) | Так (SSH) |
| Порт | 21 | 21 (explicit) або 990 (implicit) | 22 |
| Потрібен окремий діапазон портів | Так, для пасивного режиму | Так, для пасивного режиму | Ні |
| Працює через один порт файрволу | Ні | Ні | Так |
Коли FTP не підходить
- Передаються облікові дані або конфіденційні файли клієнтів — звичайний FTP надсилає пароль відкритим текстом, це прямий ризик перехоплення у спільній мережі
- Сервер стоїть за жорстким NAT або хмарним файрволом без можливості прокинути широкий діапазон портів — пасивний режим FTP/FTPS не запрацює стабільно, SFTP вирішує цю проблему одним портом
- Потрібна синхронізація файлів скриптом за розкладом — для автоматизації зручніший SFTP з ключем без пароля, ніж FTP з паролем у відкритому конфігу
- Клієнт підключається з мережі з непередбачуваним NAT (мобільний інтернет, частина корпоративних VPN) — пасивний діапазон портів FTP там часто ламається непередбачувано, а SFTP працює стабільно через єдиний порт
Перевірка результату
Після створення FTP-користувача переконайтеся, що доступ дійсно обмежений потрібною директорією, а не всією файловою системою користувача панелі.
# Підключення і перевірка поточної директорії
ftp ftp.example.com
> pwd
257 "/" is the current directory
# Спроба вийти за межі chroot має провалитися
> cd /etc
550 /etc: No such file or directory
Якщо команда cd /etc усередині FTP-сесії виконується успішно — chroot налаштовано невірно, і користувач потенційно бачить файли інших сайтів. Див. також створення сайту в ISPmanager 6 та налаштування файрволу для діапазону пасивних портів.