VSFTPD — это ярлык очень безопасного демона FTP и FTP-сервер для систем Unix, включая Linux. Vsftpd — это FTP-сервер по умолчанию в дистрибутивах Ubuntu, CentOS и RHEL. Системные администраторы ежедневно добавляют новых пользователей в системы и настраивают vsftpd, чтобы позволить пользователям загружать файлы или папки только в свои каталоги на сервере. Этот сценарий в основном предназначен для реселлеров, которые хотят, чтобы их пользователи имели ограниченный доступ.

Установка и настройка vsftpd для каталога пользователя в Ubuntu 22.04 — простой процесс. Давайте начнем!

Предпосылки

  • Сервер с Ubuntu 22.04 в качестве ОС
  • Права пользователя: пользователь root или обычный пользователь с привилегиями sudo

Шаг 1. Обновите систему

Свежая установка Ubuntu 22.04 требует обновления пакетов до последних доступных версий.

1
sudo apt-get update -y && sudo apt-get upgrade -y

Шаг 2. Установите демон vsftpd

Прежде чем мы начнем с настройки, мы установим демон VSFTPD с помощью следующих команд:

1
sudo apt install vsftpd

После установки запустите и включите файл vsftpd. служба.

1
sudo systemctl start vsftpd.service && sudo systemctl enable vsftpd.service

Шаг 3. Создайте пользователя

Следующим шагом будет создание пользователя. Для этого выполните следующую команду:

1
sudo adduser developer

Выполните команду, дважды введите пароль, пять раз нажмите Enter и подтвердите информацию клавишей Y.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
root@host:~# sudo adduser developer
Adding user `developer' ...
Adding new group `developer' (1001) ...
Adding new user `developer' (1001) with group `developer' ...
Creating home directory `/home/developer' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for developer
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] Y

Пользователь developer автоматически создается в каталоге /home/developer.

Теперь мы создадим каталог с именем ftp внутри домашнего каталога пользователя-разработчика.

1
mkdir /home/developer/ftp

После создания установите следующие разрешения для папки ftp.

1
2
chown nobody:nogroup /home/developer/ftp/
chmod a-w /home/developer/ftp

Шаг 4. Настройте FTP-доступ

Теперь, когда пользователь создан, мы можем приступить к настройке FTP-доступа.

Конфигурация VSFTPD хранится в файле /etc/vsftpd.conf. Прежде чем вносить какие-либо изменения, рекомендуется иметь копию файла.

1
cp /etc/vsftpd.conf /etc/vsftpd.conf.original
1
2
3
4
5
6
7
chroot_local_user=YES
write_enable=YES
user_sub_token=$USER
local_root=/home/$USER/ftp
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

После внесения этих изменений сохраните файл и перезапустите службу vsftpd.

1
sudo systemctl restart vsftpd.service

Далее нужно добавить пользователя разработчика в список /etc/vsftpd.userlist.

1
touch /etc/vsftpd.userlist && echo "developer" | sudo tee -a /etc/vsftpd.userlist

Шаг 5. Проверьте доступ к FTP

Перед проверкой соединения нам нужно открыть некоторые порты через сервис UFW.

1
sudo ufw allow 20,21/tcp

После этого проверьте статус ufw с помощью той же команды ufw status.

1
2
3
4
5
6
7
8
9
root@host:~# ufw status
Status: active

To                         Action      From
--                         ------      ----
20,21/tcp                  ALLOW       Anywhere
22/tcp                     ALLOW       Anywhere
20,21/tcp (v6)             ALLOW       Anywhere (v6)
22/tcp (v6)                ALLOW       Anywhere (v6)

Теперь выполните следующую команду, чтобы войти в систему с пользователем и паролем разработчика:

1
ftp -p server_ip_address

Введите пользователя и пароль разработчика. После входа в систему вы получите следующий вывод:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
root@host:~# ftp -p server_ip_address
Connected to 1server_ip_address.
220 (vsFTPd 3.0.5)
Name (server_ip_address:root): developer
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

Если вы попытаетесь войти в систему с другим пользователем, который не принадлежит к списку пользователей vsftpd, вы получите следующий вывод:

1
2
3
4
5
6
root@host:~# ftp -p server_ip_address
Connected to server_ip_address.
220 (vsFTPd 3.0.5)
Name (server_ip_address:root): other-user
530 Permission denied.
ftp: Login failed

Как видите, доступ запрещен для других пользователей. Это говорит нам о том, что мы успешно настроили vsftpd для каталога пользователя в Ubuntu 22.04.

Если вам понравился этот пост о том, как установить vsftpd для каталога пользователей в Ubuntu 22.04, поделитесь им с друзьями в социальных сетях. Спасибо.