Безопасность : Межсетевой экран Cisco IOS

Настройка списков доступа IP

23 марта 2008 - Перевод, выполненный профессиональным переводчиком
Другие версии: PDF-версия:pdf | Машинный перевод (28 июля 2013) | Английский (27 декабря 2007) | Отзыв

Содержание

Общие сведения
Предварительные условия
      Требования
      Используемые компоненты
      Условные обозначения
Ключевые понятия ACL
      Маски
      Уплотнение ACL
      Обработка списков ACL
      Определение портов и типов сообщений
      Применение списков ACL
      Определение входа, выхода, источника и места назначения
      Изменение списков ACL
      Поиск и устранение неисправностей
Типы списков ACL для IP
      Схема сети
      Стандартные списки ACLs
      Расширенные списки ACL
      "Замок и ключ" (динамические списки ACL)
      Именованные списки ACL для протокола IP
      Рефлексивные списки ACLs
      Синхронизируемые списки ACL с временными диапазонами
      Комментируемые записи ACL для протокола IP
      Контроль доступа на основе содержимого
      Прокси-сервер аутентификации
      Turbo-списки ACL
      Распределенные синхронизируемые списки ACL
      Списки ACL для входящего трафика
      Списки ACL для защиты инфраструктуры
      Транзитные списки ACL
Связанные обсуждения сообщества поддержки Cisco
Дополнительные сведения

Общие сведения

В этом документе объясняется принцип применения списков контроля доступа (ACL) IP для фильтрации сетевого трафика. Также в нем содержатся краткие описания типов IP ACL, доступности функций и примеры использования в сети.

Используйте служебную программу Software Advisor (только для зарегистрированных пользователей) для настройки поддержки некоторых наиболее специфических функций IP ACL в Cisco IOS®.

RFC 1700 leavingcisco.com содержит назначенные номера общеизвестных портов. RFC 1918 leavingcisco.com содержит выделение адресов для частных Интернет- и IP-адресов, которые не должны отображаться в Интернете.

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

Предварительные условия

Требования

Для данного документа нет особых требований. Обсуждаемые ключевые понятия справедливы для программного обеспечения Cisco IOS® Releases 8.3 и выше. Это указано ниже каждой функции в списке доступа.

Используемые компоненты

В данном документе обсуждаются различные типы списков ACL. Некоторые из них существуют с версии Cisco IOS Releases 8.3, а другие были внедрены в более поздних программных версиях. Это указано в обсуждении каждого типа списков.

Данные для документа были получены в специально созданных лабораторных условиях. При написании данного документа использовались только устройства с пустой (стандартной) конфигурацией. В рабочей сети необходимо изучить потенциальное воздействие всех команд.

Условные обозначения

Сведения об условных обозначениях см. в разделе Технические рекомендации Cisco. Условные обозначения.

Ключевые понятия ACL

В этом разделе описываются ключевые понятия списков ACL.

Маски

Маски используются с IP-адресами в IP-списках ACL для выбора разрешенных и запрещенных элементов. Маски предназначены для настройки IP-адресов на интерфейсах, начинающихся с 255 и имеющих большие значения в левой части, например, IP-адрес 209.165.202.129 с маской 255.255.255.224. Маски, используемые для списков доступа для IP, являются обратными (например, маска 0.0.0.255). Это иногда называется инвертированной маской или шаблоном маски. Когда значение маски разбивается на двоичный код (нули и единицы), результаты определяют, какие биты адреса следует учитывать при обработке трафика. Значение 0 указывает, что биты адреса необходимо учитывать (точное соответствие); 1 в маске означает "безразличный" разряд. В этой таблице ключевые понятия объясняются более подробно.

Пример маски

сетевой адрес (трафик, который необходимо обрабатывать)

10.1.1.0

маска

0.0.0.255

сетевой адрес (двоичный)

00001010.00000001.00000001.00000000

маска (двоичная)

00000000.00000000.00000000.11111111

На основе двоичной маски можно увидеть, что первые три набора (октета) должны точно соответствовать указанному двоичному сетевому адресу (00001010.00000001.00000001). Единицы последнего набора цифр (байт) означают "безразличные" разряды (.11111111). Поэтому учитывается весь трафик, который начинается с 10.1.1., так как последний октет может быть любым. Поэтому с данной маской обрабатываются сетевые адреса с 10.1.1.1 до 10.1.1.255 (10.1.1.x).

Для определения обратной маски ACL вычтите обычную маску из 255.255.255.255. Пример определения обратной маски для сетевого адреса 172.16.1.0 с обычной маской 255.255.255.0:

  • 255.255.255.255 - 255.255.255.0 (обычная маска) = 0.0.0.255 (обратная маска)

Учтите эти эквиваленты ACL.

  • IP-адрес источника/маска подсети 0.0.0.0/255.255.255.255 означает "любой"

  • Источник и маска 10.1.1.2/0.0.0.0 аналогичны "host 10.1.1.2"

Уплотнение ACL

Примечание. Маски подсетей можно также представить в виде записи фиксированной длины. Например, 192.168.10.0/24 соответствует 192.168.10.0 255.255.255.0.

