Брандмауэры и специальное программное обеспечение 8 Часть 4

Вид материалаРеферат

Содержание


Коротко об ICMP
Сеть и маршрутизация в Интернете
Подобный материал:
1   ...   32   33   34   35   36   37   38   39   ...   101

Коротко об ICMP


В отличие от протоколов TCP и UDP пакеты протокола ICMP (Internet Control Message Protocol) не передаются через сеть в составе пакетов IP. Протокол ICMP обладает собственным заголовком пакета. Если вы когда-либо использовали утилиту ping, значит, вы уже знакомы с ICMP, так как работа этой утилиты основана на использовании данного протокола. Однако ICMP используется не только для утилиты ping. Сетевой ICMP-пакет ping на самом деле является двумя отдельными пакетами. Как указано в RFC 792, сообщение эхо-запроса (Echo Request Message или ping) — это пакет ICMP типа 8. Ответом на это сообщение является сообщение эхо-ответа (Echo Reply Message или pong), то есть пакет ICMP типа 0. Полный список разновидностей пакетов ICMP, извлеченный из RFC 792, в переводе на русский язык выглядит следующим образом:

ICMP Message Types and Codes (Типы и коды сообщений ICMP)

Тип 0 Echo Reply Message (эхо-ответ)

Тип 3 Destination Unreachable Message (приемник недоступен) Код
  1. = сеть недоступна;
  2. = сетевой узел недоступен;
  3. = протокол недоступен;
  4. = порт недоступен;
  5. = необходима фрагментация и флаг DF установлен;
  6. = исходный маршрут не работает.

Тип 4 Source Quench Message (заглушить источник)

Тип 5 Redirect Message (перенаправить) Код
  1. = перенаправлять дейтаграммы для сети
  2. = перенаправлять дейтаграммы для сетевого узла
  3. = перенаправлять дейтаграммы для типа службы и сети
  4. = перенаправлять дейтаграммы для типа службы и сетевого узла
    Тип 8 Echo Message (эхо-запрос)

Тип 11 Time Exceeded Message (время истекло) Код

0= при передаче сообщения истекло время жизни (time to live)

0= истекло время формирования сообщения из фрагментов (fragment reassembly time)
Тип 12 Parameter Problem Message (проблема с параметром)

Код

0 = проблема, связанная с параметром

Тип 13 Timestamp Message (отметка времени)

Тип 14 Timestamp Reply Message (ответ на отметку времени)

Тип 15 Information Request Message (запрос информации)

Тип 16 Information Reply Message (ответ на запрос информации)

