Взято отсюда
ProFTPD может работать в режимах (директива ServerType): standalone или inetd.
Возможно запускать ProFTPD без привилегий суперпользователя. Однако при при этом необходимо установить Port выше 1023, отключить AuthPAM и WtmpLog, обязательно использовать AuthUserFile и AuthGroupFile, установить User и Group на себя. Нельзя использовать DefaultRoot и Anonymous.
Для использования DefaultRoot (chroot) требуется запускать сервер с правами root. Некоторые ОС требуют наличия определенных файлов в корневой директории (например, Solaris требует /dev/tcp и /dev/zero). Символьные ссылки не могут указывать наружу (хотя можно использовать жесткие ссылки или mount -bind).
ProFTPD позволяет создавать «виртуальных» пользователей с помощью директив AuthUserFile и AuthGroupFile (или с использованием SQL, LDAP и DB с помощью дополнительных модулей). AuthUserFile определяет замену для /etc/passwd в том же формате, AuthGroupFile – для /etc/group. Зашифрованные пароли хранятся здесь же (аналога для /etc/shadow нет), поэтому права на чтение соответствующих файлов должен иметь только пользователь, указанный в директиве User виртуального сервера (предположительно отдельный пользователь для ftpd). См. также DirFakeUser и DirFakeGroup.
Разнесение ip адресов или шаблонов доменных имен на классы с помощью директив «Class имя ip адрес/маска» и «Class имя regex шаблон» позволяет ограничить число одновременных соединений для каждого класса с помощью директив «Class имя limit число» (требуется включение механизма классификации директивой «Classes on» и работа в режиме standalone).
Области действия директив конфигурации (секции определяются как в файле настройки Apache с помощью HTML-подобных открывающих и закрывающих тегов):
- основной сервер – все что вне других областей действия
- <Global> – здесь задаются параметры, одинаковые для всех виртуальных серверов
- <VirtualHost IP-адрес> – задание директив для виртуального сервера; использование внутри директивы Port позволяет использовать один адрес для многих виртуальных серверов (только standalone)
- <Anonymous корневая-директория> – по умолчанию выполняется chroot() и не проверяется пароль, в отличие от wu-ftpd не требуется наличия других файлов и библиотек в «резервации»; является частью основного сервера или виртуального хоста
- <Directory путь> – задаются параметры, специфичные для директории; не могут быть вложенными; последним простым именем может быть «*»; путь должен быть абсолютным, за исключением блока Anonymous; нельзя указывать символьные ссылки; можно использовать символ ‘~’ для указания домашней директории
- <Limit команда> – определяет ограничения на использование объектов в директории (дополняет, но не заменяет права доступа файловой системы); в дополнение к командам протокола FTP можно использовать групповые имена: READ (RETR, SITE, SIZE, STAT), WRITE (APPE, DELE, MKD, RMD, RNTO, STOR, XMKD, XRMD), DIRS (CDUP, CWD, LIST, MDTM, NLST, PWD, RNFR, XCUP, XCWD, XPWD), ALL (READ, WRITE, DIRS), LOGIN (только в областях действия – основной сервер, VirtualHost, Anonymous) и имена типа SITE_CHMOD; блоки с групповыми именами имеют меньший приоритет; блок для внутренней области действия имеет больший приоритет, чем для внешней; при определении блока можно указывать несколько имен команд через пробел
- файл .ftpaccess позволяет владельцу директории переопределить ее параметры «на лету»; можно блокировать создание файлов с таким именем или запретить переопределение с помощью директивы «AllowOverride off» (начиная с версии 1.2.8)
Параметры TCP/IP:
- Bind IP-адрес (область действия – основной сервер, VirtualHost)
- DefaultAddress IP-адрес (область действия – основной сервер)
- DefaultServer off | on (использовать ли данную конфигурацию при соединении на адреса, не упомянутые в VirtualHost; область действия – основной сервер, VirtualHost)
- IdentLookup on | off (использование протокола ident (RFC 1413) для идентификации подслединившегося клиента; рекомендуется отключить, все равно этот протокол никто больше не использует; область действия – основной сервер, Global, VirtualHost)
- PassivePorts min max (интервал портов, который можно использовать для соединений в пассивном режиме)
- Port номер-порта (только режим standalone)
- SocketBindTight off | on (только режим standalone; при выключении привязывает сокеты для требуемых портов сразу для всех интерфейсов, иначе – действует аккуратнее, но требует больше открытых файлов)
- TimeoutIdle секунд (600 секунд; никаких действий после входа)
- TimeoutLogin секунд (300 секунд; отводится на авторизацию)
- TimeoutNoTransfer секунд (300 секунд; вошел, но не начал передачу)
- TimeoutSession секунд [user список-имен-через-запятую | group список-групп-через-запятую | class имя-класса] (возможно отрицание, задаваемое восклицательным знаком перед именем; определяет максимальную длительность сессии; по умолчанию – 0 (бесконечность); область действия – основной сервер, VirtualHost, Global, Anonymous)
- TimeoutStalled секунд (3600 секунд; замирание во время пересылки файла; область действия – основной сервер, VirtualHost, Global)
- UseReverseDNS on | off (определять имя хоста клиента по IP адресу)
- tcpBackLog размер-очереди (5, только для standalone)
- tcpNoDelay on | off (TCP_NODELAY; область действия – основной сервер, VirtualHost, Global)
- tcpReceiveWindow байт (8192)
- tcpSendWindow байт (8192)
Управление доступом в области действия Limit:
- Allow from all | none | хост | сеть
разрешение на действие, определенное в директиве Limit, в зависимости от шаблона IP адреса (192.168.) или доменного имени (.company.ru); область действия – Limit; по умолчанию – from all;
- AllowAll (явное разрешение доступа к области действия Limit, Anonymous или Directory)
- AllowGroup список-групп-через-запятую
для доступа к командам, описанным в данной области действия Limit, пользователь должен входить во все упомянутые группы (AND, возможно отрицание, задаваемое восклицательным знаком перед именем группы)
- AllowUser список-имен-через-запятую
для доступа к командам, описанным в данной области действия Limit, пользователь должен иметь указанные имена (AND, возможно отрицание, задаваемое восклицательным знаком перед именем)
- Deny from all | none | хост | сеть
запрет на действие, определенное в директиве Limit, в зависимости от шаблона IP адреса (192.168.) или доменного имени (.company.ru); область действия – Limit; по умолчанию – from none;
- DenyAll (синоним для команд: «order deny,allow;deny from all»)
- DenyGroup список-групп-через-запятую
запрещен доступ к командам, описанным в данной области действия Limit, пользователям входящим во все упомянутые группы (AND, возможно отрицание, задаваемое восклицательным знаком перед именем группы)
- DenyUser список-имен-через-запятую
запрещен доступ к командам, описанным в данной области действия Limit, для пользователей с указанным именем (AND, возможно отрицание, задаваемое восклицательным знаком перед именем)
- Order allow,deny | deny,allow (определяет последовательность проверки директив Allow и Deny, а также действия по умолчанию; allow,deny: проверяются директивы Allow, если совпадение найдено, то доступ предоставляется, иначе проверяются директивы Deny и если совпадение найдено, то доступ запрещается, иначе доступ предоставляется; deny,allow: проверяются директивы Deny и если совпадение найдено, то доступ запрещается, иначе проверяются директивы Allow и если совпадение найдено, то доступ предоставляется, иначе доступ запрещается; заметьте, что в apache по умолчанию производятся противоположные действия!)
Управление анонимным доступом:
- AnonRequirePassword off | on
- Anonymous корневая-директория (задает область действия для анонимного доступа, директория используется для chroot; используется в области действия – основной сервер, Global, VirtualHost)
- AnonymousGroup список-групп-через-запятую (трактовать пользователей из данной группы как анонимных – пароль не требуется, делается chroot в домашнюю директорию; пользователь должен входить во все упомянутые группы (AND, возможно отрицание, задаваемое восклицательным знаком перед именем группы); область действия – основной сервер, Global, VirtualHost)
- AuthUsingAlias off | on (область действия – Anonymous)
Управление безопасностью:
Управление файлами:
- AllowStoreRestart off | on (разрешить возобновлять запись на сервер, область действия – server config, VirtualHost, Anonymous, Directory, Global, .ftpaccess)
- DefaultChdir имя-директории [список-групп-через-запятую] (можно относительно домашней директории; по умолчанию – в нее; пользователь должен входить во все упомянутые группы (AND, возможно отрицание, задаваемое восклицательным знаком перед именем группы); область действия – server config, VirtualHost, Anonymous, Global)
- DefaultTransferMode ascii | binary
- DeleteAbortedStores off | on
- GroupOwner имя-группы (к какой группе приписывать вновь создаваемые файлы и директории; соблюдаются ограничения прав доступа для текущего пользователя; область действия – Anonymous, Directory, .ftpaccess)
- HiddenStor on | off (AKA HiddenStores, при загрузке файла на сервер, он записывается под временным именем, а потом переименовывается, что позволяет избежать использования частично переданных файлов; директива несовместима с AllowStoreRestart; область действия – Directory, VirtualHost, Global)
- StoreUniquePrefix префикс (префикс добавляется к уникальным 6-символьным именам файлов, создаваемых командой STOU)
- Umask маска-создаваемых-файлов маска-создаваемых-директорий( задается восьмеричным числом (см. umask(2)); не позволяет оставить биты eXecute для обычных файлов, но есть команда SITE CHMOD права имя-файла; область действия – server config, VirtualHost, Anonymous, Global, Directory, .ftpaccess)
- UserOwner имя-пользователя (к какому uid приписывать вновь создаваемые файлы и директории; соблюдаются ограничения прав доступа для текущего пользователя; не может быть равным 0; область действия – Anonymous, Directory, .ftpaccess)
Управление сообщениями, выдаваемыми клиентам:
- AccessDenyMsg сообщение
- AccessGrantMsg сообщение
- DeferWelcome off | on (придержать приветствие до аутентификации; часть приветствия все равно выдается)
- DisplayConnect имя-файла (имя файла абсолютное или относительно домашней директории)
- DisplayFirstChdir имя-файла (имя файла абсолютное или относительно самой директории; можно использовать макросы:
- %T – текущее время
- %F – свободное место в файловой системе
- %C – имя текущей диретории
- %R – имя удаленного хоста
- %L – имя локального хоста
- %u – имя пользователя, полученное по протоколу ident
- %U – имя пользователя
- %M – максимальное число одновременных соединений
- %N – текущее число соединений
- %E – почтовый адрес администратора
- %x – имя класса пользователя
- %y – число текущих соединений в данном классе
- %z – максимальное число одновременных соединений для данного класса
- %i – число загруженных файлов
- %o – число взятых файлов
- %t – число переданных в обоих направлениях файлов
- DisplayGoAway имя-файла (имя файла абсолютное или относительно домашней директории; можно использовать макросы)
- DisplayLogin имя-файла (имя файла абсолютное или относительно домашней директории; можно использовать макросы)
- DisplayQuit имя-файла (имя файла абсолютное или относительно текущей директории; можно использовать макросы)
- LoginPasswordPrompt on | off (выдавать ли запрос на ввод пароля, если аутентификация будет безуспешна в любом случае (например, из-за <Limit login>))
- MultilineRFC2228 off | on (выдавать многострочные сообщения в стандарте RFC 959 или RFC 2228)
- ServerAdmin email-администратора (%E)
- ServerIdent off|on [текст-сообщения] (текст приветствия, выдаваемого клиенту после соединения; «ProFTPD [version] Server (server name) [hostname]«)
- ServerName имя-сервера
Управление журналами (по умолчанию, используется syslog, daemon:debug/authpriv):
Условные операторы: Define (можно также определять параметры в командной строке при запуске proftpd), IfDefine, IfModule. Могут быть вложены. Имеется также директива Include.
Формат выдачи оглавления директории (NLST, LIST, STAT)
- DirFakeGroup
- DirFakeMode
- DirFakeUser
- LsDefaultOptions «строка» (область действия – сервер, VirtualHost, Anonymous, Global)
- ListOptions
- ShowDotFiles off | on (эквивалентно LsDefaultOptions «-A»; область действия – сервер, VirtualHost, Anonymous, Global)
- ShowSymlinks on | off (показывать символьные ссылки или результатирующие файлы; область действия – сервер, VirtualHost, Anonymous, Global)
- TimesGMTon | off (показывать GMT или локальные времена; область действия – сервер, VirtualHost, Anonymous, Global)
- UseGlobbing on | off (позволяет использовать шаблоны вместо имен файлов; область действия – сервер, VirtualHost, Anonymous, Global)
Расположение локальных файлов:
- PidFile имя-файла (только режим standalone)
- ScoreboardFile имя-файла (/var/run/proftpd.scoreboard; файл, в котором хранится информация о текущих сессиях)
Ограничение трафика.
- RateReadBPS байт-в-секунду (область действия – сервер, VirtualHost, Global, Anonymous, Directory)
- RateReadFreeBytes байт (первые байты бесплатно; область действия – сервер, VirtualHost, Global, Anonymous, Directory)
- RateReadHardBPS off | on (ждать ли после исчерпания первых бесплатных байт пока средняя скорость не опустится до RateReadBPS)
- RateWriteBPS байт-в-секунду (область действия – сервер, VirtualHost, Global, Anonymous, Directory)
- RateWriteFreeBytes байт (первые байты бесплатно; область действия – сервер, VirtualHost, Global, Anonymous, Directory)
- RateWriteHardBPS off | on (ждать ли после исчерпания первых бесплатных байт пока средняя скорость не опустится до RateWriteBPS)
- TransferRate (заменяет старые директивы Rate*)
Модули mod_ratio, mod_ldap, mod_radius, mod_sql имеют свои наборы директив:
- mod_ratio: AnonRatio, ByteRatioErrMsg, CwdRatioMsg, FileRatioErrMsg, GroupRatio, HostRatio, LeechRatioMsg, RatioFile, RatioTempFile, Ratios, SaveRatios, UserRatio
- mod_ldap: LDAPAuthBinds, LDAPDNInfo, LDAPDefaultAuthScheme, LDAPDefaultGID, LDAPDefaultUID, LDAPDoAuth, LDAPDoGIDLookups, LDAPDoUIDLookups, LDAPForceDefaultGID, LDAPForceDefaultUID, LDAPHomedirOnDemand, LDAPHomedirOnDemandPrefix, LDAPHomedirOnDemandPrefixNoUsername, LDAPHomedirOnDemandSuffix, LDAPNegativeCache, LDAPQueryTimeout, LDAPSearchScope, LDAPServer, LDAPUseTLS
- mod_radius: RadiusAcctServer, RadiusAuthServer, RadiusEngine, RadiusLog, RadiusRealm, RadiusUserInfo
- mod_sql: SQLAuthTypes, SQLAuthenticate, SQLAuthoritative, SQLConnectInfo, SQLDefaultGID, SQLDefaultHomedir, SQLDefaultUID, SQLDoAuth, SQLDoGroupAuth, SQLGidField, SQLGroupGIDField, SQLGroupInfo, SQLGroupMembersField, SQLGroupTable, SQLGroupWhereClause, SQLGroupnameField, SQLHomedir, SQLHomedirField, SQLHomedirOnDemand, SQLLog, SQLLogDirs, SQLLogHits, SQLLogHosts, SQLLogStats, SQLLoginCountField, SQLMinID, SQLMinUserGID, SQLMinUserUID, SQLNamedQuery, SQLNegativeCache, SQLPasswordField, SQLProcessGrEnt, SQLProcessPwEnt, SQLRatioStats, SQLRatios, SQLSSLHashedPasswords, SQLScrambledPasswords, SQLShellField, SQLShowInfo, SQLUidField, SQLUserInfo, SQLUserTable, SQLUserWhereClause, SQLUsernameField, SQLWhereClause
mod_unixprivs.
mod_tls.
mod_rewrite.
mod_quota и mod_quotatab (учитываются только данные, переданные по FTP протоколу для данного пользователя).
Журналы:
Logwatch имеет скрипты для обработки журналов ProFTPD.
Формат журнала xferlog (имя файла задается директивой TransferLog):
- сокращенное английское название дня недели (Sat)
- сокращенное английское название месяца (Dec)
- день месяца
- часы:минуты:секунды (время местное)
- год (4 цифры)
- продолжительность передачи в секундах
- имя или адрес удаленного хоста
- размер файла в байтах
- полное имя файла (безотносительно chroot)
- тип передачи
- действие над файлом в процессе передачи (для ProFTPD всегда отсутствует)
- C – сжат
- U – разжат
- T – tar-ед
- _- не было произведено никаких действий
- направление передачи
- o – с сервера
- i – на сервер
- d – удаление
- тип пользователя
- a – анонимный
- g – guest
- r – real (из /etc/passwd)
- имя реального пользователя или идентификационная строка (вводимая вместо пароля) для анонимного или гостя (м.б. пробел)
- имя сервиса (ftp)
- способ аутентификации
- 0 – никакой
- 1 – ident (rfc931)
- аутентифицированный идентификатор пользователя. Если аутентификация не использовалась, то звездочка
- завершенность передачи
- c – передача была закончена
- i – не закончена
Последние комментарии
23 недели 1 день назад
47 недель 2 дня назад
2 года 48 недель назад
3 года 17 недель назад
3 года 41 неделя назад
4 года 4 недели назад
4 года 4 недели назад
4 года 8 недель назад
4 года 19 недель назад
4 года 23 недели назад