В данном списке указан принцип уплотнения диапазона сетей в единую сеть для оптимизации списка ACL. Учитывайте такие сети.

192.168.32.0/24
192.168.33.0/24
192.168.34.0/24
192.168.35.0/24
192.168.36.0/24
192.168.37.0/24
192.168.38.0/24
192.168.39.0/24

Первые два октета и последний октет одинаковы для каждой сети. Данная таблица служит пояснением принципа уплотнения сетей в единую сеть.

Третий октет предыдущих сетей может быть записан так, как указано в данной таблице, в соответствии с позицией бита октета и значением адреса для каждого бита.

Десятичное значение

128

64

32

16

8

4

2

1

32

0

0

1

0

0

0

0

0

33

0

0

1

0

0

0

0

1

34

0

0

1

0

0

0

1

0

35

0

0

1

0

0

0

1

1

36

0

0

1

0

0

1

0

0

37

0

0

1

0

0

1

0

1

38

0

0

1

0

0

1

1

0

39

0

0

1

0

0

1

1

1

M

M

M

M

M

D

D

D

Поскольку первые пять бит совпадают, предыдущие восемь сетей могут быть уплотнены в единую сеть (192.168.32.0/21 или 192.168.32.0 255.255.248.0). Все восемь возможных сочетаний этих трех бит младших разрядов соответствуют диапазону рассматриваемых сетей. Данная команда определяет список ACL, разрешающий данную сеть. Если вычесть 255.255.248.0 (обычную маску) из 255.255.255.255, результат будет равен 0.0.7.255.

access-list acl_permit permit ip 192.168.32.0 0.0.7.255

Запомните этот набор сетей для дальнейшего рассмотрения.

192.168.146.0/24
192.168.147.0/24
192.168.148.0/24
192.168.149.0/24

Первые два октета и последний октет одинаковы для каждой сети. Данная таблица служит пояснением принципа уплотнения этих сетей.

Третий октет предыдущих сетей может быть записан так, как указано в данной таблице, в соответствии с позицией бита октета и значением адреса для каждого бита.

Десятичное значение

128

64

32

16

8

4

2

1

146

1

0

0

1

0

0

1

0

147

1

0

0

1

0

0

1

1

148

1

0

0

1

0

1

0

0

149

1

0

0

1

0

1

0

1

M

M

M

M

M

?

?

?

Эти сети, в отличие от предыдущего примера, невозможно уплотнить в единую сеть. Необходимо как минимум две сети. Предыдущие сети можно уплотнить в следующие две сети:

  • Для сетей 192.168.146.x и 192.168.147.x совпадают все биты за исключением одного, представляющего "безразличный" разряд. Это может быть записано следующим образом: 192.168.146.0/23 (или 192.168.146.0 255.255.254.0);

  • Для сетей 192.168.148.x и 192.168.149.x совпадают все биты за исключением одного, представляющего "безразличный" разряд. Это может быть записано следующим образом: 192.168.148.0/23 (или 192.168.148.0 255.255.254.0).

Эти выходные данные определяют уплотненный список ACL для вышеуказанных сетей.

access-list 10 permit ip 192.168.146.0 0.0.1.255
access-list 10 permit ip 192.168.148.0 0.0.1.255

Обработка списков ACL

Трафик, поступающий на маршрутизатор, сравнивается с записями ACL на основе очередности появления записей в маршрутизаторе. Новые записи добавляются в конец списка. Маршрутизатор продолжает поиск до нахождения соответствия. Если маршрутизатор доходит до конца списка, не найдя соответствий, трафик не принимается. По этой причине наиболее часто используемые записи должны располагаться в начале списка. Существует неявный запрет на трафик, который не разрешен. Список ACL с единственной записью “deny” приводит к запрету всего трафика. Необходимо использовать как минимум одну разрешающую запись ACL, иначе весь трафик будет блокироваться. Результаты применения этих двух списков ACL (101 и 102) аналогичны.

access-list 101 permit ip 10.1.1.0 0.0.0.255 172.16.1.0 0.0.0.255
 
access-list 102 permit ip 10.1.1.0 0.0.0.255 172.16.1.0 0.0.0.255 
access-list 102 deny ip any any 

В этом примере достаточно последней записи. В первых трех записях нет необходимости, поскольку протокол TCP содержит протокол Telnet, а протокол IP содержит протоколы TCP, UDP и ICMP.

access-list 101 permit tcp host 10.1.1.2 host 172.16.1.1 eq telnet 
access-list 101 permit tcp host 10.1.1.2 host 172.16.1.1
access-list 101 permit udp host 10.1.1.2 host 172.16.1.1
access-list 101 permit ip 10.1.1.0 0.0.0.255 172.16.1.0 0.0.0.255 

Определение портов и типов сообщений

Помимо определения источника и места назначения ACL можно задать порты, типы сообщений ICMP и прочие параметры. Хорошим источником информации для общеизвестных портов является RFC 1700 leavingcisco.com. В RFC 792 leavingcisco.com поясняются типы сообщений ICMP.

Маршрутизатор может отображать описательный текст по некоторым общеизвестным портам. Используйте команду ? для получения справки.

access-list 102 permit tcp host 10.1.1.1 host 172.16.1.1 eq ?
  bgp          Border Gateway Protocol (179)
  chargen      Character generator (19)
  cmd          Remote commands (rcmd, 514)

Во время настройки, маршрутизатор также преобразует числовые значения в значения, более удобные для пользователя. Ниже указан пример, где при вводе номера типа сообщения ICMP маршрутизатор преобразует номер в имя.

access-list 102 permit icmp host 10.1.1.1 host 172.16.1.1 14

преобразуется в

access-list 102 permit icmp host 10.1.1.1 host 172.16.1.1 timestamp-reply

Применение списков ACL

Можно определить ACL без их применения. Но эффекта от списков ACL не будет до тех пор, пока они не применены к интерфейсу маршрутизатора. Рекомендуется применять ACL на интерфейсе, который ближе других расположен к источнику трафика. Как отображено в следующем примере, при попытке блокировать трафик от источника до места назначения можно применить входящий список ACL до E0 на маршрутизаторе A вместо исходящего списка E1 на маршрутизаторе C.

confaccesslists-1.gif

Определение входа, выхода, источника и места назначения

Термины "вход", "выход", "источник" и "место назначения" используются относительно маршрутизатора. Трафик в маршрутизаторе можно сравнить с трафиком на магистрали. Предположим, вы сотрудник правоохранительных органов в Твери и хотите остановить автомобиль, который движется из Москвы в Петербург. Источником фургона является Москва, а местом назначения - Петербург. Можно организовать контрольно-пропускной пункт на границе Тверской области и Ленинградской области (на въезде) или на границе Московской и Тверской области (на выезде).

Относительно маршрутизатора данные термины имеют указанные значения.

  • Выход – трафик, который уже прошел через маршрутизатор и уходит с интерфейса. Источник, где он находился, на другой стороне маршрутизатора, и место назначения, куда он направляется.

  • Вход – трафик, поступающий на интерфейс и проходящий затем через маршрутизатор. Источник, где он находился, и место назначения, куда он направляется, на другой стороне маршрутизатора.

Входной список ACL использует источник на сегменте интерфейса, к которому он применяется, и любой другой интерфейс в качестве места назначения. Выходной список ACL использует источник на любом интерфейсе, кроме интерфейса, к которому он применяется, и любой интерфейс, отличный от этого, в качестве места назначения.

Изменение списков ACL

При изменении списка ACL требуется особое внимание. Например, при попытке удалить указанным ниже образом определенную строку из нумерованного списка ACL будет удален весь список ACL.

router#configure terminal
  Enter configuration commands, one per line.  End with CNTL/Z.
  router(config)#access-list 101 deny icmp any any
  router(config)#access-list 101 permit ip any any
  router(config)#^Z
  
  router#show access-list
  Extended IP access list 101
      deny icmp any any
      permit ip any any
  router#
  *Mar  9 00:43:12.784: %SYS-5-CONFIG_I: Configured from console by console

  router#configure terminal
  Enter configuration commands, one per line.  End with CNTL/Z.
  router(config)#no access-list 101 deny icmp any any
  router(config)#^Z
  
  router#show access-list
  router#
  *Mar  9 00:43:29.832: %SYS-5-CONFIG_I: Configured from console by console

Для редактирования нумерованных списков ACL скопируйте конфигурацию маршрутизатора на сервер TFTP или в текстовый редактор, например, блокнот. Затем внесите нужные изменения и скопируйте конфигурацию обратно на маршрутизатор.

Также можно сделать следующее.

router#configure terminal
  Enter configuration commands, one per line.  
  router(config)#ip access-list extended test
  router(config-ext-nacl)#permit ip host 2.2.2.2 host 3.3.3.3
  router(config-ext-nacl)#permit tcp host 1.1.1.1 host 5.5.5.5 eq www
  router(config-ext-nacl)#permit icmp any any
  router(config-ext-nacl)#permit udp host 6.6.6.6 10.10.10.0 0.0.0.255 eq domain
  router(config-ext-nacl)#^Z
  1d00h: %SYS-5-CONFIG_I: Configured from console by consoles-l

  router#show access-list
  Extended IP access list test
      permit ip host 2.2.2.2 host 3.3.3.3
      permit tcp host 1.1.1.1 host 5.5.5.5 eq www
      permit icmp any any
      permit udp host 6.6.6.6 10.10.10.0 0.0.0.255 eq domain

Удаляемые элементы вырезаются из списка ACL, а необходимые дополнения вставляются в конец списка.

router#configure terminal
   Enter configuration commands, one per line.  End with CNTL/Z.
   router(config)#ip access-list extended test
   
!--- Строка ACL удалена

   router(config-ext-nacl)#no permit icmp any any
   
