Linux: man ftpd Печать
Добавил(а) microsin   

Перевод английской справки man ftpd от Red Hat Linux 4.

ftpd  [-A  |  -a] [-C] [-c] [-d] [-l] [-v] [-T maxtimeout] [-t timeout] [-p port]
       [-U  ftpusers-file]  [-u  umask]  [-r   realm-file]   [-s   srvtab]   [-w{ip|max-
       hostlen[,{striplocal|nostriplocal}]}]

ОПИСАНИЕ
       Ftpd  является процессом сервера DARPA Internet File Transfer Protocol. Сервер использует протокол TCP и слушает порт, указанный с спецификации ‘‘ftp’’ описаний сервисов см. services(5).

       Доступные опции:

       -A     Соединения разрешены только пользователям, которые аутентифицированы через механизм ftp AUTH. Анонимный доступ к ftp может быть разрешен, если это сконфигурировано. Ftpd при необходимости будет запрашивать пароль.

       -a     Соединения разрешены только пользователям, которые аутентифицированы через механизм ftp AUTH, а также кто авторизован для соединения по именованным аккаунтам named account без пароля. Анонимный доступ к ftp может быть разрешен, если это сконфигурировано.

       -C     Неанонимные пользователи должны иметь локальные удостоверения (например, для аутентификации удаленных файловых серверов), и должны ввести пароль, за исключением, если они имеют перенаправленные удостоверения как часть аутентификации.

       -c     Разрешает использовать команду CCC (Clear Command Channel). Это разрешает менее защищенные соединения, и должно использоваться только для отладки.

       -d     Отладочная информация будет записываться в syslog (идентично -v).
       -v     Отладочная информация будет записываться в syslog (идентично -d).

       -l     Каждая сессия ftp(1) будет записываться в syslog. Если этот флаг указан дважды, то будет записываться дополнительная информация о выполняемых операциях (такая как запрошенные файлы, создание каталогов и т. п.). Если этот флаг указан три раза, будет также записываться другая статистика, как например количество переданных байт.

       -T maxtimeout
              Таймаут времени отключения для клиента в секундах (максимальная длительность сессии), по умолчанию 2 часа. Этот таймаут отличается от таймаута неактивности, указанного с опцией -t (см. далее).

       -t timeout
              Таймаут времени неактивности в секундах (по умолчанию 15 минут).

       -p port
              Запуск работы сервера с прослушиванием соединений на указанном TCP-порте. Обычно сервер ftp вызывается через демон inetd(8).
             
       -U ftpusers-file
              Указывает полный путь и имя для файла ftpusers. Значение по умолчанию /etc/ftpusers. В этом файле указываются имена пользователей, которым запрещен вход в систему через ftp. Среди таких пользователей обычно root, daemon, bin, uucp и news.

       -u umask
              Установка umask для процесса ftpd. Значение по умолчанию обычно 027.

       -r realm-file
              Устанавливает имя файла krb.conf. Значение по умолчанию /etc/krb5.conf.

       -s srvtab
              Устанавливает имя файла srvtab для применения аутентификации Kerberos V4.
              Значение по умолчанию /etc/srvtab.

       -w {ip|maxhostlen[,{striplocal|nostriplocal}]}
              Управляет формой удаленных имен хостов, передаваемых в login(1). Указывает числовые IP, которые всегда передаются в login(1). Указывает число  maxhostlen, которое устанавливаает макисмальную длину имен хостов, передаваемых в login(1) перед тем, как они будут переданы как числовые IP-адреса. Если maxhostlen == 0, то используются настройки системы по умолчанию, как определено структурами utmp или utmpx. Опции nostriplocal и striplocal которые должны быть указаны после запятой, управляют тем, что нужно или нет отделять local host domain от remote hostname. По умолчанию дейчтвует striplocal.

       Сервер ftp в настоящий момент поддерживает следующие запросы (регистр не имеет значения):
       Запрос   Описание
       ABOR     прерывание предыдущей команды
       ACCT     указывает аккаунт (игнорируется)
       ADAT     отправляет сообщение протокола аутентификации
       ALLO     выделяет хранилище (бессмысленный запрос)
       APPE     добавить в файл
       AUTH     указывает для исполнения протокол аутентификации
       CCC      устанавливает режим защиты канала команд для "Clear" (нет защиты). Запрос работает только в случае указания опции -c в командной строке.
       CDUP     изменение текущей рабочей директории на родительскую
       CWD      изменение текущей рабочей директории
       DELE     удалить файл
       ENC      послать privacy и integrity protected команду (передаваемую как аргумент)
       HELP     выдать подсказку
       LIST     выдать список файлов в директории (‘‘ls -lgA’’)
       MIC      послать integrity protected command (передаваемую как аргумент)
       MKD      создать папку
       MDTM     показать время последней модификации файла
       MODE     указать режим передачи данных
       NLST     предоставить список имен файлов в папке
       NOOP     ничего не делать
       PASS     указать пароль
       PASV     подготовить передачу в режиме server-to-server
       PBSZ     указать размер protection buffer
       PORT     указать порт соединения для данных
       PROT     указать уровень защиты, которым защищается передача данных
       PWD      вывести текущую рабочую директорию
       QUIT     завершить сессию
       REST     рестартовать неоконченную передачу
       RETR     запросить файл
       RMD      удалить директорию
       RNFR     указать имя файла rename-from
       RNTO     указать имя файла rename-to
       SITE     нестандартные команды (см. следующую секцию)
       SIZE     показать размер файла
       STAT     показать статус сервера
       STOR     сохранить файл
       STOU     сохранить файл с уникальным именем
       STRU     указать структуру data transfer
       SYST     показать имя операционной системы сервера
       TYPE     указать тип передачи данных
       USER     указать имя пользователя
       XCUP     изменить текущую рабочую директорию на родительскую (этот запрос устарел)
       XCWD     изменить рабочую директорию (этот запрос устарел)
       XMKD     создать директорию (этот запрос устарел)
       XPWD     показать текущую рабочую директорию (этот запрос устарел)
       XRMD     удалить директорию (этот запрос устарел)

       Следующие нестандартные UNIX-команды поддерживаются запросом SITE.

       Запрос   Описание
       UMASK    Изменить umask. Например SITE UMASK 002
       IDLE     Установить таймер idle. Например SITE IDLE 60
       CHMOD    Установить права (режим) доступа к файлу. Например SITE CHMOD 755 filename
       HELP     Выдать подсказку. Например SITE HELP

       Остальные запросы ftp, указанные в стандарте Internet RFC 959, распознаются, но не реализованы. MDTM и SIZE не указаны в RFC 959, однако появятся в следующем обновленном FTP RFC.

       Сервер ftp прерывает активную передачу файла только по команде ABOR вслед за Telnet "Interrupt Process" (IP) сигналом и Telnet "Synch" сигналом в потоке команд Telnet, как описано в стандарте Internet RFC 959. Если команда STAT принята во время передачи данных вместе с Telnet IP Synch, то будет возвращен статус передачи.

       Ftpd интерпретирует имена фалов в соответствии с конвенции ‘‘globbing’’, используемой csh(1). Это разрешает пользователям задействовать метасимволы ‘‘*?[]{}~’’.

       Ftpd использует аутентификацию пользователей по следующим правилам:

         1.   Имя пользователя должно быть в базе данных паролей /etc/passwd.

         2.   Должна быть выполнена команда AUTH для удостоверения, что протокол аутентификации успешно выполнен (в соединении с командой ADAT и ответами), и аутентифицированному пользователю разрешен доступ. В другом случае пользователем должен быть указан непустой пароль.

         3.   Имя пользователя не должно быть указано в файле /etc/ftpusers.

         4.   Пользователь должен иметь стандартный шелл, значение которого получено по запросу getusershell(3).

         5.   Если имя пользователя ‘‘anonymous’’ или ‘‘ftp’’, должен существовать anonymous аккаунт ftp в файле паролей (пользователь ‘‘ftp’’). В этом случае пользователю разрешен логон путем указания любого пароля (по соглашению это имя клиентского хоста).

       В последнем случае ftpd вводит специальные ограничения для привилегий доступа клиента. Сервер выполняет команду chroot(2) в домашнюю директорию пользователя ‘‘ftp’’. Для того, тобы не допустить нарушения безопасности системы, рекомендуется тщательно сконструировать поддерево ‘‘ftp’’. Рекомендуются следующие правила:

       ~ftp   Сделать домашнюю директорию, владельцем которой является пользователь ‘‘ftp’’, невозможной для записи кем бы то ни было.

       ~ftp/bin
              Сделать для этой директории владельцем суперпользователя и сделать в эту папку невозможной для записи кем бы то ни было. Программа ls(1) должна предоставлена в спсике команд. Эта программа должна иметь режим доступа 111.

       ~ftp/etc
              Сделать для этой директории владельцем суперпользователя и сделать в эту папку невозможной для записи кем бы то ни было. Файлы passwd(5) и group(5) должны быть представлены для команды ls для предоставления имен владельцев ранее, чем номеров. Поле пароля в passwd не используется и не должно содержать реальных зашифрованных паролей. Эти файлы должны иметь режим доступа 444.

       ~ftp/pub
              Сделайте для этой директории режим 777 и владельца ‘‘ftp’’. Пользователи, зашедшие анонимно, должны иметь возможность сохранять файлы в эту папку.

       Если команда ADAT успешно завершена, управляющий канал должен быть защищен частно или интегрировано. В этом случае через канал управления разрешены только команды MIC и ENC. Аргументом команды MIC является закодированная строка (base 64 encoded string) которая, будучи декодированной, является ftp-командой, integrity protected криптографической контрольной суммой. Аргументом команды ENC command является base 64 encoded string, который, будучи декодированным, является командой ftp, privacy и integrity защищенной.

       Если команда ADAT успешно завершена, ftp отвечает также с защитой integrity или privacy.

       Если команда ADAT успешно завершена, канал data также может быть защищен. Команда PROT принимает S для integrity и P для privacy защиты. За исключением того, что команда ADAT успешно завершена, уровень защиты, приянтый командой PROT, является C (clear).

СМ. ТАКЖЕ
       ftp(1), getusershell(3), syslogd(8)

       Lunt, S. J., FTP Security Extensions, Internet Draft, ноябрь 1993.

БАГИ
       Аккаунту anonymous свойственна повышенная опасность, и его нужно по возможности избегать.

       Сервер должен быть запущен с правами superпользователя для создания сокетов с привилегированными именами портов. Для эффективной поддержки id залогиненного пользователя, возврат к суперпользователю доллжен быть только с целью привязки адресов к сокетам. Здесь возможна эксплуатация дыр в защите.

ИСТОРИЯ
       Команда ftpd появилась в 4.2BSD.