FTP

Ubuntu Server 24.04. Встановлений UFW. Зробити можливість користувачу завантажувати файли на сервер за допомогою FTP-протоколу. З'єднання дозволити лише для певних IP адрес.

Щоб дозволити користувачу завантажувати файли на сервер через FTP на Ubuntu Server 24.04, використовуючи UFW для контролю доступу лише з певних IP-адрес, дій так:


1. Встановлення FTP-сервера

Найпоширеніше рішення — vsftpd:

sudo apt update
sudo apt install vsftpd

2. Базове налаштування vsftpd

Відредагуй конфіг:

sudo nano /etc/vsftpd.conf

Основні параметри (переконайся, що вони активні або додай):

listen=YES
listen_ipv6=NO

anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES

user_sub_token=$USER
local_root=/home/$USER/ftp

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30100

pasv_min_port і pasv_max_port обирай на свій розсуд, але вони мають бути відкриті у файрволі.

Збережи й перезапусти службу:

sudo systemctl restart vsftpd

3. Створення користувача для FTP

sudo adduser ftpuser

Створи каталог:

sudo mkdir -p /home/ftpuser/ftp/upload
sudo chown nobody:nogroup /home/ftpuser/ftp
sudo chmod a-w /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp/upload

4. Налаштування UFW (лише для певних IP)

Припустимо, дозволити доступ лише для IP 203.0.113.4 та 198.51.100.7.

Відкрий порти тільки для обраних IP:

sudo ufw allow from 203.0.113.4 to any port 21 proto tcp
sudo ufw allow from 203.0.113.4 to any port 30000:30100 proto tcp

sudo ufw allow from 198.51.100.7 to any port 21 proto tcp
sudo ufw allow from 198.51.100.7 to any port 30000:30100 proto tcp

Перевір статус:

sudo ufw status verbose

5. Перевірка з'єднання

З клієнтської машини (з одного з дозволених IP), спробуй підключення:

ftp your.server.ip

або через FileZilla, вказуючи:

  • Хост: your.server.ip

  • Протокол: FTP

  • Порт: 21

  • Користувач: ftpuser

  • Пароль: ваш встановлений


6. (Опціонально) Дозволити лише FTPS (FTP через TLS)

Якщо хочеш зашифрувати з’єднання, vsftpd підтримує TLS. Можу дати інструкцію окремо, якщо потрібно.


Пиши, якщо потрібно:

  • Обмежити доступ лише на завантаження (без скачування)

  • Встановити FTPS

  • Зробити логування дій користувачів

  • Автоматично видаляти старі файли з певної директорії

Я готова.

Last updated