Фильтрация пользовательского трафика 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Фильтрация пользовательского трафика



Под фильтрацией понимается нестандартная обработка IP-пакетов маршрутизаторами, приво­дящая к отбрасыванию некоторых пакетов или изменению их маршрута.

Фильтрация пользовательского трафика маршрутизаторами аналогична по принципу действия фильтрации, выполняемой коммутаторами локальных сетей (см. главу 14).

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

§ IP-адреса источника и приемника;

§ МАС-адреса источника и приемника;

§ идентификатор интерфейса, с которого поступил пакет;

§ тип протокола, сообщение которого несет IP-пакет (то есть TCP, UDP, ICMP или OSPF);

§ номер порта TCP/UDP (то есть тип протокола прикладного уровня).

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

Рассмотрим примерь фильтров, написанных на командном языке маршрутизаторов Cisco. Эти фильтры, называемые списками доступа, сегодня в IP-маршрутизаторах являются очень распространенным средством ограничения пользовательского трафика.

Наиболее простым является стандартный список доступа; в нем в качестве условия филь­трации учитывается только IP-адрес источника.

Общая форма такого условия выглядит следующим образом:

access-list номер_списка_доступа { deny | permit)

(адрес_источника [ метасимволы_источника ] | any)

Стандартный список доступа определяет два действия с пакетом, который удовлетворяет описанному в фильтре условию: отбросить (deny) или передать для стандартной обра­ботки в соответствии с таблицей маршрутизации (реrmit). Условием выбора того или иного действия в стандартном списке доступа является совпадение IP-адреса источника пакета с адресом источника, заданным в списке. Совпадение проверяется в том же стиле, что и при проверке таблицы маршрутизации, при этом метасимволы являются аналогом маски, но в несколько модифицированном виде. Двоичный нуль в поле метасимволов ис­точника означает, что требуется совпадение значения этого разряда в адресе пришедшего пакета и в адресе, заданном в списке доступа. Двоичная единица означает, что совпадения в этом разряде не требуется. Практически, если вы хотите задать условие для всех адресов некоторой подсети, то должны использовать инвертированное значение маски этой под­сети. Параметр any означает любое значение адреса — это просто более понятная и краткая форма записи значения 255.255.255.255 в поле метасимволов источника.

Пример стандартного списка доступа:

access-list 1 deny 192.78.46.0 0.0.0.255

Здесь:

§ 1 — номер списка доступа;

§ deny — действие с пакетом, который удовлетворяет условию данного списка доступа;

§ 192.78.46.0 — адрес источника;

§ 0.0.0.255 — метасимволы источника.

Этот фильтр запрещает передачу пакетов, у которых в старших трех байтах адреса источ­ника имеется значение 192.78.46.0.

Список доступа может включать более одного условия. В этом случае он состоит из не­скольких строк с ключевым словом access-list и одним и тем же номером списка до­ступа. Так, если мы хотим разрешить прохождение через маршрутизатор пакетов хоста 192.78.46.12, запрещая передачу пакетов одному из хостов сети 192.78.46.0/24, то список доступа будет выглядеть следующим образом:

access-list 1 permit 192.78.46.12 0.0.0.0

access-list 1 deny 192.78.46.0 0.0.0.255

access-list 1 permit any

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

[access-list 1 deny any]

Однако, если вам все же требуется пропускать все пакеты, не определенные явно в усло­виях, необходимо добавить в последней строке условие:

access-list 1 permit any

Список доступа можно применять к любому интерфейсу маршрутизатора и в любом на­правлении: если список применяется с ключевым словом in, то он действует на входящие в интерфейс пакеты, а если с ключевым словом out — на выходящие. Например, написанный нами список доступа 1 можно применить к некоторому интерфейсу для обработки входящего трафика, используя следующую команду:

access-group 1 in

Существуют также и более мощные типы списков доступа для маршрутизаторов Cisco, например, расширенные списки доступа. Общий формат этих списков следующий:

access-list номер_списка_доступа (deny | permit 1 I protocol | ключевое_слово_протокола I

(адрес_источника [ метасимволы_источника ]] [ порт_источника ] | any }

[ адрес_приемника [ метасимволы_приемника ]] [ порт_приемника ]

Пользуясь расширенными списками доступа, можно запретить прохождение во внутрен­нюю сеть предприятия FTP-пакетов. Как известно, служба FTP использует для приема запросов от клиентов протокол TCP с хорошо известным портом 21. Для этого в список доступа нужно включить условие: access-1ist 102 deny TCP any 21 any Затем можно применить его к интерфейсу маршрутизатора, к которому подключена вну­тренняя сеть, с ключевым словом out.

Администраторы корпоративных сетей из соображений безопасности[56] часто запрещают возможность трассировки извне внутренних хостов утилитой ping. Это делается с помо­щью условия:

access-1ist 101 deny ICMP any 192.78.46.8 0.0.0.0 eq 8

Как видно из условия, его синтаксис для протокола ICMP несколько отличается от обще­го синтаксиса расширенных списков доступа. Параметр eq 8 означает, что запрещается передача ICMP-сообщений типа 8, соответствующего эхо-запросам, с помощью которых функционирует утилита ping.

Еще более гибким является язык фильтров программного маршрутизатора, работающего во многих версиях Unix. Синтаксис этого языка близок к синтаксису языка С, что позво­ляет строить весьма сложные логические конструкции с помощью условных инструкций if, then, else.

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

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



Поделиться:


Последнее изменение этой страницы: 2017-02-05; просмотров: 266; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.149.233.72 (0.006 с.)