Пятница, 18.07.2025, 12:39

Hacker-software

Поиск
Друзья сайта
  • Нижегородский торрент - трекер
  • ВКонтакте
  • playground.ru
  • Инструкции для uCoz
  • GTA IV Homepage
  • Опрос
    Какой ОС вы используете?
    Всего ответов: 222
    Меню сайта
    Категории раздела
    Всё про программы и технологии [13]
    Описания технологий.
    Статистика сайта
    Counter
    Залить картинку
    Главная » Статьи » Всё про программы и технологии

    FTP

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

    FTP является одним из старейших прикладных протоколов, появившимся задолго до HTTP, в 1971 году. До начала 90-х годов на долю FTP приходилось около половины трафика в сети Интернет[источник не указан 52 дня]. Он и сегодня широко используется для распространения ПО и доступа к удалённым хостам.

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

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

    Процесс нешифрованной авторизации проходит в несколько этапов (символы \r\n означают перевод строки):

    Установка TCP-соединения с сервером (обычно на 21 порт)
    Посылка команды USER логин\r\n
    Посылка команды PASS пароль\r\n

    Если к серверу разрешён анонимный доступ (как правило, лишь для загрузки данных с сервера), то в качестве логина используется ключевое слово "anonymous" или "ftp", а в качестве пароля — адрес электронной почты:

    USER anonymous\r\n
    PASS someone@email\r\n

    После успешной авторизации можно посылать на сервер другие команды.

    FTP
    Название:

    File Transfer Protocol

    Уровень (по модели OSI):

    Прикладной

    Семейство:

    TCP/IP

    Создан в:

    1971 г.

    Порт/ID:

    21/TCP для команд, 20/TCP для данных

    Назначение протокола:

    Передача файлов

    Спецификация:

    RFC 959

    Основные реализации (клиенты):

    Смотри Сравнение FTP-клиентов

    Основные реализации (серверы):

    ProFTPD, Pure-FTPd, vsftpd, WU-FTPD, FileZilla, IIS, CrossFTP Server, wzdftpd

    Расширяемость:

    Доп. команды

    Основные команды

    • ABOR - Прервать передачу файла
    • CDUP - Сменить директорию на вышестоящую.
    • CWD - Сменить директорию.
    • DELE - Удалить файл (DELE filename).
    • HELP - Выводит список команд принимаемых сервером.
    • LIST - Возвращает список файлов директории. Список передается через соединение данных (20 порт).
    • MDTM - Возвращает время модификации файла.
    • MKD - Создать директорию.
    • NLST - Возвращает список файлов директории в более кратком формате чем LIST. Список передается через соединение данных (20 порт).
    • NOOP - Пустая операция
    • PASV - Войти в пассивный режим. Сервер вернет адрес и порт к которому нужно подключиться чтобы забрать данные. Передача начнется при введении следующих команд RETR, LIST и тд.
    • PORT - Войти в активный режим. Например PORT 12,34,45,56,78,89. В отличие от пассивного режима для передачи данных сервер сам подключается к клиенту.
    • PWD - Возвращает текущую директорию.
    • QUIT - Отключиться
    • REIN - Реинициализировать подключение
    • RETR - Скачать файл. Перед RETR должна быть команда PASV или PORT.
    • RMD - Удалить директорию
    • RNFR и RNTO - Переименовать файл. RNFR - что переименовывать, RNTO - во что.
    • SIZE - Возвращает размер файла
    • STOR - Закачать файл. Перед STOR должна быть команда PASV или PORT.
    • SYST - Возвращает тип системы(UNIX, WIN, ...)
    • TYPE - Установить тип передачи файла(Бинарный, текстовый)

    Пример

    220 FTP server ready.
    USER ftp //Анонимус
    230 Login successful.
    PASV
    227 Entering Passive Mode (192,168,254,253,233,92)//Клиент должен открыть соединение на переданный IP
    LIST
    150 Here comes the directory listing. //Сервер передает список файлов в директории
    226 Directory send OK.
    CWD incoming
    250 Directory successfully changed.
    PASV
    227 Entering Passive Mode (192,168,254,253,207,56)
    STOR gyuyfotry.avi
    150 Ok to send data. //Клиент передает содержимое файла
    226 File receive OK.
    QUIT
    221 Goodbye.

    На многих FTP-серверах существует каталог (под названием incoming, upload и т. п.), открытый на запись и предназначенный для закачки файлов на сервер. Это позволяет пользователям наполнять сервер свежими данными.

    Изначально протокол предполагал встречное TCP-соединение от сервера к клиенту для передачи файла или содержимого каталога. Это делало невозможным общение с сервером, если клиент находится за IP NAT, кроме того, часто запрос соединения к клиенту блокируется файерволом. Чтобы этого избежать, было разработано расширение протокола FTP passive mode, когда соединение для передачи данных тоже происходит от клиента к серверу. Кроме того, этой проблемы можно избежать, если использовать прокси-сервер (именно FTP прокси-сервер).

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

    FXP

    FXP (англ. File eXchange Protocol — протокол обмена файлами) — способ передачи файлов между двумя FTP сайтами напрямую, не закачивая их на свой компьютер . При FXP сессии, клиент открывает два FTP соединения к двум разным сайтам, запрашивая пакеты данных у первого сайта как будто бы от имени второго. Польза этого метода в том, что можно перекачивать файлы по сети с огромной скоростью, обладая низкоскоростным соединением. Это свойство протокола FTP обнаружили и стали использовать ещё до появления файлообменных программ (p2p).

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

    К сожалению, использование стандарта FXP налагает на FTP-серверы и на пользователей, некоторые ограничения. Во-первых, оба сервера должны поддерживать режим PASV и позволять выполнять команды PORT иностранным хостам, а во-вторых, передача данных невозможна в том случае, когда оба сервера находятся под управлением операционных систем семейства Windows (например, Windows NT или Windows 2000). Возможность пересылать файлы напрямую с одного FTP-сервера на другой появляется только при условии, что хотя бы один из них управляется UNIX-подобной системой.

    Категория: Всё про программы и технологии | Добавил: INFerno236 (10.07.2009) | Автор: Костян
    Просмотров: 961 | Рейтинг: 0.0/0 |
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *: