# cd /usr/ports/ftp/proftpd/ # make config
Выбираем опцию LDAP.
# make install clean # rehash
2. Настройка ProFTPdОтредактируйте конфигурационный файл /usr/local/etc/proftpd.conf
ServerName "MY FTP Server" ServerType standalone DefaultServer on ScoreboardFile /var/run/proftpd.scoreboard Port 21 # Это если FTP не имеет реального IP MasqueradeAddress 22.22.22.22 # LDAP Section # Сервер с LDAP LDAPServer localhost # Пользователь в LDAP, с правом поиска LDAPDNInfo "cn=manager,dc=mycompany,dc=local" password # Поиск пользователей по uid LDAPDoAuth on "ou=users,dc=mycompany,dc=local" "(&(uid=%v)(objectclass=posixAccount))" Umask 022 MaxInstances 30 User nobody Group nogroup DefaultRoot ~ AllowOverwrite on <Limit SITE_CHMOD> DenyAll </Limit>
3. Запуск и отладкаНастройте автоматический запуск ProFTPd. Для этого добавьте в файл /etc/rc.conf такую строку:
proftpd_enable="YES"
Запустите ProFTPD:
# /usr/local/etc/rc.d/proftpd start
Проверьте наличие процесса:
# ps ax | grep ftp 60203 ?? Ss 0:00,01 proftpd: (accepting connections) (proftpd) 60207 p0 S+ 0:00,02 grep ftp
4. Настройка маршрутизатора4.1 Если ваш FTP сервер находится за сервером NAT, на котором запущен natd, тогда добавьте в конфигурационный файл /etc/natd.conf такие строки:
redirect_port tcp 192.168.1.2:21 21 redirect_port udp 192.168.1.2:21 21
4.2 Если ваш FTP сервер находится за маршрутизатором, который подключен по PPPoE, и нат выполняет ppp,
# ps ax | grep nat 1295 ?? Ss 0:35,11 /usr/sbin/ppp -quiet -auto -nat optima 7444 p0 R+ 0:00,00 grep nat
то добавьте в конфигурационный файл /etc/ppp/ppp.conf такие строки:
nat enable yes nat log yes nat same_ports yes nat unregistered_only yes nat port tcp 192.168.1.2:21 21 nat port udp 192.168.1.2:21 21
Примечание! В каждой строке перед nat стоит пробел.5. Настройка ipfwНастройте ipfw. На маршрутизатора добавьте такие строки:
${FwCMD} add allow log tcp from any to ${IpOut} 20,21 in via ${LanOut} setup ${FwCMD} add allow log tcp from any to ${ip_lan}.2 20,21 in via ${LanOut} setup ${FwCMD} add allow log tcp from any to ${ip_lan}.2 20,21 out via ${LanIn}
Где: IpOut - реальный IP; ip_lan - шаблон для внутренних адресов, например - 192.168.1; ${ip_lan}.2 - серый IP-адрес FTP - 192.168.1.2; LanOut - внешний сетевой интерфейс; LanIn - внутренний сетевой интерфейс.Примечание! У каждого пользователя есть домашний каталог на севере OpenLDAP вида /home/samba/homes/username. Он и будет корневым для пользователя, при условии, что LDAP и FTP на одном сервере.