ProFTP: различия между версиями

Материал из Webko Wiki
Перейти к навигации Перейти к поиску
(Новая страница: « == Установка ProFTP == yum install proftpd == Загрузка ftpasswd == mkdir /etc/proftpd/ cd /etc/proftpd wget http://www.castaglia.org/pro…»)
 
 
Строка 1: Строка 1:
  
== Установка ProFTP ==
+
== Установка ProFTP Ubuntu 18.04 ==
 +
=== Установка необходимых пакетов ===
 +
<syntaxhighlight lang="bash">
 +
~]$ apt update
 +
~]$ apt install proftpd-basic
 +
</syntaxhighlight>
 +
=== Создание файла паролей и груп ===
 +
По умолчанию после установки пакета имеем специально созданный каталог и пользователя, их и будем использовать для виртуальных пользователей.
 +
<syntaxhighlight lang="bash">
 +
~]$ 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
 +
</syntaxhighlight>
 +
Имеем:
 +
uid=112(ftp) gid=65534(nogroup) и домашняя директория /srv/ftp
 +
 
 +
Их и будем использовать.
 +
 
 +
Создадим тестового пользователя
 +
<syntaxhighlight lang="bash">
 +
~]$ 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          # создание домашней дириектории
 +
</syntaxhighlight>
 +
 
 +
=== Редактирование конфига ===
 +
Создадим конфиг для виртуальных пользователей
 +
<syntaxhighlight lang="bash">
 +
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
 +
</syntaxhighlight>
 +
Обозначаем файлы с паролями, порядок авторизации, подключаем модуль авторизации через файл.
 +
 
 +
Перезапускаем и проверяем любым ftp клиентом.
 +
<syntaxhighlight lang="bash">
 +
~] systemctl restart proftpd.service
 +
</syntaxhighlight>
 +
 
 +
== Установка ProFTP CentOS 6 ==
  
 
  yum install proftpd
 
  yum install proftpd
  
  
== Загрузка ftpasswd ==
+
=== Загрузка ftpasswd ===
  
 
  mkdir /etc/proftpd/
 
  mkdir /etc/proftpd/
Строка 13: Строка 60:
  
  
== Правка конфига proftpd.conf ==
+
=== Правка конфига proftpd.conf ===
  
  
Строка 32: Строка 79:
  
  
== Создаем пользователей(я) и группу ftpasswd ==
+
=== Создаем пользователей(я) и группу ftpasswd ===
  
 
  ./ftpasswd --passwd --name=ftpuser --home=/var/www/html --shell=/bin/false --uid=105 --gid=2000
 
  ./ftpasswd --passwd --name=ftpuser --home=/var/www/html --shell=/bin/false --uid=105 --gid=2000
Строка 52: Строка 99:
  
  
== Логгирование ==
+
=== Логгирование ===
  
 
Создаем файлы:
 
Создаем файлы:

Текущая версия на 17:33, 22 марта 2020

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