Моя визитка
Урок 1. Хакинг
Урок 2. Антихакинг
Урок 3. Инструменты хакинга
Урок 4. Защита Windows 2000/XP
Урок 5. Проникновение в систему
Урок 6. Реализация цели вторжения
Урок 7. Сокрытие следов
Урок 8. Хакинг браузеров Web
Урок 9. Хакинг почтовых клиентов
Урок 10. Деструкция почтового клиента
Урок 11. Хакинг Web-сайтов
Урок 12. Атаки DoS
Урок 13. Хакинг компьютеров Windows 2000/XP
Урок 14. Хакинг средств удаленного управления
Урок 15. Хакинг брандмауэров
Урок 16. Перехват сетевых данных
Урок 17. Хакинг коммутируемого доступа
Приложение А
Приложение В
Приложение С
Приложение D
Приложение E

ПРИЛОЖЕНИЕ D

Семиуровневая модель OSI
Функционирование OSI
IP-адреса и имена
Протокол TCP/IP
Уровни модели TCP/IP
Концепция Active Directory
IP-безопасность

Сети TCP/IP

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

Эта классификация достаточно условна и может видоизменяться различными организациями, претендующими на роль «стандартизаторов» сетевых технологий. Мы будем опираться на классификацию, предлагаемую Международной организацией по стандартизации (ISO - International Standards Organization), находящейся в Женеве. Эта классификация называется моделью OSI (Open System Interconnection - Взаимодействие открытых систем). В этом приложении мы перечислим основные протоколы на всех уровнях модели OSI и опишем их предназначение. Далее мы кратко опишем новый протокол IPSec (Internet Protocol Security - Протокол безопасности Интернета), который, в соответствии с названием, обещает стать основой для систем защиты от атак из Интернета (по крайней мере, это утверждает его создатель - фирма Microsoft).

Семиуровневая модель OSI

Международная организация ISO, находящаяся в Женеве, в качестве стандартной модели взаимодействия открытых систем определила семиуровневую модель OSI, которую признают все ведущие разработчики компьютерных технологий. Модель OSI состоит из следующих уровней:

• Физический

• Канальный

• Сетевой

• Транспортный

• Сеансовый

• Представления данных

• Прикладной

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

Физический уровень

На физическом уровне по кабелю, оптоволоконной или беспроволочной линии связи посылаются сигналы от одного компьютера к другому. Этот уровень работает с электрическими сигналами, представляющими состояние 0 (выключено) или 1 (включено) бита информации, передаваемого по сетевой кабельной системе. Выбор конкретного типа сетевой карты, кабеля с витыми парами проводников (lOBaseT, 100BaseT) или коаксиального кабеля (10Base2) относится к решениям, принимаемым на физическом уровне.

Канальный уровень

Средства канального уровня имеют дело с фреймами, т.е. группами битов, передаваемых по сети (фреймы также называют кадрами). Для фактической передачи сигнала по линии связи средства канального уровня используют физический уровень. На канальном уровне отслеживается прием и передача фреймов и (при необходимости) выполняется повторная передача. В качестве примеров реализаций средств канального уровня можно привести сети Ethernet и Token Ring, каждая из которых использует собственный формат фреймов.

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

Средства канального уровня имеют важное дополнение. Модель сетевого взаимодействия, предложенная комитетом IEEE 802 (еще одна авторитетная организация по стандартизации), разделяет канальный уровень на два подуровня:

• Уровень LLC (Logical Link Control - Управление логическим каналом), который управляет взаимодействием с нижним (физическим) уровнем.

• Уровень MAC (Media Access Control - Управление доступом к среде передачи), который обеспечивает стандартные средства интерфейса для доступа по протоколу CSMA/CD (Carrier Sense Multiple Access with Collision Detection - Множественный доступ с контролем несущей и обнаружением конфликтов). Протокол CSMA/CD применяется в сетях Ethernet, сетях с маркерным доступом и шинной топологией (например, ARCnet), а также в сетях Token Ring.

Сетевой уровень

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

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

Транспортный уровень

Транспортный уровень имеет дело с сообщениями. Размер сообщения может быть больше или меньше размера пакетов. Этот уровень отвечает за передачу сообщений между компьютерами без потери данных и при необходимости повторно пересылает пакеты. Для передачи сообщений средства транспортного уровня используют сетевой уровень. Для выполнения своих функций средства сетевого и транспортного уровней используют описываемые далее протоколы NetBEUI, TCP/IP и другие. Как правило, протоколы сетевого и транспортного уровня объединяют в один протокол.

Сеансовый уровень

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

Для передачи сообщений между двумя компьютерами средства сеансового уровня используют транспортный уровень. В качестве примера программных средств, обеспечивающих работу сеансового уровня, могут служить интерфейсы NetBIOS сетей Windows и Sockets - сокеты сетей TCP/IP. В операционной системе Windows 2000 используются 32-битовые сокеты Windows Sockets (Winsock) сеансового уровня. Что это такое, мы опишем чуть далее в разделе «Средства Winsock».

Уровень представления данных

Уровень представления данных обеспечивает работу таких служб, как шифрование и дешифрование информации, сжатие и восстановление данных, перекодировка текстов (например, из кодовой таблицы персонального компьютера ASCII в EBCDIC фирмы IBМ и наоборот). Для передачи зашифрованных, сжатых или перекодированных данных средства уровня представления данных используют сеансовый уровень. В качестве примера уровня представления данных можно привести стандарт для аппаратно-независимых структур данных (XDR - External Data Representation), используемый средствами удаленного вызова процедур (RPC - Remote Procedure Call).

RPC - это служба, позволяющая создавать приложения, состоящие из множества процедур, причем одни процедуры выполняются локально, другие - на удаленных компьютерах. Удаленный вызов процедур особенно полезен тем, что соответствующие сетевые операции имеют процедурный характер, не связанный напрямую с транспортным уровнем. Служба RPC упрощает разработку распределенных приложений клиент/сервер.

Прикладной уровень

