ProFTP

Материал из Webko Wiki
Перейти к навигации Перейти к поиску

Установка 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