ѕодпишитесь на наш Telegram-канал Ѕудьте в курсе последних новостей 👇 😉 ѕодписатьс€
ѕоддержим в трудное врем€ —пециальное предложение на техническую поддержку вашей »“ - инфраструктуры силами наших экспертов ѕодобрать тариф
ѕоставка оборудовани€ √аранти€ и помощь с настройкой. —кидка дл€ наших читателей по промокоду WIKIMERIONET  упить
»нтерфейс статистики Merion Mertics показывает ключевые диаграммы и графики по звонкам, а также историю звонков в формате, который легко поймет менеджер ѕопробовать бесплатно
¬недрение
офисной телефонии
Ўаг на пути к созданию доступных унифицированных коммуникаций в вашей компании ¬недрить
»нтеграци€ с CRM ѕомогаем навести пор€док с данными
и хранить их в единой экосистеме
ѕодключить
»“ Ѕезопасность ”мна€ информационна€ безопасность дл€ вашего бизнеса «аказать
ћерион Ќетворкс

11 минут чтени€

ѕочитайте предыдущую статью из цикла про ќсновы IPv4 Access Control Lists.

 огда вы думаете о месте и направлении ACL, вы, должно быть, уже думаете о том, какие пакеты вы планируете фильтровать (отбрасывать), а какие хотите пропустить. „тобы сообщить маршрутизатору те же идеи, вы должны настроить маршрутизатор с IP ACL, который соответствует пакетам. —оответствующие пакеты относ€тс€ к тому, как настроить команды ACL дл€ просмотра каждого пакета, перечисл€€, как определить, какие пакеты следует отбросить, а какие разрешить.

 аждый IP ACL состоит из одной или нескольких команд конфигурации, кажда€ из которых содержит подробную информацию о значени€х, которые нужно искать в заголовках пакетов.  ак правило, команда ACL использует такую логику, как "найдите эти значени€ в заголовке пакета и, если они найдены, отвергните пакет" (вместо этого может быть разрешение пакета, а не его отбрасывание.) ¬ частности, ACL ищет пол€ заголовка, которые вы уже должны хорошо знать, включа€ IP-адреса источника и назначени€, а также номера портов TCP и UDP.

ƒавайте сначала рассмотрим пример с рисунка 2, в котором нам необходимо разрешить прохождение пакетов с хоста A на сервер S1, но отбросить пакеты от хоста B, идущие на тот же сервер. ¬се хосты теперь имеют IP-адреса, а на рисунке показан псевдокод ACL на R2. Ќа рисунке 2 также показано расположение, выбранное дл€ включени€ ACL: вход€щий на интерфейсе S0/0/1 R2.

Ќа рисунке 2 показан ACL, состо€щий из двух строк в пр€моугольнике внизу с простой логикой сопоставлени€: оба оператора просто ищут совпадение с исходным IP-адресом в пакете.  огда этот параметр включен, R2 просматривает каждый вход€щий IP-пакет на этом интерфейсе и сравнивает каждый пакет с этими двум€ командами ACL. ѕакеты, отправленные хостом A (исходный IP-адрес 10.1.1.1), разрешены, а пакеты, отправленные хостом B (исходный IP-адрес 10.1.1.2), отбрасываютс€.

ѕсевдокод дл€ демонстрации логики соответстви€ команд ACL

ѕрин€тие мер при возникновении совпадени€. ѕри использовании ACL IP дл€ фильтрации пакетов можно выбрать только одно из двух действий.  оманды настроек используют ключевые слова deny и allow, и они означают (соответственно) отбросить пакет или разрешить ему продолжать работу, как если бы ACL не существовал.

«десь основное внимание удел€етс€ использованию ACL дл€ фильтрации пакетов, но IOS использует ACL дл€ многих других функций. Ёти функции обычно используют одну и ту же логику сопоставлени€. ќднако в других случа€х ключевые слова deny или allow подразумевают другое действие.


“ипы ACL IP

