ftpd - Сервер Internet File Transfer Protocol

СИНТАКСИС

ftpd [-AdDhlMPSU ] [-T maxtimeout ] [-t timeout ] [-u mask ]  

ОПИСАНИЕ

Ftpd - это серверный процесс Internet File Transfer Protocol'а. Сервер использует протокол TCP и слушает порт, определённый спецификацией сервиса ``ftp'' ; смотри services.

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

 

-A
Разрешает только анонимные ftp соединения или бюджеты, перечисленные в /etc/ftpchroot Другие попытки соединения будут отвергнуты.
-d
Информация отладки записывается в syslog с помощью LOG_FTP.
-D
Если указан этот параметр, то ftpd отделится от командной оболочки и станет демоном, принимая соединения на порту FTP и создавая наследующие процессы (child processes) для управления этими соединениями. Такой запуск создает меньшую нагрузку, чем запуск ftpd из inetd и, следовательно, полезен на загруженных серверах для уменьшения нагрузки.
-h
Для пассивных соединений сервер будет использовать порты данных в верхнем диапазоне портов. Этот диапазон определяется в <netinet/in.h> переменными IPPORT_HIFIRSTAUTO и IPPORT_HILASTAUTO В Ox они установлены как 49152 и 65535 соответственно.
-l
Каждая успешная и прерванная ftp сессия регистрируется с помощью syslog посредством LOG_FTP. Если этот параметр указан дважды, то также будут регистрироваться операции копирования, записи, добавления, удаления, создания каталога, удаления каталога и переименования вместе со своими аргументами - именами файлов.
-M
Разрешен режим multihomed (много домашних каталогов). Вместо простого использования ~ftp для анонимных передач, используется каталог, соответствующий полностью заданному имени IP-адреса, к которому подключился клиент, и расположенный внутри ~ftp
-p
Запретить ftp-соединения в пассивном режиме. Полезно, если вы находитесь за межсетевым экраном, который отвергает соединения на порты с произвольно высокими номерами. Многие ftp-клиенты пытаются соединиться с сервером сначала в пассивном режиме и не всегда корректно, что заставляет сервер отвергать соединения на порт к которому он просил клиента подключиться.
-P
Разрешает недопустимые номера портов или адреса для команды PORT, инициализирующей соединения. По умолчанию ftpd нарушает RFC и, таким образом, выдает команду PORT на незарезервированные порты и требует, чтобы он использовал тот же адрес источника, с которого поступило соединение. Это предотвращает "FTP bounce attack" против сервисов на обеих машинах.
-S
При использовании данного параметра ftpd регистрирует все анонимные скачивания в файле /var/log/ftpd если этот файл существует.
-U
Каждая конкурирующая ftp сессия регистрируется в файле /var/run/utmp позволяя увидеть их такой команде как who.
-T maxtimeout
Клиент также может требовать разные периоды таймаута; опцией -T можно установить максимально разрешенный период длительностью maxtimeout секунд. По умолчанию ограничение - 2 часа.
-t timeout
Длительность таймаута неактивности установить в timeout секунд (по умолчанию - 15 минут).
-u mask
Установить umask равную mask вместо 027 по умолчанию. Кроме этого, запрещается chmod.

 

Для запрета ftp-доступа можно использовать файл /etc/nologin Если файл существует, выводит его и выходит. Если существует файл /etc/ftpwelcome то печатает его перед выводом сообщения ``ready'' Если существует файл /etc/motd то печатает его после успешной регистрации. Если в каталоге существует файл .message то выводит его при входе в каталог.

В настоящее время ftp-сервер поддерживает следующие ftp-запросы. Регистр запросов игнорируется.

 

Запрос Ta Описание

ABOR Ta прервать предыдущую команду

ACCT Ta задать бюджет пользователя (игнорируется)

ALLO Ta разместить хранилище - allocate storage (бессмысленно)

APPE Ta добавить в файл

CDUP Ta перейти в каталог верхнего уровня

CWD Ta сменить рабочий каталог

DELE Ta удалить файл

HELP Ta вывод справочной информации

LIST Ta получить список файлов в каталоге (``ls -lgA '' )

MKD Ta создать каталог

MDTM Ta показать время последней модификации файла

MODE Ta определить тип пересылки данных mode

NLST Ta получить список имен файлов в каталоге

NOOP Ta ничего не делать

PASS Ta указать пароль

PASV Ta приготовиться к пересылке сервер-серверу

PORT Ta задать порт подключения данных

PWD Ta сообщить текущий рабочий каталог

QUIT Ta прервать сессию

REST Ta продолжить незавершенную пересылку

RETR Ta принять файл

RMD Ta удалить каталог

RNFR Ta указать имя файла rename-from

RNTO Ta указать имя файла rename-to

SITE Ta нестандартные команды (см. следующий раздел)

SIZE Ta вернуть размер файла

STAT Ta вернуть статус сервера

STOR Ta сохранить файл

STOU Ta сохранить файл с уникальным именем

STRU Ta определить тип пересылки данных structure

SYST Ta сообщить тип операционной системы сервера

TYPE Ta определить тип пересылаемых данных type

USER Ta указать имя пользователя

XCUP Ta перейти в каталог верхнего уровня (deprecated)

XCWD Ta сменить рабочий каталог (deprecated)

XMKD Ta создать каталог (deprecated)

XPWD Ta сообщить текущий рабочий каталог (deprecated)

XRMD Ta удалить каталог (deprecated)

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

Запрос Ta Описание

UMASK Ta сменить, напр., ``SITE UMASK 002''

IDLE Ta установить idle-timer, напр., ``SITE IDLE 60''

CHMOD Ta сменить mode файла, напр., ``SITE CHMOD 755 filename''

HELP Ta получить справочную информацию.

 

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

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

