Примеры сетевых файловых служб: FTP и NFS. Протокол ftp

Мы выпустили новую книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».

Подписаться

Больше видео на нашем канале - изучайте интернет-маркетинг с SEMANTICA

Эта технология является одной из самых востребованных для скачивания и загрузки данных с/на удаленные серверы, рассредоточенные по всему миру.

Ftp-системы используют при создании веб-сайтов. Вся информация, касающаяся интернет-ресурса, хранится на фтп сервере. Когда разработчику требуется внести какие-то корректировки в сайт, он заходит на сервер, скачивает файл, который нужно поправить, потом заливает его обратно. И все, изменение вступило в силу. Это быстро и удобно.

Как выглядит FTP сервер

Визуальное представление зависит от системы, через которую выполняется вход. Есть специальные программы типа FileZilla, в ней данные выводятся в виде привычного всем Total Commander.


На многих хостингах есть своя система управления, выглядит это также в виде привычного набора папок и файлов.

Особенности FTP сервера

Более подробно рассмотрим технические аспекты и расскажем, что такое ftp сервер и как он работает.

Главная функция FTP - передача файлов.

Помимо заливки и выгрузки информации, доступны различные команды, с помощью которых можно управлять файлами и каталогами:

  1. Требуется аутентификация.
  2. Наличие выделенного канала для каждого соединения.
  3. Поддержка 2-х режимов передачи данных: текста и бинарного (в двоичной системе). Второй вариант сокращает время и трафик.
  4. Использование множественного подключения как минимум двуканального. Через один передаются команды управления и возвращаются обработанные ответы. С помощью других осуществляется файловая передача из расчета выделенный канал на каждую.

Как подключиться к FTP серверу

Для входа на сервер требуется заполнить форму авторизации, иначе говоря, пройти аутентификацию. После ввода логина (user) и пароля (pass) эта информация передается в систему. Если она принята, клиент получит приглашение и откроется рабочая сессия.

Бывают варианты входа без указания регистрационных данных. В этом случае доступные посетителю опции будут ограничены.

Есть еще один вариант, как зайти на FTP сервер - анонимный доступ. По умолчанию вход происходит при вводе логина «anonymous», написание может отличаться регистром букв. Однако самый распространенные способ, когда предлагают залогиниться с помощью электронного адреса. Такой вариант доступа используют многие FTP-хосты, рассылающие обновления ПО.

Для подключения можно использовать веб-браузер или файловые менеджеры типа Total Commander, FileZilla. Через браузер вы сможете просмотреть и скачать файлы, при этом внести изменения не сможете.

Удобнее работать через программу-клиент FileZilla (можно скачать в свободном доступе).

Создаем новое подключение следующим образом:

  • В поле «Хост» вводим адрес ftp-сервера.
  • Заполняем поля «Имя» пользователя, «Пароль» и, при необходимости, «Порт».

Где взять адрес? Если вы подключаетесь к серверу, размещенному на хосте, все доступы есть у владельца сайта, их предоставил провайдер.

Для чего еще используют FTP

Файлы веб-сайтов – это самый распространенный вариант использования, но это далеко не все, что располагается на FTP серверах.

Там можно хранить любую рабочую либо личную информацию больших объемов, как вариант, фотографии, видеофильмы.

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

Недостатки FTP-серверов

Слабая защиты от взлома и атак. Из-за технических особенностей повредить могут не только серверы, но и клиентов. Поэтому конфиденциальную информацию на них хранить не следует.

Проверка подлинности источника пакета передачи данных отсутствует, это приводит к уязвимости перед dDoS-атаками.

Протокол FTP применяется давно и на первый взгляд предельно прост. Однако эта простота кажущаяся и многие начинают испытывать проблемы с установлением FTP-соединения, особенно когда сервер или клиент находятся за брандмауэром или NAT"ом. Поэтому сегодня мы поговорим об особенностях работы протокола FTP в различных режимах.