Cisco IOS поддерживает ACL IP с первых дней существовани€ маршрутизаторов Cisco. Ќачина€ с исходных стандартных пронумерованных списков контрол€ доступа IP на заре IOS, которые могли задействовать логику, показанную ранее на рисунке 2, Cisco добавила множество функций ACL, включа€ следующие:

  • —тандартные нумерованные списки ACL (1Ц99)
  • –асширенные нумерованные ACL (100Ц199)
  • ƒополнительные номера ACL (1300Ц1999 стандартные, 2000Ц2699 расширенные)
  • »менованные ACL
  • ”лучшенное редактирование с пор€дковыми номерами

«десь мы рассматриваем исключительно стандартные пронумерованные списки контрол€ доступа IP, а в следующей лекции рассмотрим другие три основные категории списков контрол€ доступа IP. ¬кратце, списки управлени€ доступом IP будут либо пронумерованы, либо именованы, так как конфигураци€ идентифицирует ACL с использованием номера или имени. ACL также будут стандартными или расширенными, при этом расширенные ACL будут иметь гораздо более надежные возможности дл€ сопоставлени€ пакетов. –исунок 3 суммирует основные идеи, св€занные с категори€ми списков контрол€ доступа IP.

—равнение типов IP ACL

—тандартные нумерованные списки ACL IPv4

Ётот подраздел лекции посв€щен типу фильтра Cisco (ACL), который соответствует только исходному IP-адресу пакета (стандарт), настроен дл€ идентификации ACL с использованием чисел, а не имен (пронумерованных), и смотрит на пакеты IPv4.¬ этой части исследуютс€ особенности стандартных пронумерованных списков контрол€ доступа IP. ¬о-первых, он исследует идею о том, что один ACL €вл€етс€ списком, и какую логику использует этот список. ѕосле этого в тексте подробно рассматриваетс€, как сопоставить поле IP-адреса источника в заголовке пакета, включа€ синтаксис команд. ¬ конце этой лекции даетс€ полный обзор команд конфигурации и проверки дл€ реализации стандартных ACL.


Ћогика списка с IP ACL

ќдин ACL - это одновременно и единый объект, и список одной или нескольких команд конфигурации.  ак единый объект, конфигураци€ включает весь ACL на интерфейсе в определенном направлении, как показано ранее на рисунке 1. ¬ виде списка команд кажда€ команда имеет различную логику согласовани€, которую маршрутизатор должен примен€ть к каждому пакету при фильтрации с использованием этого ACL.ѕри обработке ACL маршрутизатор обрабатывает пакет по сравнению с ACL следующим образом: ACL используют логику первого совпадени€.  ак только пакет соответствует одной строке в ACL, роутер выполн€ет действие, указанное в этой строке ACL, и прекращает поиск в ACL.„тобы пон€ть, что это означает, рассмотрим пример, построенный на рисунке 4. Ќа рисунке показан пример ACL 1 с трем€ строками псевдокода. ¬ этом примере ACL 1 примен€етс€ к вход€щему интерфейсу S0/0/1 R2 (то же расположение, что и на предыдущем рисунке 2).

‘он дл€ обсуждени€ процесса составлени€ списков с помощью IP ACL

–ассмотрим логику ACL первого совпадени€ дл€ пакета, отправленного хостом A на сервер S1. »сходным IP-адресом будет 10.1.1.1, и он будет маршрутизирован так, чтобы входить в интерфейс S0/0/1 R2, управл€€ логикой ACL 1 R2. R2 сравнивает этот пакет с ACL, сопоставл€€ первый элемент в списке с действием разрешени€. “аким образом, этот пакет должен быть пропущен, как показано на рисунке 5 слева.

Ёлементы ACL сравниваютс€ дл€ пакетов от хостов A, B и C на рисунке 4

