ACL
Введение
Списки управления доступом (Access Control Lists, ACL) представляют собой механизм, используемый для фильтрации трафика в компьютерных сетях и управления доступом к ресурсам. Они являются важным инструментом для сетевых администраторов, позволяя устанавливать правила обработки трафика на маршрутизаторах, коммутаторах и брандмауэрах.
Основные принципы работы ACL
ACL работают на основе набора правил, которые применяются к сетевым пакетам, проходящим через устройство. Каждое правило в ACL содержит критерии, по которым принимается решение о разрешении или блокировке трафика. Основные параметры, которые могут использоваться в правилах ACL:
- IP-адрес источника
- IP-адрес назначения
- Порт источника
- Порт назначения
- Протокол (TCP, UDP, ICMP и др.)
- Другие параметры заголовков пакетов
ACL могут применяться как на входящем (inbound), так и на исходящем (outbound) трафике интерфейса.
Виды ACL
1. Стандартные ACL
Стандартные ACL (Standard ACL) работают только с IP-адресами источника. Они используются для базовой фильтрации трафика. Создаются с помощью номеров от 1 до 99 (или 1300-1999 для расширенного диапазона).
Команды:
access-list 10 permit 192.168.1.0 0.0.0.255 # Разрешает достп для сети 192.168.1.0/24
access-list 10— создает ACL с номером 10 (стандартный диапазон: 1-99, 1300-1999).permit 192.168.1.0 0.0.0.255— разрешает трафик от всех хостов в указанной сети.
access-list 10 deny any # Запрещает весь остальной трафик
deny any— запрещает все остальные IP-пакеты, не соответствующие предыдущему правилу.
2. Расширенные ACL
Расширенные ACL (Extended ACL) позволяют фильтровать трафик по IP-адресу источника и назначения, протоколам, портам и другим параметрам. Используют номера от 100 до 199 (или 2000-2699).
Команды:
access-list 100 permit tcp 192.168.1.0 0.0.0.255 any eq 80
access-list 100— создает ACL с номером 100 (расширенный диапазон: 100-199, 2000-2699).permit tcp— разрешает только TCP-трафик.192.168.1.0 0.0.0.255— задает источник (сеть 192.168.1.0/24).any eq 80— указывает, что разрешен трафик только к порту 80 (HTTP).
access-list 100 deny ip any any
deny ip any any— запрещает весь остальной трафик.
3. Нумерованные и именованные ACL
ACL могут быть нумерованными (как в предыдущих примерах) или именованными (Named ACL), что делает их более удобными для управления.
Команды:
ip access-list extended MY_ACL
permit tcp any any eq 22
ip access-list extended MY_ACL— создает именованный список.permit tcp any any eq 22— разрешает SSH-трафик.
4. Динамические ACL (Lock-and-Key ACL)
Позволяют пользователям аутентифицироваться перед тем, как им будет разрешен доступ через ACL. Используются для повышения безопасности.
5. Временные ACL (Time-Based ACL)
Позволяют применять правила на основе временных интервалов. Используются для ограничения доступа в определённые периоды времени.
6. Reflexive ACL
Отслеживают исходящие соединения и автоматически разрешают обратные ответы на них. Используются для динамической фильтрации трафика.
7. Zone-Based ACL
Используются в современных брандмауэрах и маршрутизаторах, работая в рамках зон безопасности, а не на отдельных интерфейсах.
Размещение и порядок обработки ACL
ACL обрабатываются сверху вниз, и при совпадении с правилом дальнейшая проверка не производится. В конце каждой ACL есть скрытое правило "deny any any", блокирующее весь остальной трафик, если не заданы другие правила.
Рекомендации по размещению ACL:
- Стандартные ACL размещают как можно ближе к месту назначения трафика.
- Расширенные ACL размещают как можно ближе к источнику трафика.
- Минимизировать количество правил, чтобы снизить нагрузку на оборудование.
Размещение ACL на входе и выходе:
- Входящие ACL (Inbound ACL): Фильтруют пакеты перед тем, как они будут обработаны устройством. Они позволяют отбрасывать нежелательный трафик, прежде чем он будет передан в маршрутизационную таблицу, что снижает нагрузку на устройство.
- Используются для блокировки нежелательного трафика на ранней стадии.
- Размещаются ближе к источнику трафика, если необходимо блокировать пакеты как можно раньше.
-
Исходящие ACL (Outbound ACL): Применяются после того, как пакеты были обработаны устройством и готовы к отправке в сеть. Они полезны, когда необходимо контролировать, какие пакеты покидают устройство.
- Используются для управления трафиком, покидающим сеть.
- Размещаются ближе к месту назначения, если требуется контролировать отправляемый трафик.
Описание команд ACL
access-list <номер> <действие> <протокол> <источник> <маска> <назначение> <маска> [eq порт]- номер — идентификатор ACL (1-99 для стандартных, 100-199 для расширенных).
- действие —
permit(разрешить) илиdeny(запретить). - протокол —
ip,tcp,udp,icmpи др. - источник — IP-адрес отправителя или
any. - маска — обратная маска (например,
0.0.0.255). - назначение — IP-адрес получателя или
any. - порт — можно указать конкретный (
eq 80для HTTP) или диапазон (range 1024 65535).
ip access-group <номер или имя> in|outПрименяет ACL к интерфейсу.
- номер или имя — ранее созданный ACL.
- in — для входящего трафика.
- out — для исходящего трафика.
Примеры практического применения ACL
- Ограничение доступа в Интернет для локальной сети
- Фильтрация нежелательного трафика (торренты, соцсети)
- Ограничение доступа к критически важным серверам
- Обеспечение безопасности маршрутизаторов и коммутаторов
Ошибки при настройке ACL
- Размещение стандартных ACL слишком близко к источнику
- Отсутствие явного разрешения трафика, приводящее к блокировке всего трафика
- Неправильный порядок правил в ACL
- Отсутствие учета скрытого правила
deny any any
Заключение
ACL являются важным инструментом управления сетевой безопасностью. Их грамотная настройка позволяет контролировать доступ к ресурсам, ограничивать нежелательный трафик и защищать сеть от угроз. Каждый сетевой администратор должен уметь работать с ACL, понимать принципы их работы и учитывать нюансы конфигурации для различных платформ.