FTP_setting
3. Создание FTP-пользователя
bash
# Создаём пользователя (можно без shell, если не нужен SSH-доступ)
sudo useradd -m -s /bin/bash ftpuser
sudo passwd ftpuser
# Добавляем в белый список vsftpd
echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist
# Настраиваем права (chroot требует, чтобы директория не была записываемой для группы/остальных)
sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser
# Создаём пользователя (можно без shell, если не нужен SSH-доступ)sudo useradd -m -s /bin/bash ftpusersudo passwd ftpuser# Добавляем в белый список vsftpdecho "ftpuser" | sudo tee -a /etc/vsftpd.userlist# Настраиваем права (chroot требует, чтобы директория не была записываемой для группы/остальных)sudo chown ftpuser:ftpuser /home/ftpusersudo chmod 755 /home/ftpuser
=================================================
Отлично! Вывод показывает, что vsftpd успешно запущен и работает (Active: active (running)).
💡 Примечание по терминалу: Длинный текст с SUMMARY OF LESS COMMANDS появился потому, что вывод команды автоматически попал в постраничный просмотрщик less. Чтобы выйти из него, просто нажмите клавишу q.
✅ Что делать дальше?
1. Проверьте, что порты действительно слушаются
bash
1
sudo ss -tlnp | grep -E ':21|:40000'
Должны быть строки с LISTEN на портах 21 и 40000-40100.
2. Протестируйте подключение
Локально:
bash
1
2
3
ftp localhost
# Введите логин (например, ftpuser) и пароль
# Команда `ls` должна показать содержимое, `bye` — выход
С другого компьютера: замените localhost на IP-адрес вашего сервера Astra.
3. Убедитесь в корректных правах для chroot
vsftpd с allow_writeable_chroot=YES может отказывать в подключении, если права на домашнюю папку выставлены неверно:
bash
1
2
sudo chmod 755 /home/ftpuser
sudo chown ftpuser:ftpuser /home/ftpuser
(Папка должна быть доступна для чтения/выполнения владельцу и группе, но не записываемой для "остальных")
4. Настройте фаервол (если сервер доступен из сети)
bash
1
2
3
4
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 40000:40100 -j ACCEPT
sudo netfilter-persistent save 2>/dev/null || sudo sh -c "iptables-save > /etc/iptables/rules.v4"
⚠️ Важно по безопасности
Обычный FTP передаёт логин, пароль и файлы в открытом виде. Если сервер будет доступен извне:
- Включите FTPS (TLS в vsftpd)
- Или используйте встроенный SFTP (через SSH, порт 22), который уже работает на вашей Astra Linux и шифрует всё автоматически.
На каком этапе нужна помощь?
- Клиент выдаёт ошибку 530 Login incorrect или 421 Service not available?
- Нужно подключить пользователя к конкретной папке вне /home?
- Требуется пошаговая настройка FTPS/TLS?
Напишите, и я сразу дам точное решение под вашу ситуацию. 🛠️