FTP (File Transfer Protocol) – протокол передачи данных, созданный еще в 1971 году и входящий в современные стандарты Интернет-сети.
Зачем нужен FTP-протокол
- Прежде всего, FTP-протокол нужен для передачи данных между клиентом и сервером – этот протокол отлично подходит для обмена данными между удаленными компьютерами. Например, FTP-сервера есть практически у любого интернет-провайдера, и пользователи могут скачивать с них музыку, фильмы, игры и т.д.
- Также FTP-протокол позволяет распределять права доступа между пользователями одного сервера. Например, один пользователь может загружать на хост файлы, а другой – только просматривать данные.
- Протокол FTP отлично подходит для создания удаленного доступа к компьютеру, чем часто пользуются обычные юзеры.
- При этом FTP-протокол совершенно не справляется с передачей конфиденциальных данных, так как передаваемая информация не шифруется.
Чем отличается FTP от HTTP
Также как и HTTP, протокол FTP осуществляет взаимодействие «клиент-сервер». Но если HTTP был создан для передачи гипертекста и не очень больших текстовых файлов, то FTP может передавать абсолютно любые файлы.
Как работает FTP-протокол
Стандартная схема работы FTP-протокола на сервере: пользователь на своем компьютере запускает программу-клиент, которая соединяется с сервером и передает или получает файлы. Доступ на FTP-сервер может осуществляться с помощью FTP-клиентов разных классов, например:
- консольный клиент — программа ftp.exe, поставляемая вместе с операционной системой Windows,
- FTP-клиент, встроенный в браузер (например, Internet Explorer),
- FTP-клиент, встроенный в файловый менеджер (например, FAR или Windows Commander),
- FTP-клиент, встроенный в HTML-редактор (HomeSite, Dreamweaver или FrontPage),
- специальные программы (например, CuteFTP или WS FTP).
Технически взаимодействие между клиентом и сервером выглядит так:
- У сервера по умолчанию открыт 21 порт (или другой настроенный вручную) для клиента, который может к нему подключиться и выйти на управляющий канал.
- Как только произошло подключение, программа со стороны клиента может отдавать команды интерпретатору сервера.
- Как только команды для передачи данных согласованы, один из участников соединения становится в пассивный режим (сервер или клиент) и ждет, пока ему выдадут номер порта, чтобы открыть его и получить или отправить данные по нему. При этом передача данных будет осуществляться не через 21 порт, а через другие каналы.
- После того как все данные переданы, соединение закрывается. Управляющий канал при этом остается открытым, что дает пользователю возможность вновь дать серверу команду и передать данные и создавать новую сессию.
FTP-архивы
Изначально FTP-протокол использовался для передачи больших объемов данных, поэтому помимо FTP-протокола были разработаны FTP-архивы.
Сегодня FTP-архивы составляют основу информационных веб-ресурсов. По сути, это огромное хранилище текстов, фильмов, музыки, программного обеспечения и т.д., распределенное на разных серверах.
Всю информацию, хранящуюся в FTP-архивах, можно разбить на три категории:
- Закрытая информация (коммерческие архивы, международные ресурсы с ограниченным уровнем доступа),
- Информационные ресурсы ограниченного использования (например, условно-бесплатное программное обеспечение),
- Свободно распространяемые ресурсы и ПО.
FTP-серверы
FTP-сервер – это сервер, работающий по File Transfer Protocol (протоколу передачи файлов). Используется для обмена файлами между компьютерами по локальной сети и интернету.
Особенности FTP-серверов:
- Если обычный веб-сервер дает пользователям возможность только посмотреть информацию, то FTP-сервер позволяет также скачивать информацию с сервера или ее добавлять.
- FTP-серверы очень плохо защищены от взлома и dDoS-атак. К тому же технические особенности FTP-серверов таковы, что повреждены могут быть не только они сами, но и клиенты.
- Как используются FTP-серверы:
- При создании веб-сайтов. На FTP-сервере хранятся все файлы, связанные с интернет-ресурсом.
- Для хранения любой информации (рабочей или личной), которая оформлена в виде больших и объемных файлов, например, фильмы и музыка. Подобную информацию можно скачивать бесплатно и анонимно.
Безопасность
Как уже было сказано выше, FTP не является безопасным протоколом передачи данных. Протокол уязвим к следующим типам атак и взлома:
- Скрытые атаки (bounce attacks),
- Спуф-атаки (spoof attacks),
- Атаки методом грубой силы (brute force attacks),
- Перехват пакетов, сниффинг (packet capture, sniffing),
- Защита имени пользователя,
- Захват портов (port stealing).
Технология FTP не шифрует передаваемый трафик, а значит, злоумышленники могут легко перехватить информацию.
Однако у FTP есть безопасные альтернативы:
- FTPS (File Transfer Protocol + SSL) – расширение стандарта FTP, которое добавляет поддержку для криптографических протоколов уровней транспортной безопасности и защищенных сокетов. Клиенты могут требовать зашифровки FTP-сессии с помощью команды «AUTH TLS», а сервер в свою очередь принимает или отклоняет соединения, которые не запрашивают TLS.
- SFTP (SSH File Transfer Protocol) – отдельный протокол с SSH, работающий по похожему принципу, но с использованием защищенного соединения. SFTP часто называют безопасным FTP, но на самом деле он с ним не связан – единственное сходство заключается в том, что они оба передают файлы и пользователи могут с ними работать, используя аналогичные команды.
- FTP через SSH (не нужно путать с SFTP) – достаточно редкая практика туннелирования обычной FTP-сессии через SSH-соединение.