====== ProFTPd ======
ProFTPd — [[ftp:ftp|FTP]]-сервер для Linux.
http://www.proftpd.org
====== Установка ======
apt install proftpd
apt install proftpd proftpd-mod-ldap
apt install proftpd-doc
====== Настройка ======
DELETEME
Include /etc/proftpd/modules.conf
UseIPv6 off
IdentLookups off
ServerName "FTP server"
ServerType standalone
DeferWelcome off
MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"
DenyFilter \*.*/
DefaultRoot ~
RequireValidShell off
Port 21
PassivePorts 65300 65533
MaxInstances 30
User proftpd
Group nogroup
Umask 002 002
AllowOverwrite on
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
SetEnv TZ :/etc/localtime
QuotaEngine off
Ratios off
DelayEngine on
ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
AdminControlsEngine off
AuthPAM off
CreateHome on 770
TCPUserAccessFiles Admin /etc/proftpd/proftpd-Admin.allow /etc/proftpd/proftpd-Admin.deny
Include /etc/proftpd/conf.d/
# Passwd file:
#AuthUserFile /etc/proftpd/proftpd.passwd
#AuthGroupFile /etc/proftpd/proftpd.group
# LDAP:
#Include /etc/proftpd/ldap.conf
===== Работа с файлом паролей =====
AuthUserFile /etc/proftpd/proftpd.passwd
AuthGroupFile /etc/proftpd/proftpd.group
nobody:x:65534:
==== Создание пароля пользователя ====
ftpasswd --passwd --name=FTP-User --uid=2001 --gid 65534 --home=/srv/ftp/FTP-User --shell=/bin/false --file /etc/proftpd/proftpd.passwd
:!: Необходимо проверить, есть ли указанные для пользователей оболочки в [[debian:debian#shells|файле]].
==== Изменение пароля пользователя ====
ftpasswd --passwd --name=FTP-User --file /etc/proftpd/proftpd.passwd --change-password
===== Пример работы с LDAP =====
FIXME
Пример работы с сервером [[openldap:openldap|OpenLDAP]]
LoadModule mod_ldap.c
LDAPServer ldap://ldap/??sub
LDAPBindDN "cn=admin,dc=organization" "PASSWORD"
LDAPUsers ou=ftp,dc=organization (uid=%u) (uidNumber=%u)
LDAPSearchScope subtree
AuthOrder mod_ldap.c
Include /etc/proftpd/ldap.conf
===== Квоты =====
FIXME
Таблицы:
* ''quota.limittab'' — лимиты для пользователей
* ''quota.tallytab'' — размер файлов созданных пользователем
==== Инициализация ====
Настройка сервера:
QuotaEngine on
QuotaOptions ScanOnLogin
QuotaDirectoryTally on
QuotaDisplayUnits Gb
QuotaShowQuotas on
QuotaLimitTable file:/etc/proftpd/quota.limittab
QuotaTallyTable file:/etc/proftpd/quota.tallytab
QuotaLog /var/log/proftpd/quota.log
Параметр ''QuotaOptions ScanOnLogin'' позволяет производить пересчёт размеров файлов в папке пользователя при его входе на сервер.
Создание таблиц (выполняется один раз):
#!/bin/bash
ftpquota --create-table --type=limit --table-path=/etc/proftpd/quota.limittab
ftpquota --create-table --type=tally --table-path=/etc/proftpd/quota.tallytab
==== Использование ====
Создание лимита для пользователя ''FTPuser'' в размере 5 Гбайт:
#!/bin/bash
UserName=FTPuser
ftpquota --name=$UserName \
--bytes-upload=5 --add-record --type=limit --quota-type=user \
--units=Gb --verbose --table-path=/etc/proftpd/quota.limittab
Изменение лимита для пользователя ''FTPuser'' на 50 Гбайт:
#!/bin/bash
UserName=FTPuser
ftpquota --name=$UserName --bytes-upload=50 --update-record --type=limit --quota-type=user \
--units=Gb --verbose --table-path=/etc/proftpd/quota.limittab
Удаление лимита для пользователя ''FTPuser'':
#!/bin/bash
UserName=FTPuser
ftpquota --delete-record --type=limit --name=$UserName --quota-type=user \
--table-path=/etc/proftpd/quota.limittab
ftpquota --delete-record --name=$UserName --verbose --quota-type=user \
--type=tally --table-path=/etc/proftpd/quota.tallytab
----
[[https://www.lissyara.su/articles/freebsd/programms/proftpd_quota_and_auth_from_file/|Быстро и просто Proftpd - квоты и авторизация из файлов.]]
====== Ссылки ======
* [[wpru>ProFTPd]]
* [[http://www.proftpd.org/docs/contrib/mod_ldap.html|ProFTPD module mod_ldap]]
* [[http://www.proftpd.org/docs/contrib/mod_quotatab_ldap.html|ProFTPD module mod_quotatab_ldap]]
* [[https://netpoint-dc.com/blog/proftpd-ftps-ssl-le/|Сервер ProFTPD с сертификатом Let's Encrypt | Блог NetPoint]]
* [[http://itblog.su/proftpd-listen-ip.html|Proftpd listen ip : IT блог — полезные заметки.]]
* [[https://itsecforu.ru/2018/08/29/%D0%BA%D0%B0%D0%BA-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C-proftpd-%D0%BD%D0%B0-centos-7/|Как установить ProFTPD на CentOS 7]]
{{tag>Network FTP}}