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 и настройку файрволла для диапазона пассивных портов.