proftpd and mod_ldap howto

Введение

Целью этого How-To является облегчение связки Proftpd и OpenLDAP, в котором будут храниться учетные записи виртуальных ftp-пользователей

  1. Установка proftpd

Сперва его надо пересобрать на предмет mod_ldap.c, поскольку в Сизифе он собран без такового. Проверить наличие можно, сделав #proftpd -l | grep mod_ldap.c У меня с mod_ldap.c, который шел в составе родного .src.rpm собираться не захотело, поэтому пришлось извращаться- качаем с proftpd.org последний mod_ldap.c и кладем его в /SOURCES/. Теперь в spec-файле дописываем :
Source5: mod_ldap.c
И после PatchN дописываем
%__cp -f %SOURCE5 -f ./contrib
В строчку --with-modules добавляем mod_ldap, исправляем версию proftpd и вперед :

$rpm -ba proftpd.spec

Итого, у нас готовая rpm`ка в ./RPM/RPMS/k6/ (у меня athlon, поэтому в k6)- её-то и ставим -

#rpm -avh proftpd-1.2.10rc1-alt2solar.k6.rpm

В принципе, можно сделать немного быстрее и проще, но это будет не кошерно, как меня поправил thresh: скопировать скаченный mod_ldap.c в /contrib/ поверх mod_ldap.c из .src.rpm и исправить только строчку --with-modules (ну и версию, естественно)

2. Настройка proftpd

Будем считать, что proftpd уже настроен по вкусу и осталось его только научить забирать логины/пароли из ldap:

#joe /etc/proftpd.conf

...

LDAPServer      localhost
LDAPDNInfo      cn=Manager,dc=mytyshi.ru yourROOTPW
LDAPDoAuth      on uid=%v,ou=users,dc=mytyshi.ru
LDAPAuthBinds   on
LDAPDoUIDLookups        off
LDAPDoGIDLookups        off
LDAPHomedirOnDemand     off
LDAPHomedirOnDemandPrefix       /var/ftp/pub
LDAPDefaultAuthScheme   clear
PersistentPasswd        off

#AuthPAMAuthoritative off
...

3. OpenLDAP

Вот мы и подобрались к концу этого удивительного путешествия без движения:) - к OpenLDAP - осталось только завести пользователей : #less /etc/openldap/ldifs/ftp.ldif

dn: uid=test,ou=users,dc=mytyshi,ru
objectClass: posixAccount
objectClass: posixGroup
cn: test
userPassword: testpass
homeDirectory: /home/test/incoming
loginShell: /bin/bash
uidNumber: 501
gidNumber: 501
uid: test

Пользователей можно чрутить, скажем, в /var/ftp, но мне было удобнее в /home/test/incoming. P.S.: В принципе, еще можно добавить mod_conf_ldap, чтобы весь proftpd.conf хранился в ldap-директориях, если надо кому - пишите в личку (solar sobaka solar dot net dot ru),можно будет сделать это по требованию.

Михаил solar Покидько (solar at solar dot net dot ru)