Logo
  • ГЛАВНАЯ
  • ОБО МНЕ
  • СЕРТИФИКАТЫ
nocip.ssh@mail.ru
Главная  >  Cisco Routing

Расширенные списки управления доступом


Создана 10.10.2024
Отредактирована 20.11.2024
Маршрутизаторы, а также коммутаторы L3 Cisco используют списки управления доступом (Access Control List - ACL)  IPv4 для многих целей: распознавания пакетов для принятия решения о фильтрации, распознавания пакетов для трансляции сетевых адресов (Network Address Translation - NAT), распознавания пакетов для принятия решения о качестве обслуживания (Quality of Service - QoS) и др.
Большинство списков ACL IP являются либо стандартными, либо расширенными. Стандартные списки управления доступом ищут соответствие только по IР адресу отправителя, а расширенные - по множеству полей заголовка пакета. В то же время списки ACL IP могут быть нумерованными или именованными. На рис. 1. представлены категории и основные возможности каждого из типов.
Рис. 1. Сравнения типов списков ACL IР
Расширенные списки управления доступом IP (extended access control list - extended ACL) очень похожи на стандартные нумерованные списки ACL. Как и в случае стандартных списков, расширенные списки управления доступом применяются для пакетов, либо входящих на интерфейс, либо исходящих из интерфейса. Система IOS проводит поиск в этом списке последовательно. Расширенные списки доступа также используют логику первого соответствия, поскольку маршрутизатор останавливает поиск по списку, как только обнаруживается первый соответствующий оператор, и предпринимает определенное в нем действие. Все эти особенности верны также для стандартных нумерованных списков управления доступом (и именованных списков ACL).
Расширенные списки доступа отличаются от стандартных большим разнообразием полей заголовка пакета, применяемых для распознавания. Один оператор расширенного списка ACL может задать проверку нескольких элементов заголовка пакета, требуя точного соответствия всех параметров правилам данного оператора ACL. Такая мощная логика распознавания делает расширенные списки управления доступом и более полезными, и более сложными, чем стандартные списки ACL.
Процесс обработки трафика маршрутизатором для проверки пакетов на соответствие правилам расширенных списков управления доступом проиллюстрирован на рис. 2.
Рис. 2. Принцип работы расширенного списка управления доступом.

Распознавание протокола, IР-адреса отправителя и получателя

Подобно стандартному нумерованному списку ACL IP, расширенный нумерованный список ACL IP также использует глобальную команду access-list. Синтаксис тот же, по крайней мере, в использовании ключевых слов permit и deny. Список параметров распознавания команд, конечно, отличается. В частности, расширенная команда ACL access-list требует трех параметров соответствия: тип протокола IP, IР-адрес отправителя и IР-адрес получателя.
Поле Protocol заголовка IP идентифицирует заголовок, который следует за заголовком IP. На рис. 3. представлены расположение поля Protocol в заголовке IP, концепция указания на тип следующего заголовка, а также некоторые подробности заголовка IP для справки.
Рис. 3. Заголовок IР с выделенными полями, необходимыми для расширенного списка ACL
Операционная система IOS требует настройки параметров для трех частей, выделенных на рис. 3. Для типа протокола используется такое ключевое слово, как tcp, udp или icmp, для пакетов IP, у которых после заголовка IP есть заголовок ТСР, UDP или ICMP соответственно. Либо можно использовать ключевое слово ip, означающее "все пакеты IP". Необходимо также настроить несколько значений для расположенных далее полей IР-адреса отправителя и получателя.

Проверка номеров портов ТСР и UDP в расширенном спике управлением доступа acl