Протокол FTP является старейшим сетевым протоколом (создан в 1971 году), но, тем не менее, широко используется по сей день. Важной особенностью протокола является то, что он использует несколько соединений: одно для управляющих команд, остальные для данных. Причем соединений для передачи данных может открываться несколько, в каждом из которых файлы могут передаваться в обоих направлениях. Именно с этой особенностью и связан ряд проблем.

В зависимости от способа установления соединения для передачи данных различают активный и пассивный режимы работы FTP. В активном режиме сервер сам устанавливает соединение передачи данных к клиенту, в пассивном наоборот. Рассмотрим эти режимы более подробно.

Активный режим

В большинстве случаев для нормальной работы FTP-сервера за NAT достаточно будет пробросить 21 порт для управляющей сессии, 20 - для активного режима (если используется), а также указать и пробросить диапазон динамических портов для передачи данных.

Еще один важный момент, если вы пробрасываете порты для нескольких FTP-северов, то на каждом из них следует указать свой диапазон динамических портов и пробросить на эти же номера портов внешнего интерфейса. Почему? Потому что номер порта передается сервером в управляющей команде и ничего не знает о форвардинге, если номер порта, переданный сервером, не совпадет с номером порта на внешнем интерфейсе, то клиент не сможет установить соединение. В то время как управляющий порт и порт активного режима можно форвардить на любые внешние порты.

Надеемся, что данная статья поможет вам лучше понять механизм работы протокола FTP и осознанно подойти к процессу настройки и диагностики.

FTP (File Transfer Protocol протокол передачи файлов) — стандартный протокол, предназначенный для передачи файлов по TCP-сетям, построенный на архитектуре «клиент-сервер» и использующий разные сетевые соединения для передачи команд и данных между клиентом и сервером.

Сервер предоставляет клиенту доступ к данным (обычно это файлы и каталоги) клиенту либо анонимно, либо после аутентификации, при которой логин и пароль передаются открытым текстом. Можно использовать протокол SSH для шифрования логина, пароля и передаваемых данных.

Протокол достаточно простой, для его работы используются различные TCP соединения для команд и для передаваемых данных. Обычно это 21 порт для управляющих команд и 20 для передачи данных (в прочем это может быть и по другому). После установки TCP соединения на 21 порт общение FTP клиента с сервером происходит по средствам достаточно простых текстовых команд .

В соответствии с RFC 959 Сервер по потоку управления (21 порт) отвечает трехзначными ASCII-кодами состояния с необязательным текстовым сообщением.

Существует 2 режима работы протокола FTP: активный и пассивный.

В активном режиме клиент создаёт управляющее TCP-соединение с сервером на 21 порту и отправляет серверу свой IP-адрес и произвольный номер клиентского порта, после чего ждёт, пока сервер не запустит TCP-соединение с этим адресом и номером порта.

В пассивном режиме клиент использует поток управления (TCP порт 21), чтобы послать серверу команду PASV, и затем получает от сервера его IP-адрес и номер порта, которые затем используются клиентом для открытия потока данных с произвольного клиентского порта к полученному адресу и порту.

Знание режимов работы FTP помогает, если вам нужно подключаться к FTP серверу или поднимать его в сети, которая спрятана за NAT и\или защищена брендмауэром, что как можно догадаться не редкость. Если клиент не может принимать входящие соединения на произвольный порт, то необходимо настроить сервер в пассивном режиме, тогда входящие соединения к клиенту не потребуются, но сервер же должен быть готов принять входящее соединение на заранее установленные порты. Активный режим подойдет серверу, администратор которого не готов принимать входящие соединения на порты кроме 21, но в этом случае клиент сможет подключится только если сам примет входящие соединение. Так что в любом случае придется кому то открыть дополнительные порты.

При передачи могут быть использованы четыре представления данных:

    ASCII — используется для текста.

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

    EBCDIC — используется для передачи обычного текста между хостами в кодировке EBCDIC.

    Локальный режим — позволяет двум компьютерам с идентичными установками посылать данные в собственном формате без конвертации в ASCII.

Передача данных может осуществляться в любом из трёх режимов:

    Поточный режим — данные посылаются в виде непрерывного потока, освобождая FTP от выполнения какой бы то ни было обработки.

    Блочный режим — FTP разбивает данные на несколько блоков (блок заголовка, количество байт, поле данных) и затем передаёт их TCP.

    Режим сжатия — данные сжимаются единым алгоритмом.

FTP использует для аутентификации логин и пароль для предоставления доступа. Имя пользователя посылается серверу командой USER, а пароль — командой PASS. Если предоставленная клиентом информация принята сервером, то сервер отправит клиенту приглашение и начинается сессия. Логин и пароль передаются открытым текстом, так что безопасным этот способ назвать нельзя. Так же FTP сервер может предоставлять анонимный доступ к данным, то есть для всех желающих, не спрашивая логин и пароль.
Существуют расширения и способы для безопасной передачи данных и аутентификации, например: FTPS SFTP FTP через SSH.

Приведу пример FTP сессии со своими комментариями. Тут показан вывод команд (только в управляющем канале, естественно) которые FTP клиент передавал серверу и ответы сервера без сокращений (звездочками заменю некоторые параметры, например пароль из соображений безопасности):

Status: - это сообщение FTP клиента, при обмене командами с FTP "вручную" вы этих сообщений не увидите. Response: - это ответы FTP сервера Command: - это те команды которые клиент отправляет серверу (в ручном режиме вы будете вводить их с клавиатуры).

S tatus: Connecting to 37.140.*.* ...
Status: Connected with 37.140.*.*. Waiting for welcome message...
Response: 220 (vsFTPd 2.2.2) - итак, стучимся на 21 порт 37.140.*.* и нам говорят что там трудится vsFTPd
Command: USER ********* - посылаем имя пользователя
Response: 331 Please specify the password. - имя пользователя принято
Command: PASS ******** - посылаем пароль
Response: 230 Login successful. -пароль принят
Command: SYST - "и какая у вас ОС?" спросим мы
Response: 215 UNIX Type: L8 - "а вот такая" ответит сервер
Command: FEAT - что ты можешь, сервер?
Response: 211-Features: - а вот что:)
Response: EPRT
<... Не будем оглашать весь список...>
Response: UTF8
Response: 211 End - сервер закончил перечислять функции
Command: OPTS UTF8 ON - говори с нами в кодировке UTF-8
Response: 200 Always in UTF8 mode. - да не вопрос
Status: Connected - Это мы оживляем соединение
Command: PWD - покажи нам рабочий каталог
Response: 257 "/" - на! это название рабочего каталога (у нас /)
Command: TYPE A - но сначала зададим режим представления данных
- ок
Command: PASV - и попросимся в пассивный режим
Response: 227 Entering Passive Mode (37,140,192,202,249,140). - получили список портов
Command: LIST - отдай список содержимого каталога