!--- Строка ACL добавлена

   router(config-ext-nacl)#permit gre host 4.4.4.4 host 8.8.8.8
   router(config-ext-nacl)#^Z
   1d00h: %SYS-5-CONFIG_I: Configured from console by consoles-l
   
   router#show access-list
   Extended IP access list test
       permit ip host 2.2.2.2 host 3.3.3.3
       permit tcp host 1.1.1.1 host 5.5.5.5 eq www
       permit udp host 6.6.6.6 10.10.10.0 0.0.0.255 eq domain
       permit gre host 4.4.4.4 host 8.8.8.8

Также можно добавлять строки в стандартные нумерованные списки ACL или расширенные нумерованные списки ACL с помощью их порядковых номеров в Cisco IOS. Пример конфигурации:

Настройте расширенный список ACL следующим образом:

Router(config)#access-list 101 permit tcp any any
Router(config)#access-list 101 permit udp any any
Router(config)#access-list 101 permit icmp any any
Router(config)#exit
Router#

Введите команду show access-list для просмотра записей ACL. Также отобразятся порядковые номера, такие как 10, 20 и 30.

Router#show access-list
Extended IP access list 101
    10 permit tcp any any
    20 permit udp any any
    30 permit icmp any any

Добавьте запись для списка доступа 101 с порядковым номером 5.

Пример 1:

Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#ip access-list extended 101
Router(config-ext-nacl)#5 deny tcp any any eq telnet
Router(config-ext-nacl)#exit
Router(config)#exit
Router#

В выходных данных команды show access-list порядковый номер 5 добавляется в качестве первой записи для списка доступа 101.

Router#show access-list
Extended IP access list 101
    5 deny tcp any any eq telnet
    10 permit tcp any any
    20 permit udp any any
    30 permit icmp any any
Router#

Пример 2:

internetrouter#show access-lists
Extended IP access list 101
    10 permit tcp any any
    15 permit tcp any host 172.162.2.9
    20 permit udp host 172.16.1.21 any
    30 permit udp host 172.16.1.22 any

internetrouter#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
internetrouter(config)#ip access-list extended 101
internetrouter(config-ext-nacl)#18 per tcp any host 172.162.2.11
internetrouter(config-ext-nacl)#^Z

internetrouter#show access-lists
Extended IP access list 101
    10 permit tcp any any
    15 permit tcp any host 172.162.2.9
    18 permit tcp any host 172.162.2.11
    20 permit udp host 172.16.1.21 any
    30 permit udp host 172.16.1.22 any
internetrouter#

Аналогичным образом можно настроить стандартный список доступа:

internetrouter(config)#access-list 2 permit 172.16.1.2
internetrouter(config)#access-list 2 permit 172.16.1.10
internetrouter(config)#access-list 2 permit 172.16.1.11

internetrouter#show access-lists
Standard IP access list 2
    30 permit 172.16.1.11
    20 permit 172.16.1.10
    10 permit 172.16.1.2

internetrouter(config)#ip access-list standard 2
internetrouter(config-std-nacl)#25 per 172.16.1.7
internetrouter(config-std-nacl)#15 per 172.16.1.16

internetrouter#show access-lists
Standard IP access list 2
    15 permit 172.16.1.16
    30 permit 172.16.1.11
    20 permit 172.16.1.10
    25 permit 172.16.1.7
    10 permit 172.16.1.2

Основным отличием стандартного списка доступа является то, что Cisco IOS добавляет записи по убыванию IP-адресов, а не порядковых номеров.

В данном примере отображены различные записи, в т.ч. для разрешения IP-адреса (192.168.100.0) или сетей (10.10.10.0).

internetrouter#show access-lists
Standard IP access list 19
    10 permit 192.168.100.0
    15 permit 10.10.10.0, wildcard bits 0.0.0.255
    19 permit 201.101.110.0, wildcard bits 0.0.0.255
    25 deny any

Добавьте запись в список доступа 2 для разрешения IP-адреса 172.22.1.1:

internetrouter(config)#ip access-list standard 2
internetrouter(config-std-nacl)#18 permit 172.22.1.1

Данная запись добавляется сверху списка для указания приоритета конкретного IP-адреса, а не сети.

internetrouter#show access-lists
Standard IP access list 19
    10 permit 192.168.100.0
    18 permit 172.22.1.1
    15 permit 10.10.10.0, wildcard bits 0.0.0.255
    19 permit 201.101.110.0, wildcard bits 0.0.0.255
    25 deny   any

Примечание. Предыдущие версии списков ACL не поддерживаются программными средствами Security Appliance, например брандмауэром ASA/PIX.

Поиск и устранение неисправностей

Как удалить список ACL из интерфейса?

Перейдите в режим настройки и введите no перед командой access-group, как показано в данном примере, для удаления списка ACL из интерфейса.

interface <interface> 
no ip access-group #in|out

Что делать, когда слишком большое количество трафика отвергается?

Если отвергается слишком большое количество трафика, то проанализируйте принципы существующего списка для определения и применения расширенного списка. Команда show ip access-lists выводит счетчик пакетов, отображающий, к какой записи списка ACL выполняется обращение.

Ключевое слово log в конце отдельных записей ACL отображает помимо информации о порте номер ACL и факт разрешения или отвержения пакета.