Расширенные списки управления доступом позволяют также исследовать части заголовков ТСР и UDP, в частности, поля номера порта получателя и отправителя. Номера портов идентифицируют приложение, которое посылает или получает данные.
Чаще всего проверяют порты, являющиеся стандартными портами, используемыми серверами. Например, веб-серверы используют по умолчанию стандартный порт 80. На рис. 4 представлено расположение номеров портов в заголовке ТСР после заголовка IP.
Рис. 4. Поля номеров портов в заголовке TCP, сопровождающем зголовок IP
Когда команда расширенного списка ACL включает ключевое слово tcp или udp, она может (необязательно) проверить порт отправителя и/или получателя. Для этого синтаксис использует для номеров портов ключевые слова равно (equal), не равно (not equal), меньше (less), больше (greater) и диапазон (range). Кроме того, команда может использовать литеральные или десятичные номера портов либо более удобные ключевые слова для некоторых общеизвестных портов приложений. Позиции полей портов отправителя и получателя в команде acces s-list, а также ключевых слов для номеров портов представлены на рис. 5.
Рис. 5. Расширенный синтаксис команд ACL с номерами портов при использовании протокола ТСР или UDP
В качестве примера рассмотрим простую сеть, показанную на рис. 6. web-сервер находится справа на рисунке, а клиент - слева. На рис. 6 показаны синтаксические конструкции списка управления доступом, применяемые для проверки соответствия перечисленных ниже типов пакетов критериям списка.
  • Пакеты, которые включают заголовок ТСР.
  • Пакеты, отправленные из подсети клиента.
  • Пакеты, отправленные в подсеть сервера.
  • Пакеты с портом получателя ТСР, равным 21 (порт управления сервера FTP).
Рис. 6. Фильтрация пакетов на основе номера порта получателя (прямой трафик)

permit tcp 192.168.2.0 0.0.0.255 192.168.3.0 0.0.0.255 eq 21

, где 192.168.2.0 0.0.0.255 подсеть отправителя, 192.168.3.0 0.0.0.255 подсеть получателя, eq 21 порт получателя (FTP сервер), если этот ACL с дерективой (правилом), привязать к виртуальному интерфейсу, то это выражение можно записать следующим образом.

permit tcp 192.168.2.0 0.0.0.255 any eq 21

Чтобы полностью разобраться в том, как происходит проверка номера порта получателя на основе параметра eq 21, рассмотрим пакеты, движущиеся слева направо, от компьютера PC1 к серверу FTP. Предположим, на сервере используется зарезервированный порт 21 (порт управления протокола FТР), поэтому у пакета, отправленного компьютером PC1, в своем заголовке ТСР указан порт получателя 21. Синтаксическая конструкция команды в списке управления доступом включает параметр eq 21 после IР-адреса получателя. Позиция после параметров адреса получателя важна: она свидетельствует о том, что параметр eq 21 следует сравнивать с портом получателя пакета. В результате оператор списка управления доступом, показанный на рис. 6, будет успешно сопоставлен с пакетом (в том числе номер порта получателя 21), если он задан в любом из четырех вариантов, обозначенных четырьмя стрелками на этом рисунке.
С другой стороны, на рис. 7 показан обратный поток, в котором происходит передача ответного пакета от FTP сервера компьютеру PC1. В этом случае в заголовке ТСР пакета указан порт отправителя 21, поэтому в списке управления доступом необходимо предусмотреть проверку значения номера порта отправителя, равного 21, а сам список управления доступом должен быть задан для других интерфейсов.
Рис. 7. Фильтрация пакетов на основе номера порта отправителя (ответный трафик)

permit tcp 192.168.3.0 0.0.0.255 eq 21 192.168.2.0 0.0.0.255

, где 192.168.3.0 0.0.0.255 подсеть отправителя, eq 21 порт отправителя (FTP сервер) и 192.168.2.0 0.0.0.255
Для справки в табл. 1 перечислены наиболее известные номера портов, а также соответствующие им приложения и протоколы транспортного уровня. Следует учитывать, что синтаксис команд access-list допускает применение и номеров портов, и сокращенных вариантов имен приложений.
Таблица 1. Распространённые приложения и соответствующие им стандартные номера портов
Номер порта
Протокол
Приложение/Служба
Ключевое слово в команде access-list
20
TCP
FTP
data ftp-data
21
TCP
Управление сервером FTP
ftp
22
TCP
SSH
 —
23
TCP
Telnet
telnet
25
TCP
SMTP
smtp
53
TCP, UDP
DNS
domain
67, 68
UDP
DHCP
narneserver
69 
UDP
TFTP
tftp
80
TCP
HTTP (WWW)
www
110
TCP
POP3
pop3
143
TCP
IMAP без шифрования
—
161
UDP
SNMP
snmp
389
TCP, UDP
LDAP (Lightweight Directory Access Protocol)
snmp
443
TCP
SSL
—
445
TCP, UDP
Применяется в ОС Windows для доступа к сетевым папкам через протокол SMB (Server Message Block)
—
465
TCP, UDP
SMTPS (Simple Mail Transfer Protocol Secure) — SMTP с шифрованием по SSL или TLS
—
587
TCP, UDP
SUBMISSION (Message Submission for Mail[13]) — используется (SMTP)
—
636
TCP, UDP
LDAPS (Lightweight Directory Access Protocol Secure) — LDAP с шифрованием по SSL или TLS
—
993
TCP
IMAP при защищённом соединении, то есть это SSL порт IMAP
—
10050
TCP, UDP
Zabbix-Agent
—
10051
TCP, UDP
Zabbix-Trapper
—
1985
UDP
Cisco протокол HSRP
—
8080
TCP
Альтернативный порт HTTP (http_alt) — обычно используется для организации веб-прокси и кэширующих серверов, запуска веб-сервера от имени не-root пользователя
—
16 384 - 32 767
UDP
Передача голоса (VolP) и видео на основе RTP
—

Как создать расширенный именованный acl на маршрутизаторе Cisco

В примере ниже вы увидите, как создать расширенный (extended) именнованный список доступа. 

После слова extended я ввёл знак вопроса, из выпадающего меню можно выбрать какой создать список, нумерованный или именнованный (Access-list name). Создаём именованный, где vlan1325-out есть имя списка.

Router(config)#ip access-list extended vlan1325-out

Одни и те же названия не могут быть использованы для разных списков управления доступом. Например, нельзя определить стандартный (standard) и расширенный (extended) списки управления доступом с одним и тем же именем vlan1325-out

Обратите внимание на имя vlan1325-out, легко ориентироваться в имени такого acl, из него можно понять, что он отвечает за исходящий трафик с маршрутизатора в подсеть. Можно также посмотреть настройки виртуального интерфейса, например, для маршрутизатора команда может выглядет так.

Router#show run | section interface FastEthernet0/0.1325

а для коммутатора L3 вот так

Switch-L3#show run | section interface Vlan1325

Если бы была необходимость создать acl для входящего трафика в маршрутизатор из данной подсети, я бы присвоил имя vlan1325-in

Входящий или исходящий трафик нужно рассматривать не относительно подсети, а относительно маршрутизатора.

Помните, все списки ACL IP маршрутизаторов Cisco завершаются неявной командой deny ip any any. Таким образом, если маршрутизатор, сравнив пакет со всеми записями списка ACL, не находит соответствия, то он отказывается от пакета. 
Можно также явно указать в конце списка ACL команду, запрещающую весь трафик (например, deny ip any any). Но зачем, когда та же логика, так или иначе, уже находится в конце списка ACL? Команда ACL show отображает счетчики количества пакетов, соответствующих каждой команде, в списке ACL, но никакого счетчика для неявной команды deny ip any any в конце списка ACL нет. Поэтому, если необходим счетчик количества пакетов, соответствующих команде deny ip any any в конце списка ACL, её следует указать в конфигурации явно.
Добавим 4 дерективы в список vlan1325-out

Router(config)#ip access-list extended vlan1325-out
Router(config-ext-nacl)#permit tcp any any established
Router(config-ext-nacl)#permit icmp any any
Router(config-ext-nacl)#permit tcp host 192.168.2.5 host 192.168.3.6 eq 80
Router(config-ext-nacl)#deny ip any any
Router(config-ext-nacl)#end
Router#copy running-config startup-config
Destination filename [startup-config]?
Building configuration...
[OK]