«атем рассмотрим пакет, отправленный хостом B, исходный IP-адрес 10.1.1.2.  огда пакет поступает в интерфейс S0/0/1 R2, R2 сравнивает пакет с первым оператором ACL 1 и не находит соответстви€ (10.1.1.1 не равно 10.1.1.2). «атем R2 переходит ко второму утверждению, которое требует некоторого по€снени€. ѕсевдокод ACL, показанный на рисунке 4, показывает 10.1.1.x, что означает сокращение того, что в последнем октете может существовать любое значение. —равнива€ только первые три октета, R2 решает, что этот последний пакет действительно имеет IP-адрес источника, который начинаетс€ с первых трех октетов 10.1.1, поэтому R2 считает, что это соответствует второму оператору. R2 выполн€ет указанное действие (запретить), отбрасыва€ пакет. R2 также останавливает обработку ACL дл€ пакета, игнориру€ третью строку в ACL.

Ќаконец, рассмотрим пакет, отправленный хостом C, снова на сервер S1. ѕакет имеет IP-адрес источника 10.3.3.3, поэтому, когда он входит в интерфейс R2 S0/0/1 и управл€ет обработкой ACL на R2, R2 просматривает первую команду в ACL 1. R2 не соответствует первой команде ACL (10.1.1.1). в команде не совпадает с пакетом 10.3.3.3). R2 просматривает вторую команду, сравнивает первые три октета (10.1.1) с IP-адресом источника пакета (10.3.3) и по-прежнему не находит совпадени€. «атем R2 смотрит на третью команду. ¬ этом случае подстановочный знак означает игнорирование последних трех октетов и просто сравнение первого октета (10), чтобы пакет соответствовал. «атем R2 выполн€ет указанное действие (разрешение), позвол€€ пакету продолжить работу.

Ёта последовательность обработки ACL в виде списка происходит дл€ любого типа IOS ACL: IP, других протоколов, стандартных или расширенных, именованных или пронумерованных. Ќаконец, если пакет не соответствует ни одному из элементов в ACL, пакет отбрасываетс€. ѕричина в том, что каждый IP ACL имеет оператор deny all, подразумеваемый в конце ACL. ≈го нет в конфигурации, но если маршрутизатор продолжает поиск в списке, и до конца списка не найдено совпадение, IOS считает, что пакет соответствует записи, имеющей действие запрета.


—оответствие логики и синтаксиса команд

—тандартные нумерованные ACL дл€ IP-адресов используют следующую команду:

access-list {1-99 | 1300-1999} {permit | deny} matching-parameters

 аждый стандартный нумерованный ACL имеет одну или несколько команд списка доступа с одинаковым номером, любым числом из диапазонов, показанных в предыдущей строке синтаксиса. IOS относитс€ к каждой строке в ACL как к записи управлени€ доступом (ACE), но многие сетевые администраторы просто называют их операторами ACL.ѕомимо номера ACL, кажда€ команда списка доступа также перечисл€ет действие (разрешить или запрещать), а также логику сопоставлени€. ќстальна€ часть этой части изучает, как настроить параметры сопоставлени€, что дл€ стандартных списков ACL означает, что вы можете сопоставить исходный IP-адрес или части исходного IP-адреса только с помощью так называемой обратной маски ACL.


—оответствие точному IP-адресу

„тобы сопоставить конкретный исходный IP-адрес, весь IP-адрес, все, что вам нужно сделать, это ввести этот IP-адрес в конце команды. Ќапример, в предыдущем примере псевдокод используетс€ дл€ "разрешить, если источник = 10.1.1.1". —ледующа€ команда настраивает эту логику с правильным синтаксисом с использованием ACL номер 1:

access-list 1 permit 10.1.1.1

—опоставить точный полный IP-адрес очень просто.¬ более ранних верси€х IOS синтаксис включал ключевое слово host. ¬место того, чтобы просто вводить полный IP-адрес, вы сначала набираете ключевое слово host, а затем IP-адрес. ќбратите внимание, что в более поздних верси€х IOS, если вы используете ключевое слово host, IOS принимает команду, но затем удал€ет ключевое слово.


—опоставление адреса подсети с обратной маской

