====== 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}}