Открыть сервис

Сетевой ACL

Сетевой ACL (Access Control List, список контроля доступа) — это набор правил, применяемых на сетевом устройстве (маршрутизаторе, межсетевом экране, коммутаторе) для фильтрации трафика на основе заданных критериев. ACL определяет, какие пакеты данных могут быть пропущены через интерфейс устройства, а какие должны быть заблокированы. Основная функция ACL — обеспечение сетевой безопасности и управление трафиком путём разрешения или запрета прохождения пакетов на основе их характеристик.

История

Концепция списков контроля доступа возникла в ранних компьютерных сетях для разграничения прав доступа к файлам и ресурсам. В контексте сетевых технологий ACL начали активно применяться в 1980-х годах с развитием протоколов маршрутизации, таких как OSPF и EIGRP. Первоначально ACL использовались в основном для фильтрации трафика на маршрутизаторах Cisco, где они стали стандартным инструментом. В 1990-х годах, с ростом интернета и увеличением числа угроз, ACL были интегрированы в межсетевые экраны (firewalls) и системы предотвращения вторжений (IPS). В современных сетях ACL остаются одним из базовых механизмов сетевой безопасности, хотя их функциональность частично вытесняется более сложными системами, такими как Next-Generation Firewalls (NGFW) и политики на основе зон.

Классификация

Сетевые ACL классифицируются по нескольким признакам.

По типу устройства

  • ACL на маршрутизаторах — применяются для фильтрации трафика между подсетями, часто на границе сети.
  • ACL на межсетевых экранах — более гибкие, поддерживают анализ состояния соединений (stateful inspection).
  • ACL на коммутаторах — используются для управления трафиком внутри локальной сети (L2 ACL), например, для ограничения доступа к портам.

По направлению применения

  • Входящие (inbound) — правила применяются к пакетам, поступающим на интерфейс устройства.
  • Исходящие (outbound) — правила применяются к пакетам, покидающим интерфейс.

По уровню модели OSI

  • L2 ACL — работают на канальном уровне (MAC-адреса, VLAN ID). Используются в коммутаторах.
  • L3 ACL — работают на сетевом уровне (IP-адреса, протоколы, например, TCP/UDP). Наиболее распространены.
  • L4 ACL — работают на транспортном уровне (порты TCP/UDP, флаги, например, SYN, ACK).
  • L7 ACL — работают на прикладном уровне (анализ содержимого пакетов, например, HTTP-заголовков). Встречаются в современных NGFW.

По способу обработки

  • Стандартные ACL — фильтруют только по IP-адресу источника. Номер диапазона: 1–99 (Cisco).
  • Расширенные ACL — фильтруют по IP-адресу источника и назначения, протоколу, портам и другим параметрам. Номер диапазона: 100–199 (Cisco).
  • Именованные ACL — позволяют задавать правила с текстовыми именами вместо номеров, что упрощает управление.

Устройство и принцип работы

Сетевой ACL представляет собой упорядоченный список правил (entries), каждое из которых состоит из следующих элементов:

  • Номер правила — определяет порядок применения (чем меньше номер, тем раньше проверяется правило).
  • Действие — permit (разрешить) или deny (запретить).
  • Критерии — набор условий, которым должен соответствовать пакет (IP-адреса, порты, протоколы, MAC-адреса, временные интервалы и т.д.).
  • Маска — для IP-адресов используется маска подсети (wildcard mask) для определения диапазона адресов.

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

Пример работы ACL

Рассмотрим стандартный ACL на маршрутизаторе Cisco:

`` access-list 10 permit 192.168.1.0 0.0.0.255 access-list 10 deny any ``

Здесь правило permit разрешает трафик из сети 192.168.1.0/24, а затем неявное правило deny any блокирует все остальные пакеты. Порядок правил важен: если бы deny any стояло первым, весь трафик был бы заблокирован.

Применение

Сетевые ACL широко используются в различных сценариях:

  • Фильтрация трафика — ограничение доступа к определённым серверам или услугам (например, запрет SSH-доступа из внешних сетей).
  • Сегментация сетиразделение сети на зоны безопасности (например, DMZ, внутренняя сеть, гостевой Wi-Fi).
  • Защита от атакблокировка подозрительных IP-адресов, портов или протоколов (например, запрет ICMP-трафика для предотвращения ping-флуда).
  • Управление полосой пропускания — в сочетании с QoS (Quality of Service) ACL могут классифицировать трафик для приоритезации.
  • Аудит и мониторинг — ACL могут генерировать логи для анализа трафика и выявления инцидентов.

Примеры

Пример 1: Стандартный ACL на маршрутизаторе Cisco

`` access-list 1 permit 10.0.0.0 0.255.255.255 access-list 1 deny any interface GigabitEthernet0/0 ip access-group 1 in ``

Этот ACL разрешает трафик из сети 10.0.0.0/8 на интерфейсе GigabitEthernet0/0, блокируя все остальные пакеты.

Пример 2: Расширенный ACL для блокировки веб-трафика

`` access-list 100 deny tcp any any eq 80 access-list 100 deny tcp any any eq 443 access-list 100 permit ip any any interface GigabitEthernet0/1 ip access-group 100 out ``

Этот ACL блокирует HTTP (порт 80) и HTTPS (порт 443) трафик на исходящем интерфейсе, разрешая все остальные протоколы.

Критика и ограничения

Несмотря на широкое распространение, сетевые ACL имеют ряд недостатков:

  • Сложность управления — при большом количестве правил (сотни и тысячи) ACL становятся трудночитаемыми и подвержены ошибкам. Отсутствие автоматизации может привести к конфликтам правил.
  • Отсутствие анализа состояния — стандартные ACL не учитывают состояние соединений (stateful), что делает их уязвимыми для некоторых атак (например, IP-спуфинг). Современные межсетевые экраны решают эту проблему.
  • Производительность — на высоконагруженных устройствах (например, на границе интернет-провайдера) обработка большого ACL может снижать пропускную способность.
  • Ограниченная гибкость — ACL не поддерживают динамическое изменение правил на основе контекста (например, времени суток или пользователя) без дополнительных инструментов.

Интересные факты

  • В операционных системах семейства Linux для фильтрации трафика используется утилита iptables, которая реализует концепцию ACL, но с более сложной структурой (цепочки, таблицы).
  • В протоколе IPv6 ACL также поддерживаются, но их синтаксис отличается из-за использования 128-битных адресов.
  • Некоторые производители сетевого оборудования (например, Juniper) используют термин «фильтры» (filters) вместо ACL, хотя принцип работы аналогичен.

Источники

  • Cisco Networking Academy. «CCNA Routing and Switching: Access Control Lists». Cisco Systems, 2020.
  • Kurose, J. F., Ross, K. W. «Computer Networking: A Top-Down Approach». 7th ed., Pearson, 2017.
  • RFC 1108 — «Security Architecture for the Internet Protocol» (обсуждение ACL в контексте IPsec).
  • Документация Cisco IOS. «Configuring IP Access Lists». Cisco Press, 2019.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →