что такое sftp сервер

Протоколы SFTP и FTPS

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

FTP (File Transfer Protocol) – протокол передачи файлов по сети. Является одним из базовых протоколов Ethernet. Появился в 1971 году и изначально работал в сетях DARPA. На данный момент, как и HTTP, файловая передача основывается на модели, состоящей из совокупности протоколов TCP/IP (Transmission Control Protocol/Internet Protocol). Определён в RFC 959.

Протокол определяет следующее:

Взаимодействие между клиентом и сервером

Рассмотрим происходящие при работе FTP процессы подробнее. Соединение инициализируется интерпретатором протокола пользователя. Управление обменом осуществляется по каналу управления в стандарте TELNET. Команды FTP генерируются интерпретатором протокола пользователя и передаются на сервер. Ответы сервера отправляются пользователю также по каналу управления. В общем случае пользователь имеет возможность установить контакт с интерпретатором протокола сервера и отличными от интерпретатора пользователя средствами.

Основная особенность FTP в том, что он использует двойное подключение. Одно из них используется для передачи команд серверу и происходит по умолчанию через TCP-порт 21, который может быть изменён. Управляющее соединение существует все время, пока клиент общается с сервером. Канал управления должен быть открыт при передаче данных между машинами. В случае его закрытия передача данных прекращается. Через второе происходит непосредственная передача данных. Оно открывается каждый раз, когда осуществляется передача файла между клиентом и сервером. В случае, если одновременно передаётся несколько файлов, для каждого из них открывается свой канал передачи.

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

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

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

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

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

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

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

FTP-аутентификация использует схему имя пользователя/пароль для предоставления доступа. Имя пользователя посылается серверу командой USER, а пароль – командой PASS. Если предоставленная клиентом информация принята сервером, то сервер отправит клиенту приглашение и начинается сессия. Пользователи могут, если сервер поддерживает эту особенность, войти в систему без предоставления учётных данных, но сервер может предоставить только ограниченный доступ для таких сессий.

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

Схема протокола

Взаимодействие «клиент-сервер» при FTP-соединении можно наглядно представить следующим образом:

что такое sftp сервер. Смотреть фото что такое sftp сервер. Смотреть картинку что такое sftp сервер. Картинка про что такое sftp сервер. Фото что такое sftp сервер

Безопасный FTP

FTP изначально не задумывался как защищенный, поскольку предназначался для связи между несколькими военными объектами и учреждениями. Но с развитием и распространением интернета опасность несанкционированного доступа возросла во много раз. Возникла необходимость защиты серверов от различного рода атак. В мае 1999 авторы RFC 2577 свели уязвимости в следующий список проблем:

Обычный FTP не обладает возможностью передачи данных в зашифрованном виде, вследствие чего имена пользователей, пароли, команды и другая информация могут при желании легко и просто быть перехвачены злоумышленниками. Обычное решение этой проблемы — использовать «безопасные», TLS-защищённые версии уязвимых протокола (FTPS) или же другой, более защищённый протокол, вроде SFTP/SCP, предоставляемого с большинством реализаций протокола Secure Shell.

FTPS (FTP + SSL) – расширение стандартного протокола передачи файлов, добавляющее в его базовый функционал создание шифрованных сессий с помощью протокола SSL (Secure Sockets Layer — уровень защищенных сокетов). На сегодняшний день защита обеспечивается его более продвинутым аналогом TLS (Transport Layer Security — защита транспортного уровня).

Протокол SSL предложен корпорацией Netscape Communications в 1996 году с целью обеспечения безопасности и секретности интернет-соединений. Протокол поддерживает аутентификацию (установление подлинности) клиента и сервера, не зависит от приложений и прозрачен для протоколов HTTP, FTP и Telnet.

Протокол SSL Handshake состоит из двух этапов: установление подлинности сервера и необязательное установление подлинности клиента. На первом этапе сервер в ответ на запрос клиента посылает свой сертификат и параметры шифрования. Затем клиент генерирует мастер-ключ, зашифровывает его открытым ключом сервера и отсылает серверу. Сервер расшифровывает мастер-ключ своим частным ключом и подтверждает свою подлинность клиенту, возвращая ему сообщение, заверенное мастером-ключом клиента.

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

SSL поддерживает разнообразные криптографические алгоритмы. В ходе установления связи используется криптосистема открытого ключа RSA. После обмена ключами используется много разных шифров: RC2, RC4, IDEA, DES и TripleDES. Также используется MD5 — алгоритм создания дайджеста сообщений. Синтаксис сертификатов открытого ключа описан в X.509.

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

SSL-подключение

что такое sftp сервер. Смотреть фото что такое sftp сервер. Смотреть картинку что такое sftp сервер. Картинка про что такое sftp сервер. Фото что такое sftp сервер

Предоставляемый SSL безопасный канал обладает тремя основными свойствами:

Особенности FTPS

Существуют две реализации FTPS, использующие различные методы предоставления безопасности:

SFTP (Secure File Transfer Protocol) – протокол прикладного уровня передачи файлов, работающий поверх безопасного канала. Не следует путать с (Simple File Transfer Protocol), имеющим такую же аббревиатуру. Если FTPS является просто расширением FTP, то SFTP это отдельный и никак не связанный с ним протокол, который в качестве основы использует SSH (Secure Shell – безопасная оболочка).

Secure Shell

Разработкой протокола занималась одна из групп IETF под названием Secsh. Рабочая документация к новому протоколу SFTP не стала официальным стандартом, однако начала активно применяться для разработки приложений. В дальнейшем было выпущено шесть версий протокола. Однако, постепенное наращивание в нём функциональности привело к тому, что 14 августа 2006 года было принято решение о прекращении работы над развитием протокола в связи с выполнением основной задачи проекта (разработка SSH) и отсутствием достаточного экспертного уровня для перехода к разработке полноценного протокола удалённой файловой системы.

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

SSH позволяет безопасно передавать в незащищённой среде практически любой другой сетевой протокол. Таким образом, можно не только удалённо работать на компьютере через командную оболочку, но и передавать по шифрованному каналу звуковой поток или видео (например, с веб-камеры). Также SSH может использовать сжатие передаваемых данных для последующего их шифрования, что удобно, например, для удалённого запуска клиентов X WindowSystem.

Первая версия протокола, SSH-1, была разработана в 1995 году исследователем Тату Улёненом из Технологического университета Хельсинки (Финляндия). SSH-1 был написан для обеспечения большей конфиденциальности, чем протоколы rlogin, telnet и rsh. В 1996 году была разработана более безопасная версия протокола, SSH-2, несовместимая с SSH-1. Протокол приобрел ещё большую популярность, и к 2000 году у него было около двух миллионов пользователей. В настоящее время под термином «SSH» обычно подразумевается именно SSH-2, т.к. первая версия протокола ввиду существенных недостатков сейчас практически не применяется. В 2006 году протокол был утвержден рабочей группой IETF в качестве Интернет-стандарта.

Распространены две реализации SSH: частная коммерческая и бесплатная свободная. Свободная реализация называется OpenSSH. К 2006 году 80 % компьютеров сети Интернет использовало именно OpenSSH. Частная реализация разрабатывается организацией SSH Communications Security, которая является стопроцентным подразделением корпорации Tectia, она бесплатна для некоммерческого использования. Эти реализации содержат практически одинаковый набор команд.

Протокол SSH-2, в отличие от протокола telnet, устойчив к атакам прослушивания трафика («снифинг»), но неустойчив к атакам «человек посередине». Протокол SSH-2 также устойчив к атакам путем присоединения посредине (англ. sessionhijacking), так как невозможно включиться в уже установленную сессию или перехватить её.

Для предотвращения атак «человек посередине» при подключении к хосту, ключ которого ещё не известен клиенту, клиентское ПО показывает пользователю «слепок ключа» (англ. keyfingerprint). Рекомендуется тщательно проверять показываемый клиентским ПО «слепок ключа» со слепком ключа сервера, желательно полученным по надёжным каналам связи или лично.

Поддержка SSH реализована во всех UNIX-подобных системах, и на большинстве из них в числе стандартных утилит присутствуют клиент и сервер ssh. Существует множество реализаций SSH-клиентов и для не-UNIX ОС. Большую популярность протокол получил после широкого развития анализаторов трафика и способов нарушения работы локальных сетей, как альтернативное небезопасному протоколу Telnet решение для управления важными узлами.

Связь с использованием SSH

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

что такое sftp сервер. Смотреть фото что такое sftp сервер. Смотреть картинку что такое sftp сервер. Картинка про что такое sftp сервер. Фото что такое sftp сервер

Сравнение с FTPS

Главное, что отличает SFTP от стандартного FTP и FTPS, это то, что SFTP шифрует абсолютно все команды, имена пользователей, пароли и другую конфиденциальную информацию.

Оба протокола FTPS и SFTP используют сочетание асимметричных алгоритмов (RSA, DSA), симметричных алгоритмов (DES/3DES, AES, Twhofish т.д.), а также алгоритм обмена ключами. Для аутентификации FTPS (или, если быть более точным, SSL / TLS по протоколу FTP) использует сертификаты X.509, в то время как SFTP (SSH протокол) использует SSH ключи.

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

SSH ключ содержит только открытый ключ (соответствующий закрытый ключ хранится отдельно). В нем не содержится никакой информации о владельце ключа. Некоторые SSH реализации используют сертификаты X.509 для аутентификации, но на самом деле они не проверяют всю цепочку сертификатов — только открытый ключ используется (что делает такую проверку подлинности неполной).

Заключение

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

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

Источник

Использование SFTP для безопасной передачи файлов с удаленного сервера

Published on February 4, 2015

Введение

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

SFTP, протокол передачи файлов по SSH, или безопасный протокол передачи файлов, — это отдельный протокол, поддерживающий SSH, который работает схожим образом, но использует защищенное подключение. Его преимуществом является возможность использования защищенного подключения для передачи файлов и просмотра файловой системы как на локальной, так и на удаленной системе.

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

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

Подключение через SFTP

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

Хотя использовать пароли удобно и они настроены по умолчанию, мы рекомендуем вам создать ключи SSH и передать ваш публичный ключ любой системе, доступ к которой вам нужен. Это более безопасно и поможет сэкономить время в долгосрочной перспективе.

Ознакомьтесь с этим руководством по настройке ключей SSH для доступа к вашему серверу, если вы еще не сделали этого.

Если вы смогли подключиться к компьютеру через SSH, это означает, что вы выполнили все необходимые требования для использования SFTP при управлении файлами. Протестируйте доступ SSH с помощью следующей команды:

Если все работает, можно вернуться назад с помощью следующей команды:

Теперь мы можем создать сеанс SFTP с помощью следующей команды:

Вы установите подключение к удаленной системе, а ваше приглашение для ввода будет заменено на приглашение SFTP.

Если вы используете пользовательский порт SSH (а не используемый по умолчанию порт 22), то можете открыть сеанс SFTP следующим образом:

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

Использование справки SFTP

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

После этого в терминале будет выведен список доступных команд:

Мы познакомимся с некоторыми из команд, который вы видите выше, в следующих разделах.

Навигация с помощью SFTP

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

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

Мы можем просмотреть содержимое текущего каталога удаленной системы с помощью другой хорошо знакомой команды:

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

Чтобы перейти в другой каталог, воспользуйтесь следующей командой:

Все описанные ранее команды имеют локальные эквиваленты. Мы можем вывести локальный рабочий каталог:

Мы можем вывести содержимое текущего каталога на локальном компьютере:

Также мы можем изменить каталог, с которым хотим работать на локальном компьютере:

Передача файлов с помощью SFTP

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

Передача удаленных файлов в локальную систему

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

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

Мы можем скопировать удаленный файл с другим именем, указав после команды нужное имя:

Команда get также имеет несколько флагов. Например, мы можем скопировать каталог и все его содержимое с помощью рекурсивной опции:

Передача локальных файлов в удаленную систему

Передача файлов в удаленную систему осуществляется таким же удобным образом с помощью команды с именем «put»:

Любая другая локальная команда будет работать согласно ожиданиям. Чтобы вернуться в сеанс SFTP, введите:

Вы должны увидеть, что приглашение SFTP вернулось.

Простые манипуляции с файлами с помощью SFTP

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

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

Обойти это ограничение можно следующим образом:

UID находится в третьей колонке файла и отделяется двоеточием.

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

Опять же не существует удобного способа получения списка групп удаленной системы. Мы можем обойти это ограничение с помощью следующей команды:

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

К счастью, команда chmod работает в удаленной файловой системе стандартным образом:

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

Это можно сделать с помощью команды lumask :

SFTP позволяет создавать каталоги как для локальных, так и для удаленных систем с помощью команд lmkdir и mkdir соответственно. Эти команды работают ожидаемым образом.

Остальные команды для файлов предназначены только для удаленной файловой системы:

Эти команды воспроизводят базовое поведение команд, используемых в оболочке. Если вам потребуется выполнить эти действия в локальной файловой системе, помните о том, что вы можете перейти в оболочку, воспользовавшись этой командой:

После завершения работы с сеансом SFTP используйте exit или bye для закрытия подключения.

Заключение

Хотя SFTP — это простой инструмент, он очень полезен для администрирования серверов и передачи файлов между ними.

Например, вы можете использовать SFTP для предоставления конкретным пользователям возможности для передачи файлов без доступа SSH. Для получения дополнительной информации по этому вопросу ознакомьтесь с нашим руководством по использованию SFTP без доступа к оболочке.

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

Источник

Протокол FTP (SFTP, FTPS) — что это такое, соединение между клиентом и сервером по ФТП

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

Как и в случае с HTTP (о всех нюансах которого я сообщал тут), базовой составляющей действия этого протокола является взаимодействие «клиент-сервер», подробности которого мы непременно разберем в данной публикации.

что такое sftp сервер. Смотреть фото что такое sftp сервер. Смотреть картинку что такое sftp сервер. Картинка про что такое sftp сервер. Фото что такое sftp сервер

Перед нами не стоит цель с головой окунуться в дебри и по косточкам разобрать абсолютно все разделы этой темы, но вот знание основ работы ФТП и его безопасных вариантов SFTP, FTPS, а также туннелирования посредством SSH-соединения может оказать вам практическую пользу в дальнейшем. В процессе повествования я постараюсь избежать ненужных заумных выражений и объяснить все простыми и понятными словами.

Что такое FTP и в чем его отличие от HTTP

Итак, аббревиатура FTP означает «File Transfer Protocol» и переводится с английского на русский как «протокол передачи файлов». Как и HTTP, файловая передача основывается на модели, состоящей из совокупности протоколов TCP/IP (Transmission Control Protocol/Internet Protocol), на которой и базируется современный интернет.

Если HTTP, который также является протоколом, был изначально предусмотрен создателями для осуществления передачи гипертекста (что это такое?) и небольших текстовых файликов, то ФТП служит для «транспортировки» практически любых файлов.

Вообще, чтобы получше понять суть сегодняшней темы и осмыслить те нюансы, которые будут разобраны нами далее, лучше сразу обратить внимание на основные отличия между FTP и HTTP, выделенные в ниже следующей табличке:

что такое sftp сервер. Смотреть фото что такое sftp сервер. Смотреть картинку что такое sftp сервер. Картинка про что такое sftp сервер. Фото что такое sftp сервер

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

Взаимодействие между Клиентом и Сервером по ФТП

Перед тем, как продолжить, необходимо определиться с еще некоторыми терминами, которые будут совсем не лишними для восприятия картины в целом.

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

Ярким примером ФТП-сервера может служить server хостинга (что означает этот термин), на котором «живет» сайт. Эта информация для вебмастеров не является тайной за семью печатями, но вот тем, кто только планирует заняться сайтостроением, будет как раз к месту.

FTP client — это программа, позволяющая подключиться к удаленному серверу по ФТП и также выполнять на нем необходимые действия с элементами файловой системы. К слову, клиентом вполне может быть браузер, в адресную строку которого следует ввести урл, представляющий собой путь (c протоколом FTP) до определенного каталога или файла на удаленном сервере, в соответствии с общей блок-схемой URL:

Или применить более сложный вариант, ежели используется порт, отличный от 21:

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

что такое sftp сервер. Смотреть фото что такое sftp сервер. Смотреть картинку что такое sftp сервер. Картинка про что такое sftp сервер. Фото что такое sftp сервер

Чтобы подключиться через уже настроенный клиент FileZilla к удаленному серверу, необходимо ввести название хоста, в качестве которого используется IP-адрес сайта, соответствующий его домену (что такое доменное имя и как его приобрести), имя пользователя, пароль и порт.

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

Но продолжим. Схематически взаимодействие «клиент-сервер» при ФТП-соединении можно наглядно представить следующим образом:

что такое sftp сервер. Смотреть фото что такое sftp сервер. Смотреть картинку что такое sftp сервер. Картинка про что такое sftp сервер. Фото что такое sftp сервер

Если расписать этот процесс по пунктам, то получится примерно следующее:

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

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

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

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

На практике при анонимном ФТП обычно в качестве логина для доступа применяется известное в сети слово «anonymous», а в качестве пароля — адрес электронной почты, который, впрочем, в большинстве случаев не проверяется.

Безопасный ФТП (SFTP, FTPS и с использованием SSH)

Этот протокол изначально не задумывался как защищенный, так ка разрабатывался в далеком 1971 году и использовался поначалу лишь в научно-исследовательской сети APRANET, доступ в которую имели только несколько военных объектов и университетов.

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

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

По этой причине были разработаны несколько методов, позволяющих зашифровать передаваемую посредством ФТП информацию. Вкупе все эти способы получили обобщающее и емкое название «Безопасный FTP». Вот какие разновидности протокола соответствуют этому термину:

1. FTPS (FTP + SSL) — фактически это расширение стандартного протокола передачи файлов, которое обеспечено криптографическим протоколом SSL (Secure Sockets Layer — уровень защищенных сокетов). На сегодняшний день более передовым его аналогом является TLS (Transport Layer Security — защита транспортного уровня). При этом есть два метода предоставления безопасности:

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

1.2. Явный — намного более удобный, так как применяет команды стандартного протокола FTP, но при отправке ответа зашифровывает информацию, что позволяет сохранить совместимость, поскольку в этом случае применяются одни и те же порты как для FTPS, так и для FTP. При этом для шифрования данных клиентом отправляется команда «AUTH TLS» или «AUTH SSL».

2. SFTP (SSH FTP) — протокол прикладного уровня для передачи файлов, который работает поверх безопасного канала, его не следует путать с «Simple File Transfer Protocol», имеющего такую же аббревиатуру. Если FTPS является просто расширением FTP, то SFTP это отдельный и никак не связанный с ФТП протокол, который снабжен SSH (Secure Shell — безопасная оболочка).

Главное, в чем заключается его отличие от стандартного ФТП и ФТПС, это то, что СФТП шифрует абсолютно все команды, имена пользователей, пароли и другую конфиденциальную информацию. Так как это совершенно другая конфигурация, клиенты FTP (FTPS) не могут соединиться с SFTP-сервером.

3. FTP через SSH — производит обычную FTP-сессию через SSH-туннель, то есть этот вариант нельзя путать с SFTP, который является отдельным независимым протоколом. Этот метод нельзя назвать стопроцентно безопасным. Почему?

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

Надеюсь, вы не запутались во всех этих вариантах безопасных протоколов. Для того, чтобы как-то облегчить понимание, позволю себе сделать краткое резюме. Объективно обеспечивающим самую высокую степень защиты является SFTP. Немного уступает ему в надежности явный FTPS, однако он более удобен, поскольку дает возможность пользоваться обычными портами. Какой из них выбрать, зависит от вида задачи, которая перед вами стоит и, конечно, настроек сервера.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *