|
Bog BOS: FTP-сервер ProFTPD: установка, настройка и использование
|
Последнее изменение файла: 2009.10.29
Скопировано с www.bog.pp.ru: 2024.12.03
Bog BOS: FTP-сервер ProFTPD: установка, настройка и использование
Предполагается предварительное знакомство с протоколом FTP.
ProFTPD разрабатывался группой энтузиастов, недовольных уровнем безопасности
и сложностью настройки "классического" FTP-сервера wu-ftpd.
Бесплатен (GPL). Описываемая версия - 1.2.8rc1 (28 декабря 2002,
заплатка для записи в корневую директорию).
Настраивается с помощью одного файла конфигурации, директивы которого
напоминают директивы настройки Apache.
Реализует RFC-959 (FILE TRANSFER PROTOCOL) и RFC-1123 (кроме команд ACCT, MODE,
STRU),
частично реализует "IETF Draft: Extensions to FTP" (REST, SIZE, MDTM)
и RFC-2228 (FTP Security Extensions), RFC-2389 (Feature negotiation mechanism).
Простенький анонимный сервер для централизованной раздачи заплаток
(но с возможностью расширения в будущем).
- получить и распаковать архив
- make distclean (если не первая сборка)
- ./configure --with-modules=mod_rewrite:mod_tls --with-includes=/usr/kerberos/include --with-libraries=/usr/kerberos/lib --enable-ctrls
(./configure --help даёт список всех ключей; kerberos для tls)
- можно проверить config.h и настроить include/options.h
- make
- make install
- /usr/local/sbin: proftpd (AKA in.proftpd), ftpshut
- /usr/local/bin: ftpcount, ftptop, ftpwho, ftpdctl
- /usr/local/etc/proftpd.conf
- /usr/local/man/man1: ftpwho.1, ftpcount.1, ftptop.1
- /usr/local/man/man5: xferlog.5
- /usr/local/man/man8: proftpd.8, ftpshut.8, ftpdctl.8
- /usr/local/var/proftpd/
- proftpd-inetd
- proftpd.scoreboard
- создать /etc/pam.d/ftp как описано в README.PAM
- добавить в /etc/ftpusers имена пользователей из /etc/passwd,
которые имеют пароли, но которым не надо давать доступ к FTP
- настроить ProFTPD (/usr/local/etc/proftpd.conf), в т.ч.
- ServerType standalone
- DefaultServer on
- IdentLookups off # все-равно им никто не пользуется
- PassivePorts min max
- Port 21
- TimeoutSession 86400
- UseReverseDNS off # либо требовать двойной проверки (нереализована)
- AllowFilter ^[-A-Za-z0-9_\.(),/]*$ # на всякий случай ;)
- AllowForeignAddress off # запретить пересылку сервер-сервер
- AllowOverride off # запретить использование .ftpaccess
- AllowOverwrite on
- DefaultRoot ~
- User nobody # uid/gid по умолчанию с ничтожными правами
- Group nobody
- <Limit LOGIN> # сначала запретить доступ снаружи
- Order allow,deny
- Allow from 195.161.72.0/23
- Deny from all
- </Limit>
- <Limit READ DIRS>
- </Limit>
- <Limit SITE_CHGRP SITE_CHMOD> # ножик в руки только своим
- #Order deny,allow
- #AllowUser ftpadmin
- #AllowUser webadmin
- DenyAll
- </Limit>
- PathDenyFilter "(^\.ftpaccess$)" # чтобы не порождать иллюзий
- RequireValidShell no # не всем, имеющим доступ к ftp, нужен shell
- Umask 022
- ServerAdmin spamtrap@deol.ru
- ServerIdent on "FTP server"
- ServerName "имя сервера"
- AllowLogSymlinks off
- DebugLevel 3
- ExtendedLog syslog:debug ALL default
- LogFormat default "%h %l %u %t \"%r\" %s %b"
- SyslogFacility FTP
- SyslogLevel debug
- TransferLog /var/log/xferlog
- WtmpLog on
- <Anonymous директория-свободного-доступа>
Задачи, стоящие перед сервером:
- доступ к обихоженной части mirror для своих
anonymous
- доступ к софту из нашей библиотеки для доступа к интернет
для своих anonymous с возможностью изменений (специальный
пользователь ftpadmin, группа ftpadmin)
- доступ к рекламным материалам для всех остальных anonymous
с возможностью изменений (пользователь ftpadmin, группа ftpadmin)
- ящик для входящих факсов (специальный пользователь fax, группа fax и
имя хоста fax-holder)
- ftp сервер для изменения вебмастером наших сайтов (специальный
пользователь webadmin, группа webadmin)
- ftp сервер для клиентских сайтов (группа webusers)
- получить и распаковать архив
- make distclean (если не первая сборка)
- ./configure --with-modules=mod_linuxprivs:mod_rewrite:mod_tls
(mod_linuxprivs переименован в mod_cap и встроен; ./configure --help даёт список
всех ключей)
- можно проверить config.h и настроить include/options.h
- make
- make install
- /usr/local/sbin: proftpd (AKA in.proftpd), ftpshut
- /usr/local/bin: ftpcount, ftptop, ftpwho
- /usr/local/etc/proftpd.conf
- /usr/local/man/man1: ftpwho.1, ftpcount.1
- /usr/local/man/man5: xferlog.5
- /usr/local/man/man8: proftpd.8, ftpshut.8
- /usr/local/var/proftpd/
- proftpd-inetd
- proftpd.scoreboard
- создать /etc/pam.d/ftp как описано в README.PAM
- добавить в /etc/ftpusers имена пользователей из /etc/passwd,
которые имеют пароли, но которым не надо давать доступ к FTP
- настроить ProFTPD (/usr/local/etc/proftpd.conf), в т.ч.
- ServerType inetd # т.к. нагрузка невелика
- DefaultServer on
- IdentLookups off # все-равно им никто не пользуется
- PassivePorts min max
- Port 21 # реальное значение задается в /etc/xinetd.d/proftpd
- TimeoutSession 86400
- UseReverseDNS off # либо требовать двойной проверки (нереализована)
- AllowFilter ^[-A-Za-z0-9_\.(),/]*$ # на всякий случай ;)
- AllowForeignAddress off # запретить пересылку сервер-сервер
- AllowOverride off # запретить использование .ftpaccess
- AllowOverwrite on
- DefaultRoot ~
- User nobody # uid/gid по умолчанию с ничтожными правами
- Group nobody
- <Limit LOGIN> # сначала запретить доступ снаружи
- Order allow,deny
- Allow from 195.161.72.0/23
- Deny from all
- </Limit>
- <Limit READ DIRS>
- </Limit>
- <Limit SITE_CHGRP SITE_CHMOD> # ножик в руки только своим
- Order deny,allow
- AllowUser ftpadmin
- AllowUser webadmin
- </Limit>
- PathDenyFilter "(^\.ftpaccess$)" # чтобы не порождать иллюзий
- RequireValidShell no # не всем, имеющим доступ к ftp, нужен shell
- Umask 022
- ServerAdmin spamtrap@deol.ru
- ServerIdent on "FTP server"
- ServerName "имя сервера"
- AllowLogSymlinks off
- DebugLevel 3
- ExtendedLog syslog:debug ALL default
- LogFormat default "%h %l %u %t \"%r\" %s %b"
- SyslogFacility FTP
- SyslogLevel debug
- TransferLog /var/log/xferlog
- WtmpLog on
- <Anonymous директория-свободного-доступа>
- User ftp
- Group ftp
- RequireValidShell no
- UserAlias anonymous ftp
- WtmpLog off
- <Limit WRITE>
- DenyAll # анонимкам - нет!
- </Limit>
- </Directory>
- </Anonymous>
- пример скрипта для /etc/rc.d/init.d для запуска/остановки самостоятельного
(standalone) ProFTPD приведен здесь (или переделать, например, sshd)
- открыть дырки в сетевых экранах (порты 20, 21 и для пассивных соединений):
Каждому виртуальному хосту требуется отдельный порт или
IP адрес.
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 протоколу для данного пользователя).
proftpd - основная программа пакета,
реализующая FTP сервер.
Запускается автономно или с помощью xinetd (inetd). Ключи запуска:
- --help
- --version
- --list (выдать список встроенных модулей)
- --debug уровень (от 0 до 9, 1 - бессмысленный минимум,
4 - вполне достаточный уровень, 5 - слишком подробно;
выдается на
syslog с уровнем DEBUG, источник задается
в конфигурационном файле)
- --config имя-файла
- --configtest (только проверить синтаксис)
- --nodaemon (не отсоединяться от терминала, вывод на stderr вместо
syslog)
- --define параметр (используется в <IfDefine>)
В автономном режиме при получении SIGHUP перечитывает
файл с описанием конфигурации.
ftpcount - показывает число соединений в настоящий
момент (с разбивкой по виртуальным хостам).
ftpwho - показывает информацию о каждом текущем
соединении (--verbose показывает также текущую рабочую директорию).
ftptop - аналог программы top для процессов ProFTPD.
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 - не закончена
|
Bog BOS: FTP-сервер ProFTPD: установка, настройка и использование
|
Copyright © 1996-2024 Sergey E. Bogomolov; www.bog.pp.ru