IP — Internet Protocol

Максимальная Безопасность:

Руководство Хакера по Защите Вашего Internet Сайта и Сети

Эта глава исследует Протокол Управления Передачей (TCP — Transmission Control Protocol) и Internet Протокол (IP — Internet Protocol). Эти два протокола (или методы сетевой транспортировки данных) часто упоминаются вместе как TCP/IP .

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

Вторая часть главы объясняет, как фактически TCP/IP работает. В той части, я сосредоточусь на наиболее популярных сервисах набора протоколов TCP/IP. Эти сервисы (или режимы транспортировки) составляют большую часть Internet, которую мы сегодня знаем.

Заключительная часть этой главы исследует ключевые утилиты TCP/IP, с которыми каждый пользователь должен быть знаком. Эти утилиты ценны для обслуживания и контроля любой TCP/IP сети.

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

TCP/IP: Основы

Этот раздел быстрый краткий обзор TCP/IP. Он предназначен, чтобы подготовить Вас к различным терминам и концепциям, появляющимся в этой главе. Он не подразумевает никаких предварительных знаний IP протоколов.

Что Такое TCP/IP?

TCP/IP относится к двум сетевым протоколам (или методам транспортировки данных), используемых в Internet. Это Протокол Управления Передачей и Internet Протокол, соответственно. Эти сетевые протоколы принадлежат большой коллекции протоколов или набору протоколов. Все вместе они упоминаются как набор протоколов TCP/IP .


    Передача электронной почты


    Протокол сетевого уровня


Протоколы Сетевого Уровня

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

Протоколы Прикладного Уровня

Наоборот, протоколы прикладного уровня в некоторой мере видны пользователю. Например, Протокол Передачи Файлов (FTP — File Transfer Protocol) видим пользователю. Пользователь запрашивает подключение с другой машиной для передачи файла, подключение устанавливается, и передача начинается. В течение передачи часть обмена между машиной пользователя и удаленной машиной видима (прежде всего сообщения об ошибках и отчеты состояния непосредственно передачи, например, сколько байтов файла были переданы в любой данный момент).

На данный момента, это объяснение будет достаточным: TCP/IP относится к коллекции протоколов, которые облегчают связь между машинами в Internet (или других сетях, работающих под TCP/IP).

История TCP/IP

В 1969, Агентство Министерства Обороны по Перспективным Научным Проектам (DARPA — Defense Advanced Research Projects Agency) уполномочило разработку сети, по которой могли бы связываться её исследовательские центры. Главное задачей была возможность этой сети противостоять ядерному нападению. Короче говоря, если Советский Союз начал бы ядерную войну, было необходимо, чтобы сеть осталась неповрежденной и могла облегчить связь. Проект этой сети имел несколько других необходимых, наиболее важный из которых был следующим: Она должно была работать независимо от централизованного управления. Таким образом, если бы 1 машина была разрушена (или 10, или 100), сеть осталась бы непроницаемой.

Прототип этой системы появился быстро, основываясь частично на исследовании, сделанном в 1962 и 1963. Этот прототип был назван ARPANET . ARPANET по сообщениям работала хорошо, но была подвержена периодическим системным сбоям. Кроме того, долгосрочное расширение этой сети оказалось дорогостоящим. Был начат поиск более надежного набора протоколов. Этот поиск закончился в середине 1970-ых разработкой TCP/IP.

TCP/IP имел существенные преимущества над другими протоколами. Например, TCP/IP был нетребователен (не требовал больших сетевых ресурсов). Кроме того, TCP/IP мог быть реализован намного дешевле, чем другие протоколы, доступные в то время. Базируясь на этих преимуществах, TCP/IP стал чрезвычайно популярным. В 1983 TCP/IP был интегрирован в выпуск Berkeley Software Distribution 4.2 (BSD) UNIX. Вскоре последовала его интеграция в коммерческие UNIX, и TCP/IP был принят в качестве стандарта Internet и остается им по сей день.

Поскольку большее количество пользователей стекается в Internet, TCP/IP изучается повторно. Большое количество пользователей приводит к большей нагрузке на сеть. Чтобы ослабить эту нагрузку и получить большие скорости транспортировки данных, некоторые исследователи предложили реализовать TCP/IP через спутниковую связь. К сожалению, такое исследование к настоящему времени произвело мрачные результаты. TCP/IP очевидно неподходящ для этого.

