ставим сам пакет proftpd из репозитория:
yum install proftpd proftpd-utils
Открываем конфиг /etc/proftpd.conf добавляем туда строки:
AuthUserFile /etc/ftpd.passwd
RequireValidShell off
AuthPAM off
RootLogin off
#UseFtpUsers on
PassivePorts 30000 35000
Проверяем или есть настройка закрыть пользователя в его домашней директории чтобы не мог видеть другие каталоги в системе
DefaultRoot ~
найти и закоментировать настройку AuthOrder в конфиге /etc/proftpd.conf. Добавить в таком виде:
LoadModule mod_auth_file.c
AuthOrder mod_auth_file.c
таким образом мы отключили другие способы авторизации, оставили только через наш файл виртуальных пользователей.
На этом редактирование конфига proftpd закончили, нужно создать файл /etc/ftpd.passwd и добавить пользователей.
ftpasswd --passwd --name ftpuser --uid 1001 --home /home/user/project/somefolder/ --shell /bin/false --file /etc/ftpd.passwd
нужно будет два раза ввести пароль пользователя, после чего все данные запишутся в файл /etc/ftpd.passwd
–name ftpuser имя виртуального пользователя
–uid 1001 указывается ID пользователя в системе под которым будет логиниться виртуальный созданный пользователь.
–home /home/user/project/somefolder/ указали папку в которую пользователь будет иметь доступ и не сможет выйти выше блягодаря настройке “DefaultRoot ~”
фиксим права доступа на файл с пользователями:
chgrp nobody /etc/ftpd.passwd
chmod 640 /etc/ftpd.passwd
Если используется firewalld в системе, открываем нужные порты:
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --add-port=30000-35000/tcp --permanent
firewall-cmd --reload
ребутим сам proftpd
systemctl restart proftpd
на этом все :), минимальная настройка FTP сервера proftpd готова c авторизацией через файл с вирт. пользователями.
Спасибо за инструкцию, но не заработало на proftpd v1.3.5b на CentOS 7 (EPEL)
Там в конфиге не было строки, подгружающей сам модуль.
Нужно добавить самому:
LoadModule mod_auth_file.c
Спасибо, добавил в инструкцию. Видимо утерял при написании или может в конфиге уже была такая строка по умолчанию.