Это старая версия документа!
ProFTPd — FTP-сервер для Linux.
apt-get install proftpd apt-get install proftpd proftpd-mod-ldap apt-get install proftpd-doc
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 <IfModule mod_quotatab.c> QuotaEngine off </IfModule> <IfModule mod_ratio.c> Ratios off </IfModule> <IfModule mod_delay.c> DelayEngine on </IfModule> <IfModule mod_ctrls.c> ControlsEngine off ControlsMaxClients 2 ControlsLog /var/log/proftpd/controls.log ControlsInterval 5 ControlsSocket /var/run/proftpd/proftpd.sock </IfModule> <IfModule mod_ctrls_admin.c> AdminControlsEngine off </IfModule> 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=/usr/sbin/nologin --file /etc/proftpd/proftpd.passwd
Необходимо проверить, есть ли указанные для пользователей оболочки в файле.
ftpasswd --passwd --name=FTP-User --file /etc/proftpd/proftpd.passwd --change-password
Пример работы с сервером OpenLDAP
LoadModule mod_ldap.c
<IfModule mod_ldap.c> LDAPServer ldap://ldap/??sub LDAPBindDN "cn=admin,dc=organization" "PASSWORD" LDAPUsers ou=ftp,dc=organization (uid=%u) (uidNumber=%u) LDAPSearchScope subtree </IfModule>
AuthOrder mod_ldap.c Include /etc/proftpd/ldap.conf
Таблицы:
quota.limittab
— лимиты для пользователейquota.tallytab
— размер файлов созданных пользователемНастройка сервера:
<IfModule mod_quotatab.c> 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 </IfModule>
Параметр 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
#!/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
#!/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