Прикладной уровень обрабатывает запросы приложений, которым требуется сетевая связь, например, для доступа к базе данных или доставки электронной почты. Этот уровень непосредственно доступен приложениям, выполняемым на удаленных компьютерах. Уровень представления данных используется для управления связью и передачей данных. Пример реализации прикладного уровня - служба RPC.

Функционирование OSI

На первый взгляд, все эти уровни OSI - просто какой-то лабиринт. Однако на самом деле все не так страшно, более того, разделение всех сетевых средств по уровням упрощает их разработку и применение. Ведь на самом нижнем уровне сеть представляет собой просто множество проводов, по которым бегают электрические сигналы. Эти сигналы представляют собой импульсы, соответствующие 0 и 1 передаваемого информационного кода. Электрическими импульсами занимаются специалисты-электронщики, которым более привычны такие понятия, как «частота», «уровень сигнала», «форма импульса» и т.д. Информационным же кодом занимаются математики, которым больше нравится представлять передаваемый сигнал в виде последовательности единичек и ноликов (1 и 0), бегущим по проводам.

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

С этой целью сообщение, пересылаемое по сети, составляется из набора заголовков и собственно передаваемых данных. Заголовки содержат всего лишь служебную информацию, необходимую для обработки передаваемых данных, которые, в сущности, и составляют «полезную нагрузку» сообщения. Эти заголовки имеют структуру, напоминающую те данные, которые хранятся в памяти компьютера, т.е. это набор слов двоичных данных, расположенных в определенной последовательности, позволяющей как-то отличить все эти слова друг от друга. Эти слова называются полями и, подобно переменным программы, поля могут иметь различную длину, или разрядность; каждый разряд поля определяет бит передаваемой информации, т.е. имеет значение 1 или 0. Отдельные поля называют флагами, если они фиксируют определенное состояние электронного сообщения или режим его обработки.

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

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

IP-aдpeca u имена

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

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

В результате возникает одна из основных проблем сетей TCP/IP - распознавание адресов компьютеров по их именам, и наоборот. Для людей предназначены три типа имен, для компьютеров, операционных систем и программ - два типа адресов. В процессе выполнения сетевых программ необходимо четко установить соответствие конкретного имени компьютера конкретному адресу. В системах Windows NT/2000/XP используются следующие типы имен и адресов:

Адрес машины, или адрес сетевой карты. В сетях Ethernet его также называют МАС-адресом (Media Access Control - Управление доступом к среде передачи), который жестко «зашивается» в сетевую карту ее производителем. Это гарантированно уникальный адрес, состоящий из 6 байтов, причем старшие три байта идентифицируют фирму-производителя. Фирма-производитель, в свою очередь, следит, чтобы остальные три байта не повторились на производственном конвейере. МАС-адрес обычно записывается в виде 12 шестнадцатеричных цифр, например, 00 03 ВС 12 5D 4Е. Менее распространенные сетевые архитектуры (например, сети ATM или Token Ring) используют другие схемы физической адресации.