Если ранее вы уже работали с компьютерами, подключенными к сети, возможно, вы уже сталкивались с сообщением «сетевой узел недоступен» (host unreachable), информирующим вас о том, что удаленный компьютер, с которым вы пытаетесь вступить в контакт, по тем или иным причинам не может выйти на связь. Однако несмотря на то, что другие сообщения ICMP зачастую остаются незаметными для вас, они активно используются в процессе функционирования сетей, основанных на IP. Протокол ICMP является чрезвычайно важным механизмом, обеспечивающим функционирование системы в сети. Linux использует ICMP для определения величины MTU (Maximum Transmission Unit). Сетевые карты Ethernet передают данные большими блоками. Каждый такой блок называется единицей передачи (transmission unit). По умолчанию размер блока составляет 1500 байт. Благодаря использованию столь больших блоков обмен данных в скоростных сетях существенно ускоряется. Однако в медленных сетях использование столь крупных блоков малоэффективно. Дело в том, что при передаче столь крупного блока возрастает вероятность ошибки, а если при передаче блока возникает ошибка, блок отбрасывается и его необходимо передать заново. Таким образом, в медленных сетях слишком много крупных блоков потребовалось бы передавать заново. Чтобы снизить вероятность ошибки при передаче блока, размер блока уменьшают. Параметр MTU для каналов телефонной связи, как правило, составляет около 296 байт. Чтобы определить оптимальную величину MTU для некоторого соединения, система Linux устанавливает флаг DF (Don't Fragment — не фрагментировать). Если блок установленного размера невозможно передать через выбранную линию связи или во время передачи блока возникает ошибка, пакет отбрасывается и системе-источнику отсылается сообщение ICMP типа 3 с кодом 4 (ICMP Type 3 Code 4 Fragmentation Needed and DF Set), то есть система-источник извещается о том, что требуется фрагментация, а бит DF установлен. В этом случае система Linux уменьшает MTU и пытается выполнить передачу снова. Таким образом, Linux самостоятельно настраивает размер пакета для получения оптимальной скорости передачи данных через канал.

Какая взаимосвязь между ICMP и безопасностью? Взломщики систем для начала зачастую исследуют сеть, в которую они проникают, с использованием эхо-пакетов ping для того, чтобы получить перечень работающих систем. Сетевой брандмауэр можно настроить таким образом, чтобы он отбрасывал пакеты ICMP. Однако при этом не следует отбрасывать абсолютно все пакеты, в противном случае вы рискуете не получать важных сообщений для корректной настройки MTU, а также таких важных служебных сообщений, как Host Unreachable (сетевой узел недоступен). Брандмауэр необходимо настроить таким образом, чтобы он не пропускал сообщения ICMP типа 8. К сожалению, в наши дни большинство взломщиков уже отлично знает о том, что сообщения эхо-запроса ICMP Type 8 (Echo Request) не пропускаются сквозь брандмауэры. Для обнаружения работающих в сети систем взломщиками используются другие более изощренные способы.

Сеть и маршрутизация в Интернете


Маршрутизация (routing) — это метод, благодаря которому пакеты ICMP и IP находят путь от одного компьютера к другому. В Интернете данные передаются не напрямую от источника к приемнику, а по цепочке. Пакеты передаются через сеть от системы к системе из интерфейсного устройства одной системы в интерфейсное устройство другой системы до тех пор, пока они не достигнут системы-приемника. Это происходит при условии, что во время пути с пакетами ничего не происходит. В данной книге подразумевается, что все интерфейсные устройства являются сетевыми картами Ethernet, однако интерфейсное устройство может быть также устройством подключения к каналу типа «точка-точка». Интерфейсными устройствами могут быть модемы, сетевые карты Token Ring и т. п. Важным обстоятельством является то, что каждому интерфейсному устройству должен быть поставлен в соответствие уникальный IP-адрес. Если между двумя интерфейсными устройствами существует маршрут, эти интерфейсные устройства не могут обладать одним и тем же IP-адресом. Многим IP-адресам ставится в соответствие имя. Одному и тому же имени можно поставить в соответствие несколько IP-адресов, однако в этом случае вы должны предпринять некоторые дополнительные организационные действия, чтобы обеспечить корректное функционирование подобной схемы.

В заводских условиях в каждую сетевую карту Ethernet жестко записывается уникальный численный идентификатор, который называется аппаратным адресом MAC. МАС-адрес — это число, состоящее из шести двухзначных шестнадца-теричных чисел, например: 01:23:ab:cd:4e:5f. Как уже отмечалось ранее, на более верхнем уровне для идентификации сетевых узлов используются IP-адреса. Чтобы получить возможность вступить в контакт с удаленным узлом, для которого известен IP-адрес, система должна знать соответствие между IP-адресом и МАС-адресом для этого удаленного узла. Информация о соответствии между IP-адресами и МАС-адресами для известных системе удаленных сетевых узлов формируется при помощи протокола ARP (Address Resolution Protocol — протокол сопоставления адреса) и хранится в специальной внутренней таблице, которая называется ARP-кэшем. Чтобы связаться с узлом, для которого известен IP-адрес, система обращается к этой таблице и извлекает из нее соответствующий МАС-адрес. ARP-кэш используется в течение определенного времени (как правило, пара минут), после чего он считается устаревшим и стирается из памяти. После этого система вновь формирует ARP-кэш с использованием протокола ARP. Протокол ARP используется также в случае, если информация о некотором IP-адресе отсутствует в ARP-кэше. Любым IP-адресам, не принадлежащим локальной сети, ставится в соответствие МАС-адрес сетевого узла, который является шлюзом для локальной сети.


ПРИМЕЧАНИЕ

На самом деле IP-адреса назначаются не компьютерам, а коммуникационным устройствам. Коммуникационные устройства напрямую подключаются к сети. Это могут быть сетевые карты (NIC, Network Interface Card), модемы, спулеры принтеров HP JetDirect и т. п. Сам по себе компьютер не является коммуникационным устройством. Каждое коммуникационное устройство получает свой собственный IP-адрес. Один компьютер может быть оснащен несколькими коммуникационными устройствами.


Протокол АRР можно использовать и для решения обратной задачи (в этом случае говорят о протоколе RARP — Reverse Address Resolution Protocol). Благодаря этому система может узнать свой собственный IP-адрес. Сетевые карты HP JetDirect, установленные в принтерах HP LaserJet и спулерах принтеров HP JetDirect, по умолчанию слушают сеть, чтобы сообщить сетевому узлу свой МАС-адрес и получить от него соответствующий IP-адрес.

По умолчанию, когда говорят о сетевом узле, входящем в состав локальной сети, подразумевают, что этот сетевой узел напрямую подключен к тому же самому проводу или сетевому сегменту, что и все остальные компьютеры локальной сети. Если для того, чтобы передать пакет к месту назначения, требуется воспользоваться услугами еще одного промежуточного сетевого узла (шлюза или маршрутизатора), значит, сетевой узел, являющийся приемником, не принадлежит к локальной сети, даже если он подключен к тому же самому сетевому проводу. Это относится также и к машинам, которые принадлежат к одному и тому же диапазону адресов класса С, однако используют маску подсети с переменной длиной (Variable Length Subnet Masking, VLSM) и, таким образом, относятся к разным подсетям. Подробнее об этом рассказывается чуть позже, при обсуждении технологии CIDR.

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