Далее вам нужно привязать созданный ACL к интерфейсу, как это сделать? Перейдите на эту страницу и ознакомьтесь с командой ip access-group
Начинающий сетевой администратор может встретить непонятные для него синтаксис деректив в расширенных списках доступа.
В таблице 1 представлены параметры и множество дополнительных опций.
Таблица 1. Параметры расширенного списка доступа
Параметр
Описание
access-list-number
Номер списка доступа. Представляет собой десятичное число в диапазоне:
100 - 199
2000 - 2699 - расширенный диапазон
access-list-nume
Именной список доступа
dynamic dynamic-name
(Необязательный параметр) Идентифицирует список управления доступом как динамический список ACL. Обычно этот параметр используется для реализации защиты типа замка (lock-and-key).
Примечание. Более подробную информацию по данному вопросу можно найти в книге Cisco IOS Security Configuration Guide
timeout minutes
(Необязательный параметр) Указывает абсолютный интервал в минутах, в течение которого временная запись списка контроля доступа может существовать в динамическом списке ACL. Стандартно такой интервал бесконечен, и данные могут передаваться в любой момент времени.
Примечание. Более подробную информацию по данному вопросу можно найти в книге Cisco IOS Security Configuration Guide
deny
Запрещает доступ, если условие выполнено
permit
Разрешает доступ, если условие выполнено
protocol
Имя или номер протокола сети Internet. В качестве параметра может использоваться одно из ключевых слов: eigrp, gre, icmp, igmp, igrp, ip, ipinip, nos, ospf, pim, tcp, udp или целое число в диапазоне от 0 до 255, соответствующее номеру Internet-протокола. Для проверки любых Internet-протоколов (включая ICMP, TCP и UDP) следует использовать ключевое слово ip. Некоторые протоколы позволяют добавить уточняющие параметры в список
source
Номер сети или адрес узла, с которого отправлен пакет.
Устройство-отправитель можно указать тремя способами:
* спользовать 32-битовою велечину в точечно-десятичном формате, состоящем из четырёх частей;
* использовать ключевое слово any для обозначения любого отправителя вместо записи 0.0.0.0
* использовать ключевое слово host для обозначения единственного адреса отправителя вместо записи инвертированной маски в виде 0.0.0.0
source-wildcard
Инвертированная маска отправителя. Если в какой-либо позиции маски стоит бит, равный нулю, то соответствующий бит адреса должен быть проверен; если же какой-либо позиции бит равен единицы, то соответствующий бит адреса должен быть проигнорирован. Вы можете сами вычислить инвертированную маску (Wildcard Mask), или воспользоваться IP калькулятором подсетей.

Инвертированную маску устройства-отправителя можно указать тремя способами:
  * использовать 32-битовую велечину в точечно-десятичном формате, состоящем из четырёх частей; биты адреса, которым соответствует единичные биты в маске, не будут проверяться;
  * использовать ключевое слово any для обозначения любого отправителя вместо записи
0.0.0.0 255.255.255.255;
  * использовать ключевое слово host для обозначения единственного адреса отправителя вместо записи инвертированной маски в виде 0.0.0.0
destination
Биты инвертированной маски со значением 1 не обязательно должны быть последовательно (т.е. непрерывно) записаны в шаблоне отправителя. Например, инвертированная маска для некоторого адреса отправителя 0.255.0.64 вполне приемлема

Номер сети или адрес узла, с которого отправлен пакет.
Устройство-отправитель можно указать тремя способами:
* спользовать 32-битовою велечину в точечно-десятичном формате, состоящем из четырёх частей;
* использовать ключевое слово any для обозначения любого отправителя вместо записи 0.0.0.0
* использовать ключевое слово host для обозначения единственного адреса отправителя вместо записи инвертированной маски в виде 0.0.0.0

destination-wildcard
Инвертированная маска получателя. Инвертированную маску устройства-получателя можно указать тремя способами: 

* использовать 32-битовую велечину в точечно-десятичном формате, состоящем из четырёх частей; биты адреса, которым соответствует единичные биты в маске, не будут проверяться;
  * использовать ключевое слово any для обозначения любого отправителя вместо записи
0.0.0.0 255.255.255.255;
  * использовать ключевое слово host для обозначения единственного адреса отправителя вместо записи инвертированной маски в виде 0.0.0.0
precedence precedence 
(Необязательный параметр) Пакеты могут быть отфильтрованы по уровню приоритета (precedence), который задаётся целым числом от 0 до 7. Такая возможность используется в механизмах обеспечения качества обслуживания (Quality of Service - QoS) в сетевых устройствах
tos tos
(Необязательный параметр) Пакеты могут быть отфильтрованы по типу обслуживания (Type of Service - ToS), который задаётся целым числом от 0 до 15. Такая возможность используется в механизмах обеспечения качества обслуживания (Quality of Service - QoS) в сетевых устройствах
log
(Необязательный параметр) Журнал. Параметр указывает, что нужно выводить информационные сообщения в системном журнале (logging message) для пакета, отвечающего записи списка; журнал впоследствии можно вывести на консоль. (Уровень сообщений, выводимых на консоль, задаётся командой logging console)