IP-адрес используется операционными системами и сетевыми программами в сетях TCP/IP. В сетях, не соединенных с Интернетом, можно использовать любые IP-адреса. Главное, чтобы каждое устройство, подключенное к сети, имело уникальный адрес. Если же сеть планируется подключать к Интернету, следует обратиться с запросом о предоставлении IР-адреса в организацию, уполномоченную выделять часть адресного пространства Интернета, например, центр InterNIC (http://www.internic.net.). IP-адрес состоит из четырех октетов, разделенных точками. Каждый октет принимает значения от 1 до 254 (значения 0 и 255 зарезервированы для особых случаев), например, 123.45.67.89 - корректный IP-адрес. Адрес состоит из двух частей - номера сети и номера компьютера. Номер сети должен быть одинаков для всех компьютеров сети или подсети и отличаться от номеров всех остальных сетей и подсетей. Номер компьютера должен быть уникален в данной сети или подсети (см. раздел «IP-адреса» ниже).

Имя компьютера в сетях TCP/IP представляет собой «удобное» для человека обозначение машины. Если имя содержит описание домена, его называют полным доменным именем (Fully Qualified Domain Name - FQDN). Например, имени компьютера webserver может соответствовать полное доменное имя webserver.company.com. Имя компьютера можно применять в программах, часто использующих утилиты TCP/IP. Причем в большинстве случаев такие программы чувствительны к регистру букв в имени компьютера. В сетевых командах Windows вместо имен FQDN используются имена NetBIOS (см. ниже).

Доменное имя представляет собой разновидность имени компьютера. Последняя часть иерархической структуры имени (например, company.com) называется именем первого уровня и предназначена для идентификации домена в Интернете. Часто при запросе приложения или операционной системы с помощью доменного имени имеется в виду не полное имя FQDN, a имя первого уровня.

Имя NetBIOS используется сетевыми командами системы Windows, такими как net use и net view. Проводник Windows для просмотра локальной сети предоставляет папку Сетевое окружение (Network Neighborhood), автоматически отображающей имена NetBIOS в интерфейсе просмотра сети Microsoft. Имя может содержать не более 15 символов и должно быть нечувствительным к регистру букв.

Все эти имена и адреса используются в сетевом взаимодействии компьютеров согласно сетевым протоколам.

Протокол TCP/IP

Для построения современных глобальных сетей наиболее широко используется набор протоколов под общим названием TCP/IP (Transmission Control Protocol/Internet Protocol - Протокол управления передачей/протокол Интернета), который также весьма удобен для построения локальных сетей. Он используется на протяжении десятилетий в сети Интернет и других сетях - предшественницах Интернета, доказав свою эффективность для организации сверхкрупных сетей.

Дополнительным достоинством TCP/IP является то обстоятельство, что в отличие от протокола NetBEUI, который является собственностью фирм IBМ и Microsoft, TCP/IP - всеобщее достояние. Расширения и дополнения TCP/IP координирует рабочая группа инженеров Internet (Internet Engineering Task Force -IETF), используя механизм запроса комментариев (RFC - Request for Comments).

Гибкость протокола TCP/IP позволяет вначале установить его в локальной сети небольшого размера, а затем расширить эту сеть до сотен и тысяч пользователей. Управление TCP/IP требует знаний и опыта, однако если число устройств, подсоединенных к локальной сети TCP/IP, не превышает сотни, управление сетью с помощью средств, встроенных в Windows 2000, не составляет труда. К сети TCP/IP может быть подключено множество устройств с сетевым доступом, например, персональный компьютер, брандмауэр, маршрутизатор, концентратор, сетевой принтер. Каждое такое устройство называется хостом, и все хосты в сети TCP/IP имеют собственный уникальный адрес, называемый IP-адресом, по названию протокола Интернета IP.

Важнейшее свойство протокола TCP/IP - маршрутизируемость. Маршрутизатор - это устройство, связывающее друг с другом локальную и глобальную сети или две локальные сети. Если пакеты, отправленные одним из сетевых компьютеров, предназначены для компьютера данной локальной сети, маршрутизатор перехватывает их и направляет в эту же сеть, в противном случае пакеты направляются в другую сеть. Для эффективной маршрутизации сетей ТСР/IР разработана специальная структура сетевых IР-адресов.

IP-agpeca

При подключении хоста к сети TCP/IP ему присваивается IP-адрес, который состоит из идентификатора сети и идентификатора хоста.

• Идентификатор сети, или сетевой адрес, определяет хосты, подсоединенные к одной локальной сети, связанной с глобальной сетью посредством маршрутизаторов.

• Идентификатор хоста, или адрес хоста, уникальным образом определяет каждый хост локальной сети.

Каждый IР-адрес представляет собой 32-разрядную величину, включающую четыре октета - поля из восьми битов; для представления IP-адреса в удобочитаемой форме каждый октет преобразуется в десятичное число, лежащее в диапазоне от 0 до 255. Полученные четыре числа представляются точечно-десятичной нотацией, т.е. записываются в порядке старшинства октетов, разделенных точками, например, 204.209.43.2.

Когда какая-либо локальная сеть подключается к Интернету, ей при регистрации присваивается уникальный сетевой адрес, а компьютерам - уникальные адреса хостов. Следует учесть, что идентификаторы сети и хостов не могут содержать все биты равными 1 или 0, поскольку такие IP-адреса зарезервированы для специальных целей.

Группы связанных IP-адресов объединяют в классы, обозначенные буквами А, В, С, D и Е.

• Адреса класса А присваиваются сетям с большим количеством хостов. Первый бит первого октета IР-адреса всегда равен 0. Следующие 7 битов первого октета содержат идентификатор сети. Остальные 24 бита, составляющие три последних октета, представляют идентификатор хоста. Таким образом, в класс А могут входить 126 сетей, содержащих до 16 777 214 хостов.

• Адреса класса В присваивают сетям среднего размера. Два старших бита первого октета представляют собой двоичную комбинацию «10». Следующие 14 битов содержат идентификатор сети. Остальные 16 битов (т.е. два последних октета) образуют идентификатор хоста. Таким образом, в класс В могут входить 16 384 сетей, содержащих не более 65 534 хостов.

• Адреса класса С присваивают небольшим сетям. Три старших бита IP-адреса сетей класса С равны комбинации «110». Следующие 21 бит образуют идентификатор сети, остальные 8 битов последнего октета содержат идентификатор хоста. Таким образом, класс С может содержать до 2 097 152 сетей, содержащих до 254 хостов.

• Адреса класса D используются для групповой IP-рассылки сообщений. Четыре старших бита IP-адреса класса D содержат двоичную комбинацию «1110», а остальные биты содержат адрес, используемый при групповой рассылке.

• Адреса класса Е отведены для будущего использования и определяются двоичной комбинацией «1111» в старших четырех битах.

Во всех этих классах для использования доступно только ограниченное подмножество значений компонентов. Например, фактически существует не более 50 адресов класса А, принадлежащих, в основном, создателям Интернета - министерству обороны США, некоторым телекоммуникационным компаниям. Для адресов класса В доступны значения первых компонентов 128 - 191, а для класса С доступны значения 191 - 223. Значения первых компонентов выше 223 зарезервированы. Если машине требуется единственный IP-адрес, он предоставляется поставщиком услуг Интернета из его адресов класса В или С.

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

С помощью IP-адресов любую сеть можно разделить на подсети, связанные между собой маршрутизаторами. Для этого каждой подсети присваивается уникальный идентификатор подсети, образуемый из части битов, отведенных под идентификатор хоста. Чтобы маршрутизатор знал, какая часть идентификатора хоста отведена под идентификатор подсети, используется так называемая маска подсети. Маска подсети - это двоичное 32-х разрядное значение, позволяющее отличить в любом IP-адресе идентификатор сети от идентификатора хоста. Каждый бит в маске подсети определяется так: все биты, соответствующие идентификатору сети, устанавливаются в 1, а все биты, соответствующие идентификатору хоста, устанавливаются в 0.

Для определения адреса подсети по IP-адресу и маске подсети используется побитовая операция AND над битами IP-адреса и маски подсети. Операция AND действует так: если два сравниваемых бита равны 1, результат равен 1; во всех остальных случаях результат равен 0. Ниже представлен результат подсчета адреса подсети по IP-адресу 130.57.190.42 и маске подсети 255.255.248.0.

IP-адрес

10000010

00111001

10111110

00101010

Маска подсети

11111111

11111111

11111000

00000000

Идентификатор подсети

10000010

00111001

10111000

00000000

В результате получаем IP-адрес 130.57.184.0.

С помощью маски подсети можно достичь большей гибкости в организации локальной сети. Однако назначение IP-адресов и масок подсети клиентских компьютеров и управление ими может вызывать немалые затруднения. Для облегчения этой задачи в Windows NT/2000/XP включена поддержка протокола динамической конфигурации компьютера (DHCP - Dynamic Host Configuration Protocol), позволяющая автоматизировать распределение IР-адресов сетевым хостам. Более подробные сведения об организации и настройке подсетей TCP/IP можно почерпнуть в одном из многочисленных руководств по сетевым технологиям.

Уровни модели TCP/IP

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

• Прикладной уровень, объединяющий сеансовый уровень, уровень представления и прикладной уровень модели OSI.

• Транспортный уровень, совпадающий с транспортным уровнем модели OSI.

• Межсетевой уровень, соответствующий сетевому уровню модели OSI.

• Уровень сетевого интерфейса, объединяющий канальный и физический уровень модели OSI.

В нескольких последующих разделах последовательно рассматриваются все уровни модели TCP/IP вместе с дополнениями, внесенными в операционную систему Windows 2000.

Прикладной уровень

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

Базовыми протоколами прикладного уровня являются следующие:

• HTTP (Hypertext Transfer Protocol - Протокол передачи гипертекста) - обеспечивает передачу файлов Web-страниц.

• FTP (File Transfer Protocol - Протокол передачи файлов) - реализует загрузку файлов из сети Web.

• SMTP (Simple Mail Transfer Protocol - Простой протокол передачи почты) - применяется для передачи сообщений и вложений электронной почты.

• Telnet - протокол эмуляции терминала, используемый для регистрации на удаленных хостах.

• DNS (Domain Name System - Система имен доменов) - обеспечивает преобразование имен хостов в IP-адреса.

• RIP (Routing Information Protocol - Протокол маршрутной информации) - применяется для обмена информацией между маршрутизаторами.

• SNMP (Simple Network Management Protocol - Простой протокол сетевого управления) - обеспечивает сбор информации от сетевых устройств для управления сетью.

Для передачи данных по протоколу ТСР/IР в операционной системе Windows 2000 реализованы два основных средства: Windows Sockets (Сокеты Windows), или просто Winsock, и протокол NetBT (NetBIOS поверх TCP/IP). Выбор средства определяется типом приложения.

Средства Winsock

Средства Winsock используются приложениями (называемыми приложениями Winsock) для установления двунаправленного канала связи, используемого для отсылки и приема данных. В каждом связываемом таким образом компьютере создается точка стыковки, которая называется сокетом. Если соединение устанавливается по протоколу TCP/IP, каждому сокету назначается адрес Интернета и номер порта, фиксирующего службу или приложение для работы с соединением.

При установлении связи между двумя приложениями Winsock используются сокеты двух типов: потоковый сокет, для которого в качестве транспортного протокола используется протокол TCP, и дейтаграммный сокет, для которого в качестве транспортного протокола используется протокол UDP (User Datagram Protocol - Протокол передачи дейтаграмм пользователя).

Средства Winsock реализуют программный интерфейс приложений (Application Programming Interface - API), определяемый промышленным стандартом. Когда службы или приложения обращаются к этому интерфейсу, он предоставляет им набор подпрограмм, которые и определяют, каким образом и куда отсылать данные. В итоге для установления связи между двумя компьютерами, средства Winsock выполняют следующие операции:

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

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

3. Далее средства Winsock определяют тип устанавливаемого двунаправленного канала связи (потоковый или дейтаграммные сокеты) и создают двунаправленный канал связи.

4. Средства Winsock передают информацию о двунаправленном канале связи на нижние уровни модели OSI, которые устанавливают соединение между двумя компьютерами.

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

6. Теперь оба компьютера используют открытые сокеты для обмена данными.

Подробнее оба типа сокетов и транспортные протоколы обсуждаются далее, в разделе «Транспортный уровень». Основное преимущество использования сокетов Windows над протоколом NetBT заключается в том, что двунаправленный канал связи позволяет компьютерам обмениваться пакетами данных напрямую, что значительно экономит время и увеличивает пропускную способность сети.

Протокол NetBT

Протокол NetBT (NetBIOS поверх TCP/IP) объединяет два различных протокола - NetBIOS (Network Basic Input Output System - Сетевая базовая система ввода-вывода) и TCP/IP. Протокол NetBIOS обеспечивает операционной системе Windows возможность выполнения следующих функций:

• Управление именами. Чтобы приложение могло связываться по сети со службами, каждому компьютеру необходимо имя NetBIOS, которое называют также именем компьютера. Имена NetBIOS позволяют идентифицировать каждый сетевой компьютер, что обязательно для передачи данных.

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

• Управление сеансом. Чтобы задать условия передачи данных на основе логических соединений, оба компьютера обязаны установить сеанс связи.

Для передачи данных средства NetBIOS используют собственный транспортный протокол NetBEUI (NetBIOS Extended User Interface - Расширенный пользовательский интерфейс NetBIOS). Протокол TCP/IP также может управлять передачей данных через интерфейс NetBIOS с помощью транспортных протоколов TCP и UDP. Кроме того, протокол TCP позволяет устанавливать и управлять сеансами связи NetBIOS. Однако в протоколе TCP/IP не предусмотрен метод интерпретации имен NetBIOS, хотя он требуется многим сетевым службам Windows. Разработчики Microsoft устранили эту несовместимость протоколов NetBIOS и TCP/IP с помощью протокола NetBT.

Протокол NetBT управляет именами сетевых компьютеров путем регистрации имен NetBIOS через порты с номерами 137, 138 и 139. Например, когда загружается компьютер с определенным именем NetBIOS, например, Compl, протокол NetBT регистрирует его имя путем отсылки широковещательного сообщения через порт 137. После этого остальные компьютеры, поддерживающие NetBIOS, будут знать, что к компьютеру Compl можно получить доступ через порт 137. Когда компьютер отключается, его имя освобождается еще одним широковещательным сообщением, после чего оно может использоваться другими компьютерами.

Приложения, поддерживающие NetBIOS, для передачи информации используют протокол NetBT, а протокол NetBT для передачи информации на транспортный уровень используют интерфейс TDI (Transport Driver Interface - Интерфейс транспортного драйвера). Интерфейс TDI служит простейшим каналом связи между клиентом NetBT (т.е. приложением NetBIOS) и средствами транспортного уровня. Средства Winsock также используют интерфейс TDI.

Как мы уже говорили, для отсылки информации на другой компьютер средства Winsock используют IP-адреса и номера портов. Однако в приложениях для указания имен хостов TCP/IP чаще используют названия, более понятные для людей. Поэтому чтобы средства низшего уровня модели OSI могли правильно пересылать между компьютерами данные, прикладной уровень должен обеспечить преобразование имен хостов в IР-адреса. Эта операция прикладного уровня называется разрешением имен хостов.

Разрешение имен хостов

Протокол TCP/IP назначает каждому компьютеру уникальное иерархическое имя, которое позволяет идентифицировать данный компьютер в сети. Как правило, пользователям неизвестны IP-адреса Web-сайтов, а для обращения к нужному сайту они используют более удобные адреса протокола HTTP (см. RFC 2616). Адрес HTTP состоит из названия протокола, применяемого для обмена информацией с хостом, доменного имени хоста и некоторой дополнительной информации. Например, адрес http://www.microsoft.com означает, что в Интернете имеется хост с именем www.microsoft.com, доступ к которому обеспечивается протоколом HTTP.

Получив такое имя хоста, приложение (например, Web-браузер) должно передать информацию средствам на нижнем уровне OSI, которые обеспечивают связь с указанным хостом (например, сервером Интернета), причем в понятной для них форме. Для этого средства Winsock включают в себя библиотеку программ, называемых интерфейсами API (Application Programming Interface - Интерфейс прикладного программирования). Выбор используемого интерфейса зависит от приложения, но в любом случае эти программы преобразуют (т.е. разрешают) имена хостов в IP-адреса, которые затем позволяют средствам Winsock открыть сокет для связи.

Средства Winsock и NetBT используют различные методы разрешения имен. Рассмотрим их по порядку.

Разрешение Winsock

Для преобразования имени хоста в IР-адрес средства Winsock действуют следующим образом.

• Вначале функция API из набора интерфейсов Winsock просматривает специальный текстовый файл с именем HOSTS. Если в файле HOSTS будет найдено требуемое имя хоста с сопоставленным ему IP-адресом, задача решена.

• Если нужного имени хоста в файле HOSTS не найдено, средства Winsock запрашивают службу DNS (Domain Name Service - Служба имен доменов).

• Если оба метода не сумеют разрешить имя хоста, функция API попытается сделать это с помощью методов разрешения имен протокола NetBIOS.

Файл HOSTS представляет собой простой текстовый файл со списком IP-адресов и соответствующих им имен хостов. Поскольку компьютер может выполнять в сети разные задачи, каждому IP-адресу в списке файла HOSTS могут быть сопоставлены несколько имен хостов. Файл HOSTS находится в папке \\Корневая папка системы\system32\drivers\etc и его имя не имеет расширения.

Служба DNS поддерживает взаимодействие с базой данных имен хостов и сопоставленных им IP-адресов, хранимой на сервере DNS. Средства Winsock направляют на сервер DNS запрос с именем хоста и требуют преобразовать их в IP-адрес. Для выполнения этой задачи сервер DNS использует два метода: прямой поиск и обратный поиск.

Прямой поиск заключается в преобразовании имени хоста в IP-адрес. Для этого сервер DNS производит поиск в базе данных записи со сведениями о разрешаемом имени хоста. Если такие сведения найдены - разрешение выполнено; иначе сервер DNS направляет запрос другим серверам DNS, функционирующим в сети, выполняя процедуру, называемую рекурсивным прямым поиском.

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

В сетях TCP/IP с компьютерами Windows 95/98/NT/2000/XP информацию сервера DNS можно динамически обновлять с помощью сервера DHCP (Dynamic Host Configuration Protocol - Протокол динамической конфигурации хоста). Сервер DHCP управляет установками IP-адресов клиентов DHCP. Когда компьютер клиента DHCP подключается к сети, он отсылает серверу DHCP широковещательный запрос на получение IP-адреса. Сервер DHCP может выделить клиенту на некоторое время IP-адрес, предоставив также и прочую информацию, необходимую для функционирования компьютера в сети TCP/IP.

В операционную систему Windows 2000 включена также служба разрешения и кэширования имен DNS. Когда компьютер Windows 2000 Professional посылает серверу DNS запрос на разрешение имени хоста в IP-адрес, компьютер сохраняет результат запроса в локальном кэше DNS. В результат запроса входит значение времени TTL (Time to Live - Время жизни), которое определяет время, в течение которого запись полученного результата разрешения будет сохраняться в локальном кэше. Таким образом, все дальнейшие запросы, поступающие от компьютера Windows 2000 Professional, не требуют подключения к серверу DNS, что значительно снижает сетевой трафик.

Разрешение имен NetBIOS

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

• Поиск в кэше имен NetBIOS. Когда имя NetBIOS преобразуется в IP-адрес, информация сохраняется в кэш-памяти в течение двух минут. Если в течение двух минут имя используется хотя бы один раз, оно сохраняется в кэше NetBIOS в течение десяти минут.

• Запрос сервера WINS (Windows Internet Naming Service - Служба имен Интернета для Windows). Сервер WINS функционирует в системе Windows 2000 Server как служба, к которой могут напрямую обращаться клиенты WINS для разрешения IP-адресов. В основном сервер WINS используется для поддержки обратной совместимости с прежними системами Windows.

• Широковещательный запрос сети. Если сервер WINS не может преобразовать имя NetBIOS в IP-адрес, протокол NetBT отсылает компьютеру-получателю широковещательный запрос на отсылку широковещательного сообщения с IP-адресом.

• Поиск в файле LMHOSTS. Этот файл подобен файлу HOSTS и представляет собой текстовый файл, каждая запись которого содержит IР-адрес хоста и сопоставленные ему имена NetBIOS. Если в конце записи поместить суффикс #PRE, имя NetBIOS и IP-адрес будут навсегда помещены в кэш имен NetBIOS. Файл LMHOSTS находится в папке \\корневая_папка_системы\system32\drivers\еtс и имеет расширение .SAM.

• Поиск в файле HOSTS. Средства NetBT для разрешения имен NetBIOS также могут использовать файл HOSTS. Чтобы задействовать файл HOSTS, следует включить в раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControSet\ Services\NetBT\Parameters системного реестра параметр EnableDns.

• Запрос сервера DNS. Если в системный реестр следует включить параметр EnableDns (как в предыдущем методе), средства NetBT будут направлять запрос на разрешение имени NetBIOS серверу DNS.

Информация о разрешенных именах хостов передается средствам нижележащих уровней модели TCP/IP.

Транспортный уровень

Транспортный уровень модели TCP/IP выполняет следующие функции.

• Отвечает за установление связи между компьютерами, а также за прием и отсылку данных.

• Добавляет к передаваемым данным заголовок, идентифицирующий протокол передачи данных (TCP или UDP), а затем отсылает и принимает IP-адрес компьютера.

• Добавляет к заголовкам TCP некоторую дополнительную информацию.

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

Протокол TCP

Протокол TCP (Transmission Control Protocol - Протокол управления передачей) принадлежит семейству протоколов установления логического соединения. Такие протоколы еще до отсылки данных должны установить связь и формализовать процесс обмена информацией. По протоколу TCP данные передаются в виде байтового потока, разбитого на сегменты, причем никакие ограничения на данные не налагаются. Каждый сегмент данных снабжается полями, содержащими порядковый номер сегмента и другие данные, гарантирующие надежную передачу и прием данных, а также указывают методы отправки и приема данных.

Для обеспечения надежной отсылки и приема данных в протоколе TCP используются так называемые подтверждения приема сообщения (квитирование) и контрольные суммы. Ниже перечислены некоторые основные поля заголовков TCP.

• Исходный порт - номер порта передающего компьютера.

• Порт назначения - номер порта компьютера-получателя.

• Порядковый номер - первый байт данных в сегменте TCP. Размер сегмента TCP определяется параметром, называемым размер окна TCP.

• Номер подтверждения - порядковый номер сегмента, который передающий компьютер ожидает принять от принимающего компьютера.

• Управляющие биты. Флаги-указатели, используемые для отсылки особых типов данных. В качестве примера можно назвать флаг FIN, который указывает, что передача закончена и компьютер отключился.

• Окно - число байтов, которое может вместиться в буфер принимающего компьютера. Это поле указывает размер окна TCP для приема данных.

• Контрольная сумма. Число, указывающее контрольную сумму для проверки ошибок. Контрольная сумма позволяет установить целостность отосланных данных.

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

1. Компьютер-отправитель посылает сегмент TCP, который содержит начальный порядковый номер отправляемых сегментов и размер окна TCP для приема данных.

2. Компьютер-получатель возвращает сегмент TCP, в который входят его начальный порядковый номер, размер окна TCP для приема данных и подтверждение на готовность к приему сегмента TCP от компьютера-отправителя.

3. Компьютер-отправитель отсылает сегмент TCP, который подтверждает достоверность порядкового номера компьютера-получателя.

В итоге каждый компьютер знает порядковый номер и размер окна TCP другого компьютера. После того, как компьютер-отправитель узнает размер окна TCP для приема данных компьютера-получателя, он устанавливает точно такой же размер своего окна. В предыдущих версиях операционной системы Windows размер окна TCP ограничивался величиной 64 Кбайт. Система Windows 2000 может поддерживать размер окна TCP для приема данных до 1 Гбайт, используя для этого масштабируемые окна TCP. Во время процесса подтверждения связи протокол TCP может использовать управляющий флаг SYN. Этот флаг указывает, что протокол поддерживает масштабирование окон и задает их предельный размер.

В таблице 1 приведены наиболее часто используемые порты TCP.

Таблица 1. Порты TCP

Номер TCP-порта
Назначение

20

Канал передачи данных по протоколу FTP

21

Управляющий канал FTP

23

Telnet

80

Передача данных с Web-сайтов по протоколу HTTP

139

Служба сеансов NetBIOS

Протокол UDP

Протокол пользовательских дейтаграмм (UDP - User Datagram Protocol) обеспечивает ненадежную доставку данных, передаваемых в виде дейтаграмм (пакета данных с адресной информацией). При отсылке данных по протоколу UDP соединение не устанавливается и размер окна не задается. Поэтому заголовки UDP намного короче заголовков TCP; но данные пересылаются значительно быстрее, поскольку компьютеру не приходится ожидать подтверждения приема.

Протокол UDP используется приложениями, не требующими подтверждения приема данных и передающих данные небольшими порциями. Протокол UDP применяют, например, службы имен NetBIOS и службы дейтаграмм NetBIOS и SNMP.

В таблице 2 приведено назначение основных UDP-портов.

Таблица 2. Порты протокола UDP

Номер UDP-порта
Назначение

53

Запросы имен DNS

137

Служба имен NetBIOS

138

Служба дейтаграмм NetBIOS

161

Протокол SNMP

Межсетевой уровень

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

К межсетевому уровню относятся следующие базовые протоколы.

• Протокол IP (Internet Protocol - Протокол Интернета) - отвечает за IP-адресацию и маршрутизацию пакетов, а также за фрагментацию и восстановление пакетов.

• Протокол ARP (Address Resolution Protocol - Протокол разрешения адресов) - обеспечивает преобразование адресов межсетевого уровня в адреса уровня сетевого интерфейса.

• Протокол ICMP (Internet Control Message Protocol - Протокол контроля сообщений Интернета) - поддерживает выполнение диагностики сети и сообщает об ошибках передачи IP-пакетов. Также протокол ICMP используется утилитами сканирования сети ping и tracert, входящими в пакет W2RK.

• Протокол IGMP (Internet Group Management Protocol - Межсетевой протокол управления группами) - управляет участием хоста в группах хостов. Входящие в группу хосты слушают трафик, направленный на один адрес, и каждый хост регистрируется в группе с помощью IGMP.

Рассмотрим подробнее некоторые протоколы межсетевого уровня.

Протокол IP

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

В заголовок IP-пакета включаются следующие поля.

• IP-адрес отправителя. IP-адрес компьютера-отправителя IP-пакета.

• IP-адрес получателя. IP-адрес компьютера-получателя IP-пакета.

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

• Время жизни (TTL). Максимальное время существования фрагмента в сети. Это число уменьшается на единицу и более после прохождения каждого маршрутизатора, что предотвращает бесконечную циркуляцию IP-пакетов по сети.

• Протокол. Указывает получателю, какому протоколу верхнего уровня следует передать IP-пакет - TCP, UDP, ICMP и др.

• Контрольная сумма. Используется для контроля целостности IР-заголовка.

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

При прохождении IP-пакета через маршрутизатор выполняется просмотр таблицы маршрутизации и выбор направления передачи IP-пакета на другой маршрутизатор или на компьютер-получатель. Если значение TTL равно нулю, IP-пакет отбрасывается. Для создания и обновления таблиц маршрутизации применяется протокол RIP, с помощью которого маршрутизаторы каждые 30 секунд рассылают свои таблицы маршрутизации и получают эти таблицы от других маршрутизаторов. Полученные новые данные пополняют таблицу маршрутизации, а устаревшие данные отбрасываются.

Протокол ICMP

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

Протокол IGMP

Имеются прикладные программы, которым для эффективной работы необходимо одновременно связываться с более чем одним компьютером. Для этого они используют многоадресную передачу данных, поддерживаемую протоколом IGMP. Протокол IGMP позволяет хостам в любой момент подключаться к группе и покидать ее, обеспечивает работу с хостами, расположенными в разных локальных сетях, и поддерживает группы любого размера. Хост может поддерживать групповую рассылку либо на уровне 1 - только передача, либо на уровне 2 - как передача, так и приём. Последний уровень поддерживается в сетях TCP/IP системами Windows 2000 и Windows NT версии не ниже 3.51. В качестве примера программы, использующей IGMP, можно назвать приложение для проведения конференций NetShow.

Протокол ARP

При обращении к любому сетевому компьютеру программа или операционная система должна точно знать адрес машины. В качестве этого адреса используется адрес MAC (Media Access Control - Управление доступом к среде передачи). Адрес MAC (или МАС-адрес) - это уникальное 48-разрядное число, присваиваемое сетевому адаптеру производителем. Именно МАС-адрес используется на подуровне MAC канального уровня, задающего формат кадров, методы доступа и способы адресации в сетях ТСР/IР. Поскольку пользователи никогда не указывают МАС-адрес, должен существовать механизм преобразования имени машины, имени NetBIOS или IP-адреса в МАС-адрес. Этот механизм обеспечивает протокол ARP (Address Resolution Protocol - Протокол определения адресов), описанный в RFC 826.

Протокол ARP входит в состав основного набора протоколов TCP/IP. Он используется только в пределах одной физической сети или подсети. С помощью ARP адрес машины определяется по его IP-адресу следующим образом.

1. Компьютер проверяет свой кэш ARP, в котором находится список известных IР-адресов и соответствующих им МАС-адресов.

2. Если компьютер не обнаружит в кэше ARP необходимого адреса, он отправляет широковещательный запрос ARP. В запросе содержится IP-адрес отправителя, а также IP-адрес той машины, МАС-адрес которой нужно определить. Запрос ARP получают только компьютеры локальной сети, поскольку широковещательные запросы такого типа не маршрутизируются.

3. Каждый компьютер сети получает запрос ARP и сравнивает свой IP-адрес с адресом, указанным в запросе. Если адреса не совпадают, запрос игнорируется. Если адреса совпадают, компьютер посылает ответ ARP, но не широковещательный, а направленный по МАС-адресу, указанному в запросе. Одновременно запрошенный компьютер вносит МАС-адрес инициатора запроса в свой кэш ARP.

4. Инициатор запроса получает ответ и вносит новый МАС-адрес в свой кэш ARP. После этого становится возможным обмен информацией между компьютерами.

Если же два компьютера находятся в разных сетях, определять МАС-адрес получателя нет необходимости. Пакеты будут пересылаться через маршрутизатор, который подставляет свой МАС-адрес в адресное поле отправителя пакетов. Таким образом, на уровне протокола IP указывается конечный адрес получателя, а на физическом уровне - МАС-адрес ближайшего маршрутизатора.

Уровень сетевого интерфейса

Средства уровня сетевого интерфейса (или сетевого доступа) обеспечивают отправку и прием TCP/IP пакетов в/из сетевой среды. Протокол TCP/IP независим от сетевой среды и может быть использован для сетей любых типов - Ethernet, Token Ring, X.25 и Frame Relay. Сердцевиной средств этого уровня являются группы битов в кадрах платы сетевого адаптера, посылаемые через сетевого посредника на принимающий их компьютер или компьютеры. Наиболее существенное продвижение средств этого уровня - использование системой Windows 2000 спецификации NDIS (Network Driver Interface Specification -Спецификация стандартного интерфейса сетевых адаптеров) версии 5 (NDIS\5.0).

Концепция Active Directory

После создания сети TCP/IP компьютеров Windows 2000 сразу возникает задача управления этой сетью, включающая вопросы аутентификации пользователей, распределения общих ресурсов, защиты сети и подключенных к ней хостов и т.д. Для решения этой задачи в системах Windows 2000 используется служба активного каталога AD (Active Directory), являющаяся дальнейшим развитием доменной модели, используемой в системах Windows NT.

Служба AD основана на концепции иерархического построения сети, состоящей из деревьев, лесов, доменов и организационных подразделений OU (Organizational Unit). Основной структурной единицей является домен - совокупность компьютеров с общим именем распределенной иерархической системы имен DNS (согласно спецификации OSI доменом также называют административную единицу, выделенную по функциональным признакам). Домены, разделяющие общее пространство имен DNS, называют деревом. На физическом уровне домен представляет собой единую локальную сеть компьютеров, а лес - совокупность этих сетей. Внутри доменов выделяются группы компьютеров и пользователей, называемых организационным подразделением.

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

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

В сетях Windows NT пользователи могли входить в локальные и глобальные группы. В Windows 2000 группы классифицируются следующим образом: существуют группы безопасности, применяемые для назначения прав и разрешений доступа, и группы дистрибуции, предназначенные для отправки сообщений. Группы безопасности подразделяются на следующие группы: локальные, локальные уровня домена и универсальные или глобальные уровня домена. Глобальные группы применяются для работы домена в смешанном режиме, когда он включает компьютеры Windows NT. Универсальные группы существуют, если домен содержит только компьютеры Windows 2000 и работает в основном режиме.

Областью действия локальных групп по-прежнему являются отдельные компьютеры, локальных групп уровня домена - отдельные домены, глобальных и универсальных - все домены леса. В инфраструктуре AD управление пользователями и группами реализуется с помощью консоли Active Directory Users and Computers (Active Directory - пользователи и компьютеры), оснастки Security Configuration and Analysis (Анализ и настройка безопасности) консоли ММС, и средствами настройки групповой политики систем Windows 2000/XP.

Для поиска и обновления информации об объектах AD в доменах Windows 2000/XP используется протокол LDAP (Lightweight Directory Access Protocol - Упрощенный протокол доступа к каталогам) На протоколе LDAP основана работа инструментов администрирования объектами AD, обеспечивающих модификацию, удаление и добавление объектов. Следует также учесть, что некоторые недостатки протокола LDAP служат основой для некоторых хакерских атак.

Более подробные сведения о средствах AD можно почерпнуть в книге "Система безопасности Windows 2000" Р.Брага вместе с описанием настройки безопасности AD, администрирования групп и объектов AD. Здесь мы остановимся на обсуждении нового средства обеспечения сетевой безопасности, появившегося в системе Windows 2000/XP - IP-безопасности.

IP-безопасность

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

• Подслушивание. Эти атаки используют уязвимость сети к перехвату сетевых пакетов специальными аппаратными и программными средствами. Если передаваемая информация не зашифрована, ее конфиденциальность будет нарушена. На компьютерном сленге прослушивание называют «сниффингом» (от англ, «sniffing» - вынюхивание).

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

• Фальсификация IP-адреса. В сети TCP/IP хост идентифицируется своим IР-адресом, указанным в IP-пакете (см. раздел «Протокол IP» выше), который, в принципе, несложно подделать. Такая подмена IР-адресов может выполняться с различными целями, например, сокрытия источника сообщения, или для некорректной идентификации отправителя, позволяющей получить доступ к сетевым ресурсам.

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

• Атака DoS (Denial of Service - Отказ в обслуживании). Заключается в создании препятствий в работе системы, что приводит к отказу от обслуживания обычных пользователей сети. Примером можно назвать направление на атакуемый сервер большого числа пакетов, перегружающих сетевой трафик. Целью злоумышленника может быть простой вандализм, либо такое вторжение может прикрывать другую атаку, проводимую под прикрытием хаоса, вызванного сбоями в работе сети.

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

• Атака на прикладном уровне. Такие атаки выполняются с целью получения контроля над приложением, запущенным на сетевом компьютере. Например, хакер может попытаться получить доступ к приложению удаленного администрирования компьютера (например, pcAnywhere). Если ему это удастся, хакер может сделать с компьютером что угодно - нарушить целостность хранимых данных или файлов операционной системы, ввести вирус, клавиатурного шпиона, запустить сетевой анализатор для отслеживания трафика и так далее.

Для защиты от всех этих атак были разработаны средства IP-безопасности, обеспечиваемые протоколом IPsec (Internet Protocol Security - Протокол безопасности Интернета), представляющим собой набор открытых стандартов защиты соединений по IP-сетям средствами криптографии. Протокол IPsec нацелен на защиту пакетов, передаваемых по сетям TCP/IP, и защиту сетей TCP/IP от перечисленных выше атак. Обсудим возможности, предоставляемые протоколом IPsec.

Обзор IPsec

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

Протокол IPsec позволяет преодолеть ограниченность обычных средств защиты, полагающихся, как правило, на защиту периметра локальной сети - брандмауэры, защищенные маршрутизаторы, средства аутентификации пользователей удаленного доступа. Защиту от внутренних атак указанные средства не обеспечивают, поскольку основаны на именах и паролях учетных записей пользователей. Ясно, что защита периметра сети никак не воспрепятствует злоумышленнику, имеющему локальный доступ к компьютеру, с помощью различных программ извлечь из него все пароли учетных записей и далее использовать для своих целей.

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

Протокол IPsec защищает не сам канал передачи информации, а передаваемые по нему пакеты. Тем самым IPsec решает следующие задачи.

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

• Аутентификация источника сообщения, обеспечиваемая поддержкой инфраструктуры открытого ключа (PKI), аутентифицирующей компьютер-отправитель на основе сертификата.

• Конфиденциальность передаваемых данных, обеспечиваемая шифрованием информации криптостойкими алгоритмами DES и 3DES.

• Защита целостности данных путем подписания передаваемых пакетов хэш-кодами аутентификации сообщения НМАС (Hash Message Authentication Codes). Коды НМАС вначале подсчитываются компьютером-отправителем сообщения, использующим специальный алгоритм и общий секретный ключ. Затем компьютер получатель повторно подсчитывает код НМАС и сравнивает результат с полученным значением. Для подсчета НМАС используются криптостойкие алгоритмы MD5 и SHA.

• Защита от повторного использования перехваченных пакетов с целью получения доступа к ресурсам.

Для управления средствами защиты IPsec применяются правила политики IР-безопасности, что значительно упрощает развертывание IPsec на защищаемой системе. Политика IPsec применяется к локальным компьютерам, к домену и организационным подразделениям, созданным в активном каталоге. При настройке политики IPsec следует учесть правила безопасной работы, принятые в организации. Для этого в каждой политике IР-безопасности содержится несколько правил, применяемых к группам компьютеров или организационным подразделениям.

Чтобы познакомится с практическими методами настройки политики IP-безопасности, можно обратиться к справочной системе Windows 2000/XP или к одному из многочисленных руководств.

Hosted by uCoz