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

Сетевые ACL

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

История

Концепция списков контроля доступа в компьютерных сетях возникла в 1980-х годах с развитием протокола IP и появлением маршрутизаторов. Первоначально ACL использовались в операционных системах Unix для управления доступом к файлам, но вскоре были адаптированы для сетевого уровня. Одним из первых производителей, внедривших сетевые ACL в коммерческое оборудование, стала компания Cisco Systems. В ранних версиях IOS (Internetwork Operating System) ACL представляли собой простые списки правил, фильтрующие трафик по IP-адресам.

С развитием технологий и ростом угроз безопасности ACL эволюционировали. Появились расширенные ACL, позволяющие фильтровать по портам и протоколам, а затем и динамические ACL, способные адаптироваться к изменяющимся условиям сети. В 1990-х годах с распространением межсетевых экранов (firewalls) ACL стали неотъемлемой частью их конфигураций. В XXI веке ACL интегрируются в сложные системы управления политиками безопасности (например, в SDNпрограммно-конфигурируемые сети).

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

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

По типу фильтрации

  • Стандартные ACL: фильтруют трафик только на основе IP-адреса источника. Обычно имеют номера от 1 до 99 (в терминологии Cisco). Просты в настройке, но не позволяют различать тип трафика (например, веб или электронную почту).
  • Расширенные ACL: фильтруют трафик по нескольким параметрам: IP-адрес источника и назначения, протокол (TCP, UDP, ICMP), порты источника и назначения, а также флаги (например, установленный флаг SYN). Имеют номера от 100 до 199. Обеспечивают более точный контроль.
  • Динамические ACL (Lock-and-Key): создаются временно, на основе аутентификации пользователя или других событий. Активируются при выполнении определённых условий (например, успешном входе по Telnet). Используются для предоставления временного доступа.
  • Рефлексивные ACL: автоматически создают временные правила для ответного трафика. Позволяют разрешить входящие пакеты, только если они являются ответом на исходящие запросы. Повышают безопасность, не требуя ручного создания правил для обратного трафика.
  • ACL на основе времени (Time-based ACL): активируются или деактивируются в определённые временные интервалы (например, с 9:00 до 18:00 в будние дни). Полезны для ограничения доступа в нерабочее время.

По месту применения

  • Входящие ACL (Inbound): применяются к трафику, поступающему на интерфейс устройства. Фильтрация происходит до того, как пакет будет обработан маршрутизатором.
  • Исходящие ACL (Outbound): применяются к трафику, покидающему интерфейс устройства. Пакет сначала обрабатывается, а затем проверяется на соответствие правилам.

По направлению действия

  • ACL для IPv4: фильтруют трафик в сетях, использующих протокол IPv4.
  • ACL для IPv6: аналогичны, но работают с адресами и протоколами IPv6. Часто имеют расширенный синтаксис для поддержки новых функций (например, ICMPv6).

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

ACL представляет собой упорядоченный список правил (entry), каждое из которых состоит из условия и действия. Условие — это набор критериев, которым должен соответствовать пакет (например, «IP-адрес источника = 192.168.1.0/24»). Действие — это либо «разрешить» (permit), либо «запретить» (deny).

Принцип работы ACL основан на последовательном переборе правил сверху вниз. Когда пакет достигает интерфейса устройства, он проверяется на соответствие первому правилу списка:

  1. Если пакет соответствует условию первого правила, применяется действие этого правила (permit или deny). Процесс проверки для данного пакета завершается.
  2. Если пакет не соответствует первому правилу, он проверяется по второму, третьему и так далее, пока не будет найдено совпадение.
  3. Если пакет не соответствует ни одному из правил, применяется неявное правило по умолчанию: deny all (запретить всё). Это означает, что если нет явного разрешающего правила, пакет будет заблокирован.

Важной особенностью является порядок правил. Изменение порядка может кардинально изменить поведение ACL. Например, если сначала указать правило «запретить все», а затем — «разрешить HTTP», то HTTP-трафик всё равно будет заблокирован, так как первое правило отклонит его раньше.

Применение

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

Обеспечение безопасности

  • Фильтрация нежелательного трафика: блокировка известных вредоносных IP-адресов, портов, используемых вредоносным ПО (например, порты 135-139 для NetBIOS, 445 для SMB).
  • Изоляция сегментов сети: ACL на маршрутизаторах или межсетевых экранах могут предотвращать несанкционированный доступ между VLAN (виртуальными локальными сетями), например, между сетью бухгалтерии и сетью общего доступа.
  • Защита от атак: ограничение количества ICMP-пакетов (например, для защиты от ping flood) или блокировка подозрительных TCP-флагов (например, сканирование портов с флагом FIN).
  • Контроль доступа к ресурсам: разрешение доступа к критически важным серверам (например, к серверу базы данных) только с определённых IP-адресов администраторов.

Управление трафиком

  • QoS (Quality of Service): ACL могут использоваться для классификации трафика, который затем обрабатывается с приоритетом (например, голосовой трафик VoIP получает более высокий приоритет, чем файловые загрузки).
  • Ограничение полосы пропускания: комбинируя ACL с механизмами шейпинга или полисинга (например, CAR — Committed Access Rate), можно ограничить скорость для определённых типов трафика.
  • Направление трафика: ACL могут применяться для маршрутизации на основе политик (PBR — Policy-Based Routing), направляя определённые пакеты через альтернативные пути.

Аудит и мониторинг

  • Логирование: ACL могут быть настроены на запись информации о заблокированных или разрешённых пакетах. Это позволяет администраторам выявлять аномалии, атаки или ошибки конфигурации.
  • Статистика: счётчики пакетов для каждого правила ACL помогают анализировать загрузку сети и эффективность политик безопасности.

Примеры

Пример 1: Стандартный ACL (Cisco IOS)

Предположим, необходимо запретить доступ из подсети 192.168.2.0/24 к сети 10.0.0.0/8.

`` access-list 10 deny 192.168.2.0 0.0.0.255 access-list 10 permit any interface GigabitEthernet0/0 ip access-group 10 out ``

  • access-list 10 — номер стандартного ACL.
  • deny 192.168.2.0 0.0.0.255 — запретить все пакеты с IP-адресами от 192.168.2.0 до 192.168.2.255.
  • permit any — разрешить все остальное (иначе неявное deny заблокирует весь трафик).
  • ip access-group 10 out — применить ACL к исходящему трафику на интерфейсе.

Пример 2: Расширенный ACL (Cisco IOS)

Необходимо разрешить только SSH-доступ (порт 22) с хоста 10.0.0.1 на сервер 192.168.1.100, а весь остальной трафик к этому серверу заблокировать.

`` access-list 101 permit tcp host 10.0.0.1 host 192.168.1.100 eq 22 access-list 101 deny ip any host 192.168.1.100 access-list 101 permit ip any any interface GigabitEthernet0/1 ip access-group 101 in ``

  • access-list 101 — номер расширенного ACL.
  • permit tcp host 10.0.0.1 host 192.168.1.100 eq 22 — разрешить TCP-пакеты с источника 10.0.0.1 на адрес 192.168.1.100, только если порт назначения равен 22.
  • deny ip any host 192.168.1.100 — запретить все остальные IP-пакеты к серверу.
  • permit ip any any — разрешить весь остальной трафик (чтобы не блокировать работу других устройств).

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

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

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

Современные системы безопасности, такие как межсетевые экраны следующего поколения (NGFW) и системы предотвращения вторжений (IPS), дополняют ACL более продвинутыми методами анализа, включая проверку состояния сессии (stateful inspection) и глубокий анализ пакетов (DPI).

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

  • В стандартных ACL Cisco номер от 1 до 99 и от 1300 до 1999; расширенные — от 100 до 199 и от 2000 до 2699.
  • В некоторых реализациях (например, в Linux с помощью iptables) ACL могут быть организованы в цепочки (chains), что позволяет создавать более гибкие иерархии правил.
  • Первоначально ACL использовались в файловых системах (например, в UNIX), а затем были перенесены в сетевые технологии.

Источники

  • Cisco Systems. "Configuring IP Access Lists". Cisco IOS Configuration Guide.
  • Kurose, J. F., & Ross, K. W. (2017). Computer Networking: A Top-Down Approach (7th ed.). Pearson.
  • Stallings, W. (2016). Network Security Essentials: Applications and Standards (6th ed.). Pearson.
  • Документация по межсетевым экранам (например, pfSense, iptables).

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

На главную BFOmetr →