Сен 302011
 

Решил попробовать ProFTPD. Ставлю его как тестовый, так как использую мой любимый vsftpd.
Установка

# cd /usr/ports/ftp/proftpd && make install clean

Настройка

nano /usr/local/etc/proftpd.conf

# Имя сервера
ServerName            "FarmaPlast"
 # Запускаем наш фтп демоном , через inetd
# Тип сервера. standalone означает отдельный демон, а inetd – в составе супер-сервера
ServerType            inetd
DefaultServer            on
ScoreboardFile        /var/run/proftpd.scoreboard
 # порт на котором работает сервер
Port                21
# Выключаем строчку, информирующую о типе FTP сервера
#ServerIdent             on "Welcome in FTP Server FarmaPlast."
ServerIdent                     Off
 # Директория по умолчанию - домашний каталог пользователя
DefaultRoot ~
 # Временные ограничения по истечению которых сервер будет закрывать соединение.
TimeoutIdle 600
TimeoutLogin 600
TimeoutNoTransfer 640
TimeoutStalled 640
TimeoutSession 2600
 # Идентификация удаленного пользователя
IdentLookups off
# Укащываем кодировку.
LangEngine on
UseEncoding koi8-r cp1251
 # Ограниченим длину комманды
CommandBufferSize 512
 # Маска при создание файлов
Umask 022
 # Пользователей и групп в соответствии с которой сервер будет работать.
User nobody
Group nogroup
 # Обратный поиск данных IP-адресов
UseReverseDns off
 # Запретить пересылку сервер-сервер
AllowForeignAddress off
 # Директива отвечающая за .ftaccess файлы
AllowOverride off
 # Директива позволяющая переписывать файлы
AllowOverwrite on
 # Логи
LogFormat default "%h %l %u %t "%r" %s %b"
TransferLog /var/log/pftpd_trans.log
ServerLog /var/log/pftpd_ser.log
SystemLog /var/log/pftpd_sys.log
# Путь до диры.
<anonymous /usr/home/ftp>
# Анонимные пользователи. 
User ftp
Group ftp
 # Псевдонима anonymous для ftp
UserAlias anonymous ftp
 # Убираем доступ к shell.
RequireValidShell off
 # Отменяем запрос для анонимуса на подключения
AnonRequirePassword off
 # Перезаписывание файлов
AllowOverwrite on
 # Лимит максимума клиентов
MaxClients 40 "The server is full,  try again later"
MaxLoginAttempts 10
# Максимальное кол-во процессов
MaxInstances 30

 # Настройка ограничения по умолчанию # Разрешим смену прав на файлы и каталогов.
<limit SITE_CHMOD MKD>
   AllowAll
 </limit>

<limit LOGIN>
  Allow from all
  Deny from all
</limit>

<limit WRITE>
  DenyAll
</limit>

<limit SITE SITE_CHMOD SITE_CHGRP MTDM >
  DenyAll
</limit>

# Для директории uploads, разрешим WRITE и запрещаем удаление файлов, каталогов.
<directory uploads/*>
  <limit WRITE>
    AllowAll
  </limit>
  <limit DELE RMD>
    DenyAll
  </limit>
</directory>
</anonymous>

# Для директории pub, запрещаем на группу комманд WRITE и создание директории.
<directory pub/*>
  <limit WRITE MKD>
    DenyAll
  </limit>
</directory>

Решил добавить дать полный доступ пользователю к его домашней папке с авторизацией по логину-паролю данного пользователя.

# Анонимный сервер с корнем в домашней директории пользователя suuser.

<Anonymous ~myuser>
# От кого будет работать демон
User                    suuser
Group                   suuser

# Установка владельца на новые файлы
UserOwner               suuser
GroupOwner              suuser

# Включаем запрос пароля
AnonRequirePassword     on

# Скрываем файлы пользователя root
HideUser                root

# Разрешаем все для нашего пользователя
<Limit ALL>
Order Allow, Deny
AllowUser       suuser
</Limit>
</Anonymous>

Полезных команд для мониторинга ProFTPD.
ftpwho – Текущую информацию о процессе для каждого сеанса ftp.
ftpcount – Текущее число соединений для каждой конфигурации сервера.
ftptop – Показывает рабочее состояние соединениях ftp сервера.

Инструкция proftp квоты

  One Response to “FreeBSD+ProFTPD”

  1. […] описывать как устанавливать proftpd, установка proftpd тут Настройка proftp Только напомню, что параметр при компиляции пакета […]

 Leave a Reply

(required)

(required)

38 Запросов к базе. 0,441 Генерации страницы, 36MB Использование памяти.
Вы зашли с IP: 54.227.6.156