Перейти к содержимому
AD Academy
CCNA — Основы сетей Cisco
Средний14 мин.Обновлено: Тема 11 из 12

ACL: Standard против Extended и порядок правил

Где разместить список доступа, почему порядок критичен и что такое неявный deny any.

Не прочитано

Что вы узнаете

  • Разница между Standard и Extended ACL
  • Почему порядок правил критичен
  • Что такое скрытый deny any

Перед этой темой стоит прочитать:OSPFv2: Router ID, Hello и DR/BDR

Аналогия: ACL — это охранник на входе со списком имен. Он читает сверху вниз и останавливается на первой подходящей строке — а тот, кого вообще нет в списке, просто не входит.

Пакет проверяется сверху вниз, и срабатывает первое совпавшее правило. Строка 10 блокирует SMB из гостевой сети к серверам, строка 20 разрешает HTTPS, строка 30 — DNS, а всё остальное отбрасывает скрытое правило implicit deny в конце списка. Standard ACL фильтрует только по источнику и ставится ближе к получателю, Extended ACL учитывает адрес, протокол и порт и ставится ближе к источнику.

Standard против Extended

  • Standard (1–99) — проверяет только исходный адрес. Размещается близко к месту назначения, иначе блокирует слишком много.
  • Extended (100–199) — проверяет источник, назначение, протокол и порт. Размещается близко к источнику, чтобы избежать ненужного трафика.
  • Named ACL — имена вместо номеров, позволяет редактировать по номерам строк. Всегда рекомендуется.
  • В конце каждого ACL существует implicit deny any — то, что не разрешено явно, блокируется.
  • Возможен один ACL в одном направлении для каждого интерфейса (in / out).
! Extended ACL: Разрешить HTTPS и DNS, заблокировать SMB из гостевой сети
Router(config)# ip access-list extended GUEST-IN
Router(config-ext-nacl)# 10 deny tcp 192.168.99.0 0.0.0.255 192.168.50.0 0.0.0.255 eq 445
Router(config-ext-nacl)# 20 permit tcp 192.168.99.0 0.0.0.255 any eq 443
Router(config-ext-nacl)# 30 permit udp 192.168.99.0 0.0.0.255 any eq 53
Router(config-ext-nacl)# 40 deny ip any any log
Router(config)# interface gi0/1
Router(config-if)# ip access-group GUEST-IN in

! Проверки
Router# show access-lists
Router# show ip interface gi0/1 | include access list
bash
Архитектура и теория — под капотом

ACL проверяется строка за строкой сверху вниз; как только есть совпадение — проверка останавливается. В конце каждого ACL есть implicit deny any, который не виден в конфигурации.

Packet -> line 10 permit? -> match? YES -> PERMIT (stop)
                 |NO
             line 20 deny? ...
                 |NO
             [implicit deny any]  <-- Всё отбрасывается здесь
text
  • Standard (1-99): фильтрует только по исходному адресу — размещается близко к получателю.
  • Wildcard Mask — это инверсия Subnet Mask: 0 = должен совпадать, 1 = неважно. /26 → 0.0.0.63, один host → 0.0.0.0, любой адрес → any.
  • ACL на интерфейсе работает только на трафик, проходящий через маршрутизатор (transit) — трафик, генерируемый самим маршрутизатором, не проверяется, поэтому ping с маршрутизатора может быть успешным, в то время как пользователи заблокированы.
  • ACL на VTY защищает доступ к управлению оборудованием.
Практическая настройка (CLI)
! Extended named ACL
R(config)# ip access-list extended BRANCH-IN
R(config-ext-nacl)# 10 permit tcp 192.168.10.0 0.0.0.255 host 10.0.0.50 eq 443
R(config-ext-nacl)# 20 permit udp any host 10.0.0.10 eq 53
R(config-ext-nacl)# 30 deny ip 192.168.10.0 0.0.0.255 10.0.20.0 0.0.0.255 log
R(config-ext-nacl)# 40 permit ip any any
R(config)# interface gi0/0
R(config-if)# ip access-group BRANCH-IN in

! Защита управления
R(config)# access-list 10 permit 192.168.99.0 0.0.0.255
R(config)# line vty 0 15
R(config-line)# access-class 10 in
bash
Реальные сценарии в организации
  • Изоляция гостевого VLAN: разрешен доступ в Интернет, внутренняя сеть заблокирована.
  • Доступ к серверам только из VLAN управления и только по необходимым портам.
  • Блокировка известного проблемного трафика (SMB между филиалами) для уменьшения распространения вымогательского ПО.
Диагностика и устранение неполадок
R# show access-lists
R# show ip access-lists BRANCH-IN     ! счетчик совпадений для каждой строки
R# show ip interface gi0/0 | include access list
R# clear access-list counters
bash
  • Все заблокировано → забыли permit в конце, и implicit deny заблокировал все.
  • Правило не применяется → ACL не был привязан к интерфейсу или был привязан в обратном направлении (in/out).
  • Счетчик строки остается 0 → трафик туда вообще не доходит, или его перехватила предыдущая строка.
  • DNS/DHCP не работают → забыли разрешить UDP 53 и 67/68.
Глоссарий и быстрые команды
  • Standard = близко к назначению | Extended = близко к источнику
  • ip access-group <name> in|out — на интерфейсе
  • В конце всегда implicit deny any
  • Wildcard: host = 0.0.0.0, any = 255.255.255.255

Проверь себя

Где размещается Standard ACL?

Что происходит с трафиком, который не соответствует ни одной строке в ACL?

Эта страница вам помогла?