Информационное сообщение включает в себя: номер спискауправления доступом, адрес отправителя и количество пакетов, указывает, была ли разрешена передача пакета. Оно генерируется для первого пакета, удовлетворяющего условию, а затем генерируется с пятиминутным интервалом; при этом сообщается количество пакетов, которым было разрешено или отказано в доступе за предыдущий пятиминутный интервал.

С помощью команды ip access-list log-update можно указать пороговое количество сообщений для генерирования системного журнала, вместо того чтобы ждать истечения пятиминутного интервала. Системная служба может пропускать или отбрасывать сообщения, если устройство перегружено или когда за одну секунду обрабатывается более одного системного сообщения. Такое поведение предотвращает отказ или перегрузку маршрутизатора из-за большого количества системных сообщений. Поэтому системные службы не рекомендуется использовать как средства учёта в сети или как средство подсчёта точного количества соответствий в списках доступа ACL
log-input
(Необязательный параметр) Включает входной интерфейс и MAC-адрес отправителя или номер виртуального канала (Virtual Circuit - VC) в сообщения системного журнала
time-range time-range-name
(Необязательный параметр) Задаёт время срабатывания записи списка ACL. Параметры временного интервала (имя и ограничения) задаются отдельной конфигурационной командой time-range
icmp-type
(Необязательный параметр) ICMP-пакеты могут быть отфильтрованы по типу ICMP-сообщений. Тип указывают с помощью номера в диапазоне от 0 до 255
icmp-code
(Необязательный параметр) ICMP-пакеты могут быть отфильтрованы по коду ICMP-сообщений. Код сообщения указывают с помощью номера в диапазоне от 0 до 255
icmp-message
(Необязательный параметр) ICMP-пакеты могут быть отфильтрованы по имени типа ICMP-сообщений или символьнуму имени-параметру кода ICMP-сообщения
igmp-type
(Необязательный параметр) IGMP-пакеты могут быть отфильтрованы по типу IGMP-сообщений. Тип указывают с помощью номера в диапазоне от 0 до 15
operator
(Необязательный параметр) Используется для сравнения портов отправителя и/или получателя. Возможные варианты включают в себя ключи:
  lt - less than (меньше, чем);
  gt - (больше, чем);
  eq - equally (равно);
  neq - (не равно);
  range - (порты, которые входят в диапазон).

Если оператор расположен после адреса и инвертированной маски отправителя, он задаёт порты отправителя.

Если оператор расположен после адреса и инвертированной маски получателя, он задаёт порт получателя.
port
Оператор диапазона range требует указания двух номеров портов. Для всех остальных операторов должен быть указан один номер порта
established
(Необязательный параметр) Используется только для TCP-протоколов: пропускает пакеты лишь установленного соединения. TCP-дейтограммы с флагом ACK, FIN, PSH, RST или установленным управляющим URG-битом будут соответствовать данной записи списка управления доступом.

Обратите внимание!
Первая дейтограмма с флагом SYN, которая отправляется при установке  TCP-соединения, не отвечает условию, которое заданно данным ключевым словом.
fragments
(Необязательный параметр) Этот параметр применяется для последующих (т.е. всех, кроме первого)
фрагментов пакетов; фрагменты могут быть разрешены или запрещены к передаче

🔁

RetraR — Компьютерные игры для Nintendo Game Boy
Приветствуем всех любителей ретро-игровой индустрии на канале RetraR
RetraR - Computer games for Nintendo Game Boy 🌌🛸👽👾☄️🤖
RetraR - 任天堂ゲームボーイ用コンピュータゲーム 🎮🕹️👾

RetraR
RetraR
Канал ретро компьютерных игр

Оформить заказ

Нажимая на кнопку, вы даете согласие на обработку персональных данных

Спасибо за заказ

Ваш заказ принят в обработку. 

Мы свяжемся с вами в ближайшее время.