Установка и настройка ftp службы VSFTPD
> LinuxДата обновления: 23 мая 2024 г. Дата публикации: 23 мая 2024 г. Автор: Стрекаловский Александр
1. VSFTPD установка на ubuntu
Установим пакет VSFTPD.
sudo yum install vsftpd
Получим статус службы.
sudo systemctl status vsftpd
Добавим службу в автозагрузку.
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 требуемый каталог для публикации.
Предоставим пользователю права на каталог /ftp/usr1.
mkdir /ftp/usr1
chown usr1:usr1 /ftp/usr1
Разрешим пользователю вход через ftp.
echo usr1 >> /etc/vsftpd/user_list