Примечание. Ключевое слово log-input существует в ПО Cisco IOS Release 11.2 и выше, а также в некоторых типах ПО на основе Cisco IOS Release 11.1, созданных специально для рынка поставщиков услуг. Старое ПО не поддерживает это ключевое слово. Использование этого ключевого слова предполагает отображение, по возможности, входного интерфейса и MAC-адреса источника.

Как отладить уровень пакетов, использующий маршрутизатор Cisco?

В данной процедуре объясняется процесс отладки. Прежде всего, необходимо убедиться в отсутствии действующих списков ACL, в наличии списка ACL и в активации режима быстрой коммутации.

Примечание. Будьте предельно осторожно при отладке системы с высокой информационной загрузкой. Используйте список ACL для отладки определенного трафика. Но будьте осторожны с процессом и потоком трафика.

  1. Используйте команду access-list для получения необходимых данных.

    В данном примере получение данных настроено на адрес места назначения 10.2.6.6 или исходный адрес 10.2.6.6.

    access-list 101 permit ip any host 10.2.6.6
    access-list 101 permit ip host 10.2.6.6 any
    
  2. Отключите быструю коммутацию на вовлеченных интерфейсах. Если быстрая коммутация не отключена, видимым будет только первый пакет.

    config interface
    no ip route-cache
    
  3. Введите команду terminal monitor в режиме "enable" для отображения выходных данных команды debug и сообщений о системных ошибках для текущего терминала и сеанса.

  4. Введите команду debug ip packet 101 или debug ip packet 101 detail, чтобы начать процесс отладки.

  5. Используйте команду no debug all в режиме "enable" и команду interface configuration, чтобы прервать процесс отладки.

  6. Перезапустите кэширование.

    config interface
    ip route-cache
    

Типы списков ACL для IP

В данном разделе документа описываются типы списков ACL.

Схема сети

confaccesslists-2.gif

Стандартные списки ACL

Стандартные списки ACL - это самый старый тип ACL. Их появление датируется выпуском ПО Cisco IOS Release 8.3. Стандартные списки ACL управляют трафиком, сравнивая адрес источника IP-пакетов с адресами, заданными в списке.

Ниже приведен формат синтаксиса команд стандартного списка ACL.

access-list access-list-number {permit|deny} 
{host|source source-wildcard|any}

Во всех версиях программного обеспечения номер access-list-number может варьироваться от 1 до 99. В ПО Cisco IOS Release 12.0.1 стандартные списки ACL начали использовать дополнительные номера (от 1300 до 1999). Эти дополнительные номера относятся к расширенным спискам ACL для IP. Программное обеспечение Cisco IOS Release 11.2 предоставило возможность использовать имя списка (поле name) в стандартных ACL.

Параметр source/source-wildcard, равный 0.0.0.0/255.255.255.255, можно указать как any. В случае, когда используются только нули, шаблон можно опустить. Поэтому сервер 10.1.1.2 0.0.0.0 аналогичен серверу 10.1.1.2.

После определения списка ACL его нужно применить к интерфейсу (входящему или исходящему). В более ранних версиях программного обеспечения "out" (выход) было значением по умолчанию, если не было задано ключевое слово "out" или "in" (вход). В более поздних версиях программного обеспечения необходимо указывать направление.

interface <interface>
ip access-group number {in|out}

Ниже приведен пример использования стандартного списка ACL для блокирования всего трафика за исключением трафика из источника 10.1.1.x.

interface Ethernet0/0 
ip address 10.1.1.1 255.255.255.0 
ip access-group 1 in
access-list 1 permit 10.1.1.0 0.0.0.255 

Расширенные списки ACL

Расширенные списки ACL появились в ПО Cisco IOS Release 8.3. Расширенные списки ACL управляют трафиком, сравнивая адреса источника и места назначения IP-пакетов с адресами, заданными в списке.

Ниже приведен формат синтаксиса команд расширенных списков ACL. Некоторые строки были обрезаны из соображений размещения.

IP

access-list access-list-number [dynamic dynamic-name [timeout minutes]]
{deny | permit} protocol source source-wildcard
destination destination-wildcard [precedence precedence] 
[tos tos] [log | log-input] [time-range time-range-name]

ICMP