Сегодня TCP/IP используется для многих целей, не только в Internet. Например, intranet часто формируются с использованием TCP/IP. В таких средах TCP/IP может предложить существенные преимущества по сравнению с другими протоколами организации сети. Одно такое преимущество состоит в том, что TCP/IP работает на широком разнообразии аппаратных средств и операционных систем. Таким образом, можно быстро и легко создать гетерогенную сеть, использующую TCP/IP. Такая сеть могла бы иметь Macs, IBM совместимы машины, Sun Sparcstations, MIPS машины и так далее. Каждая из них может связываться с другими, используя общий набор протоколов. По этой причине, так, как это было впервые представлено в 1970-ых, TCP/IP стал чрезвычайно популярным. В следующем разделе, я буду обсуждать реализацию TCP/IP на различных платформах.

Какие Платформы Поддерживают TCP/IP?

Большинство платформ поддерживают TCP/IP. Однако, качество этой поддержки может варьироваться. Сегодня большинство господствующих операционных систем имеют собственную поддержку TCP/IP (то есть поддержку TCP/IP, которая встроена в стандартный дистрибутив операционной системы). Однако, старые операционные системы на некоторых платформах не имеют такой родной поддержки. Таблица 6.1 описывает TCP/IP поддержку для различных платформ. Если платформа имеет собственную поддержку TCP/IP, это также отмечено. Если нет, обеспечивается имя TCP/IP приложения.

Таблица 6.1. Платформы и их поддержка для TCP/IP.

Платформа Поддержка TCP/IP
UNIX Собственная
DOS Piper/IP от Ipswitch
Windows TCPMAN от Trumpet Software
Windows 95 Собственная
Windows NT Собственная
Macintosh MacTCP или OpenTransport (Sys 7.5+)
OS/2 Собственная
AS/400 OS/400 Собственная

Платформы, которые изначально не поддерживают TCP/IP, могут реализовывать его с помощью частных или программ TCP/IP от третьих лиц. В этом случае, программы третьих лиц могут предлагать различные функциональные возможности. Одни предлагают очень хорошую поддержку, другие ограниченную.

Например, некоторые программы третьих лиц предоставляют пользователю только основные возможности TCP/IP. Для большинства пользователей этого достаточно. (Они просто хотят соединяться с Сетью, получать почту и наслаждаться простой организации сети.) Напротив, некоторые реализации TCP/IP третьих лиц всесторонни. Они могут позволять манипуляцию сжатием, методами транспортировки и другими возможностями, общих для типичной реализации UNIX TCP/IP.

Широкое распространение поддержки третьих лиц для TCP/IP началась только недавно. Несколько лет назад, например, поддержка TCP/IP для DOS была очень слабой.

СОВЕТ: Существует замечательная программа, названная Minuet , которая может использоваться вместе с пакетным драйвером в ЛВС. Minuet получил свое имя от слов Minnesota Internet Users Essential Tool ( Необходимая Утилита Пользователей Internet Штата Mиннесота ). Minuet предлагает быстрый и эффективный доступ к Сети через DOS среду. Эта программа всё ещё бесплатно доступна во многих местах, включая
ftp://minuet.micro.umn.edu/pub/minuet/ .

Один интересный момент относительно несобственных, сторонних реализаций TCP/IP это: Большинство их них не содержит серверы в своих дистрибутивах. Таким образом, хотя пользователь может соединиться с удаленными машинами, чтобы передать файл, машина пользователя не может принять такой запрос. Например, пользователь Windows 3.11, использующий TCPMAN, не сможет без установки дополнительного программного обеспечения принимать запросы на передачу файла от удаленной машины. Те, кто заинтересован в обеспечении услуг через TCP/IP позже в этой главе найдут список нескольких имен такого дополнительного программного обеспечения.

Как TCP/IP Работает?

TCP/IP действует с помощью стека протоколов. Стек это суммарное количество всех протоколов, необходимых для завершения одиночной передачи данных между двумя машинами. (Это также путь, который данные проходят, чтобы выйти из одной машины и попасть в другую.) Стек разбит на уровни, пяти из которых мы коснемся здесь. Чтобы понять концепцию уровней, изучите Рисунок 6.1.

Рисунок 6.1. Стек TCP/IP.

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

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

