Установка и настройка FTP-сервера ProFTPD

09.09.2010 - 08:11

Необходимо было настроить FTP-сервер с авторизацией по user:passwd.
Первым делом обновляем порты и идем устанавливать:

[root@router /]# cd /usr/ports/ftp/proftpd
[root@router /usr/ports/ftp/proftpd]# make install clean

после установки идем настраивать конфигурационный файл:
[root@router /]#cat  /usr/local/etc/proftpd.conf

#имя сервера
ServerName                      "Home FTP:"
ServerAdmin                     "vlymar@lymar.no-ip.org"
#обычный запуск демоном, не через inetd
ServerType                      standalone
DeferWelcome                    off
MultilineRFC2228                on
DefaultServer                   on
ShowSymlinks                    on
ScoreboardFile          /var/run/proftpd.scoreboard
CommandBufferSize               512
ListOptions                     "-l"
#пользователь и группа, под которой работает демон proftpd
User                            nobody
Group                           nogroup
#порт по дефолту
Port                          21
#по каким портам осуществляется пассивное соединение
PassivePorts                    30000 35000
#маска ограничения создания директорий и файлов
Umask                           022
MaxInstances                    30
#меседж при входе
DisplayConnect /etc/ftp.msg
DefaultRoot /home/ftp

UseReverseDNS off
IdentLookups off

DenyFilter \*.*/
PathDenyFilter "(^|/)[-.]"

#установим ограничения по времени
TimeoutIdle 180
TimeoutLogin 120
TimeoutNoTransfer 360
TimeoutStalled 640

#где находятся логи
TransferLog /var/log/proftpd-tranfer.log
SystemLog /var/log/proftpd-error.log

#<Anonymous /home/ftp>
User ftp
Group ftp
UserAlias anonymous ftp
UserAlias guest ftp
MaxClients 50

DisplayChdir /etc/ftp_message.msg
DisplayLogin /etc/ftp_login.msg
AccessDenyMsg AHTUNG!!!
AccessGrantMsg Now apload/download files?
DisplayGoAway Go Away

#разрешаем запись в incoming
<Directory /home/ftp/incoming>
Umask 022 022
<Limit READ WRITE STOR>
AllowAll
</Limit>
</Directory>

#public только для чтения
<Directory /home/ftp/public>
<Limit READ>
AllowAll
</Limit>
<Limit WRITE STOR>
DenyAll
</Limit>
</Directory>

#</Anonymous>

Для автозагрузки добавляем его в rc.conf:

proftpd_enable="YES"

Создаем пользователя ftp если его нет и назначаем ему пароль:

[root@router /]#pw adduser ftp -m -d /home/ftp -c "FTP user"
[root@router /]# passwd ftp
Changing local password for ftp
New Password:
Retype New Password:
[root@router /]#

Cоздаем необходимые директории и назначаем права:

[root@router /]# chmod 555 /home/ftp
[root@router /]# mkdir -p /home/ftp/incoming
[root@router /]# chmod 777 /home/ftp/incoming
[root@router /]# mkdir -p /home/ftp/public
[root@router /]# chmod 555 /home/ftp/public
[root@router /]# chown -R ftp:ftp /home/ftp/

Путь к логам:

[root@router /]#touch /var/log/proftpd-tranfer.log
[root@router /]#touch /var/log/proftpd-error.log

Если необходимо анонимный FTP-сервер, уберите комментарии с

<Anonymous /home/ftp> </Anonymous>

Запускаем:

[root@router /usr/local/etc/rc.d]# /usr/local/etc/rc.d/proftpd start
Starting proftpd.
[root@router /usr/local/etc/rc.d]# /usr/local/etc/rc.d/proftpd status
proftpd is running as pid 79814.
[root@router /usr/local/etc/rc.d]#

Смотрим поднялся ли наш FTP-сервер:

[root@router /usr/local/etc/rc.d]# sockstat | grep ftp
nobody   proftpd    79814 0  tcp4   *:21                  *:*
[root@router /usr/local/etc/rc.d]#

Ваша оценка: Нет Средняя: 3.3 (9 votes)

Комментарии:




Все сделал по инструкции , но при запуске ругается :

root@sk:/usr/ports/ftp/proftpd # /usr/local/etc/rc.d/proftpd restart
Stopping proftpd.
Waiting for PIDS: 18368.
Starting proftpd.
sk.sergey67.ru proftpd[18421]: The DisplayGoAway directive has been deprecated; use the MaxClientsPerClass optional message parameter instead
root@sk:/usr/ports/ftp/proftpd # /usr/local/etc/rc.d/proftpd status
proftpd is running as pid 18422.
root@sk:/usr/ports/ftp/proftpd # sockstat | grep ftp
nobody proftpd 18422 0 tcp4 *:21 *:*
nobody proftpd 18422 3 stream /var/run/proftpd.sock
root@sk:/usr/ports/ftp/proftpd #



Гугл транслейт? Опция DisplayGoAway устарела, используейте MaxClientsPerClass. Закомментируйте DisplayGoAway и перезапустите.