access-list access-list-number [dynamic dynamic-name [timeout minutes]] 
{deny | permit} icmp source source-wildcard 
destination destination-wildcard 
[icmp-type | [[icmp-type icmp-code] | [icmp-message]] 
[precedence precedence] [tos tos] [log | log-input] 
[time-range time-range-name] 

TCP

access-list access-list-number [dynamic dynamic-name [timeout minutes]]
{deny | permit} tcp source source-wildcard [operator [port]] 
destination destination-wildcard [operator [port]] [established]
[precedence precedence] [tos tos] [log | log-input] 
[time-range time-range-name] 

UDP

access-list access-list-number [dynamic dynamic-name [timeout minutes]] 
{deny | permit} udp source source-wildcard [operator [port]] 
destination destination-wildcard [operator [port]] 
[precedence precedence] [tos tos] [log | log-input] 
[time-range time-range-name]

Во всех версиях программного обеспечения номер access-list-number может варьироваться от 101 до 199. В ПО Cisco IOS Release 12.0.1 в расширенных списках ACL начали использовать дополнительные номера (от 2000 до 2699). Эти дополнительные номера относятся к расширенным спискам ACL для IP. Программное обеспечение Cisco IOS Release 11.2 предоставило возможность использовать имя списка (поле name) в расширенных ACL.

Значение 0.0.0.0/255.255.255.255 можно указать как any. После определения ACL его нужно применить к интерфейсу (входящему или исходящему). В более ранних версиях программного обеспечения "out" (выход) было значением по умолчанию, если не было задано ключевое слово "out" или "in" (вход). В более поздних версиях программного обеспечения необходимо указывать направление.

interface <interface> 
ip access-group {number|name} {in|out} 

Этот расширенный список ACL используется для разрешения трафика внутри сети 10.1.1.x и для получения откликов "ping" извне, с блокированием непредусмотренных запросов "ping" извне и с разрешением всего остального трафика.

interface Ethernet0/1 
ip address 172.16.1.2 255.255.255.0 
ip access-group 101 in 
access-list 101 deny icmp any 10.1.1.0 0.0.0.255 echo 
access-list 101 permit ip any 10.1.1.0 0.0.0.255

Примечание. Некоторые приложения (например, для контроля доступая сетью) отправляют эхо-запросы "ping" для поддержания соединения. В этом случае целесообразно ограничить блокировку входящих эхо-сигналов "ping" (или глубже детализировать разрешение/запрещение IP-адресов).

"Замок и ключ" (динамически списки ACL)

"Замок и ключ" (также известные как динамические списки ACL) появились в версии программного обеспечения Cisco IOS Release 11.1 . Реализация этой функции зависит от Telnet, локальной или удаленной аутентификации и расширенных списков ACL.

Настройка динамических списков контроля доступа начинается с применения расширенного списка ACL для блокирования трафика через маршрутизатор. Пользователи, пытающиеся передать данные через маршрутизатор, блокируются расширенным списком ACL до тех пор, пока они не войдут на маршрутизатор через Telnet и не будут аутентифицированы. Затем подключение Telnet сбрасывается, а динамический список ACL с одной записью добавляется к существующему расширенному списку ACL. Таким образом разрешается трафик на определенный период времени; можно задавать таймаут простоя и абсолютный таймаут.

Ниже указан формат синтаксиса команд для конфигурации динамических списков ACL с локальной аутентификацией.

username username password password
interface <interface> 
ip access-group {number|name} {in|out}

В этой команде список ACL с одной записью динамически добавляется после аутентификации к существующему списку ACL.

access-list access-list-number dynamic name{permit|deny} [protocol]
{source source-wildcard|any} {destination destination-wildcard|any}
[precedence precedence][tos tos][established] [log|log-input]
[operator destination-port|destination port] 

line vty line_range

 
login local

Это базовый пример динамического списка ACL.

username test password 0 test 

!--- Десять (минут) таймаут простоя.

username test autocommand access-enable host timeout 10 


interface Ethernet0/0 
  ip address 10.1.1.1 255.255.255.0 
  ip access-group 101 in 

access-list 101 permit tcp any host 10.1.1.1 eq telnet 

!--- 15 (минут) абсолютный таймаут.

access-list 101 dynamic testlist timeout 15 permit ip 10.1.1.0 0.0.0.255        
172.16.1.0 0.0.0.255


line vty 0 4 
login local 

После того, как пользователь 10.1.1.2 создает подключение Telnet к 10.1.1.1, применяется динамический список ACL. Затем соединение отключается и пользователь может переходить в сеть 172.16.1.x.

Именованные списки ACL для протокола IP

Именованные списки ACL для протокола IP появились в программном обеспечении Cisco IOS Release 11.2 . Они позволяют в стандартных и расширенных списках ACL использовать имена вместо номеров.

Ниже приведен формат синтаксиса команд именованных списков ACL для протокола IP.

ip access-list {extended|standard} name

Ниже представлен пример TCP:

permit|deny tcp source source-wildcard [operator [port]] 
destination destination-wildcard [operator [port]] [established] 
[precedence precedence] [tos tos] [log] [time-range time-range-name]

Ниже приведен пример использования именованного списка ACL для блокирования всего трафика за исключением подключения через Telnet от сервера 10.1.1.2 к серверу 172.16.1.1.

interface Ethernet0/0 
ip address 10.1.1.1 255.255.255.0 
ip access-group in_to_out in

ip access-list extended in_to_out 
permit tcp host 10.1.1.2 host 172.16.1.1 eq telnet 

Рефлексивные списки ACL

Рефлексивные списки ACL появились в программном обеспечении Cisco IOS Release 11.3. Рефлексивные списки ACL позволяют фильтровать IP-пакеты на основе информации сеанса верхнего уровня. Как правило, они используются для разрешения исходящего трафика и для ограничения входящего трафика в качестве реакции на сеансы, возникающие внутри маршрутизатора.

Рефлексивные списки ACL можно задать только с помощью расширенных именованных списков ACL для протокола IP. Их нельзя определить с помощью нумерованных или стандартных списков ACL для протокола IP или с помощью списков ACL для других протоколов. Рефлексивные списки ACL могут использоваться совместно с другими стандартными и статическими расширенными списками ACL.

Ниже приведен синтаксис различных команд рефлексивных списков ACL.

interface  
ip access-group {number|name} {in|out} 

ip access-list extended name
permit protocol any any reflect name [timeoutseconds] 
ip access-list extended name

evaluate name

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

ip reflexive-list timeout 120 
    
interface Ethernet0/1
 ip address 172.16.1.2 255.255.255.0
 ip access-group inboundfilters in
 ip access-group outboundfilters out 

ip access-list extended inboundfilters
permit icmp 172.16.1.0 0.0.0.255 10.1.1.0 0.0.0.255
evaluate tcptraffic 


!--- Это связывает часть reflexive ACL из outboundfilters   ACL,
!--- называемую tcptraffic, с inboundfilters ACL.

ip access-list extended outboundfilters
permit icmp 10.1.1.0 0.0.0.255 172.16.1.0 0.0.0.255 
permit tcp 10.1.1.0 0.0.0.255 172.16.1.0 0.0.0.255 reflect tcptraffic

Синхронизируемые списки ACL с временными диапазонами

Синхронизируемые списки ACL появились в программном обеспечении Cisco IOS Software Release 12.0.1.T. Хотя по функциям они схожи с расширенными списками ACL, они позволяют управлять доступом на основе времени. Чтобы реализовать синхронизируемые списки ACL, создается временной диапазон, определяющий конкретное время дня и недели. Временной диапазон обозначается именем и затем используется функцией. Таким образом, временные ограничения задаются непосредственно функцией. Временной диапазон основывается на системных часах маршрутизатора. Можно использовать часы маршрутизатора, но функция лучше работает с синхронизацией по протоколу сетевого времени (NTP).

Ниже представлены команды синхронизируемых списков ACL.


!--- Определяет именованный временной диапазон.

time-range time-range-name 

!--- Определяет периодические временные интервалы. 

periodic days-of-the-week hh:mm to [days-of-the-week] hh:mm 
       

!--- Или определяет абсолютные временные интервалы.

absolute [start time date] [end time date] 

!--- Временной диапазон, используемый в действительном ACL.

ip access-list name|number <extended_definition>time-rangename_of_time-range  

В этом примере разрешено подключение через Telnet из внутренней сети во внешнюю по понедельникам, средам и пятницам во время рабочих часов:

interface Ethernet0/0 
ip address 10.1.1.1 255.255.255.0 
ip access-group 101 in      

access-list 101 permit tcp 10.1.1.0 0.0.0.255 172.16.1.0 0.0.0.255        
eq telnet time-range EVERYOTHERDAY  

time-range EVERYOTHERDAY 
periodic Monday Wednesday Friday 8:00 to 17:00

Комментируемые записи ACL для протокола IP

Комментируемые записи ACL для протокола IP появились в программном обеспечении Cisco IOS Software Release 12.0.2.T. Комментарии упрощают понимание списков ACL и могут быть использованы для стандартных или расширенных списков ACL для протокола IP.

Ниже приведен синтаксис команд комментируемых именованных списков ACL для протокола IP.

ip access-list {standard|extended} name 
remark remark

Ниже приведен синтаксис команд комментируемых нумерованных списков ACL для протокола IP.

access-list access-list-number remark remark

Это пример комментариев к нумерованному списку ACL.

interface Ethernet0/0 
ip address 10.1.1.1 255.255.255.0 
ip access-group 101 in

access-list 101 remark permit_telnet 
access-list 101 permit tcp host 10.1.1.2 host 172.16.1.1 eq telnet 

Контроль доступа на основе содержимого

Контроль доступа на основе содержимого (CBAC) появился в программном обеспечении Cisco IOS Software Release 12.0.5.T и требуется наличие набора функций брандмауэра Cisco IOS. CBAC анализирует трафик, проходящий через брандмауэр, для определения и администрирования информации о состоянии сеансов TCP и UDP. Эта информация о состоянии используется для создания временных промежутков в списках доступа брандмауэра. Это достигается настройкой списков ip inspect в направлении потока инициации трафика, чтобы разрешить ответный трафик и дополнительные подключения передачи данных для допустимых сеансов (сеансов, которые возникли изнутри защищенной внутренней сети).

Ниже приведен синтаксис CBAC.

ip inspect name inspection-name protocol [timeoutseconds]

Это пример использования CBAC для анализа исходящего трафика. Без промежутков CBAC для ответного трафика расширенный список ACL 111 обычно блокирует ответный трафик, отличный от ICMP.

ip inspect name myfw ftp timeout 3600 
ip inspect name myfw http timeout 3600 
ip inspect name myfw tcp timeout 3600 
ip inspect name myfw udp timeout 3600 
ip inspect name myfw tftp timeout 3600      
interface Ethernet0/1 
       ip address 172.16.1.2 255.255.255.0 
       ip access-group 111 in 
       ip inspect myfw out      
access-list 111 deny icmp any 10.1.1.0 0.0.0.255 echo 
access-list 111 permit icmp any 10.1.1.0 0.0.0.255 

Прокси-сервер аутентификации

Прокси-сервер аутентификации появился в программном обеспечении Cisco IOS Software Release 12.0.5.T. Для него требуется наличие набора функций брандмауэра Cisco IOS. Прокси-сервер аутентификации используется для аутентификации входящих и/или исходящих пользователей. Пользователи, которые обычно блокируются списком ACL, могут открыть браузер для прохождения брандмауэра и аутентифицироваться на сервере TACACS+ или RADIUS. Сервер передает маршрутизатору дополнительные записи ACL, в результате чего пользователям предоставляется доступ после аутентификации.

Прокси-сервер аутентификации использует принципы, сходные с динамическими списками ACL. Отличия заключаются в следующем:

  • Динамический список ACL включается посредством подключения к маршрутизатору через Telnet. Прокси-сервер аутентификации включается посредством протокола HTTP через маршрутизатор;

  • Прокси-сервер аутентификации должен использовать внешний сервер;

  • Прокси-сервер аутентификации может обрабатывать несколько дополнительных динамических списков. Динамический список ACL может добавлять только один список;

  • Прокси-сервер аутентификации использует абсолютный таймаут, но не использует таймаут простоя. Динамический список ACL использует и то, и другое.

Примеры прокси-сервера аутентификации представлены в Справочнике конфигураций интегрированного программного обеспечения Cisco Secure.

Turbo-списки ACL

Turbo-списки ACL появились в программном обеспечении Cisco IOS Software Release 12.1.5.T только для 7200, 7500 и других высокопроизводительных платформ. Функция Turbo ACL разработана для более эффективной обработки списков ACL и увеличения производительности маршрутизатора.

Для Turbo-списков ACL используйте команду access-list compiled. Это пример скомпилированного списка ACL.

access-list 101 permit tcp host 10.1.1.2 host 172.16.1.1 eq telnet        
access-list 101 permit tcp host 10.1.1.2 host 172.16.1.1 eq ftp 
access-list 101 permit udp host 10.1.1.2 host 172.16.1.1 eq syslog        
access-list 101 permit udp host 10.1.1.2 host 172.16.1.1 eq tftp        
access-list 101 permit udp host 10.1.1.2 host 172.16.1.1 eq ntp

После определения стандартного или расширенного списка ACL используйте команду global configuration для компиляции.


!--- Дает маршрутизатору указание на компиляцию

access-list compiled   

Interface Ethernet0/1 
ip address 172.16.1.2 255.255.255.0 

!--- Применяется к интерфейсу

ip access-group 101 in  

Команда show access-list compiled отображает статистику по списку ACL.

Распределенные синхронизируемые списки ACL

Распределенные синхронизируемые списки ACL появились в программном обеспечении Cisco IOS Software Release 12.2.2.T для внедреня синхронизируемых списков ACL на маршрутизаторы серии 7500 с VPN. До появления функции распределенных синхронизируемых списков ACL синхронизируемые списки ACL не поддерживались на линейных платах маршрутизаторов Cisco 7500. Если были настроены синхронизируемые списки ACL, то они работали как обычные ACL. Если интерфейс линейной платы был настроен с помощью синхронизируемых списков ACL, то пакеты, коммутированные в интерфейс, не распространялись при помощи коммутации через линейную плату, а переадресовывались на процессор маршрутизации для обработки.

Синтаксис распределенных синхронизируемых списков ACL такой же, как и для синхронизируемых ACL с добавлением команд относительно состояния сообщений межпроцессорного взаимодействия (IPC) между процессором маршрутизации и линейной платой.

debug time-range ipc 
show time-range ipc 
clear time-range ipc 

Списки ACL для входящего трафика

Списки ACL для входящего трафика используются для повышения уровня безопасности на маршрутизаторах Cisco 12000, защищая процессор гигабитного канала маршрутизатора (GRP) от ненужного трафика и спама. Списки ACL для входящего трафика были добавлены в качестве специального ограничителя для регулирования обслуживания в Release 12.0.21S2 программного обеспечения Cisco IOS и были интегрированы в Release 12.0(22)S. Для получения дополнительной информации см. раздел "GSR: списки контроля доступа для входящего трафика".

Списки ACL для защиты инфраструктуры

Списки ACL для защиты инфраструктуры применяются для минимизации рисков и эффективности прямых атак на инфраструктуру путем явного разрешения только авторизованного трафика на оборудование инфраструктуры с запретом всего остального транзитного трафика. Для получения дополнительной информации см. раздел "Защита ядра: списки контроля доступа для защиты инфраструктуры".

Транзитные списки ACL

Транзитные списки ACL используются для повышения безопасности сети, явно разрешая только необходимый трафик в существующих сетях. Для получения дополнительной информации см. "Транзитные списки контроля доступа: фильтрация на ближней стороне".

Связанные обсуждения сообщества поддержки Cisco

В рамках сообщества поддержки Cisco можно задавать и отвечать на вопросы, обмениваться рекомендациями и совместно работать со своими коллегами.


Дополнительные сведения


Document ID: 23602