proftpd and mod_ldap howto
Введение
Целью этого How-To является облегчение связки Proftpd и OpenLDAP, в котором будут храниться учетные записи виртуальных ftp-пользователей
Сперва его надо пересобрать на предмет 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)