Построение сетей на базе коммутаторов и маршрутизаторов

Сетевые фильтры

Показывать лекцию целиком

14.1. Функционирование списков доступа

Сетевой администратор должен иметь возможность управления потоком данных, обеспечивая доступ к требуемым ресурсам зарегистрированным пользователям и запрещая нежелательный доступ к сети. Для защиты информации широко используются пароли, криптографирование передаваемой информации, физические устройства безопасности. Наряду с перечисленными устройствами и методами для повышения гибкости фильтрации трафика широко применяются сетевые фильтры или списки доступа (Access ListsACL ), которые способствуют эффективности и оптимизации сети. Списки доступа могут использоваться, чтобы разрешать (permit) или запрещать (deny) продвижение пакетов через маршрутизатор, разрешать или запретить доступ в сеть информации из Интернета, а также по командам Telnet.

Списки доступа ACL могут быть созданы для всех сетевых протоколов, функционирующих на маршрутизаторе, например IP или IPX, и устанавливаются на интерфейсах маршрутизаторов. Запрет или разрешение сетевого трафика через интерфейс маршрутизатора реализуется на основании анализа совпадения определенных условий. Для этого списки доступа представляются в виде последовательных записей, в которых используют адреса и протоколы. Сетевые фильтры (списки доступа) создаются для входящих или исходящих пакетов на основании анализируемых параметров (адреса источника, адреса назначения, протокола и номера порта верхнего уровня), указанных в списке доступа ACL (рис 14.1).

Списки доступа могут быть определены для каждого установленного на интерфейсе протокола и для каждого направления сетевого трафика (исходящего и входящего). Поэтому для входящего и исходящего трафиков через интерфейс создаются отдельные списки. Например, для двух интерфейсов маршрутизатора, сконфигурированных для трех протоколов (IP, AppleTalk и IPX), может быть создано 12 отдельных списков доступа (на каждом интерфейсе по 6 списков – 3 для входящего и 3 для исходящего трафика).

(рис 14.1) Принятие решения при тестировании пакета

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

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

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

Функционирование маршрутизатора по проверке соответствия принятого пакета требованиям списка доступа производится следующим образом. Когда кадр поступает на интерфейс, маршрутизатор проверяет МАС-адрес. Если адрес назначения соответствует адресу интерфейса, то маршрутизатор извлекает (декапсулирует) из кадра пакет и проверяет его на соответствие условиям списка ACL входного интерфейса. При отсутствии запрета или отсутствии списка доступа пакет инкапсулируется в новый кадр второго уровня и отправляется интерфейсу следующего устройства.

Проверка условий (утверждений) списка доступа производится последовательно. Если текущее утверждение верно, пакет обрабатывается в соответствии с командами permit или deny списка доступа, остальная часть условий ACL не проверяется. Если все утверждения ACL неверны, то неявно заданная по умолчанию команда deny any ( запретить все остальное ) в конце списка не позволит передавать дальше по сети несоответствующие пакеты.

Существуют разные типы списков доступа: стандартные (standard ACLs), расширенные (extended ACLs) и именованные (named ACLs). Когда список доступа конфигурируется на маршрутизаторе, каждый список должен иметь уникальный идентификационный номер. Это число идентифицирует тип созданного списка доступа и должно находиться в пределах определенного диапазона, заданного для этого типа списка (таблица 14.1).

Диапазоны идентификационных номеров списков доступа
Диапазон номеров Название списка доступа
1-99 IP standard access-list
100-199 IP extended access-list
1300-1999 IP standard access-list (extended range)
2000-2699 IP extended access-list (extended range)
600-699 Appletalk access-list
800-899 IPX standard access-list
900-999 IPX extended access-list

Стандартные списки доступа (Standard access lists). Для принятия решения в IP-пакете анализируется только адрес источника сообщения, чтобы фильтровать сеть (IPX-стандарт может фильтровать как адрес источника, так и назначения).

Расширенные списки доступа (Extended access lists) проверяют как IP-адрес источника, так и IP-адрес назначения, поле протокола в заголовке пакета Сетевого уровня и номер порта в заголовке Транспортного уровня.

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

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

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

14.2. Функционирование списков доступа