Отдельные Протоколы

Вы изучили, как данные передаются через TCP/IP, используя стек протоколов. Теперь я хочу идентифицировать ключевые протоколы, которые работают в этом стеке. Я начну с протоколов сетевого уровня.

Протоколы Сетевого Уровня

Сетевые протоколы это протоколы, которые прозрачно участвуют в (или облегчают) транспортном процессе. Они невидимы для пользователя, если этот пользователь не использует утилиты, контролирующие системные процессы.

СОВЕТ: Перехватчики это устройства, которые могут контролировать такие процессы. Перехватчик это устройство, аппаратное или программное, которое может читать каждый пакет, посланный через сеть. Перехватчики обычно используются, чтобы изолировать сетевые проблемы, невидимые пользователю, которые мешают работе сети. Также, перехватчики могут читать всю деятельность, происходящую между протоколами сетевого уровня. Кроме того, как Вы могли бы предположить, перехватчики могут представлять огромную угрозу для безопасности. Вы изучите перехватчики в Главе 12, «Перехватчики».

  • Протокол Сопоставления Адреса (ARP — Address Resolution Protocol)
  • Протокол Управляющих Сообщений Internet (ICMP — Internet Control Message Protocol)
  • Internet Протокол (IP — Internet Protocol)
  • Протокол Управления Передачей (TCP — Transmission Control Protocol)

Я кратко исследую каждый из этих протоколов.

Ссылка: Для более всесторонней информации относительно протоколов (или стека вообще), я строго рекомендую Teach Yourself TCP/IP in 14 Days ( Самостоятельно Изучите TCP/IP за 14 Дней ) Timothy Parker, Ph.D (Издательства Sams).

Протокол Сопоставления Адреса

Протокол Сопоставления Адреса (ARP) выполняет важную задачу отображения адресов Internet в физические адреса. Это жизненно важно при маршрутизации информации через Internet. Прежде, чем сообщение (или другие данные) посылается, оно упаковывается в IP пакеты, или блоки информации, соответственно отформатированной для транспортировки через Internet. Они содержат числовой Internet (IP) адрес машин и адресата и источника. Прежде, чем этот пакет может оставить компьютер источник, должен быть найден аппаратный адрес получателя (адресата). (Аппаратные адреса отличаются от адресов Internet.) Это и делает ARP.

Сообщение ARP запроса широковещательно для подсети. Этот запрос получается маршрутизатором, который отвечает требуемым аппаратным адресом. Ответ принимается машиной отправителем, и процесс передачи может начинаться.

Протокол ARP включает в себя кэш. Чтобы понять концепцию кэша ARP, рассмотрите следующее: Наиболее современные броузеры HTML (типа Netscape Navigator или Microsoft Internet Explorer) используют кэш. Кэш это часть диска (или память), в которой сохранены элементы часто посещаемых Web страниц (типа кнопок, заголовков и вобще графики). Логично, что когда Вы возвращаетесь к этим страницам, они не должны быть перезагружены с удаленной машины. Они загрузятся намного более быстрее, если находятся в вашем локальном кэше.

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

Вы можете предположить, какой риск для безопасности может содержаться в поддержание такого ARP кэша? На данном этапе это не особенно важно. Однако, кэширование адресов (не только в ARP но и в других случаях) действительно содержит уникальный риск для безопасности. Если такие записи адрес-расположение сохранены, это позволяет взломщику проще подделать подключение от удаленной машины, адрес которой содержится в кэше.

