Янв 24

Протокол FTP (File Transfer Protocol) — протокол седьмого уровня (уровня приложений) модели OSI , основанный на надежной
передаче данных (протоколе TCP , порты 21, 20).

Этот протокол изначально является протоколом с аутентификацией по имени пользователя. Для протокола FTP существует и так называемый анонимный режим. В случае его использования (браузеры используют этот режим по умолчанию) вместо имени вводится anonymous , а вместо пароля – адрес электронной почты (браузер использует или настоящий из адресной книги, или случайно подобранный).

Другой особенностью протокола является использование разных режимов – пассивного и активного. В пассивном режиме клиент открывает соединения для передачи данных и управляет потоком, а сервер пассивно отдает данные. В активном режиме поток для передачи данных открывает и контролирует сервер. Однако, если клиент находится за файрволом с преобразованием адресов (маскарадингом), то он не сможет работать с сервером в этом режиме.

Передача данных в бинарном или текстовом (ascii) виде. Некоторые бинарные данные в первых версиях серверов/клиентов не могли быть переданы в прямом виде по сети в связи с особенностями реализации FTP . Для этой цели были придуманы несколько режимов – бинарный, когда передающиеся данные никак не преобразовываются для передачи по сети, и ascii, когда данные с помощью определенного кодирования преобразуются в последовательность символов ascii (с кодами от 0 до 127). Формат ascii увеличивал размер файла, а соответственно и время загрузки из сети, но позволял преодолеть возникающие проблемы. Современные FTP-серверы/клиенты самостоятельно способны выбирать нужный режим передачи, поэтому пользователь в большинстве случаев не задумывается об этом.

FTP-сервер vsftpd ( Very Secure FTP Daemon – очень надежный FTP-демон ).

За настройку сервера отвечают несколько файлов:

/etc/vsftpd.busy_banner – файл, в котором записывается сообщение, выдаваемое клиенту, когда сервер не может ответить на запрос.

/etc/vsftpd.ftpusers – содержит список пользователей, которым запрещен доступ по ftp. Как правило этот файл содержит список критически важных для системы пользователей, таких как root , bin , lpd и другие.

/etc/vsftpd.user_list – список пользователей, значение которого меняется в зависимости от того, как установлен параметр userlist_deny в основном файле конфигурации. Если этот параметр установлен в NO , то на FTP смогут попасть только пользователи, указанные в этом файле, если в YES , то все, кроме этих пользователей. Нужно иметь в виду, что если пользователь запрещен в файле /etc/vsftpd.ftpusers , то он не сможет иметь доступ, даже будучи разрешенным в этом файле.

/etc/vsftpd/vsftpd.conf -основной файл конфигурации сервера.

  • anonymous_enable=YES – параметр-переключатель, разрешающий или запрещающий доступ к анонимному FTP-каталогу (/var/ftp/pub)
  • local_enable=YES – если этот параметр стоит в NO , то пользователи той же системы, где запущен сервер, не могут получить к нему доступ.
  • write_enable=YES – Если этот параметр установлен в NO , то ни один из пользователей не имеет права закачать файлы на FTP-ресурс .
  • local_umask=022 – Определяет права доступа к файлам для всех пользователей, кроме anonymous .
  • anon_upload_enable=YES – Если параметр установлен в YES , то анонимные пользователи могут изменять существующие в каталоге /var/ftp/pub файлы.
  • anon_mkdir_write_enable=YES – Позволяет анонимным пользователям закачивать файлы на FTP-ресурс и создавать каталоги.
  • dirmessage_enable=YES – Если параметр включен, то FTP-сервер будет выдавать сообщение из файла при переходе в каталог. Это сообщение может содержаться в файле с именем .message внутри каталога, однако имя файла может быть дополнительно указано с помощью опции message_file .
  • xferlog_enable=YES – разрешает серверу записывать журнал с именами переданных файлов. По умолчанию, журнал пишется в /var/log/vsftpd.log , однако имя файла может быть дополнительно указано опцией xferlog_file . Формат файла может быть указан стандарной ( YES ) или нестандартной опцией xferlog_std_format .
  • connect_from_port_20=YES – позволяет использовать для передачи данных 20-й порт.
  • chown_uploads=YES – изменяет владельца файла, закачанного анонимным пользователем на того, который указан в параметре chown_username .
  • idle_session_timeout – указывает время в секундах, через которое будет разорвано соединение с клиентом, не выполняющим никаких действий.
  • data_connection_timeout – указывает время в секундах, через которое будет разорвано соединение в случае перерыва в передаче данных.

Комментировать