- в этом месте мы получили оглавление по каналу данных
Command: TYPE A
Response: 200 Switching to ASCII mode.
Status: Retrieving directory listing...
Command: CWD www - меняем рабочий каталог на www
Response: 250 Directory successfully changed. -ответ "ок"
Command: PWD - снова запрашиваем рабочий каталог
Response: 257 "/www" - теперь он /www
Command: TYPE A - и выбрав режим представления данных
Response: 200 Switching to ASCII mode.
Command: PASV - опять в пассивном режиме
Response: 227 Entering Passive Mode (37,140,192,202,252,174).
Command: LIST - запрашиваем оглавление каталога
Response: 150 Here comes the directory listing.
Response: 226 Directory send OK.
Status: Directory listing successful -оглавление мы получили и теперь
Status: Starting download of /www/google8f2c0456e362dfaa.html - хотим скачать файл
Command: TYPE A - для этого опять выберем тип
Response: 200 Switching to ASCII mode.
Command: PASV - и режим передачи данных
Response: 227 Entering Passive Mode (37,140,192,202,254,190).
Command: RETR google8f2c0456e362dfaa.html - и скажем: "Отдай на файл"
Response: 150 Opening BINARY mode data connection for google8f2c0456e362dfaa.html (53 bytes).
Response: 226 Transfer complete. - и вот файл был получен по каналу данных
Status: Download successful
Status: Retrieving directory listing...
<... Пропустим некоторые повторяющиеся действия...>
Command: MKD fff - а вот тут мы создали папку
Response: 257 "/www/moop-nz.ru/02-uslugi/fff" created
Command: RNFR /www/moop-nz.ru/02-uslugi/fff - и хотим переименовать папку fff
Response: 350 Ready for RNTO.
Command: RNTO /www/moop-nz.ru/02-uslugi/eee - в папку eee
Response: 250 Rename successful. - операция прошла успешно
<... Пропустим некоторые повторяющиеся действия...>
Command: RMD /www/moop-nz.ru/02-uslugi/eee/ - удаляем ранее созданную папку
Response: 250 Remove directory operation successful. - всё получилось
Status: Connected
Status: Starting upload of C:\12345\12345 001.jpg - начинаем загружать файл на сервер
<... Пропустим некоторые повторяющиеся действия...>
Command: TYPE I
Response: 200 Switching to Binary mode.
Command: PASV
Response: 227 Entering Passive Mode (37,140,192,202,243,234).
Command: STOR 12345 001.jpg - на этот раз отправляем файл на сервер
Response: 150 Ok to send data.
Response: 226 Transfer complete.
Status: Upload successful
Status: Retrieving directory listing...
Command: TYPE A
Response: 200 Switching to ASCII mode.
Command: PASV
Response: 227 Entering Passive Mode (37,140,192,202,251,25).
Command: LIST
Response: 150 Here comes the directory listing.
Response: 226 Directory send OK.
Status: Directory listing successful
Command: DELE /www/moop-nz.ru/02-uslugi/12345 001.jpg - и удаляем его напоследок
Response: 250 Delete operation successful.

Много создали люди FTP серверов и клиентов (как никак с 1971 живет протокол).

Есть специальные программы работающие в качестве FTP клиента, такие как: FileZilla, gFTP, cURL, lftp и многие другие, но сейчас в качестве FTP клиента может работать почти любой браузер (Mozilla Firefox, Konqueror, Opera, Яндекс.Браузер, Google Chrome, Internet Explorer и т.д.) или файловый менеджер (Midnight Commander, Krusader, GNOME Commander, Konqueror, Nautilus, Dolphin, FAR Manager, Total Commander, Проводник Windows и т. д.), так что в использовании специальных программ нет необходимости (хотя я пользуюсь иногда gFTP).

Для того чтобы поднять свой FTP сервер с преферансом и аутентификацией понадобится специальная программа, которая будет исполнять роль сервера. Таких программ тоже много, в том числе: vsftpd, ProFTPD, Pure-FTPd, glFTPd, oftpd, Serv-U File Server и многие другие.

Кажется в общих чертах понятно, что такое FTP и для чего оно нужно.

  • Назад
  • Вперёд
  • Телеметрия в Windows 10. Отключай, не отключай, всё равно получишь лучшее решение
  • Го. Компьютер смог обыграть чемпиона трехкратного чемпиона Европы по игре го
  • Новые "подарки" от Microsoft - "стабильность" и "приватность"

    Всемирно известная корпароция вновь порадовала нас новостями: После выхода очередного патча, встроенный инструмент для шифрования Bitlocker перестал работать, а Microsoft не в силах...

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

Что такое FTP?

Как вы, наверное, знаете, существуют различные протоколы для передачи данных через интернет и другие сети. Каждый раз, когда вы набираете адрес сайта в адресной строке браузера, к нему автоматически добавляется спереди «http://». Это обозначение протокола HTTP (HyperText Transfer Protocol – протокол передачи гипертекста). Этот протокол используется для передачи пользователю от сервера HTML-страниц и связанных с ними элементов (графики, флэш-роликов, скриптов и т.д. и т.п.). По нему же часто передаются и файлы, которые пользователь скачивает на свой компьютер.

