Перевод английской справки 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. |