„асто бизнес-цели, которые вы хотите реализовать с помощью ACL, совпадают не с одним конкретным IP-адресом, а с целым р€дом IP-адресов. ¬озможно, вы хотите сопоставить все IP-адреса в подсети. ¬озможно, вы хотите сопоставить все IP-адреса в диапазоне подсетей. Ќесмотр€ на это, вы хотите проверить наличие нескольких IP-адресов в диапазоне адресов.

IOS позвол€ет стандартным ACL сопоставл€ть диапазон адресов с помощью инструмента, называемого обратной маской. ќбратите внимание, что это не маска подсети. ќбратна€ маска (сокращенно называют маской WC) дает сетевому администратору способ сказать IOS игнорировать части адреса при проведении сравнений, по существу рассматрива€ эти части как подстановочные знаки, как если бы они уже совпадали.¬ы можете использовать маски WC в дес€тичном и двоичном виде, и оба имеют свое применение. ƒл€ начала можно использовать маски WC в дес€тичной системе счислени€, использу€ следующие правила:

  • ƒес€тичное число 0: маршрутизатор должен сравнить этот октет как обычно.
  • ƒес€тичное число 255: маршрутизатор игнорирует этот октет, счита€ его уже совпадающим.

»ме€ в виду эти два правила, рассмотрим рисунок 6, который демонстрирует эту логику с использованием трех различных, но попул€рных масок WC: одна, котора€ говорит маршрутизатору игнорировать последний октет, друга€, котора€ говорит маршрутизатору игнорировать последние два октета, и треть€, котора€ говорит маршрутизатору игнорировать последние три октета.

Ћогика дл€ масок WC 0.0.0.255, 0.0.255.255 и 0.255.255.255

¬се три примера во вставках на рисунке 6 показывают два числа, которые €вно различаютс€. ћаска WC заставл€ет IOS сравнивать только некоторые октеты, игнориру€ другие октеты. ¬се три примера привод€т к совпадению, поскольку кажда€ подстановочна€ маска указывает IOS игнорировать некоторые октеты. ¬ примере слева показана маска WC 0.0.0.255, котора€ указывает маршрутизатору обрабатывать последний октет как подстановочный знак, по существу игнориру€ этот октет дл€ сравнени€. “очно так же в среднем примере показана маска WC 0.0.255.255, котора€ сообщает маршрутизатору игнорировать два октета справа. ¬ крайнем правом случае показана маска WC 0.255.255.255, указывающа€ маршрутизатору игнорировать последние три октета при сравнении значений.

„тобы увидеть маску WC в действии, вспомните предыдущий пример, относ€щийс€ к рисункам 4 и 5. ¬ ACL псевдокода на этих двух рисунках используетс€ логика, которую можно создать с помощью маски WC. Ќапомним, что логика ACL псевдокода на этих двух рисунках включает следующее:

  • —трока 1: —опоставить и разрешить все пакеты с адресом источника соответствующий строго 10.1.1.1.
  • —трока 2: —опоставить и отклонить все пакеты с адресами источника с первыми трем€ октетами 10.1.1.
  • —трока 3: сопоставить и разрешить все адреса с первым одиночным октетом 10.

Ќа рисунке 7 показана обновленна€ верси€ рисунка 4, но с завершенным правильным синтаксисом, включа€ маски WC. ¬ частности, обратите внимание на использование маски WC 0.0.0.255 во второй команде, указывающей R2 игнорировать последний октет числа 10.1.1.0, и маску WC 0.255.255.255 в третьей команде, указывающую R2 игнорировать последние три октеты в значении 10.0.0.0.

Ќаконец, обратите внимание, что при использовании маски WC свободно определенный параметр источника команды access-list должен иметь значение 0 в любых октетах, где маска WC - 255. IOS будет указывать адрес источника равным 0 дл€ частей, которые будут игнорироватьс€, даже если были настроены ненулевые значени€.

—интаксически корректный ACL замен€ет псевдокод из рисунка 4

“еперь почитайте про wildcard в ACL: бинарные обратные маски