Ftpd интерпретирует имена файлов в соответствии с соглашениями ``globbing'' используемыми csh. Это позволяет пользователям использовать метасимволы ``*?[]{}~ ''

Ftpd аутентифицирует пользователей в соответствии с пятью правилами.

 

     

  1. Регистрационное имя должно быть в базе данных паролей, /etc/pwd.db и не должно иметь нулевой пароль. В этом случае пароль должен быть указан клиентом до того, как могут быть выполненые любые файловые операции. Если у пользователя имеется ключ S/Key, то ответ успешной команды USER будет содержать вызов S/Key. Клиент может в команде PASS ответить либо стандартным паролем, либо одноразовым паролем S/Key. Сервер автоматически определит тип полученного пароля и выполнит соответствующую аутентификацию. Подробнее по S/Key аутентификации смотрите в skey S/Key является торговой маркой Bellcore.
  2. Регистрационное имя не должно быть указано в файле /etc/ftpusers
  3. Пользователь должен иметь стандартный shell, возвращаемый getusershell.
  4. Если имя пользователя указано в файле /etc/ftpchroot то корень сессии будет переключен в каталог пользователя с помощью chroot, как для бюджета пользователя ``anonymous'' или ``ftp'' (см. следующую тему). Однако пользователь все-равно должен ввести пароль. Эта особенность предназначена как компромис между полностью анонимным и полностью привилегированным бюджетами. Бюджет пользователя должен быть настроен также, как для анонимного пользователя.
  5. Если имя пользователя - ``anonymous'' или ``ftp'' то в файле паролей должен присутствовать бюджет анонимного ftp (пользователь ``ftp )'' В этом случае регистрация пользователя разрешена при указании любого пароля (по традиции в качестве пароля должен указываться email-адрес пользователя).

 

В последнем случае ftpd предпринимает специальные действия для ограничения доступа клиенту. Сервер выполняет chroot в домашний каталог пользователя ``ftp'' Для того, чтобы система не была взломана, рекомендуется тщательно разрабатывать поддерево ``ftp'' следуя таким правилам:

 

~ftp
Установите владельцем домашнего каталога ``root'' и сделайте недоступным на запись для всех (mode 555).
~ftp/bin
Установите владельцем этого каталога ``root'' и сделайте недоступным на запись для всех (mode 511). Этот каталог не обязательный, если у вас нет команд, которые мог бы выполнить анонимный ftp пользователь (команда ls является встроенной). Все программы в этом каталоге должны иметь mode 111 (только выполнение).
~ftp/etc
Установите владельцем этого каталога ``root'' и сделайте недоступным на запись для всех (mode 511). Файлы pwd.db (смотрите pwd_mkdb8) и group должны присутствовать, чтобы команда ls могла выводить имена владельцем, а не номера. Поле пароля в pwd.db не используется и не должно содержать реальных паролей. При наличии файла motd он будет распечатываться после успешной регистрации. Эти файлы должны иметь mode 444.
~ftp/pub
Установите для этого каталога mode 555 и владельца ``root'' Это традиционное место, где хранятся файлы, публично доступные для копирования.

 

Если регистрация в файл /var/log/ftpd разрешена, информация будет записана в следующем виде:

 

 

time
Время и дата получения файлов в формате ctime.
elapsed time
Время копирования, в секундах.
remote host
Удаленная машина (или IP-адрес).
bytes
Количество переданных байт.
path
Полный путь (относительно ftp chroot каталога) переданного файла.
type
Тип передачи - либо ``a'' для ASCII, либо ``b'' для binary.
unused
Неиспользуемое поле, содержащее для совместимости ``*''
unused
Неиспользуемое поле, содержащее для совместимости ``o''
user type
Тип пользователя - либо ``a'' для anonymous, либо ``r'' для реального пользователя (всегда должен быть анонимным).
name
Либо регистрационное имя системы, либо значение ``email address'' если пользователь анонимный.
unused
Неиспользуемое поле, содержащее для совместимости ``0''
real name
Регистрационное имя в системе, если соединение не анонимное или ``*'' если анонимное.
virtual host
Виртуальная машина, с которой было выполнено соединение.

 

Хотя имеются поля для регистрационной информации реальных пользователей, этот файл используется только для анонимных сеансов передачи. Неиспользуемые поля существуют только для совместимости с другими ftpd реализациями.  

ФАЙЛЫ

 

/etc/ftpusers
Список нежелательных/запрещенных пользователей.
/etc/ftpchroot
Список обычных пользователей, для которых нужно выполнить chroot.
/etc/ftpwelcome
Приветствие.
/etc/motd
Приветствие после регистрации.
/etc/nologin
Наличие этого файла влечёт за собою отказ в доступе с одновременной распечаткой его содержимого.
/var/run/utmp
Список пользователей в системе.
/var/run/ftpd.pid
Id процесса, если запущен в режиме демона.
/var/log/ftpd
Файл журнала регистрации событий для анонимных пользователей.
Оцени публикацию:
  • 1,5
Оценили человек: 1

Похожие статьи:


Предложения и пожелания:
Ваше имя:
Ваш E-mail:
Сколько будет Οдин + Τри
Главная
X

Новые заметки:

Про что мы забываем когда делаем оценку задачи по времени

Список вопросов для собеседования разработчика по телефону

Symfony2 авторизация без Doctrine2 для чайника

Phpstorm7 LiveEdit

Жесткий хабр или не хабр, тогда кто?

Яндекс.Деньги мошенничество

Как узнать какие страницы в поиске яндекса или это секрет

Последние комменты:

Yapro CMS:

Здравствуйте, Гость | Войти | Регистрация | Карта сайта | RSS ленты | Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2018 YaPro.Ru

Главная » Веб-мастеру » Unix »