Но сейчас речь не о нём, а о другом протоколе – он, как вы можете увидеть из заголовка, называется FTP. Расшифровывается эта аббревиатура как File Transfer Protocol – протокол передачи файлов. Возникает вполне логичный вопрос: если мы только что говорили, что с помощью HTTP пользователь может скачать файл с сервера себе на компьютер, зачем понадобился ещё один протокол для передачи файлов?

Дело в том, что HTTP изначально предназначался только для передачи гипертекста, и загрузка файлов со стороны пользователя на сервер требует дополнительных телодвижений со стороны создателя Web-страниц. FTP же изначально позволяет передавать файлы в обоих направлениях, поддерживает передачу непосредственно между двумя серверами, а также даёт пользователю возможность работать с файлами, расположенными на сервере, почти точно так же, как и с теми, которые находятся на его собственном компьютере.

Несмотря на то, что название этой программы похоже на слово Mozilla, разработчики популярного браузера и почтового клиента не имеют к ней никакого отношения. Тем не менее, набор возможностей пользователям предлагается ничуть не хуже, чем если бы этот программный продукт разрабатывался специалистами из Mozilla.

Во-первых, FileZilla поддерживает защищённое соединение через безопасные шифруемые протоколы SSL и SFTP, что весьма немаловажно в наше время. При этом имеется поддержка скачки и закачки файлов, имеющих размер более 4 Гб, а также встроенный менеджер сайтов. Программа умеет работать под разными операционными системами и имеет специальную портативную версию, которую можно носить с собой на «флэшке» и запускать без установки. Дополняет картину многоязычный интерфейс программы , причём среди языков есть и русский.

Итого

Что ж, как видите, в работе с протоколом FTP никаких особых сложностей не наблюдается. Большинство пользователей вполне могут обойтись «Проводником» Windows или своим любимым браузером, ну а те, кто хочет чего-то большего, смогут не тратить деньги на дорогие специализированные программы и не заниматься их взломом, а воспользоваться бесплатными решениями, ничем не уступающим в качестве коммерческим. Успехов вам в «общении» с FTP-серверами!

Обмен данными появился до Интернета. Но возникновение Всемирной сети расширило область задач по обмену информацией. Протокол FTP является основным, наравне с mail и www.

Он обеспечивает передачу информации, а не доступ к файлам. Передача по ФТП изначально не являлась безопасной, но протокол FTPS, работающий в зашифрованном канале SSL-протокола, обеспечивает передачу данных безопасно. Это позволяет защитить как команды, так и передаваемые данные.

Описание протокола FTPS

Серверы FTPS предоставляют сертификаты публичного ключа. Как правило, они создаются с использованием инструментов Unix или адаптированных инструментов для Windows, например, OpenSSL.

Каждый сертификат должен быть подписан центром сертификации. В ином случае, клиент FTPS формирует предупреждение.

Данные возможно кодировать на канальном уровне (команды и/или данные). Протокол FTPS использует два соединения:

  • одно передает данные;
  • другое - команды серверу и ответы сервера на них.

Если применено шифрование на базе SSL, сведения о номере порта для обмена данными будут недоступны.

Доступ по протоколу FTP - это применение свода правил, описывающих соединения компьютеров и управление соединениями, файлами, передачей файлов.

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

Протокол FTPS позволяет обмениваться как бинарными, так и текстовыми файлами, причем формат кодирования не имеет особого значения. Важно, что он понятен отправляющей и получающей стороне.

Работа FTPS-сервера

Обычно подключение по FTPS осуществляется посредством специальных программ, в частности, WinSCP, Far, Total Comander, FileZilla и пр. Строка подключения выглядит так:

  • Протокол:// Имя@Хост: пароль @ хост. ru: 21 .

Каждая программа, обеспечивающая соединение, предлагает заполнять актуальные поля по-своему. Но для любого подключения необходимо знать:

  • имя подключения (логин, ник);
  • пароль для подключения;
  • имя хоста FTP/FTPS;
  • номер порта.

Возможны и анонимные подключения по FTP/FTPS, но особого практического значения они не имеют.

Клиент FTPS может установить соединение с сервером в явном или неявном режимах.

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

А во втором случае клиент и сервер начинают обмен данными в защищенном режиме. Текстовая информация при этом передается в зашифрованном формате.

Активный и пассивный FTP

Работа с FTP-сервером может быть двух видов:

  1. Активной. Тогда инициируется передача информации, клиент прослушивает TCP-порт и передает данные серверу: какой порт он прослушивает. Сервер открывает TCP-соединение на порт, указанный клиентом. Затем данные направляются через это соединение.
  2. Пассивной. Клиент сообщает серверу о готовности к передаче данных, и сервер начинает следить за неспециальным TCP-портом, сообщая клиенту, за каким именно. Затем клиент открывает TCP-соединение на порт, указанный сервером, и обмен данными происходит через это соединение.

Подключение по FTP

Принято для доступа к FTP-ресурсам использовать специальные программы, обеспечивающие протокол передачи FTP. Но иногда нужно получить полный контроль над сервером и использовать команды этого протокола по собственному плану.

В частности, это можно сделать в среде Windows, введя команду:

  • ftp «Имя Сервера».

В результате этого будет предложено ввести имя и пароль, известные серверу «Имя Сервера». Естественно, что в этом имени нет никаких кавычек, никаких русских букв. То есть это обычное наименование веб-ресурса, выступающего как FTP-сервер.

Следует отметить, что FTP-сервер может предоставлять не один доступ и иметь не один ресурс. Обычно пара - имя/пароль - обеспечивает доступ к конкретной файловой системе конкретного файлового архива или сайта.

По большому счету, FTP давно уже используется для доступа к файловой системе сайта, а не для загрузки/выгрузки хранящихся данных. Передача их по-прежнему актуальна, но в последнее время все чаще разрабатываются инструменты для работы с сайтами, которые позволяют вести разработку веб-ресурсов на локальном сервере и обеспечивать синхронизацию локальной файловой системы с одноименной системой, находящейся на хостинге.

В таком контексте FTP-доступ обеспечивает доступ к корню сайта, позволяя манипулировать его страницами: редактировать, добавлять, удалять.

Пример: соединение с FTP-сервером

В данном примере (желтый фон) вводится команда ftp на компьютере клиента в операционной системе Windows. Сервер сообщает свои данные и предлагает указать имя пользователя. В этом случае (зеленый фон), именем является «SCi_WMiX_22G(a)wmix.isv.by».

Доступ не является анонимным, и сервер запрашивает пароль. Для проверки, после успешного подключения вводится команда «ls» - просмотр текущей директории.

Обычно сетевой протокол FTP не применяется на таком низком уровне. Гораздо удобнее использовать предназначенные для этого специальные программы. Практически все они обеспечивают удобное и безопасное подключение и дают возможность передавать/принимать файлы, создавать папки, перемещаться по ним, удалять их и совершать обычные операции привычным образом, как на локальной файловой системе.

Команды FTP/FTPS

Протокол FTPS совершенствуется, потому далеко не всегда точный перечень команд и их наименования (полученные в поиске по интернет-ресурсам) будут соответствовать инструменту, которым приходится пользоваться для доступа к FTP-ресурсу.

Лучший способ определить перечень доступных возможностей - ввести команду help.

Кстати, использование протокола FTP небезопасно с точки зрения интернет-атак: команды и данные передаются открыто. В протоколе FTPS все защищено. Однако нужно иметь в виду, что действия пользователя не дают возможность отката.

Удалив или переместив файл, создав папку в неправильном месте или с некорректным именем можно нанести ущерб файловой системе FTP-сервера. Собственно, сервер повредить невозможно. Но доступ, который он предоставляет к конкретной файловой системе, следует использовать правильно.