ProFTP: различия между версиями
Sol (обсуждение | вклад) (Новая страница: « == Установка ProFTP == yum install proftpd == Загрузка ftpasswd == mkdir /etc/proftpd/ cd /etc/proftpd wget http://www.castaglia.org/pro…») |
Sol (обсуждение | вклад) |
||
Строка 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