Установка
yum install vsftpd
Очистка каталога с конфигом
rm -rf /etc/vsftpd/*
Создание конфига
vim /etc/vsftpd/vsftpd.conf
Конфиг
#_____________Настройки сервиса # Запуск сервера в режиме службы listen=YES # Работа в фоновом режиме background=YES # Имя pam сервиса для vsftpd pam_service_name=vsftpd #_____________Настройки пользователей # Запрещает подключение анонимных пользователей anonymous_enable=NO # Каталог, куда будут попадать анонимные пользователи, если они разрешены #anon_root=/ftp # Разрешает вход для локальных пользователей local_enable=YES # Разрешены команды на запись и изменение write_enable=YES # Включение специальных ftp команд, некоторые клиенты без этого могут зависать async_abor_enable=YES # Локальные пользователи по-умолчанию не могут выходить за пределы своего домашнего каталога chroot_local_user=YES # Разрешить список пользователей, которые могут выходить за пределы домашнего каталога chroot_list_enable=YES # Список пользователей, которым разрешен выход из домашнего каталога chroot_list_file=/etc/vsftpd/chroot_list # Разрешить запись в корень chroot каталога пользователя allow_writeable_chroot=YES # Контроль доступа к серверу через отдельный список пользователей userlist_enable=YES # Файл со списками разрешенных к подключению пользователей userlist_file=/etc/vsftpd/user_list # Пользователь будет отклонен, если его нет в user_list userlist_deny=NO # Директория с настройками пользователей user_config_dir=/etc/vsftpd/users #_____________Настройки сети # Входящие соединения контролируются через tcp_wrappers tcp_wrappers=NO # Указывает исходящим с сервера соединениям использовать 20-й порт connect_from_port_20=YES # Порты для пассивного режима работы pasv_min_port=49000 pasv_max_port=55000 #_____________Настройки логирование # Логирование всех действий на сервере xferlog_enable=YES # Путь к лог-файлу xferlog_file=/var/log/vsftpd.log #_____________Прочее # Показывать файлы, начинающиеся с точки force_dot_files=YES # Маска прав доступа к создаваемым файлам local_umask=022
Создание пользователей
useradd -s /sbin/nologon user1 useradd -s /sbin/nologon user2
В файле
/etc/pam.d/vsftpdстрока
auth required pam_shells.soпроверяет под какой оболочкой подключается пользователь и запрещает подключатся под nologin, ее нужно закомментировать символом # для игнорирования проверки оболочки.
Создание каталога для настроек пользователей
mkdir /etc/vsftpd/users
Создание файлов с параметрами конкретных пользователей
touch /etc/vsftpd/users/user1 touch /etc/vsftpd/users/user2
Указание в файлах параметров пользователей каталоги пользователей
sh -c "echo 'local_root=/usr/share/nginx/s1.ru/' >> /etc/vsftpd/users/user1" sh -c "echo 'local_root=/usr/share/nginx/s2.ru/' >> /etc/vsftpd/users/user2"
Назначение прав на каталоги, точка устанавливает такое же имя группы как имя пользователя
chown user1. /usr/share/nginx/s1.ru chown user2. /usr/share/nginx/s2.ru
Указание пользователей, которые могут выходить за пределы своего каталога
touch /etc/vsftpd/chroot_list sh -c "echo 'root' >> /etc/vsftpd/chroot_list"
Создание файла, разрешающего подключение пользователям
touch /etc/vsftpd/user_list sh -c "echo 'root' >> /etc/vsftpd/user_list" sh -c "echo 'user1' >> /etc/vsftpd/user_list" sh -c "echo 'user2' >> /etc/vsftpd/user_list"
Создание файла для логов
touch /var/log/vsftpd.log && chmod 600 /var/log/vsftpd.log
Разрешение файрвола
firewall-cmd --permanent --zone=public --add-service=ftp firewall-cmd --reload
Разрешение подключения к ftp через SELinux
setsebool -P ftpd_full_access on
Запуск и добавление в автозагрузку
systemctl start vsftpd systemctl enable vsftpd
Проверить работу можно подключившись командой с нужным ip-адресом
ftp 192.168.10.15ввести логин и пароль.