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

Ubuntu

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

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

Установка

 sudo apt-get install proftpd 

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

Теория

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

Настройка

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

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

#
# /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

—-

Обсуждение

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