Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

СПАМ - трафик, или тонкости работы протокола FTP

Утилита FTP.

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

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

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

Важными командами являются команды приема/передачи данных get, put, mget, mput и bin. Команды get и put предназначены соответственно для приема и передачи одного файла. Команды mget и mput выполняют те же действия, что и предыдущие, но для группы файлов. Команда bin позволяет передавать данные в двоичном режиме, что важно для передачи программ и архивов, кроме того, этот режим бывает полезен для символьных данных с произвольной длиной строки (ASCII ограничивает длину строки 254 символами). Другой полезной командой является команда hash. Строка: 'ftp> hash #' при работе с медленными линиями или передаче больших файлов позволяет видеть процесс передачи данных (знак # выдается после передачи каждого блока, вместо # можно поставить и другой символ).

 

 

 

Рис. 5.6. Пример управляющего соединения FTP.

 

 

Рис. 5.7 Пример соединения данных FTP.

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

Все пользователи Internet наверняка, когда-либо в своей жизни сталкивались с таким понятием как СПАМ. СПАМ можно определить как генерирование никому не нужного почтового трафика. Трафик, однако, может быть не только почтовый. А сослужить добрую службу в деле "не почтового СПАМА" может такой общеизвестный сервис как FTP.

Общеизвестно, что протокол FTP обеспечивает передачу двоичных и текстовых файлов с FTP-сервера и на него. Причем FTP-сервером может служить как компьютер с каким-либо клоном UNIX, так и компьютер под управлением Windows NT, на котором работает FTP-сервер. Хочу сразу оговориться: здесь не будет идти речь о взломе FTP-серверов, все нижесказанное является лишь следствием работы малодокументированных возможностей протокола FTP. В большинстве компьютерной литературы не указано, что FTP обеспечивает также возможность передачи файлов напрямую между серверами.

Коснемся именно их. Уж сколько раз твердили миру, что, давая анонимным пользователям сервера право на запись, вы делаете свой сервер потенциально уязвимым. И только все не в счет. А ведь в этой ситуации вполне возможно, что какой-нибудь шутник в сети сгенерирует значительный трафик с какого-либо достаточно мощного сервера на ваш злополучный FTP-сервер. И горе тогда организации (если у вас конечно не неограниченный трафик). Естественно - это не смертельно, но неприятно: ведь придется платить за никому не нужный "СПАМ". А платить придется прилично - вот она оборотная сторона скоростного доступа в Internet.

А для того, чтобы понять, как все это может быть осуществлено на практике необходимо ближе рассмотреть работу FTP-протокола. Итак, теория. Когда клиент FTP соединяется с FTP-сервером создается так называемое управляющее соединение. В сущности, управляющее соединение - это обычный сеанс telnet в режиме NVT. Клиент отправляет команду на сервер через управляющее соединение, а сервер возвращает ответ по этому же соединению. Когда пользователь запрашивает пересылку файла, открывается отдельное соединение для передачи данных, и по нему посылается файл. Обычно сервер использует порт 21 для управляющего соединения и порт 20 для соединения пересылки данных. При открытии соединения для пересылки файлов клиент посылает команду PORT, которая идентифицирует его IP-адрес (4 байта) и новый порт (2 байта), чтобы использовать эти значения при пересылке данных. Байты преобразуются в десятичный формат и разделяются запятыми. Например, IP-адрес 128.36.4.22 будет записан как 128,36,4,22, а порт 2613 - как 10,53. --> PORT 128,36,4,22,10,53

200 PORT command successful

Сервер откроет соединение по указанному адресу socket.

Сценарий для соединения такой:

1. Локальный клиент получает новый порт и использует управляющее соединение, чтобы сообщить серверу FTP номер своего порта.

2. FTP-сервер связывается с новым портом данных клиента.

3. Данные передаются.

4. Соединение закрывается.

Можно использовать другой сценарий. Если клиент посылает PASV, сервер возвращает номер порта и переходит к прослушиванию установки соединения данных от клиента. Ранее преобладало использование команды PORT. Однако теперь клиент может послать команду PASV для пересылки файлов через простую систему защиты (firewall).

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

1-й FTP-сервер:

--> PASV

227 Entering Passive (x,x,x,x,7,254)

2-й FTP-сервер:

--> PORT x,x,x,x,7,254

200 PORT Command successful.

FTP-протокол начал свою работу по генерированию "совершенно ненужного" для получателя трафика и можно отключаться и идти спать.

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

<== предыдущая лекция | следующая лекция ==>
Пример FTP | Некоторые проблемы FTP
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 291; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.018 сек.