Для работы и повседневной жизни нередко требуется загружать, скачивать или хранить разнообразные файлы в больших объемах, а также переносить веб-страницы, созданные на локальном компьютере, на сервер, чтобы разместить сайт на хостинге. Для удобства этого процесса был придуман FTP-протокол.
Появился он еще в 1971 году, и активно используется по сей день. FTP тогда стал прорывом благодаря эффективности, скорости загрузки, функции докачки в случае обрыва соединения и заложил основы для последующих решений в этой области.
FTP (File Transfer Protocol) — это базовый протокол передачи файлов, основанный на отношениях «клиент-сервер». Иначе говоря, пользователь, используя специальную программу — FTP-клиент, по этому протоколу может подключиться к серверу — компьютеру в сети, на котором также установлено специальное ПО — FTP-сервер, чтобы производить различные действия с файлами. Этот механизм похож на то, что вы делаете на вашем ПК. Вам открыт доступ к скачиванию, загрузке и созданию файлов, их изменению, удалению и назначению прав доступа к файлам и папкам. Пользователи FTP получают доступ после ввода логина и пароля, которые сообщаются открытым текстом, или, если это предусмотрено сервером, указывают любой пароль, используя анонимный аккаунт.
С функционированием протокола FTP стоит ознакомиться хотя бы из любопытства и для понимания общих принципов. Отличительной чертой FTP является то, что он использует два типа соединения: управляющее (для команд) и соединение для передачи данных и может работать в двух режимах, определяющих взаимодействие между сервером и клиентом — активном и пассивном.
В активном режиме управляющее соединение открывает клиент, а соединение для передачи данных — сервер (сервер в этом случае «активен»). В пассивном же оба соединения инициируются клиентом (сервер здесь «пассивен»): это позволяет избежать проблем, когда клиент не имеет выделенного IP-адреса или использует брандмауэр. В большинстве случаев дело обстоит как раз так, поэтому практически всегда при подключении по FTP надо использовать именно пассивный режим.
Хотя протокол FTP и стал стандартом, очевидный его минус заключается в том, что данные и команды (в том числе и логин с паролем) передаются по сети в незащищенном виде. Это связано с тем, что на заре его использования необходимости в защите просто не было. Шанс доступа третьих лиц к информации был почти нулевым, поскольку сообщество пользователей было маленьким. По мере его расширения и после разработки безопасного протокола SSL (в дальнейшем TLS) был успешно введен FTPS (FTP+SSL/TLS) — защищенный протокол передачи данных, преимущество его в том, что никто не сможет отследить ваши манипуляции с файлами и вмешаться в этот процесс.
При этом существуют два способа обеспечения безопасности: FTPS Explicit (FTPES) — явный и FTPS Implicit — неявный. В первом случае в момент подключения к серверу клиент, должен явно подтвердить намерение использовать SSL или TLS. А во втором — согласования сторон не требуется: после запроса клиента сервер сразу осуществляет соединение. Более новой версией, дружественной для брандмауэра, «следящего» за трафиком в сети, является именно FTPES.
Существует и более продвинутый удаленный способ работы — не только с файлами, а с целой операционной системой. С помощью протокола SSH (с англ. secure shell — безопасная оболочка) можно войти с одного компьютера на другой, а безопасность и целостность соединения будет защищаться строгой аутентификацией и сильным шифрованием всех передаваемых данных. В числе примеров, когда SSH полезен, может быть доступ к файлам, запуск или настройка программ и другая работа в командной строке (часто это актуально для хостинга).
Если в UNIX-подобных системах типа Linux SSH-сервер и клиент в списке стандартных программ по умолчанию, то для Windows используется распространенный клиент PuTTY. Помимо того, имеется SCP (Secure Copy Protocol) — протокол, работающий поверх SSH и предназначенный для копирования файлов или папок на сервер или с него. Включен в OC Linux в качестве одноименной утилиты и входит в функционал PuTTY.
Важно отметить, что аутентификация по SSH может происходить несколькими способами: по паролю, ключу и IP-адресу (минимально защищенный способ). Самый предпочтительный из них — второй вариант. Обычно вы получаете пару ключей: публичный и приватный. Приватный ключ вы никому не показываете и храните в виде файла на ПК, а публичный загружаете на серверы, к которым нужен доступ.
Почему следует использовать именно ключи? Приватный ключ намного длиннее пароля, и подобрать его перебором («брутфорсом») практически невозможно. Помимо этого приватный ключ можно (и нужно) защитить паролем, чтобы обезопасить себя от кражи файла. Если даже кто-то и заполучит его, в любом случае потребуется подбирать пароль.
Протокол SFTP (SSH File Transfer Protocol), в свою очередь, является безопасным протоколом передачи файлов и разработан как расширение для SSH. Не нужно путать SFTP с FTPS — это принципиально различающиеся протоколы. Хотя оба протокола и отличаются в техническом плане, они схожи функционально и обеспечивают хорошее шифрование, а в случае с SFTP — наилучшее, благодаря поддержке ключей.
В настоящее время, хотя популярность FTP в русскоязычном сегменте и не спадает, настоятельно рекомендуется использовать именно защищенное соединение FTPS (FTPES) или SFTP. Кроме этого, в мире наблюдается тенденция использования в большей степени SFTP вместо устаревших протоколов.
Вернемся к тому, что обмен файлами по любому виду протокола не может состояться без программы-помощника. Возможны способы подключения к FTP-серверу через браузер Internet Explorer или HTML-редактор, но такие возможности ограничены и непопулярны.
В случае с организацией постоянной комфортной работы принято говорить о FTP-клиентах и файловых менеджерах с поддержкой FTP, на кратком обзоре которых мы и остановимся:
Помните, что установка взломанных нелицензионных клиентов может привести к неприятным последствиям: некорректной работе или еще хуже — краже данных, так как в подобный клиент может быть встроена программа-шпион, отправляющая пароли посторонним лицам. В случае использования функции «запомнить пароль» не может гарантироваться его защита, поскольку существуют вирусы, которые воруют сохраненные в популярных FTP-клиентах пароли и передают их злоумышленникам.
Как мы говорили в начале, работа с файлами подразумевает также загрузку веб-страниц для размещения проектов на сервере. Это можно сделать через FTP-клиент, но компетентные хостинг-провайдеры предлагают для этого файловые менеджеры, работающие прямо через браузер.
На «Джино» загружать файлы сайта, используя FTP, необязательно. Альтернативой этому является «Файловый менеджер» в контрольной панели аккаунта. С его помощью можно совершать почти все необходимые действия. Конечно, для корректной загрузки папок или файлов большого объема удобнее использовать FTP. Но мы советуем выключать доступ по FTP и включать его только временно по необходимости (инструкция для сайтов на виртуальном хостинге и облачном для CMS). Также для удобства можно просто ограничить доступ по FTP с определенных IP-адресов. Эта мера безопасности, которой не стоит пренебрегать.
Но не забывайте, что этого недостаточно, когда речь идет о ненадежном соединении FTP; прибегнуть к FTPES или SFTP (в особенности удобен для проектов на VPS) — лучший вариант для сайтов.
Организовывайте вашу работу с файлами правильно, выбирайте безопасные, удобные и оптимизированные инструменты и наслаждайтесь результатом.