Обзор
WinRoute предоставляет следующие способы манипуляции пакетами
(в модели OSI сетевых протоколов):
Трансляция сетевых пакетов (NAT) - это технология, которая преобразует пакеты, посланные из ЛВС (одного из компьютеров в ЛВС) таким образом, что они выглядят так, будто их отсылает WinRoute-сервер (это присходит путем замены адресов инициаторв пересылки в пакетах на адрес WinRoute-сервера). Приходящие в ответ пакеты рассылаются инициаторам обмена в ЛВС.
Назначение портов обеспечивает доступ к избранным службам, защищенным посредством NAT.
Фильтр пакетов является базовым модулем безопасности любого брандмауэра. Используя данные из пакета (такие как IP-адреса источника и приемника, тип сетевого протокола, порты источника и приемника, и т.д.), он либо позволяет прохождение пакетов, либо блокирует их. Если применяются правила фильтрации (зависит от толкования правила), производится запись информации о пакете.
Верификация пакетов - это надстройка к фильтру пакетов, призванная защищать ЛВС от атак, в продолжении которых атакующий фальсифицирует IP-адрес источника пакета.
Для достижения высокого уровня безопасности, WinRoute содержит т.н. модуль инспектирования. Это специальный драйвер, осуществляющий связь между линией и сетевым протоколом модели OSI, и использующий специальную технологию, обеспечивающую получение WinRout'ом пакетов непосредственно от драйвера сетевой карты, до того как пакет будет доступен для любого компонента операционной системы.
Положение модуля инспекции WinRoute (проверяющего содержимое пакетов) в сетевой архитектуре Windows показано на рисунке ниже: The location of the WinRoute's inspection module (which checks the contents of packets) in the network architecture of Windows operating systems is shown in the figure bellow.
Терминология
В конце нижележащего текста используются некоторые термины, относящиеся к сетевым технологиям.
Мы предлагаем вам ознакомиться с этими терминами, в особенности это будет полезно, если вы
намереваетесь настраивать фильтрацию пакетов, т.к. это позволит вам знать значение информации,
содержащейся в заголовках пакетов.
Протоколы TCP/IP
WinRoute работает с сетями TCP/IP.
Протоколы TCP/IP разработаны для работы в уровнях.
При упоминании протокола TCP/IP имеются в виду: IP, TCP, UDP, ICMP и др.
Сетевой интерфейс
Сетевым интерфейсом называется устройство, служащее для установки соединения между компьютерами и передачи данных между ними.
Сетевыми интерфейсами могут быть сетевая карта, модем, ISDN и т.п.
Компьютер отсылает и принимает информационные пакеты посредством сетевого интерфейса.
IP-адрес
IP-адрес - это уникальный 32-разрядный номер, служащее для идентификации сомпьютера в IP-сети.
Уникальный IP-адрес назначается каждому компьютеру в Интернете. Каждый пакет, проходящий через Интернет,
содержит информацию о том, с какого адреса он был отослан (IP-адрес источника) и на какой адрес он
будет доставлен (IP-адрес приемника).
Маска подсети
Маска подсети используется для группирования IP-адресов. Существуют группы адресов, назначаемые каждому сегменту сети.
Например, маска 255.255.255.0 группирует вместе 254 IP-адреса. Если у нас, предположим, подсеть 194.196.16.0 с маской
255.255.255.0, мы можем назначить компьютерам в этой подсети адреса от 194.196.16.1 до 194.196.16.254.
Порты
Портом называется 16-разрядное число (от 1 до 65535), используемое протоколами транспортного уровня - TCP и UDP.
Порты используются для адресации приложений (служб), работающих в системе. Если бы на компьютере запускалось только одно
сетевое приложение, не было бы нужды в портах - IP-адреса было бы достаточно для нужд адресации. Однако это не так,
на компьютере может быть запущено несколько сетевых приложений, нужды которых необходимо как-то разделить. Для этих целей служат порты.
Таким образом, номер порта может рассматриваться как адрес приложения, запущенного на комьютере.
Пакеты
Пакет - это основная информационная единица, используемая для передачи данных между компьютерами.
Каждый пакет содержит некоторое количество данных. Максимальная длина пакета зависит от сетевой среды.
Например, в сети Ethernet максимальная длина пакета 1500 байт. В каждом сетевом уровне, мы можем разделить содержимое
пакета на две части - заголовок и данные. Заголовок содержит контрольную информацию соответствующего сетевого уровня,
данные соответствуют более высокому сетевому уровню. Более подробную информацию о структуре пакетов вы найдете
ниже в разделе, посвященном фильтрации пакетов.
Трансляция сетевых адресов (Network Address Translation (NAT)))
NAT может быть использована для следующих целей:
Работа целой ЛВС, с использованием единственного IP-адреса возможно потому, что NAT заменяет в пакетах адрес источника (компьютера в ЛВС) на IP-адрес компьютера, на котором запущен WinRoute.
Соединение с Интернет прозрачно, т.е. компьютеры в ЛВС используют WinRoute как шлюз (роутер). С точки зрения локального компьютера все выглядит так, как будто он соединен с Интернет, используя зарегистрированный IP-адрес. Таким образом, практически все приложения работают с NAT без дополнительной настройки. Это главная особенность, отличающая NAT от других разнообразных прокси-серверов и шлюзов уровня приложений, которые в принципе не могут поддерживать некоторые протоколы.
Модуль NAT содержит таблицу, в которую записывается информация о каждом соединении. Это информация об: IP-адресе и номере порта источника, IP-адресе и номере порта применика, IP-адрес и номере порта, используемых для модификации пакетов.
Мы можем продемонстрировать работу NAT следующим примером:
Компьютер в ЛВС с адресом 192.168.1.22 устанавливает соединение через порт 7658 с WWW-сервером по адресу 194.196.16.43 порт 80. Связь проходит через WinRoute, который использует для внешнего интерфейса адрес 195.75.16.75.
Итак, компьютер 192.168.1.22 отсылает пакет с порта 7358 на компьютер 194.196.16.43, порт 80. Пакет проходит через WinRoute, который сравнивает данные пакета со своей таблицей. Если в таблице есть запись для пакетов с этой машины и порта, следуем дальше, если нет, - такая запись создается. Затем, WinRoute модифицирует пакет, заменяя адрес источника на свой собственный, а также изменяя номер порта. Теперь адрес источника стал 195.75.16.75, и порт, скажем, 61001. После внесения изменений пакет отсылается. Когда приходит ответный пакет, он содержит 195.75.16.75 как адрес приемника, и 61001 как порт приемника. WinRoute просматривает свою таблицу для порта 61001 и находит запись для этого соединения. В соответствии с записью, он изменяет адрес и порт цели назад на 192.168.1.22 и 7658.
Примечание:
Номера портов в пакетах, пересылаемых через WinRoute должны изменяться, поскольку если две или более станций в защищенной ЛВС
начинают передавать данные, используя одинаковые номера портов, появляется необходимость идентифицировать, с какой именно
станции пришел данный пакет. Модуль NAT назначает номера портов в диапазоне от 61000 до 61600.
Для каждой транзакции назначается уникальный порт.
Критические моменты работы NAT
Приложения работают с NAT без каких-либо проблем, если транзакция инициирована из защищенной ЛВС (в большинстве случаев так оно и есть).
Однако, существуют приложения, при разработке которых допущены ошибки, и которые не соответствуют полностью модели "клиент-сервер".
Такие приложения могут не работать с NAT или некоторые их функции могут быть недоступны. Причиной может быть использование такими
приложениями более одного соединения и дополнительными соединениями, инициированными сервером (расположенным где-то в Интернете).
NAT, совершенно естественно, блокирует такие транзакции.
Настройка NAT
NAT конфигурируется следующим меню:
|
Settings => Interface Table => NAT
|
Расширенные настройки NAT могут применяться если вы хотите, чтобы NAT работал не со всей ЛВС, а с определенными ее частями (сегментами). Нужда в этом может появиться если часть машин в вашей ЛВС имеют IP-адреса и доступны из интернет, в то время как остальные машины используют незарегистрированные IP-адреса (192.168.*.*). Также эти настройки пригодятсе для создания демилитаризованных зон (DMZ), в которых работают серверы, доступные из интернет. Еще одной возможностью является выбор IP-адреса, который будет использоваться для модификации проходящих пакетов (IP-адрес сетевого интерфейса вашего компьютера используется лишь по умолчанию :)
Чтобы применять расширенные настройки NAT, необходимо, чтобы он был включен для интерфейса. То есть мы сначала устанавливаем NAT для интерфейса, а затем, в расширенных настройках, определяем, где NAT не будет применяться.
Расширенные настройки NAT определены в таблице правил. Таблица просамтривается всегда с начала до конца. Поиск заканчивается после того, как найдено первое подходящее правило. Правило исполняется, если адреса источника и приемника соответствуют набору данных в правиле.
Расширенные настройки NAT производятся в меню:
Settings => Advanced => NAT pad => Add/Edit button
|
Пример расширенных настроек NAT
Рисунок ниже показывает три ЛВС:
Назначение портов
WinRoute использует NAT, который делает защищенную ЛВС закрытой для доступа снаружи.
Используя назначение портов, возможно создавать коммуникационные каналы, через которые может быть организован доступ
к службам внутри ЛВС. Таким образом возможно создавать публичные службы, такие как WWW-сервер или FTP-сервер и т.п.
Как работает назначение портов
Для каждого пакета, полученного из внешней сети (Интернет), проверяются его атрибуты
(протокол, порт службы назначения, IP-адрес назначения) соответствие записи в таблице назначения портов, (Protocol, Listen Port, Listen IP).
Если найдена запись, для которой все три атрибута совпадают с атрибутами пакета, производится модификация и отсылка пакета в защищенную
ЛВС по адресу, определенному в "Destination IP" ("IP назначения") в табличной записи и на порт, определенный как порт назначения
("Destination port".)
Настройка назначения порта
Назначение портов производится в меню:
Settings => Advanced => Port Mapping => Add/Edit button
|
Некоторые полезные конфигурации порт-маппинга показаны в Приложении.
Фильтрация пакетов
Установка правил вильтрации пакетов для защиты ЛВС в особенности важна, если ЛВС имеет зарегистрированные IP-адреса
напрямую доступные из Интернет. Если выиспользуете NAT для всей сети, нет нужды в фильтрации пакетов.
Как выглядит пакет
Чтобы настраивать фильтрацию пакетов, важно понимать, как происходит манипуляция пакетами в сетевых уровнях TCP/IP.
В каждома уровне содержимое пакета разделено на две части: заголовок и данные.
Заголовок содержит контрольные данные данного сетевого уровня. Данные относятся к высшим сетевым уровням.
Каждый сетевой уровень добавляет свой собственный заголовок, так что в результате пакет выглядит следующим образом:
Следующая информация используется при настройке правил фильтрации для заголовков соответствующих протоколов (сетевых уровней):
IP (Интернет-протокол) (Уровень Internet)
IP - базовый протокол передачи данных высшего уровня.
Для фильтрации может использоваться следующая информация:
Протокол ICMP (Уровень Internet)
Протокол контрольных сообщений Интернет (Internet Control Message Protocol) используется для пересылки между компьютерами сообщений об ошибках и контрольных сообщений.
Для фильтрации может использоваться следующая информация:
Протокол TCP (транспортный уровень)
Протокол управления передачей (Transmission Control Protocol)используется для надежной передачи данных между двумя компьютерами. Компьютеры обмениваются данными, используя "соединение". Установка соединения, передача данных и закрытие соединения управляется специальными влагами в TCP-заголовке пакета. Флаг, управляющий открытием соединения очень важен для фильтрации пакетов, так как данные могут быть переданы только после установки соединения (да что вы говорите! ;).
Для фильтрации используется следующая информация:
Протокол UDP (транспортный уровень)
Протокол датаграммы пользователя (User Datagram Protocol) работает на уровне приложения и предлагает ненадежную передачу данных на основе датаграмм. В отличие от TCP, UDP не устанавливает соединения между двумя компьютерами и пакеты могут быть посланы на любой IP-адрес и любой порт.
Для фильтрации может использоваться следующая информация:
Пример сообщения между браузером и WWW-сервером показан на рисунке:
Применение более строгих правил могут сделать недоступными для пользователей ваших ЛВС некоторых сервисов Интернет. Например, это тот случай, когда запущено приложение, которому необходимо установить дополнительное соединение с Интернет, или приложение, основанное на UDP. С другой стороны, применение более свободных правил увеличивает число приложений и уменьшает защищенность ЛВС.
Основной принцип настройки фильтрации - блокирование доступа из Интернет в ЛВС и полный доступ в обратном направлении (из ЛВС в Интернет). Затем, в зависимости от того, какие службы вы хотите предоставить для доступа снаружи, вы производите настройку правил.
Наиболее важным вопросом является защита жизненно важных служб вашей ЛВС Эти службы (файловые серверы, Интранет-серверы, SQL-серверы) обычно отслеживают соединения по портам с номерами меньшими 1024. Службы, использующие номера портов, меньшие 1024, могут выполняться не только на серверах, даже пользовательские машины могут их выполнять, например в случае разделения доступа к файлам (sharing). С другой стороны, клиентские приложения используют номера портов, превышающие 1024, так что это число является очень значимым для настройки политик безопасности.
Осмысленной политикой является блокирование доступа из Интернет к портам, чей номер менее 1024, для протоколов TCP и UDP. После чего, вы можете настраивать службы, которые будут доступны мз Интернет. Например, для WWW вы разрешаете доступ на порт 80 (в общем случае).
Более строгая политика также запрещает все входящие UDP-пакеты, а также TCP-пакеты, пытающиеся установить соединение из Интернет с портами, чей номер превосходит 1024. Так, подобная политика полностью запрещает установку соединения из Интернет с защищенной ЛВС, но разрешает все соединениния, инициируемые из ЛВС. При применении такой политики, некоторые приложения могут прекратить функционировать (частично или полностью - зависит от приложения). Проблемы могут возникнуть с приложениями, которые ожидают ответа от другой стороны на порт, чей номер превышает 1024. Также не будут работать приложения, использующие UDP.
Приер политик:
При настройке правил фильтрации важно помнить, что правила будут искаться в таблице в том порядке, в котором они были туда занесены, и поиск подходящего правила прекращается после его нахождения (поразительно! :).
Следующие примеры показывают более и менее строгую политики, которые вы можете использовать при настройке правил:
Рисунок ниже показывает конфигурацию политики в фильтре пакетов:
Запрет доступа пользователя к некоторым службам в Интернете
Фильтрация пакетов может использоваться также для запрета доступа к некоторым службам Интернета из вашей ЛВС.
Возможно настроить запрет доступа для некоторых компьютеров, основанный на IP-адресе инициатора. Тип службы,
доступ к которой вы хотите закрыть, оопределяется номером порта этой службы.
Например, чтобы запретить доступ к FTP (File Transfer Protocol), надо сделать следующее:
Для исходящих пакетов:
Если у вас работает прокси-сервер, осуществляющий фильтрацию по URL и вы хотите, чтобы пользователи вашей ЛВС использовали прокси вместо прямого доступа в Интернет, используйте следующее:
Для исходящих пакетов:
Правила безопасности исполняются с использованием следующих методов:
Поиск правил производится в том порядке, в котором они показываются в диалоговом окне настройки.
При приеме или отправке пакета, в первую очередь производится поиск правил для интерфейса, с которого получен пакет.
Затем ищутся правила, общие для всех интерфейсов. После обнаружения подходящего правила, поиск прекращается и предпринимается
соответствующее действие: либо пакет пропускается, либо блокируется. Опционально, информация о пакете пишется в файл или окно WinRoute.
|
Фильтрация пакетов может быть настроена в следующем меню:
Settings => Advanced => Packet Filter => Add/Edit
|
Верификация
Некоторые сетевые службы используют механизм безопасности, основанный на IP-адресе клиента,
например в случае rlogin и NFS (Network File System). Взломщик может обойти этот механизм, используя подделку IP, технику,
основанную на фальсификации IP-адреса источника (а вы говорите: "Фальсифицированная водка" :)
Такая атака обычно комбинируется с TCP SYN флудингом или с рутингом источника.
Взломщик может подвергнуть опасности правильное выполнение служб или даже получить несанкционированный доступ к ним.
Верификация производится по прибытии пакета. Существует возможность определить, какие IP-адреса могут возникать в пакетах, полученных по каждому интерфейсу. Пакеты с адресом источника, отличающимся от разрешенных, игнорируются, и (опционально), записывается лог этих пакетов.
Метод настройки верификации в WinRoute показан ниже:
Очевидно, что невозможно поименовать адреса всех пакетов, приходящих на интерфейс, подключенный к Интернет. Пакету разрешено прохождение, если адрес его источника входит в число таковых, разрешенных для интерфейса, ведущего в защищенную ЛВС. Так что разрешается любой адрес, отличный от адресов, разрешенных для интерфейсов ЛВС. Это гарантирует блокирование пакетов с подделанным адресом источника (пакеты, выглядящие как посланные компьютером, входящим в ЛВС).
|
Верификация может быть настроена в следующем меню: Settings => Advanced => Anti-Spoofing => Edit button
|
Пример конфигурации верификации
В примере ниже показаны три сети:
Верификация настроена, как показано на рисунке:
Правила настройки таковы:
Диалоговые окна настройки:
Поименованные группы адресов и временные интервалы
Поименованные группы адресов и временные интервалы могут использоваться в различных местах конфигурации.
Поименованные группы адресов
Поименованные группы адресов могут использоваться везде где необходимо указывать адреса источника и приемника, например
в фильтрации пакетов, расширенной настройке NAT, и т.п.
Использование поименованных групп адресов дает следующие преимущества:
|
Поименованные группы адресов настраиваются в следующем меню:
Settings => Advanced => Address Groups
|
|
Временные интервалы настраиваются в следующем меню:
Settings => Advanced => Time Intervals
|