Ссылка: Читатели, ищущие глубокую информацию по ARP, должны просмотреть RFC 826
( http://www.freesoft.org/Connected/RFC/826 ).
Ссылка: Другая хорошая ссылка на информацию о ARP это документ Margaret K. Johnson о деталях TCP/IP (отрывок из Microsoft LAN Manager TCP/IP Protocol )
( http://www.alexia.net.au/~www/yendor/internetinfo/index.html ).

Протокол Управляющих Сообщений Internet


  • Когда узел выключен
  • Когда шлюз переполнен или не действует
  • Другие отказы в сети

СОВЕТ: Возможно наиболее широко известная ICMP реализация включает сетевую утилиту, названную ping . Ping часто используется, чтобы определить, является ли удаленная машина действующей. Метод работы ping прост: Когда пользователь ping’ует удаленную машину, с его машины на удаленный узел отправляются пакеты. Затем эти пакеты отображаются на экране на машине пользователя. Если никакие отображенные на экране пакеты не получены, программа ping обычно генерирует сообщение об ошибках, указывающее, что удаленный узел выключен.

Ссылка: Я потороплю читателей, ищущих глубокую информацию о ICMP изучить RFC 792
( http://sunsite.auc.dk/RFC/rfc/rfc792.html ).

Internet Протокол

IP принадлежит сетевому уровню. Internet Протокол обеспечивает доставку пакета для всех протоколов набора TCP/IP. Таким образом, IP это основа невероятного процесса, по средствам которого данные пересекают Internet. Чтобы исследовать этот процесс, я составил маленькую IP датаграмму (смотрите Рисунок 6.2).

Рисунок 6.2. IP датаграмма .

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

У IP есть удивительная особенность: Если IP датаграммы сталкиваются с сетями, которые требуют меньших пакетов, датаграммы разделяются на части, приспособленные для получающей сети. Таким образом, датаграммы могут фрагментироваться в течение передачи и быть позже должным образом собраны получателем (даже если они прибывают не в той же самой последовательности, в которой были отправлены).

IP датаграмма содержит различную информацию. Часть этой информации может включать идентификатор используемого протокола, контрольную сумму заголовка и спецификатор времени жизни. Спецификатор это числовое значение. Пока датаграмма путешествует в пустоте, это числовое значение постоянно декрементируется. Когда оно наконец достигает нулевого состояния, датаграмма умирает. Множество типов пакетов имеют ограничения времени жизни. Некоторые сетевые утилиты (типа Traceroute) используют поле времени жизни как маркер в диагностических алгоритмах.

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

Ссылка: Я отсылаю читателей, ищущих глубокую информацию по Internet Протоколу к RFC 760
( http://sunsite.auc.dk/RFC/rfc/rfc760.html ).

Протокол Управления Передачей

Протокол Управления Передачей это главный протокол, используемый в Internet. Он облегчает такие критичные задачи как передача файлов и удаленные сеансы. TCP выполняет эти задачи методом, названным надежной передачей данных. В этом отношении, TCP отличается от других протоколов набора. При ненадежной доставке, Вы не имеете никакой гарантии, что данные прибудут в неповрежденном состоянии. Напротив, TCP обеспечивает то, что иногда упоминается как надёжный поток доставки . Надежный поток доставки гарантирует, что данные прибудут в той же самой последовательности и состоянии, в котором они были посланы.

Система TCP полагается на виртуальный канал, который устанавливается между запрашивающей машиной и её адресатом. Этот канал открывается трехступенчатым процессом, часто упоминаемым как трехступенчатое открытие соединения . Процесс обычно следует образцу, иллюстрированным на Рисунке 6.3.

Рисунок 6.3. Трехступенчатое открытие соединения TCP/IP.

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

  • Передающая машина получит информацию об ошибке
  • Передающая машина не получит ничего

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

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

  • Программа с именем inetd
  • Система, основанная на портах

inetd: Мать Всех Демонов

Прежде, чем Вы изучите программу inetd, я хочу кратко описать демонов. Это поможет Вам более легко понять программу inetd.

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

inetd очень специальный демон. Он имеет несколько названий, включая super-server ( супер сервер ) или granddaddy of all processes ( главный родитель всех процессов ). Это потому что inetd основной демон, выполняющийся на машине UNIX. Также потому что это удачная утилита.

Здравый смысл говорит Вам, что выполнение дюжины или большего количества процессов демонов может съесть много ресурсов машины. Так и не делайте этого, почему бы не создать один демон, который бы мог слушать для всех других? Именно это inetd и делает. Он слушает запросы на подключение из пусты. Когда он получает запрос, то оценивает его. Эта оценка определяет только одну вещь: Какую службу хочет запрашивающая машина? Например, требуется FTP? Если так, inetd запускает процесс FTP сервера. FTP сервер может затем обработать запрос из пустоты. С этого момента может начинаться передача файла. Все это происходит за секунды или около того.

СОВЕТ: inetd теперь не только для UNIX. Например, Hummingbird Communications разработала (как часть своей линии продуктов Exceed 5) версию inetd для использования на любой платформе, на которой выполняется Microsoft Windows или OS/2. Существуют также некоммерческие версии inetd, написанные студентами и другими программными энтузиастами. Один такой дистрибутив доступен от TFS software и может быть найден на
http://www.trumpton.demon.co.uk/software/inetd.html .

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

Поведение inetd в основном управляется файлом по имени inetd.conf , расположенным в каталоге /etc на большинстве UNIX платформ. Файл inetd.conf используется для определения сервисов, которые будут вызваться inetd. Такие сервисы могут включать FTP, Telnet, SMTP, TFTP, Finger, Systat, Netstat или любые другие процессы, которые Вы определите.

Порты

Многие программы TCP/IP могут быть инициализированы по Internet. Большинство из них клиент/сервер ориентированы. Как только запрос на подключение получен, inetd запускает программу сервер, которая затем связывается с запросившей клиентской машиной.

Чтобы облегчить этот процесс, каждому приложению (FTP или Telnet, например) назначен уникальный адрес. Этот адрес называется портом . Рассматриваемое приложение связано с таким специфическим портом и, когда сделан любой запрос на подключение к этому порту, запускает соответствующее приложение (inetd программа, которая запускает приложение).

Имеются тысячи портов на среднем сервер Internet. С целью удобства и эффективности для назначения порта была разработана стандартная структура действий. (Другими словами, хотя системный администратор может связывать сервисы с портами по своему выбору, обычно сервисы связаны с признанными портами. Они обычно упоминаются как известные порты .)

Пожалуйста просмотрите Таблицу 6.2, содержащую некоторые обычно признаваемые порты и приложения, типично связанные с ними.

Таблица 6.2. Общие порты и соответствующие им сервисы

Сервис или Приложение Порт
Протокол Передачи Файлов (FTP) 21
Telnet 23
Простой Протокол Передачи Почты (SMTP) 25
Gopher 70
Finger 79
Протокол Передачи Гипертекста (HTTP) 80
Протокол Передачи Сетевых Новостей (NNTP) 119

Я исследовать каждое приложение, описанное в Таблице 6.2. Все они протоколы прикладного уровня или сервисы (то есть они видимы пользователю, и пользователь может взаимодействовать с ними с консоли).

Ссылка: Для исчерпывающего списка всех назначенных портов, посетите
ftp://ftp.isi.edu/in-notes/iana/assignments/port-numbers .
Этот документ чрезвычайно информативен и исчерпывающе описывает обычно назначенные номера портов.

Telnet

Спецификация протокола Telnet хорошо описана в RFC 854: Цель протокола Telnet состоит в том, чтобы обеспечить довольно общее, двунаправленное, восьмиразрядное байтовое средство связи. Его основная цель состоит в том, чтобы позволить стандартный метод связи с помощью интерфейса терминальных устройств и ориентированных на терминал процессов.

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

Для тех из Вас, кто незнаком с Telnet, он работает во многом подобно интерфейсу системы досок объявлений (BBS — bulletin board system). Telnet это превосходное приложение для обеспечения основанном на терминале доступе к базам данных. Например, больше чем 80 процентов всех университетским библиотечным каталогам можно обращаться через Telnet. Рисунок 6.4 показывает пример Telnet экрана каталога библиотеки.

Рисунок 6.4. Типовая сессия Telnet.

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

Чтобы использовать Telnet, пользователь выполняет команду, необходимую, чтобы запустить клиента Telnet, за которой следует имя (или числовой IP адрес) целевого узла. В UNIX это делается следующим образом:

Эта команда запускает сессию Telnet, связывается с internic.net , и запрашивает подключение. Это подключение будет или удовлетворено или отклонено, в зависимости от конфигурации целевого узла. В UNIX команда Telnet долго была родной. То есть Telnet была включена в основные дистрибутивы UNIX больше десятилетия. Однако, не все операционные системы имеют родного клиента Telnet. Таблица 6.3 показывает клиенты Telnet для различных операционных систем.

Таблица 6.3. Клиенты Telnet для различных операционных систем.

Операционная Система Клиент
UNIX Собственный
Microsoft Windows 95 Собственный (командная строка), ZOC, NetTerm, Zmud, WinTel32, Yawtelnet
Microsoft Windows NT Собственный (командная строка), CRT и все перечисленные для 95
Microsoft Windows 3. x Trumptel Telnet, Wintel, Ewan
Macintosh NCSA Telnet, NiftyTelnet, Comet
VAX Собственный

Протокол Передачи Файлов

Протокол передачи файлов это стандартный метод передачи файлов из одной системы в другую. Его цель сформулирована в RFC 0765 следующим образом: Цели FTP: 1) содействовать совместному использованию файлов (компьютерных программ и/или данных), 2) содействовать косвенному или неявному (через программы) использованию удаленных компьютеров, 3) ограждать пользователя от различий в системах хранения файлов на Узлах, и 4) надежно и эффективно передавать данные. FTP, хотя и пригоден для использования непосредственно пользователем в терминале, предназначен главным образом для использования программами.