Конфигурирование списков доступа производится в два этапа:

  • Создание списка доступа в режиме глобального конфигурирования.
  • Привязка списка доступа к интерфейсу в режиме детального конфигурирования интерфейса.
  • Формат команды создания стандартного списка доступа следующий:

    Router(config)#access-list {№} {permit или deny} {адрес источника}.

    Списки доступа могут фильтровать как трафик, входящий в маршрутизатор (in), так и трафик, исходящий из маршрутизатора (out). Направление трафика указывается при привязке списка доступа к интерфейсу. Формат команды привязки списка к интерфейсу следующий:

    Router(config-if)#{протокол} access-group {номер} {in или out}

    После привязки списка доступа его содержимое не может быть изменено. Не удовлетворяющий администратора список доступа должен быть удален командой no access-list и затем создан заново.

    Ниже приведены примеры конфигурирования стандартных списков доступа по защите Сети 1 (рис 14.2).

    (рис 14.2) Схема сети

    Пример 1. Необходимо, чтобы серверы Сети 1 были доступны только узлу Host 2-1 Сети 2 с адресом 192.168.20.11, а все остальные узлы Сети 2 и Сети 3 не имели бы доступа в Сеть 1. Список доступа следует установить на интерфейс F0/0 маршрутизатора Router_A. Номер списка доступа (10) выбирается из диапазона таблицы 14.1. Адреса сетей, а также названия и адреса интерфейсов приведены в таблице 14.2.

    Адреса сетей и интерфейсов маршрутизаторов
    IP-адрес сети Интерфейсы IP-адрес интерфейса
    Сеть 1 192.168.10.0/24 F0/0 192.168.10.1
    Сеть 2 192.168.20.0/24 F0/0 192.168.20.1
    Сеть 3 192.168.30.0/24 F0/0 192.168.30.1
    Сеть 4 200.40.40.0/24 S1/1 200.40.40.11
    S1/2 200.40.40.12
    Сеть 5 200.50.50.0/24 S1/1 200.50.50.11
    S1/2 200.50.50.12

    Создание и установка списка доступа производится по командам

    Router_A(config)#access-list 10 permit 192.168.20.11
    Router_A(config)#int f0/0
    Router_A(config-if)#ip access-group 10 out

    Согласно созданной конфигурации ко всем исходящим из маршрутизатора пакетам через интерфейс F0/0 будет применяться список доступа:

  • permit 192.168.20.11 – присутствует в списке в явном виде;
  • deny any – присутствует неявно в конце каждого списка доступа.
  • Некоторые версии операционных систем IOS-маршрутизаторов требуют в обязательном порядке использования масок WildCard при задании адресов узлов и сетей либо расширения host при задании адресов узлов. Подобные дополнения рассмотрены в следующих примерах.

    Пример 2. Серверы Сети 1 должны быть доступны всем узлам Сети 2 и узлу Host 3-1 Сети 3 с адресом 192.168.30.11, остальные узлы Сети 3 не должны иметь доступа. Список доступа нужно установить на интерфейс F0/0 Router_A. В списке доступа имеются адреса сети и отдельного узла, поэтому необходимо использовать маску WildCard. Нулевые значения маски WildCard означают требование обработки соответствующих разрядов адреса, а единичные – игнорирование соответствующих разрядов адреса при функционировании списка доступа. Таким образом, маска 0.0.0.0 предписывает анализ и обработку всех разрядов адреса, т.е. в этом случае будет обрабатываться адрес каждого узла. Маска 0.0.0.255 показывает, что обрабатываться будет только сетевая часть адреса класса С.

    Следовательно, список доступа будет следующим:

    Router_A(config)#access-list 11 permit 192.168.30.11 0.0.0.0
    Router_A(config)#access-list 11 permit 192.168.20.0 0.0.0.255
    Router_A(config)#int f0/0
    Router_A(config-if)#ip access-group 11 out

    Согласно созданной конфигурации ко всем исходящим из маршрутизатора пакетам через интерфейс f0/0 будет применяться список доступа:

  • permit 192.168.30.11 – разрешение узлу с инвертированной маской WildCard 0.0.0.0,
  • permit 192.168.20.0 – разрешение сети с инвертированной маской WildCard 0.0.0.255,
  • deny any – присутствует неявно в конце списка доступа.
  • Записи 192.168.30.11 0.0.0.0 полностью соответствует другой вариант – host 192.168.30.11, который также предписывает обрабатывать адрес только одного узла.

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

  • блокирует рабочей станции 192.168.20.11 Сети 2 доступ в Сеть 1;
  • блокирует рабочей станции 192.168.30.24 Сети 3 доступ в Сеть 1;
  • Для этого создается список доступа:

    Router_А(config)#access-list 12 deny host 192.168.20.11
    Router_А(config)#access-list 12 deny host 192.168.30.24
    Router_А(config)#access-list 12 permit any
    Router_А(config)#int f0/0
    Router_А(config-if)#ip access-group 12 out

    Данный список блокирует доступ в Сеть 1 только двум рабочим станциям – 192.168.20.11 и 192.168.30.24, а всем остальным доступ разрешен. Если бы отсутствовала третья строка списка доступа, то ни одна станция из других сетей не могла бы попасть в Сеть 1.

    14.3. Конфигурирование расширенных списков доступа

    В отличие от стандартных списков доступа, где в качестве критерия фильтрации только один параметр – адрес источника, расширенные списки используют несколько параметров:

  • адрес источника,
  • адрес назначения,
  • протокол,
  • порт.
  • Формат команды создания расширенного списка доступа следующий:

    Router(config)#access-list {номер} {permit или deny} {протокол}
    {адрес источника} {адрес назначения} {порт}

    В поле протокола задается имя или номер (0-255) протокола сети Интернет. Наиболее часто применяются протоколы IP, TCP, UDP, OSPF, RIP и др. Поле порта используется для задания либо номера (0-65535), либо имени портов, например, FTP или Telnet.

    Формат команды привязки списка доступа к интерфейсу аналогичен команде стандартного списка:

    Router(config-if)#{протокол} access-group {номер} {in или out}

    ) необходимо:

  • разрешить одной рабочей станции 192.168.30.11 Сети 3 доступ к серверу с адресом 192.168.10.25 Сети 1 с адресом порта 8080;
  • разрешить всем рабочим станциям Сети 2 с адресом 192.168.20.0 доступ к тому же серверу;
  • разрешить всем рабочим станциям доступ ко всем веб-серверам сети.
  • Для этого создается список доступа:

    Router_А(config)#access-list 110 permit tcp host
    192.168.30.11 host 192.168.10.25 eq 8080
    Router_А(config)#access-list 110 permit tcp
    192.168.20.0 0.0.0.255 host 192.168.10.25 eq 8080
    Router_А(config)#access-list 110 permit tcp any any eq WWW
    Router_А(config)#int f0/0
    Router_А(config-if)#ip access-group 110 out

    Запись any (все) эквивалентна записи 0.0.0.0 255.255.255.255, т. е. ни один бит адреса не должен анализироваться. Следовательно, в третьем условии Примера 4 записано требование исключить фильтрацию по адресу источника и адресу назначения, т. е. запись permit tcp any any означает "разрешить доступ всем сегментам tcp ко всем узлам сети". Единственный критерий фильтрации – это порт eq WWW.

    Запись eq означает требование анализа пакетов только с данным номером порта назначения. Вместо нее могла быть другая запись, например neq, означающая требование анализа пакетов с другими номерами, за исключением данного. Запись range означает требование анализа пакетов с номерами портов в указанном диапазоне.

    ) создать список доступа, чтобы:

  • блокировать рабочей станции 192.168.20.11 Сети 2 доступ по Telnet в Сеть 1, но оставить доступ для другого сервиса;
  • блокировать рабочей станции 192.168.30.24 Сети 3 доступ по Telnet в Сеть 1, но оставить доступ для другого сервиса/
  • Для этого создается список доступа:

    Router_А(config)#access-list 115 deny tcp host
    192.168.20.11 192.168.10.0 0.0.0.255 eq telnet
    Router_А(config)#access-list 115 deny tcp host
    192.168.30.24 192.168.10.0 0.0.0.255 eq telnet
    Router_А(config)#access-list 115 permit ip any any
    Router_А(config)#int f0/0
    Router_А(config-if)#ip access-group 115 out

    Удаление списков доступа производится с использованием отрицания no. Например, удаление списка доступа из предыдущего примера производится по команде

    RouterА(config)#no access-list 115

    Именованные списки доступа

    Именованные списки доступа позволяют за счет введения имени списка сократить затем объем записи при конфигурировании. Кроме того, снимаются ограничения в 99 стандартных и 100 номерах расширенных списков, поскольку имен можно придумать много. Именованный список доступа с именем spisok для вышеприведенного примера 4 будет выглядеть следующим образом:

    Router_А(config)#access-list extended spisok
    Router_А(config-ext-nac1)#permit tcp host 192.168.30.11
    host 192.168.10.25 eq 8080
    Router_А(config-ext-nac1)#permit tcp 192.168.20.11 0.0.0.255
    host 192.168.10.25 eq 8080
    Router_А(config-ext-nac1)#permit tcp any any eq WWW
    Router_А(config-ext-nac1)#exit
    Router_А(config)#int f0/0
    Router_А(config-if)#ip access-group spisok out

    Контроль списков доступа

    Контроль списков доступа производится по командам show. Например, контроль любых списков доступа производится по команде

    RouterА#show access-list
    Extended IP access list 110
    permit tcp host 192.168.30.11 host 192.168.10.25 eq 8080 (34 matches)
    permit tcp 192.168.20.11 0.0.0.255 host 192.168.10.25 eq 8080 (11 matches)
    permit tcp any any eq WWW (29 matches)

    Контроль IP-списков доступа производится по команде

    RouterА#show ip access-list

    Списки доступа, установленные на интерфейсы, можно посмотреть по команде show ip interface, а также show running-config.

    Краткие итоги

  • Для защиты информации широко используются сетевые фильтры или списки доступа (Access ListsACL).
  • Списки доступа могут использоваться, чтобы разрешать (permit) или запрещать (deny) продвижение пакетов через маршрутизатор.
  • Запрет или разрешение сетевого трафика через интерфейс маршрутизатора реализуется на основании анализа совпадения определенных условий.
  • В списке доступа ACL могут анализироваться адреса источника, адреса назначения, протокол и номера порта верхнего уровня.
  • Списки доступа могут быть определены для каждого установленного на интерфейсе протокола и для каждого направления сетевого трафика (исходящего и входящего).
  • Каждый список должен иметь уникальный идентификационный номер.
  • Стандартные списки доступа (Standard access lists) для принятия решения анализируют в IP-пакете только адрес источника сообщения.
  • Расширенные списки доступа (Extended access lists) проверяют IP-адрес источника, IP-адрес назначения, поле протокола в заголовке пакета Сетевого уровня и номер порта в заголовке Транспортного уровня.
  • Стандартные списки доступа должны располагаться поближе к защищаемой сети.
  • Расширенные списки доступа должны быть установлены близко к источнику сообщений.
  • Условие deny any ( запретить все остальное ) неявно присутствует в конце любого списка доступа.
  • Создание списка доступа производится в режиме глобального конфигурирования. Формат команды создания стандартного списка доступа следующий:
    Router(config)#access-list {№} {permit или deny} {адрес источника}.
  • Привязка списка доступа к интерфейсу производится в режиме детального конфигурирования интерфейса. Формат команды привязки списка к интерфейсу следующий:
    Router(config-if)#{протокол} access-group {номер} {in или out}
  • Формат команды создания расширенного списка доступа следующий:
    Router(config)#access-list {номер} {permit или deny} {протокол}
    {адрес источника} {адрес назначения} {порт}
  • Именованные списки доступа позволяют за счет введения имени списка сократить затем объем записи при конфигурировании.
  • Вопросы

  • Для чего используются сетевые фильтры или списки доступа?
  • На основании чего формируется запрет или разрешение сетевого трафика через интерфейс маршрутизатора?
  • Какие параметры пакета могут анализироваться в списке доступа?
  • Где устанавливаются списки доступа?
  • Что анализируют стандартные списки доступа?
  • Что анализируют расширенные списки доступа?
  • Какое условие имеется неявно в конце любого списка доступа?
  • Для чего нужны идентификационные номера списков доступа?
  • Каков формат команды создания стандартного списка доступа?
  • Каков формат команды создания расширенного списка доступа?
  • Каков формат команды привязки списка к интерфейсу?
  • Какие достоинства имеют именованные списки доступа?
  • Упражнения

  • Сконфигурируйте список доступа для защиты Сети 1 нижеприведенной схемы от несанкционированного доступа всех узлов Сети 2 и одного узла Host 3-1 Сети 3. Адреса интерфейсов и узлов приведены в таблице.
    Наименование Адрес Наименование Адрес

    Сеть 1

    f0/0

    Host 1-1

    Host 1-n

    10.1.10.0/24

    10.1.10.1

    10.1.10.11

    10.1.10.1n

    Сеть 2

    f0/0

    Host 2-1

    Host 2-n

    172.16.20.0/24

    172.16.20.1

    172.16.20.11

    172.16.20.1n

    Сеть 3

    f0/0

    Host 3-1

    Host 3-n

    192.168.30.0/24

    192.168.30.1

    192.168.30.31

    192.168.30.3n

    Сеть 4

    s1/1

    s1/2

    204.4.4.0/24

    204.4.4.1

    204.4.4.2

    Сеть 5

    s1/1

    s1/2

    205.5.5.0/24

    205.5.5.1

    205.5.5.2

  • Проведите проверку и отладку сети с использованием команд show running-config, show access-list, show ip access-list, show ip interface, ping, traceroute и tracert.
  • Вернуться к учебному плану