ProFTP
Установка ProFTP Ubuntu 18.04
Установка необходимых пакетов
~]$ apt update
~]$ apt install proftpd-basic
Создание файла паролей и груп
По умолчанию после установки пакета имеем специально созданный каталог и пользователя, их и будем использовать для виртуальных пользователей.
~]$ cat /etc/passwd | grep ftp
proftpd:x:111:65534::/run/proftpd:/usr/sbin/nologin # пользователь от которого работает демон proftp
ftp:x:112:65534::/srv/ftp:/usr/sbin/nologin # то что нам нужно
~]$ ls -la /srv/ftp/
total 16
drwxr-xr-x 3 ftp nogroup 4096 Mar 22 11:54 .
drwxr-xr-x 3 root root 4096 Mar 22 11:06 ..
-rw-r--r-- 1 root root 170 Jan 10 2018 welcome.msg
Имеем:
uid=112(ftp) gid=65534(nogroup) и домашняя директория /srv/ftp
Их и будем использовать.
Создадим тестового пользователя
~]$ ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=user1 --uid=112 --gid=65534 --home=/srv/ftp/user1 --shell=/usr/sbin/nologin --stdin user1passwd # --name=user1 пользователь, --stdin user1passwd его пароль
~]$ ftpasswd --group --name=nogroup --file=/etc/proftpd/ftpd.group --gid=65534 --member user1 # добавление пользователя в группу
~]$ mkdir /srv/ftp/user1; chown ftp.nogroup /srv/ftp/user1 # создание домашней дириектории
Редактирование конфига
Создадим конфиг для виртуальных пользователей
cat <<EOF > /etc/proftpd/conf.d/vuser.conf
AuthUserFile /etc/proftpd/ftpd.passwd
AuthGroupFile /etc/proftpd/ftpd.group
AuthOrder mod_auth_file.c
LoadModule mod_auth_file.c
EOF
Обозначаем файлы с паролями, порядок авторизации, подключаем модуль авторизации через файл.
Перезапускаем и проверяем любым ftp клиентом.
~] systemctl restart proftpd.service
Установка ProFTP CentOS 6
yum install proftpd
Загрузка ftpasswd
mkdir /etc/proftpd/ cd /etc/proftpd wget http://www.castaglia.org/proftpd/contrib/ftpasswd chmod 755 ftpasswd
Правка конфига proftpd.conf
открываем конфиг:
vim /etc/proftpd.conf
добавляем строки:
RequireValidShell off AuthOrder mod_auth_file.c AuthUserFile /etc/proftpd/ftpd.passwd AuthGroupFile /etc/proftpd/ftpd.group DefaultRoot ~
комментируем существующие параметры AuthOrder и DefaultRoot создаем или используем существующую папку для FTP доступа, например - /var/www/html :)
Создаем пользователей(я) и группу ftpasswd
./ftpasswd --passwd --name=ftpuser --home=/var/www/html --shell=/bin/false --uid=105 --gid=2000 ./ftpasswd --group --name=ftpusers --gid=2000 --member=ftpuser
про использование ftpasswd можно почитать здесь, если необходимо изменить пароль существующему пользователю, можно воспользоваться командой:
ftpasswd --passwd --name=ftpuser --change-password
Устанавливаем разрешения на каталог html
chown -R 2000:2000 /var/www/html chmod -R 775 /var/www/htmlПо умолчанию ведение логов в ProFTPD у меня было отключено, ниже рассскажу как быстро включить логгирование в proFTPD.
Добавляем Proftpd в автозагрузку
chkconfig proftpd on
стартуем:
service proftpd start
Логгирование
Создаем файлы:
touch /var/log/proftpd/proftpd.log touch /var/log/proftpd/xfer.log touch /var/log/proftpd/access.log touch /var/log/proftpd/auth.log
Правим конфигурационный файл:
vim /etc/proftpd.conf
Добавив \ изменив строки формата логов:
LogFormat default «%h %l %u %t \»%r\» %s %b» LogFormat auth «%v [%P] %h %t \»%r\» %s» LogFormat write «%h %l %u %t \»%r\» %s %b»
и расположения:
SystemLog /var/log/proftpd/proftpd.log TransferLog /var/log/proftpd/xfer.log ExtendedLog /var/log/proftpd/access.log WRITE,READ write ExtendedLog /var/log/proftpd/auth.log AUTH auth
перезапускаем сервис:
service proftpd start
Подключаемся к FTP, проводим пару операций с файлами, проверяем логи.
Примечание: можно так же установить уровень логгирования директивой DebugLevel, уровени выставляются от 0 до 9