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

Configuring IP Access Lists

5 апреля 2016 - Машинный перевод
Другие версии: PDF-версия:pdf | Перевод, выполненный профессиональным переводчиком (23 марта 2008) | Английский (22 августа 2015) | Отзыв


Содержание


Введение

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

Обратитесь к Software Advisor (только зарегистрированные клиенты) программное средство для определения поддержки части более усовершенствованного Cisco характеристики ACL IP IOS�.

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

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

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

Требования

Для данного документа отсутствуют предварительные условия. Обсужденные понятия присутствуют в Cisco Выпуски ПО IOS� 8.3 или позже. Это указано ниже каждой функции в списке доступа.

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

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

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

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

Дополнительные сведения об условных обозначениях см. в документе Условные обозначения технических терминов Cisco.

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

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

Маски

Маски используются с IP-адресами в ACL IP-адресов для выбора разрешенных и запрещенных элементов. Маски предназначены для настройки 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). Единицы последнего набора цифр (байт) означают "don't cares" (.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.144.0/21, потому что существует пять битов, подобные в третьем октете. Эта итоговая сеть 192.168.144.0/21 покрывает диапазон сетей от 192.168.144.0 до 192.168.151.0. Среди них, 192.168.144.0, 192.168.145.0, 192.168.150.0, и 192.168.151.0 сетей не находятся в данном списке четырех сетей. Для покрытия определенных рассматриваемых сетей вы требуете минимума двух итоговых сетей. Данный четыре сети может быть суммирован в эти две сети:

  • Для сетей 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 для вышеуказанных сетей.


!--- This command is used to allow access access for devices with IP  
!--- addresses in the range from 192.168.146.0 to 192.168.147.254.

access-list 10 permit 192.168.146.0 0.0.1.255


!--- This command is used to allow access access for devices with IP  
!--- addresses in the range from 192.168.148.0 to 192.168.149.254

access-list 10 permit 192.168.148.0 0.0.1.255

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

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


!--- This command is used to permit IP traffic from 10.1.1.0 
!--- network to 172.16.1.0 network. All packets with a source 
!--- address not in this range will be rejected.

access-list 101 permit ip 10.1.1.0 0.0.0.255 172.16.1.0 0.0.0.255

!--- This command is used to permit IP traffic from 10.1.1.0 
!--- network to 172.16.1.0 network. All packets with a source 
!--- address not in this range will be rejected.

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.


!--- This command is used to permit Telnet traffic 
!--- from machine 10.1.1.2 to machine 172.16.1.1.

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

!--- This command is used to permit tcp traffic from 
!--- 10.1.1.2 host machine to 172.16.1.1 host machine.

access-list 101 permit tcp host 10.1.1.2 host 172.16.1.1

!--- This command is used to permit udp traffic from 
!--- 10.1.1.2 host machine to 172.16.1.1 host machine.

access-list 101 permit udp host 10.1.1.2 host 172.16.1.1

!--- This command is used to permit ip traffic from 
!--- 10.1.1.0 network to 172.16.1.10 network.

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 поясняются типы сообщений ICMP. leavingcisco.com

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

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. . Access-list имеет запрещать ip любой любой неявно в конце любого access-list. Если трафик отнесен к запросу DHCP и если это не разрешенный explicity, трафик отброшен, потому что при рассмотрении запроса DHCP в IP адрес источника является s=0.0.0.0 (Ethernet1/0), d=255.255.255.255, len 604, rcvd 2 UDP src=68, dst=67. Обратите внимание на то, что IP - адрес источника 0.0.0.0, и адрес назначения (DA) 255.255.255.255. Исходный порт равняется 68 и назначению 67. Следовательно, еще необходимо разрешить этот вид трафика в access-list, трафик отброшен из-за неявного, запрещают в конце оператора.

Примечание: Для трафика UDP для прохождения трафик UDP должен также быть разрешен явно ACL.

http://www.cisco.com/c/dam/en/us/support/docs/security/ios-firewall/23602-confaccesslists-1.gif

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

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

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

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

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

  • Входящий — Если список доступа является входящим, когда маршрутизатор получает пакет, программное обеспечение Cisco IOS проверяет операторов условия списка доступа для соответствия. Если пакет разрешен, программное обеспечение продолжает обрабатывать пакет. Если пакет запрещен, программное обеспечение сбрасывает от пакета.

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

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

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

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


!--- The access-list 101 denies icmp from any to any network
!--- but permits IP traffic from any to any network.

  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
  
!--- Permits IP traffic from 2.2.2.2 host machine to 3.3.3.3 host machine.

  router(config-ext-nacl)#permit ip host 2.2.2.2 host 3.3.3.3
  
!--- Permits www traffic from 1.1.1.1 host machine to 5.5.5.5 host machine.

  router(config-ext-nacl)#permit tcp host 1.1.1.1 host 5.5.5.5 eq www
  
!--- Permits icmp traffic from any to any network.

  router(config-ext-nacl)#permit icmp any any
  
!--- Permits dns traffic from 6.6.6.6 host machine to 10.10.10.0 network.

  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 entry deleted.

   router(config-ext-nacl)#no permit icmp any any
   
!--- ACL entry added.

   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 не поддерживаются в Устройстве безопасности, таком как Межсетевой экран ASA/PIX.

Рекомендации для изменения access-lists, когда они применены к криптокартам

  • Если вы добавляете к конфигурации существующего списка доступа, не требуется для удаления криптокарты. Если вы добавляете к ним непосредственно без удаления криптокарты, то это поддерживается и приемлемый.

  • Если необходимо модифицировать или удалить запись access-list из существующие списки доступа, то необходимо удалить криптокарту из интерфейса. После того, как вы удаляете криптокарту, вносите все изменения в access-list и повторно добавляете криптокарту. При внесении изменений, таких как удаление access-list без удаления криптокарты это не поддерживается и может привести к непредсказуемому поведению.

Устранение неполадок

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

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

interface <interface> 
no ip access-group <acl-number> in|out

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

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

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

Примечание: Ключевое слово log-input существует в Cisco IOS Software Release 11.2 и более поздних, а также в некоторых типах ПО на основе ПО Cisco IOS выпуска 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
    

Типы IP ACL

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

Схема сети

http://www.cisco.com/c/dam/en/us/support/docs/security/ios-firewall/23602-confaccesslists-2.gif

Стандартные списки управления доступом

Стандартные 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). Эти дополнительные номера перечислены в расширенных списках управления доступом для IP. Программное обеспечение Cisco IOS Release 11.2 предоставило возможность использовать имя списка (поле name) в стандартных ACL.

