Беря пример с Microsoft Active Directory, можно интегрировать
LDAP-директорию пользователей с FTP-сервисом на основе ProFTPd. Кроме
того, что в качестве аутентификационной базы пользователей можно
использовать LDAP, в нем можно хранить и дополнительные средства
авторизации - такие как данные о лимитах для пользователей (quota).
ProFTPd должен быть собран с поддержкой LDAP (В Debian 4.0 Etch с этим
всё в порядке). В качестве LDAP-сервиса использовался OpenLDAP 2.3.30
(тоже из Debian-репозитария пакетов).
Первым делом следует добавить описание атрибута ftpQuota в nis-схему
(файл /etc/ldap/schema/nis.schema).
attributetype ( 1.3.6.1.1.1.1.28 NAME 'ftpQuota'
DESC 'Quota FTP'
EQUALITY caseIgnoreIA5Match
SUBSTR caseIgnoreIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
SINGLE-VALUE )
objectclass ( 1.3.6.1.1.1.2.0 NAME 'posixAccount'
DESC 'Abstraction of an account with POSIX attributes'
SUP top AUXILIARY
MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory )
MAY ( userPassword $ loginShell $ gecos $ description $ ftpQuota )
)
После этого перезапустить LDAP-сервис и удостовериться, что он
нормально принял внесенные изменения
Отредактировать основной конфигурационный файл ftp-сервиса -
/etc/proftpd/proftpd.conf. Добавить строки
LDAPServer localhost
LDAPDNInfo "cn=searcher,o=My Company,c=LT" password
LDAPDoAuth on "ou=Sites,o=My Company,c=LT" "(&(uid=%v)
(objectclass=posixAccount))"
LDAPDefaultGID 106
LDAPDefaultUID 65534
LDAPForceDefaultGID off
LDAPForceDefaultUID off
LDAPDoQuotaLookups on "ou=Users,o=My Company,c=LT" "(&(uid=%v)(objectclass=posixAccount))"
QuotaLimitTable ldap:
QuotaLock /tmp/quota
QuotaEngine on
QuotaDirectoryTally on
QuotaDisplayUnits Mb
QuotaLog "/var/log/proftpd/quota.log"
QuotaShowQuotas on
QuotaTallyTable file:/var/log/ftpquota.tally
LDAPDNInfo - необходим, если у вас закрыт доступ для анонимного
пользователя
LDAPDoAuth - аутентификация, база для поиска пользователя (по uid)
LDAPDoQuotaLookups - включить поиск квот, база для поиска
Перед перезапуском ftp-сервиса, чтобы изменения вступили в силу,
необходимо создать файл /var/log/ftpquota.tally, который будет
меняться, храня информацию об использовании лимитов
ftp-пользователями.
# ftp localhost
Connected to localhost.
220 ProFTPD 1.3.0 Server (Debian) [127.0.0.1]
Name (localhost:root): ftpuser
331 Password required for ftpuser.
Password:
230 User ftpuser logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quote SITE QUOTA
200-The current quota for this session are [current/limit]:
200-Name: ftpuser
200-Quota Type: User
200-Per Session: False
200-Limit Type: Soft
200- Uploaded Mb: 4.08/10.00
200- Downloaded Mb: unlimited
200- Transferred Mb: unlimited
200- Uploaded files: unlimited
200- Downloaded files: unlimited
200- Transferred files: unlimited
200 Please contact root@server if these entries are inaccurate
Ссылки:
1. ProFTPd + OpenLDAP + quota
2. ProFTPD module mod_quotatab_ldap
3. ProFTPd - List of Directives
983 Прочтений • [ProFTPd + LDAP - пользователи и их квоты (ftp ldap auth quote)] [08.05.2012] [Комментариев: 0]