Инструменты пользователя

Инструменты сайта


proftpd:proftpd

ProFTPd

ProFTPd — FTP-сервер для Linux.

http://www.proftpd.org

Установка

apt-get install proftpd
apt-get install proftpd proftpd-mod-ldap
apt-get install proftpd-doc

Настройка

DELETEME

proftpd.conf

proftpd.conf

/etc/proftpd/proftpd.conf
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

Работа с файлом паролей

/etc/proftpd/proftpd.conf
AuthUserFile    /etc/proftpd/proftpd.passwd
AuthGroupFile   /etc/proftpd/proftpd.group
/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

Пример работы с LDAP

FIXME

Пример работы с сервером OpenLDAP

/etc/proftpd/modules.conf
LoadModule mod_ldap.c
/etc/proftpd/ldap.conf
<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>
/etc/proftpd/proftpd.conf
AuthOrder mod_ldap.c
Include /etc/proftpd/ldap.conf

Квоты

FIXME

Таблицы:

  • quota.limittab — лимиты для пользователей
  • quota.tallytab — размер файлов созданных пользователем

Инициализация

Настройка сервера:

/etc/proftpd/proftpd.conf
<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 позволяет производить пересчёт размеров файлов в папке пользователя при его входе на сервер.

Создание таблиц (выполняется один раз):

proftpd-quota-prepare.sh
#!/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 Гб:

proftpd-quota-create.sh
#!/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 Гб:

proftpd-quota-change.sh
#!/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:

proftpd-quota-delete.sh
#!/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

Быстро и просто Proftpd - квоты и авторизация из файлов.

Ссылки

proftpd/proftpd.txt · Последние изменения: 2019-10-16 10:31 — GreyWolf