Параметр source/source-wildcard адреса 0.0.0.0/255.255.255.255 может быть любой. В случае, когда используются только нули, подстановочный знак можно опустить. Поэтому хост 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 появились в версии 8.3 операционной системы Cisco IOS. Расширенные списки 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-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 может быть 100 - 199. В Cisco IOS Software Release 12.0.1, расширенные списки ACL начинают использовать дополнительные номера (2000 - 2699). Эти дополнительные номера перечислены в расширенных списках управления доступом для IP. Cisco IOS Software Release 11.2 дало возможность использовать имя списка в расширенных ACLs.

Значение 0.0.0.0/255.255.255.255 может быть любым. После определения 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" (или глубже детализировать разрешение/запрещение IP-адресов).

Замок и ключ (динамические списки управления доступом)

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

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

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

username user-name 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 

!--- Ten (minutes) is the idle timeout.

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 (minutes) is the absolute timeout.

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 версии 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 Software Release 11.3. Рефлексивные списки ACL позволяют фильтровать IP-пакеты на основе информации сеанса верхнего уровня. Как правило, они используются для разрешения исходящего трафика и для ограничения входящего трафика в качестве реакции на сеансы, возникающие внутри маршрутизатора.

Рефлексивные списки управления доступом (ACL) можно задать только с помощью расширенных именованных IP списков управления доступом (ACL). Их нельзя определить с помощью нумерованных или стандартных списков 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 


!--- This ties the reflexive ACL part of the outboundfilters ACL,
!--- called tcptraffic, to the 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.


!--- Defines a named time range.

time-range time-range-name 

!--- Defines the periodic times. 

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

!--- Or, defines the absolute times.

absolute [start time date] [end time date] 

!--- The time range used in the actual 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

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

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

ip access-list {standard|extended} access-list-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.

Расширенные списки управления доступом

Списки управления доступом Turbo вводятся в 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 для компиляции.


!--- Tells the router to compile.

access-list compiled   

Interface Ethernet0/1 
ip address 172.16.1.2 255.255.255.0 

!--- Applies to the interface.

ip access-group 101 in  

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

Распределенные списки управления доступом с временным критерием

Распределенные временные ACL были представлены в Cisco IOS Software Release 12.2.2. T для осуществления списков управления доступом (ACL) с временным критерием на поддерживающих VPN маршрутизаторах серии "7500". До появления функции распределенных синхронизируемых списков ACL синхронизируемые списки ACL не поддерживались на линейных платах маршрутизаторов Cisco 7500. Если были настроены ACLs с временным критерием, они работают как обычные ACLs. Если интерфейс линейной платы был настроен с помощью синхронизируемых списков 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