POWERED BY RBSOFT

Установка и настройка ftp службы VSFTPD

> Linux
Дата обновления: 23 мая 2024 г. Дата публикации: 23 мая 2024 г. Автор: Стрекаловский Александр

1. VSFTPD установка на ubuntu

Установим пакет VSFTPD.

sudo yum install vsftpd

Получим статус службы.

sudo systemctl status vsftpd

1

Добавим службу в автозагрузку.

sudo systemctl enable vsftpd

2. Конфигурирование службы

Конфигурирование производится редактированием файла /etc/vsftpd.conf.

#включаем ipv4
listen=yes
#pam сервис для аутентификации
pam_service_name=vsftpd
#запрещаем анонимный доступ
anonymous_enable=NO
#разрешаем доступ для пользователей Linux /etc/passwd
local_enable=YES
#Разрешаем изменять файловую систему
write_enable=YES
#Если опция включена, vsftpd будет отображать список директорий со временем в локальной временной зоне.
use_localtime=YES
#лог загрузок и скачиваний
xferlog_enable=no
#поддержка активного ftp (инициатор предачи клиент. он передает номер порта на который подключится служба с 20 порта)
connect_from_port_20=YES
#изоляция локального пользователя в каталоге
chroot_local_user=YES
#Подключить список пользователей которые не будут изолированы в каталоге
chroot_list_enable=YES
#путь к списку пользователей
chroot_list_file=/etc/vsftpd/chroot_list
#разрешить запись в изолированном режиме (подключает и чтение тутже)
allow_writeable_chroot=YES
#проверять валидность обработчика
check_shell=no
#указываем каталог с конфигурациями для каждого пользователя
user_config_dir=/etc/vsftpd/users

# Контроль доступа к серверу через отдельный список пользователей
userlist_enable=YES
# Файл со списками разрешенных к подключению пользователей user_list
userlist_file=/etc/vsftpd/user_list

# Пользователь будет отклонен, если его нет в user_list
userlist_deny=NO
# Маска прав доступа к создаваемым файлам
local_umask=022
#порты для passsive ftp
pasv_min_port=20000
pasv_max_port=30000

В файл /etc/vsftpd/user_list записываем имя пользователя которому требуется доступ к FTP.

Не перечисленные в файле пользователи не смогут подключиться к ftp

В файле /etc/vsftpd/chroot_list указываются пользователи у которых будет доступ к корню файловой системы.

В папке /etc/vsftpd/users создается файлы с названием имён пользователя, в котором устанавливаются директивы применимые к пользователю. Чаще всего для установки каталога доступа

#пользователь изолирован в каталоге /ftp/
local_root=/ftp/

3. Настройка pam.d отключение проверки оболочки

Файл конфигурации /etc/pam.d/vsftpd

# Standard behaviour for ftpd(8).
#запрещаем логин пользователям которые указаны в файле /etc/vsftpd/ftpusers
auth    required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
@include common-account
@include common-session
@include common-auth
#V Отключаем проверку командной оболочки
#auth   required    pam_shells.so

Отключение проверки командной оболочки позволит установить запрет на вход по ssh xrdp и т.д. Для запрета потребуется установить командную оболочку /usr/sbin/nologin на пользователя ftp.

4. Создание пользователя с доступом только в каталоге /ftp/usr1

Создадим пользователя usr1 с командной оболочкой /usr/sbin/nologin.

useradd usr1 -s /usr/sbin/nologin

Создадим его домашний каталог /home/usr1

mkdir /home/usr1

Создадим файл /etc/vsftpd/users/usr1 и укажем директивой local_root=/ftp/usr1 требуемый каталог для публикации.

2

Предоставим пользователю права на каталог /ftp/usr1.

mkdir /ftp/usr1
chown usr1:usr1 /ftp/usr1

Разрешим пользователю вход через ftp.

echo usr1 >> /etc/vsftpd/user_list