← All posts

FreeBSD. Installing and Configuring ProFTPD

freebsd\_proftpdThis is really more of a note to myself: I published it here so I wouldn’t have to bother writing the config over and over again. But in case it comes in handy for someone else, I’ve added a few explanations of the config, written up how to install it, and provided some helpful links.

ProFTPD is a ftp server written for use on Unix and Unix-a-like operating systems, there is no support for native use under Microsoft Windows.

Installation

# cd /usr/ports/ftp/proftpd
# make config
# make install

Don’t forget to update the ports tree or update the specific port first.

Configuration

/usr/local/etc/proftpd.conf


ServerName            "Super Server"
ServerType            standalone
DefaultServer            on
ScoreboardFile        /var/run/proftpd.scoreboard
Port                21

# Маска для назначения прав при создание файлов
Umask                022       022

# Максимальное кол-во процессов
MaxInstances            30

# Ограничение на максимальную длину комманды
CommandBufferSize    512

User                nobody
Group                nogroup

# Директория по умолчанию - домашний каталог пользователя
DefaultRoot ~

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

# Таймауты
TimeoutIdle 3600
TimeoutLogin 3600
TimeoutNoTransfer 3600
TimeoutStalled 3600
TimeoutSession 3600

# Идентификация имени удаленного пользователя
IdentLookups off

# Обратный поиск данных IP-адресов
UseReverseDns off

# Паттерн для проверки комманд отправляемых от клиента-серверу
AllowFilter ^[-A-Za-z0-9_.(),/]*$

# Запретить пересылку сервер-сервер
AllowForeignAddress off

# Директива отвечающая за .ftaccess файлы
AllowOverride off

# Директива позволяющая переписывать файлы
AllowOverwrite on

# Логи
LogFormat default "%h %l %u %t "%r" %s %b"
TransferLog /var/log/proftpd_transferlog
ServerLog /var/log/proftpd_serverlog
SystemLog /var/log/proftpd_systemlog

# TransferRate RETR, STOR 1096
# MaxClients 20 "Sorry, max %m users, try again later."

# Анонимные пользователи
# Если не надо, то удалите или закомментите всю директиву.
# Путь до каталога, обратите внимание, на него DefaultRoot не распространяется.
<anonymous /home/ftp>

User ftp
Group ftp

# Назначение псевдонима anonymous для ftp
UserAlias anonymous ftp

# Не всем, имеющим доступ к ftp, нужен shell
RequireValidShell off

# Запрашивать ли пароль для анонимного подключения
AnonRequirePassword off

# Перезаписывание файлов
AllowOverwrite on

# Лимит максимума клиентов
MaxClients 10 "The server is full, hosting %m users"

# DisplayLogin welcome.msg
# DisplayFirstChdir .msg

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

<limit WRITE>
  DenyAll
</limit>

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

# Для директории public, запрет на группу комманд WRITE и создание директории,
# читайте подробнее How-To по Limit, в ссылка ниже
<directory public/*>
  <limit WRITE MKD>
    DenyAll
  </limit>
</directory>

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

P.S. ProFTPD version: 1.3.1

Comments are closed. Read the original discussion in Russian →