Более двух десятилетий исследователи исследовали широкое разнообразие методов передачи файлов. За это время протокол FTP подвергался многим изменениям. Его первое определение произошло в апреле 1971, и полная спецификация может быть прочитана в RFC 114.

Ссылка: RFC 114 содержит первое определение FTP, но более практичным документом является RFC 959
( http://www.freesoft.org/Connected/RFC/959/index.html ).

Механическая Работа FTP

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

Таблица 6.4. FTP клиенты для различных операционных систем.

Операционная Система Клиент
UNIX Собственный, LLNLXDIR2.0, FTPtool
Microsoft Windows 95 Собственный, WS_FTP, Netload, Cute-FTP, Leap FTP, SDFTP, FTP Explorer
Microsoft Windows NT Смотрите список для Windows 95
Microsoft Windows 3. x Win_FTP, WS_FTP, CU-FTP, WSArchie
Macintosh Anarchie, Fetch, Freetp
OS/2 Gibbon FTP, FTP-IT, Lynn’s Workplace FTP
VAX Собственный

Как FTP Работает?

Передача файлов по FTP происходит в среде клиент/сервер. Запрашивающая машина запускает один из клиентов, перечисленных в Таблице 6.4. Клиент генерирует запрос, который отправляется целевому файловому серверу (обычно узел в другой сети). Как правило, запрос посылается inetd на порт 21. Для подключения, которое будет установлено, целевой файловый сервер должен запустить сервер FTP или демон FTP.

FTPD это стандартный демон FTP сервера. Его функция проста: отвечать на запросы на подключение, полученные inetd, и удовлетворять просьбы о передаче файлов. Этот демон стандартно поставляется в большинстве дистрибутивах UNIX (для других операционных систем, смотрите Таблицу 6.5).

Таблица 6.5. FTP серверы для различных операционных систем.

Операционная Система Клиент
UNIX Собственный (FTPD)
Microsoft Windows 95 WFTPD, Microsoft FrontPage, WAR FTP Daemon, Vermilion
Microsoft Windows NT Serv-U, OmniFSPD, Microsoft Internet Information Server
Microsoft Windows 3. x WinQVT, Serv-U, Beames & Whitside BW Connect, WFTPD FTP Server, WinHTTPD
Macintosh Netpresenz, FTPD
OS/2 Penguin

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

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

Простой Протокол Передачи Почты

Цель Простого Протокола Передачи Почты кратко обозначена в RFC 821: Цель Простого Протокола Передачи Почты (SMTP) состоит в том, чтобы надежно и эффективно передавать почту.

SMTP чрезвычайно легкий и эффективный протокол. Пользователь (использующий любой SMTP-совместимый клиент) посылает запрос на SMTP сервер. В результате устанавливается двухсторонняя связь. Клиент пересылает команду MAIL, указывая, что он хочет послать почту получателю где-нибудь в Internet. Если SMTP позволяет эту операцию, назад машине клиента будет послано подтверждение. С этого момента начинается сессия. Клиент может затем переслать идентификатор получателя, его IP адрес, и сообщение (текст), которое будет послано.

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

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

Gopher

Служба Gopher это распределенная система поиска документов. Она была первоначально осуществлена как Университетская Широкая Информационная Система (Campus Wide Information System) в Университете Штата Mиннесота. Она определена в FYI, март 1993, от Университета Штата Mиннесота следующим образом: Протокол Internet Gopher предназначен, прежде всего, чтобы действовать как распределенная система доставки документов. В то время как документы (и услуги) постоянно находятся на различных серверах, клиентское программное обеспечение Gopher представляет пользователям иерархию элементов и каталогов подобно файловой системе. Фактически, интерфейс Gopher разработан, чтобы быть похожим на файловую систему, так как файловая система это хорошая модель для расположения документов и услуг.

Ссылка: Полная документация по протоколу Gopher может быть получена из RFC 1436
( http://sunsite.auc.dk/RFC/rfc/rfc1436.html ).

Служба Gopher очень мощная. Она может обслуживать текстовые документы, звуковые и другое мультимедиа. Она также работает в основном в текстовом режиме и поэтому намного быстрее, чем HTTP через броузер. Несомненно, наиболее популярный клиент Gopher создан для UNIX. (Gopher2_3 особенно популярен, сопровождается Xgopher.) Однако, многие операционные системы имеют клиенты Gopher. Смотрите Таблицу 6.6, содержащую несколько из них.

Таблица 6.6. Клиенты Gopher для различных операционных систем.

Операционная Система Клиент
Microsoft Windows (все) Hgopher, Ws_Gopher
Macintosh Mac Turbo Gopher
AS/400 Клиент Gopher AS/400
OS/2 Os2Gofer

Как правило, пользователь запускает клиента Gopher и входит в контакт с каким либо сервером Gopher. В свою очередь, сервер Gopher передаёт клиенту меню. Оно может включать меню поиска, предварительную установку адресатов, или каталоги файлов. Рисунок 6.5 показывает клиентское подключение к Университету Штата Иллинойс.

Рисунок 6.5. Типовая сессия Gopher.

Обратите внимание, что модель Gopher полностью клиент/серверная. Пользователь никогда не войдет в систему сам по себе. Вместо этого клиент посылает сообщение серверу Gopher, требуя все доступные в настоящее время документы (или объекты). Сервер Gopher отвечает этой информацией и не делает ничего, пока пользователь не запросит объект.

Протокол Передачи Гипертекста

Протокол передачи гипертекста возможно наиболее известный протокол из всех, потому что этот протокол позволяет пользователям заниматься серфингом в Сети. Как кратко написано в RFC 1945, HTTP это: . протокол прикладного уровня с легкостью и скоростью, необходимых для распределенных, совместных, гипермедиа информационных систем. Это универсальный, межгосударственный, объектно-ориентированный протокол, который может использоваться для множества задач, типа серверов имен и распределенных систем управления объектами, через расширение его методов запросов (команд). Возможность HTTP это печатать представление данных, не зависимо от системы, в которой передаваемые данные были созданы.

ПРИМЕЧАНИЕ: RFC 1945 был заменен RFC 2068, который является более современной спецификацией HTTP и доступен на
ftp://ds.internic.net/rfc/rfc2068.txt .

HTTP навсегда изменил характер Internet, прежде всего, неся Internet в массы. В некоторых местах его работа очень похожа на Gopher. Например, он также работает через сценарий запрос/ответ. Это важный момент. Принимая во внимание, что приложения типа Telnet требуют, чтобы пользователь вошел в систему (и пока они работают, они потребляют системные ресурсы), протоколы типа Gopher и HTTP устраняют это явление. Пользователь (клиент) потребляет системные ресурсы только для того, чтобы получить данные.

Используя общий броузер подобно Netscape Navigator или Microsoft Internet Explorer, Вы можете контролировать этот процесс. Для каждого элемента данных (текст, изображение, звук) на странице WWW, ваш броузер войдет в контакт с сервером один раз. Таким образом, он сначала возьмет текст, затем изображение, потом звуковой файл, и так далее. В левом нижнем углу экрана вашего броузера находится строка состояния. Понаблюдайте за ней во время загрузки страницы. Вы увидите, что запрос/ответ происходит часто с очень высокой скоростью.

HTTP особенно не заботит, какие данные требуются. Различные формы мультимедиа могут быть или внедрены внутрь или обслуживаться дистанционно через HTML страницы WWW. Короче говоря, HTTP чрезвычайно легкий и эффективный протокол. Клиенты для этого протокола перечислены в Таблице 6.7.

Таблица 6.7. HTTP клиенты для различных операционных систем.

Операционная Система HTTP Клиент
Microsoft Windows (все) Netscape Navigator, WinWeb, Mosaic, Microsoft Internet Explorer, WebSurfer, NetCruiser, AOL, Prodigy
Macintosh Netscape Navigator, MacMosaic, MacWeb, Samba, Microsoft Internet Explorer
UNIX Xmosaic, Netscape Navigator, Grail, Lynx, TkWWW, Arena
OS/2 Web Explorer, Netscape Navigator

До недавнего времени только UNIX поддерживал HTTP сервер. (Стандартно NCSA HTTPD. Теперь к гонке присоединился Apache, составляя HTTPD сильную конкуренцию на рынке.) Приложение чрезвычайно маленькое и компактное. Подобно большинству своих коллег, оно выполняется как демон. Ему типично назначается 80-ый порт. Сегодня имеются HTTP серверы для почти каждой операционной системы. Таблица 6.8 содержит список этих серверов.

Таблица 6.8. HTTP серверы для различных операционных систем.

Операционная Система HTTP Сервер
Website, WinHTTPD
OmniHTTPD, Server 7, Nutwebcam, Microsoft Personal Web Server, Fnord, ZB Server, Website, Folkweb
HTTPS, Internet Information Server, Alibaba, Espanade, Expresso, Fnord, Folkweb, Netpublisher, Weber, OmniHTTPD, WebQuest, Website, Wildcat
Macintosh MacHTTP, Webstar, Phantom, Domino, Netpresenz
UNIX HTTPD, Apache
OS/2 GoServe, OS2HTTPD, OS2WWW, IBM Internet Connection Server, Bearsoft, Squid & Planetwood

Протокол Передачи Сетевых Новостей

Протокол передачи сетевых новостей это один из наиболее широко используемых протоколов. Он обеспечивает современный доступ к информационной службе, обычно известной как новости USENET. Его цель определена в RFC 977: NNTP определяет протокол для распределения, запроса, поиска и отправления новостных статей, используя надёжную потоковую передачу новостей среди сообщества ARPA-Internet. NNTP разработан так, чтобы новостные статьи сохранялись в центральной базе данных, позволяющей подписчику выбрать только те элементы, которые он желает прочитать. Также обеспечивается индексация, система перекрестных ссылок, и истечение срока хранения сообщений.

NNTP имеет схожие характеристики с Простым Протоколом Передачи Почты и с TCP. Сходство с SMTP состоит из принятия NNTP простых английских команд из приглашения. Подобно TCP в нем используется потоковая транспортировка и доставка. NNTP типично выполняется на Порту 119 в любой UNIX системе.

Ссылка: Я отсылаю читателей, ищущих глубокую информацию по NNTP к RFC 977
( http://andrew2.andrew.cmu.edu/rfc/rfc977.html ).
Вы можете также получить RFC 850 для изучения более ранних реализаций стандарта
( http://sunsite.auc.dk/RFC/rfc/rfc850.html ).

Концепции

Вы индивидуально исследовали TCP/IP услуги и протоколы, в их статическом состоянии. Вы также исследовали протоколы прикладного уровня. Было необходимо описать каждый протокол и то, что они делают. Теперь пришло время исследовать картину в целом.

TCP/IP и Internet


  • Протокол Управления Передачей
  • Internet Протокол
  • Протокол Управляющих Сообщений Internet
  • Протокол Сопоставления Адреса
  • Протокол Передачи Файлов
  • Протокол Telnet
  • Протокол Gopher
  • Протокол Передачи Сетевых Новостей
  • Простой Протокол Передачи Почты
  • Протокол Передачи Гипертекста

Теперь приготовьтесь к удару. Это только горстка протоколов, работающих в Internet. Фактически их сотни. Больше половины основных протоколов имели одну или более лазеек в безопасности.

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

До недавнего времени запросы на доступ к протоколам можно было делать по одному за раз. То есть, чтобы приостановить сессию Gopher и запустить сессию Telnet, пользователь должен был физически прервать подключение с Gopher.

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

  • Набор протоколов TCP/IP содержит протоколы необходимые, чтобы облегчить передачу данных по Internet
  • Набор протоколов TCP/IP обеспечивает быструю, надёжную организацию сети не потребляя больших сетевых ресурсов
  • TCP/IP реализован почти на всех вычислительных платформах

Теперь, когда Вы изучили основы TCP/IP, Вы можете переходить к следующей главе. В ней Вы исследуете некоторые из причин небезопасности Internet. Как Вы вероятно предполагаете, по всей главе будут ссылки на TCP/IP.

Adblock
detector