[[ Базовая настройка и ознакомление ProFTPD Ubuntu 9.04 ]]

Ubuntu

Базовая настройка и ознакомление ProFTPD Ubuntu 9.04

ProFTPdFTP-сервер для Linux и UNIX-подобных операционных систем.

Установка

 sudo apt-get install proftpd 
Выбрать типа запуска: standalone ('самостоятельно')

Теория

В ProFTPD можно создавать виртуальные сервера, которые описываются секцией <VirtualHost> (например для разных ip или портов)
Что бы включить анонимный доступ нужно добавить в описание сервера секцию <Anonymous>
Что бы определить единые параметры (основного и всех виртуальных) серверов их нужно записать в секции <Global>

Настройка

Рассмотрим начальный (из Ubuntu) конфиг, выставим пару своих параметров и прокомментируем происходящее.

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

proftpd.conf

#
# /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes reload proftpd after modifications.
# 

########################################################################################################
# ProFTPD config
########################################################################################################
## Протокол IP v6
# default = on
UseIPv6				off

## Запуск как демона
ServerType                      standalone
## Запуск через inetd
#ServerType inetd

## Максимальное количество порожденных процессов (1 подключение = 1 процесс)
# Работает только в standalone mode. 
# default = none
MaxInstances                    99

## Протокол RFC2228
# default = off
MultilineRFC2228                on

## Максимально число подключений к серверу в секунду
# default = none
MaxConnectionRate 		1

########################################################################################################
# Global config 
########################################################################################################
<Global>
## Использование протокола ident (RFC 1413) для идентификации клиента. Может увеличить время подключения
# Не актуально !!!
# default = on
IdentLookups			off

## Показывать символические ссылки
# default = on
ShowSymlinks                    off

## Максимальное число попыток ввода пароля до разрыва соединения
# default = 3
#MaxLoginAttempts 3

## Фильтр команд
# Чтобы предотвратить попытку положить или взломать демон proftpd командой "ls */../*/../*/...",
# включите директиву фильтра DenyFilter \*.*/
# Можно использовать для дополнительной фильтрации директиву PathDenyFilter "(^|/)[-.]"
# default = none
DenyFilter                      \*.*/

</Global>


########################################################################################################
# Основной сервер
########################################################################################################
# Includes DSO modules
Include /etc/proftpd/modules.conf

## Имя сервера 
# default = "ProFTPD"
ServerName			"ftp test"

## Вывод информации о сервере (= off тогда будет выводится только ip адрес [hostname])
# off : тогда будет выводится только ip адрес [hostname])
# default = on "ProFTPD [version] Server (server name) [hostname]"
#ServerIdent off
## Альтернатива (при этом не показывает ServerName и ip)
ServerIdent 			on "My ftp server v1.0"


## Показывать ServerName и ip адрес только после авторизации
# on : ??? не вывелось и после авторизации 
# default = off
DeferWelcome			on

## Определяет сервер 'по умолчанию'
# on  : Сервер примет все запросы (которые не предназначены для любого другого сервера)
# 	Т.е. в данном случае сервером по умолчанию является основной сервер
#	Указать этот параметр можно только одни раз в одном из виртуальных серверов или основном
# off : ничего
# default = off
DefaultServer			on


## Время (секунд), по истечению которого сервер будет закрывать соединение
# без приема/передачи файлов, а также получения списка директории (для GUI клиентов это можно понимать как переход по папкам)
# default = 300
TimeoutNoTransfer		600
# ??? замирание во время пересылки файла, лаги
# default = 3600
TimeoutStalled			300
# без передачи каких-либо файлов, команд (включая команды управления)
# default = 600
TimeoutIdle			1200
# общая продолжительность сессии
# default = none
TimeoutSession 86400
# ожидание логина/пароля при подключении
# default = 300
TimeoutLogin 			30
# Время ожидания ответа
# так как у большинства клиентов значение время ожидания ответа сервера равняется 60 сек. 
# и чтобы не натолкнуться на таймаут клиента, TimeoutLinger не должен превышать 60 сек.;
# default = 60  (раньше 180)
TimeoutLinger 			30

## Текстовый файл, содержимое которого будет показано после входа пользователя
# адрес файла может быть относительно директории входа или абсолютный
# пользователь должен обладать правами на чтение
DisplayLogin                    welcome.msg
## Сообщение после перехода в директорию
# адрес файла может быть относительно директории входа или абсолютный
# опция true  - показывать сообщение только при первом входе в директорию
#DisplayChdir               	.message true

## Параметры добавляются для команды просмотра каталога
# default = none
ListOptions                	"-lha"

## Разрешить перезаписывать существующие файлы
# default = off
AllowOverwrite       		on

## Фильтр файлов
# default = none
PathDenyFilter "(\\.ftpaccess|\\.htaccess)$"

## Порт
Port				21

# In some cases you have to specify passive ports range to by-pass
# firewall limitations. Ephemeral ports can be used for that, but
# feel free to use a more narrow range.
# PassivePorts                  49152 65534

# If your host was NATted, this option is useful in order to
# allow passive tranfers to work. You have to use your public
# address and opening the passive ports used on your firewall as well.
# MasqueradeAddress		1.2.3.4

# This is useful for masquerading address with dynamic IPs:
# refresh any configured MasqueradeAddress directives every 8 hours
<IfModule mod_dynmasq.c>
# DynMasqRefresh 28800
</IfModule>

## !!! Запрещает выход пользователя выше указанной директории
DefaultRoot                     ~

# Set the user and group that the server normally runs at.
User				proftpd
Group				nogroup

## Маска прав на файлы и директории
# 003 022 (маска) = 644 755 (реальные права)
Umask				033  022

## Максимально число подключений
# default = none
MaxClients                      20	"Занято"
## Максимальное число подключений с одного ip
# default = none
MaxClientsPerHost		5	"С вашего адреса разрешено не больше %m подключений"
## Максимальное число подключений под одним пользователем
# default = none
MaxClientsPerUser  		1	"Ваша учетная запись уже используется"

## Авторизовать пользователя только если он имеет основной shell из списка /etc/shells
# default = on
#RequireValidShell               on

# Uncomment this if you are using NIS or LDAP via NSS to retrieve passwords:
# PersistentPasswd		off

# This is required to use both PAM-based authentication and local passwords
# AuthOrder			mod_auth_pam.c* mod_auth_unix.c

## Использование системных вызовов sendfile
# on :  при этом утилиты: ftptop, ftpwho - не сомгут отобразить прогресс/скорость скачки (download)
# default = on
#UseSendFile			off

## Лог
TransferLog /var/log/proftpd/xferlog
SystemLog   /var/log/proftpd/proftpd.log

#
# Alternative authentication frameworks
#
#Include /etc/proftpd/ldap.conf
#Include /etc/proftpd/sql.conf

#
# This is used for FTPS connections
#
#Include /etc/proftpd/tls.conf



## Обработка пользователей 'anonymous' производится в этой секции,
# Так же, здесь могут быть переопределены некоторые параметры. Другие будут унаследованы
 <Anonymous ~ftp>
   User			ftp
   Group		nogroup

   ## Пользователь "anonymous" заходит как "ftp"
   UserAlias		anonymous ftp

   # Cosmetic changes, all files belongs to ftp user
   
   DirFakeUser		on ftp
   DirFakeGroup 	on ftp
   
   # т.к. пользователя anonymous'a нету то и шела у него нету
   RequireValidShell	off
 
   ## Ограничение количества анонимных пользователей
   # ! внимание ! ограничения пересекаюся с основным конфигом
   #MaxClients		2	"Больше ни каких анонимусов" #В данном случае такое ограничение - не больше двух анонимных пользователей, не сработает
   # Если на сервере уже подключены два и более 'нормальных' пользователей, поэтому будем использовать MaxClientsPerUser
   MaxClientsPerUser    2       "Больше ни каких анонимусов"
   MaxClientsPerHost 	1	"Не больше %m анонимуса с хоста"


   # Limit WRITE everywhere in the anonymous chroot
   <Directory *>
     <Limit WRITE>
       DenyAll
     </Limit>
   </Directory>
 
   # Uncomment this if you're brave.
   # <Directory incoming>
   #   # Umask 022 is a good standard umask to prevent new files and dirs
   #   # (second parm) from being group and world writable.
   #   Umask				022  022
   #            <Limit READ WRITE>
   #            DenyAll
   #            </Limit>
   #            <Limit STOR>
   #            AllowAll
   #            </Limit>
   # </Directory>
 
 </Anonymous>


<IfModule mod_quotatab.c>
QuotaEngine off
</IfModule>

<IfModule mod_ratio.c>
Ratios off
</IfModule>


# Delay engine reduces impact of the so-called Timing Attack described in
# http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02
# It is on by default.
<IfModule mod_delay.c>
DelayEngine on
</IfModule>

<IfModule mod_ctrls.c>
ControlsEngine        off
ControlsMaxClients    2
ControlsLog           /var/log/proftpd/controls.log
ControlsInterval      5
ControlsSocket        /var/run/proftpd/proftpd.sock
</IfModule>

<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>


Дополнительно

  • ListOptions
  • DisplayChdir, DisplayConnect, DisplayLogin, DisplayQuit
  • Authentication Modules

—-

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
71 +9 =
 
howto/proftpd/dasic.txt · Последнее изменение: 2022/08/31 14:53 — 127.0.0.1
Gentoo Linux Gentoo Linux Driven by DokuWiki