sonyps4.ru

Создание acl списка в cisco. Настройка, применение и проверка расширенного именованного ACL-списка

Списки доступа позволяют создавать правила управления трафиком, по которым будет происходить межсетевое взаимодействие как в локальных, так и в корпоративных сетях.

Существует шестнадцать типов списков доступа, но наиболее часто используются два типа: standart – стандартные (номера с 1 по 99) и extended – расширенные (номера с 100 по 199 или с 2000 по 2699). Различия между этими двумя списками заключаются в возможности фильтровать пакеты не только по IP – адресу, но и по другим различным параметрам.

Стандартные списки обрабатывают только входящие IP адреса источников, т.е. ищут соответствие только по IP адресу отправителя. Расширенные списки работают со всеми адресами корпоративной сети и дополнительно могут фильтровать трафик по портам и протоколам.

Работа списка доступа напрямую зависит от порядка следования строк в этом списке, где в каждой строке записано правило обработки трафика. Просматриваются все правила списка с первого до последнего по порядку, но просмотр завершается, как только было найдено первое соответствие, т.е. для пришедшего пакета было найдено правило, под которое он подпадает. После этого остальные правила списка игнорируются. Если пакет не подпал ни под одно из правил, то включается правило по умолчанию:

access-list номер_списка deny any

которое запрещает весь трафик по тому интерфейсу сетевого устройства, к которому данный список был применен.

Для того, чтобы начать использовать список доступа, необходимо выполнить следующие три этапа:

1 – создать список;

2 – наполнить список правилами обработки трафика;

3 – применить список доступа к интерфейсу устройства на вход или на выход этого интерфейса.

Этап первый – создание списка доступа:

Стандартный список:

Switch3(config)#ip access-list standart 10

(создается стандартный список доступа под номером 10, в данном случае создается на коммутаторе)

Расширенный список:

Router1(config)#ip access-list extended 100

(создается расширенный список доступа под номером 100, в данном случае создается на маршрутизаторе).

Этап второй – ввод правил в список доступа:

Каждое, правило в списке доступа сдержит три важных элемента:

1 - число, идентифицирующее список при обращении к нему в других частях конфигурации маршрутизатора или коммутатора третьего уровня;

2 - инструкцию deny (запретить) или permit (разрешить);

3 - идентификатор пакета, который задается по одному из трех вариантов:

Адрес сети (например 192.168.2.0 0.0.0.255) – где вместо маски подсети указывается шаблон маски подсети;

Адрес хоста (host 192.168.2.1);

Любой IP адрес (any ).

Пример стандартного списка доступа №10:

access-list 10 deny host 11.0.0.5

access-list 10 deny 12.0.0.0 0.255.255.255

access-list 10 permit any

В этом списке:

Запрещен весь трафик хосту с IP адресом 11.0.0.5;

Запрещен весь трафик в сети 12.0.0.0/8 (в правиле указывается не реальная маска подсети, а ее шаблон);

Весь остальной трафик разрешен.

В расширенных списках доступа вслед за указанием действия ключами permit или deny должен находиться параметр с обозначением протокола (возможны протоколы IP, TCP, UDP, ICMP), который указывает, должна ли выполняться проверка всех пакетов IP или только пакетов с заголовками ICMP, TCP или UDP. Если проверке подлежат номера портов TCP или UDP, то должен быть указан протокол TCP или UDP (службы FTP и WEB используют протокол TCP).

При создании расширенных списков в правилах доступа можно включать фильтрацию трафика по протоколам и портам. Для указания портов в правиле доступа указываются следующие обозначения (таблица 10.1):

Таблица 10.1.

Распространенные приложения и соответствующие им стандартные номера портов приведены в следующей таблице 10.2:

Таблица 10.2.

Номер порта

Протокол

Приложение

Ключевое слово в команде access_list

Управление сервером FTP

Пример расширенного списка доступа №111:

! Запретить трафик на порту 80 (www-трафик)

ACL (Access Control List) — это список управления доступом. Списки доступа позволяют сетевым инженерам идентифицировать пакеты различных типов. Для этого в конфигурации ACL перечисляют значения, которые маршрутизатор Cisco может найти в заголовках IP, TCP, UDP и др. Например, список доступа может распознать пакет с IP-адресом отправителя 1.1.1.1, или пакеты IP-адрес получателя которых находится в подсети 10.1.1.0/24, или пакеты с портом получателя TCP 23 (Telnet). Чаще всего списки доступа применяют как фильтр пакетов.

ACL применяется на:

  1. Интерфейсе: для фильтрации пакетов
  2. Telnet: для ограничения доступа к маршрутизатору
  3. VPN: для определения трафика, подлежащего шифрованию
  4. QoS: для определения трафика, который необходимо обработать
  5. NAT: для определения IP-адресов, которые необходимо транслировать

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

Рассмотрим простой пример. Когда из LAN1 (локальная внутренная сеть) приходит пакет на интерфейс f0/0 роутер проверяет входящий трафик по ACL строго в том порядке, в котором записаны выражения. Если ACL разрешает проходить пакету, то роутер отправляет на интерфейс f0/1. Перед отправкой пакета маршрутизатор проверяет исходящий трафик по ACL и только после этого принимает решение о его передаче в сторону ISP (Internet Service Proiver — провайдер).

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

Списки доступа ACL бывают двух видов:

  1. Стандартные (standart) — могут проверять только IP-адреса отправителей пакетов
  2. Расширенные (extended) — могут проверять адреса источников/получателей, тип протокола, UDP/TCP порты

ACL обозначаются порядковыми номерами (стандартные от 1 до 99, расширенные от 100 до 199), а также символьными именами.

Рассмотрим несколько важных правил, касающихся ACL:

  1. Нельзя разместить более одного списка доступа на интерфейс, протокол, направление;
  2. ACL не действует на трафик сгенерированный самим маршрутизатором;
  3. Для фильтрации пакетов используется обратная WildCard-маска (например 0.0.255.255 соответствует 255.255.0.0)
  4. Как только обнаруживается соответствие пакета в одной из строк списка ACL, маршрутизатор предпринимает действие, указанное в этой строке списка, и прекращает дальнейшее сравнение
  5. В конце каждого списка доступа стоит неявное deny any — запретить все

Стандартные нумерованные списки доступа используют следующую глобальную команду:

access-list {1-99} {permit | deny} {address | any | host} {source-wildcard)

Каждый нумерованный список доступа ACL содержит одну или несколько команд access-list с любым номером из диапазона, представленного в строке синтаксиса выше. Помимо номера ACL, каждая команда содержит выбранное действие (permit или deny) и логику распознавания. Параметры команды access-list:

  1. permit — разрешить
  2. deny — запретить
  3. adress — запрещаем или разрешаем конкретную сеть (указываем ее Ip-адрес)
  4. any — запрещаем или разрешаем все
  5. host — запрещаем или разрешаем хост (указываем его Ip-адрес)
  6. source-wildcard — обратная маска

После создания списка доступа его необходимо применить на определенном интерфейсе:

ip access-group {номер или имя ACL} {in | out}

Где in — входящее направление, out — исходящее направление.

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

По традиции для тех кто будет собирать эту схему Packet tracer я привожу полную конфигурацию всех устройств с описанием команд.

Switch>enable Switch#configure terminal Switch(config)#vlan 2 - создаем vlan 2 Switch(config-vlan)#name Admin - название для vlan 2 Switch(config)#vlan 3 - создаем vlan 3 Switch(config-vlan)#name Server - название для vlan 3 Switch(config)#vlan 10 - создаем vlan 10 Switch(config-vlan)#name User"s - название для vlan 10 Switch(config)#interface range fa0/1 - fa0/9 - настраиваем интерфейсы в сторону Пользователей Switch(config-if-range)#description User"s - описание интерфейса Switch(config-if-range)#switchport mode accessSwitch(config-if-range)#switchport access vlan 10 - тегируем кадры 10 VLAN Switch(config-if-range)#exit Switch(config)#interface fa0/10 - настраиваем интерфейсы в сторону Сервера Switch(config-if)#description Server - описание интерфейса - настраиваем порт на тегированный режим Switch(config-if)#switchport access vlan 3 - тегируем кадры 3 VLAN Switch(config-if)#exit Switch(config)#interface fa0/20 - настраиваем интерфейсы в сторону Админа Switch(config-if)#description Admin - описание интерфейса Switch(config-if)#switchport mode access - настраиваем порт на тегированный режим Switch(config-if)#switchport access vlan 2 - тегируем кадры 2 VLAN Switch(config-if)#exit Switch(config)#interface fa0/24 - настраиваем интерфейсы в сторону Роутера Switch(config-if)#description Router - описание интерфейса Switch(config-if)#switchport mode trunk - настраиваем порт на нетегированный режим Switch(config-if)#switchport trunk allowed vlan 2-3,10 - пропускаем VLAN 2-3,10 Switch(config-if)#exit Switch(config)#do write - сохраняем конфигурацию

Router>enable - переходим в расширенный режим Router#configure terminal - переходим в режим конфигурации Router(config)#interface fa0/0 - настаиваем порт в сторону Свича Router(config-if)#description Switch - описание интерфейса Router(config-if)#no shutdown - включаем интерфейс физически Router(config-if)#exit Router(config)#interface fa0/0.2 - настраиваем сабинтерфейс для подсети Админа Router(config-subif)#description Admin - описание интерфейса dot1q 2 - тегируем 2 VLAN"ом Router(config-subif)#ip address 172.16.0.1 255.255.255.0 - задаем шлюз по-умолчанию для Админа Router(config-subif)#exit - настраиваем сабинтрфейс для подсети Серверов Router(config-subif)#description Server - описание интерфейса Router(config-subif)#encapsulation dot1q 3 - тегируем 3 VLAN"ом Router(config-subif)#ip address 172.16.1.1 255.255.255.0 - Router(config-subif)#exit Router(config)#interface fa0/0.10 - настраиваем сабинтрфейс для подсети Пользователей Router(config-subif)#description User"s - описание интерфейса Router(config-subif)#encapsulation dot1q 10 - тегируем 10 VLAN"ом Router(config-subif)#ip address 172.16.2.1 255.255.255.0 - задаем шлюз по-умолчанию для Серверов Router(config-subif)#exit

Запускаем пинг с пользовательского компа до сервера

Как видим доступ есть. Нам же необходимо, чтобы доступ имел только админ. Для этого нам необходимо создать список доступа (пусть он будет иметь порядковый номер 10), в котором мы разрешим всем пакетам от администратора (172.16.0.100) доступ в подсеть серверов (172.16.1.0/24). После чего применим это правило на сабинтерфейсе fa0/0.3 (для серверов) для всех исходящих пакетов.

Router(config)#access-list 10 permit host 172.16.0.100 - создаем список доступа, в котором разрешаем хосту админа Router(config)#interface fa0/0.3Router(config-subif)#ip access-group 10 out - применяем настройки списка доступа на сабинтерфейсе

Тестируем настройки. Запускаем пинг с пользовательского компьютера в сторону сервера.

Пишет Destination host unreachable — хост назначения недоступен.

Запускаем пинг с компьютера администратора.

Пинг идет — значит ACL настроили правильно. Что происходит когда мы пингуем сервер с ноутбука администратора? Пакет сначала поступает на саибинтерфейс fa0/0.2 маршрутизатора. На данном интерфейсе не настроены списки доступа значит пакет проходит далее. Роутер смотрит в свою таблицу маршрутизации и видит что подсеть серверов находится на сабинтерфейсе fa0/0.3. Перед отправкой пакета маршрутизатор видит, что к данному интерфейсу прикреплен ACL 10. В данном списке доступа всего одна запись — разрешить отправку пакетов только хосту 172.16.0.100 (ноут админа). Маршрутизатор смотрит в Ip-пакет и видит адрес отправителя 172.16.0.100 после чего отправляет пакет в подсеть серверов. Ip-пакет с любым отличным от 172.16.0.100 будет отбрасываться, так как в конце ACL 10 стоит неявный deny any — запретить все.

Теперь перейдем к расширенным спискам доступа. Пользователям в нашей сети необходимо иметь доступ к файловому хранилищу и веб-сайту. Мы же ранее полностью ограничили им доступ к серверу. Необходимо исправить ситуацию и в этом нам помогут расширенные списки доступа. Расширенные списки доступа могут проверять Ip-адреса источника/отправителя, тип протокола, UDP/TCP-порты. В нашей ситуации необходимо будет проверять номера портов. Если пользователь обращается к серверу по разрешенному порту, то маршрутизатор пропускает такой пакет. Разрешенные порты: 80 (HTTP — доступ к веб-сайту), 21 (FTP — доступ к файловому хранилищу). Протоколы HTTP и FTP работают поверх TCP. Также для распознавания доменных имен на нашем сервере поднят DNS. DNS-сервер работает на порту 53.

Размещать расширенный список доступа будем на сабинтерфейсе fa0/0.3. Но на этом интерфейсе уже размещен список доступа. Вспоминаем правило: Нельзя разместить более одного списка доступа на интерфейс. Так что придется удалить созданный ранее список доступа. Правило, созданное для администратора перенесем в новый расширенный список с именем Server-out .

Конфигурация для маршрутизатора:

Router(config)#no access-list 10 permit host 172.16.0.100 - удаляем предыдущий список доступа Router(config)#interface fa0/0.3 - настраиваем сабинтерфейс для Серверов Router(config-subif)#no ip access-group 10 out - удаляем предыдущие настройки списка доступа Router(config-subif)#exit Router(config)#ip access-list extended Server-out - создаем расширенный список доступа Router(config-ext-nacl)#permit ip host 172.16.0.100 host 172.16.1.2 - даем админу полный доступ к серверу Router(config-ext-nacl)#permit tcp any host 172.16.1.2 eq 80 - разрешаем любому хосту доступ по HTTP к серверу Router(config-ext-nacl)#permit tcp any host 172.16.1.2 eq 21 - разрешаем любому хосту доступ по FTP к серверу Router(config-ext-nacl)#permit tcp any host 172.16.1.2 eq 53 - разрешаем любому хосту доступ по DNS к серверу Router(config-ext-nacl)#exit Router(config)#interface fa0/0.3 Router(config-if)#ip access-group Server-out out

С компьютера админа пинг до сервера есть:

С компьютера пользователя пинга нет:

Проверим с компьютера пользователя проходят ли DNS-запросы до сервера. Для этого запустим утилиту nslookup — которая определяет Ip-адрес до доменному имени.

DNS-запросы проходят без проблем. Проверим доступ к нашему условному Web-сайту через браузер:

Напоследок подключимся к FTP-серверу:

Подключение прошло успешно!

Создадим именованный ACL-список и пропишем правила для него:

ip access-list extended HTTP_ONLY – создаемсписок.

permittcp 172.22.34.96 0.0.0.15 host 172.22.34.62 eqwww – настраиваем фильтрацию трафика www.

permiticmp 172.22.34.96 0.0.0.15 host 172.22.34.62 – разрешаем передачу трафика ICMP от PC2 на Сервер.

interfacegigabitEthernet 0/1

ipaccess-groupHTTP_ONLYin – размещениесписканаинтерфейсе.

Для проверки работы примененного списка отправляем эхо-запрос от PC2 на сервер Server (рисунок 4.4).Далее выполняется неуспешноеFTP-подключение от PC2 к серверу Server (рисунок 4.4). Затем необходимо открыть веб-браузер на PC2 и введите IP-адрес сервера Server в виде URL-адреса. Подключение должно быть успешным (рисунок 4.5).

Рисунок 4.4 – Эхо-запрос и FTP-подключение к серверу от РС2

Рисунок 4.5 – Подключение к серверу через веб-браузер


5 Настройка расширенныхACL-списков. Сценарий 2

В этом сценарии устройствам в одной сети LAN разрешается удалённый доступ к устройствам другой LAN через протокол Telnet. За исключением ICMP, весь трафик от других сетей запрещён. Схема сети представлена на рисунке 5.1.

Рисунок 5.1 – Схема сети

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

accesslist 199 permittcp 10.101.117.32 0.0.0.15 10.101.117.0 0.0.0.31 eqtelnet– трафик по протоколу Telnet в сети 10.101.117.32/28 разрешён для передачи на устройства в сетях 10.100.117.0/27.

access-list 199 permiticmpanyany – трафик ICMP разрешён от любого устройства и в любом направлении.

Остальной трафик запрещён по умолчанию.

interface gigabitethernet0/2

ipaccess-group 199 out – размещениесписканаинтерфейсе.

Для проверки работы расширенного списка сначала необходимо отправить эхо-запросыот компьютера PCB на все остальные IP-адреса в сети (рисунок 5.2). Далее отправляютсяэхо-запросы от компьютера PCA на все остальные IP-адреса в сети (рисунок 5.3).

Рисунок 5.2–Эхо-запрос от РСВ

Рисунок 5.3 – Эхо-запрос от РСА


6 Настройка расширенных ACL-списков. Сценарий 3

В этом сценарии конкретным устройствам сети LAN разрешается доступ к нескольким службам серверов, размещённых в сети Интернет. Используемая сеть представлена на рисунке 6.1.

Рисунок 6.1 – Схема сети

Необходимо использовать один именованный ACL-список для реализации следующих правил:

1 Запретить доступ через протоколы HTTP и HTTPS с PC1 на серверы Server1 и Server2. Эти серверы находятся внутри облака, известны только их IP-адреса.

2Заблокировать FTP-доступ с PC2 к серверам Server1 и Server2.

3Заблокировать ICMP-доступ с PC3 к серверам Server1 и Server2.

Настройка расширенного именованного ACL-списка осуществлялась следующими командами:

ip access-list extended ACL – создаемсписок.

denytcphost 172.31.1.101 host 64.101.255.254 eqwww– правило, запрещающее доступ с PC1 к серверу Server1, только для HTTP.

denytcphost 172.31.1.101 host 64.101.255.254 eq 443 – правило, запрещающее доступ с PC1 к серверу Server1, только для HTTPS.

denytcphost 172.31.1.101 host 64.103.255.254 eqwww– правило, запрещающее доступ с PC1 к серверу Server2, только для HTTP.

denytcphost 172.31.1.101 host 64.103.255.254 eq 443 – правило, запрещающее доступ с PC1 к серверу Server2, только для HTTPS.

denytcphost 172.31.1.102 host 64.101.255.254 eqftp– правило, запрещающее доступ с PC2 к серверу Server1, только для FTP.

denytcphost 172.31.1.102 host 64.103.255.254 eqftp – правило, запрещающее доступ с PC2 к серверу Server2, только для FTP.

denyicmphost 172.31.1.103 host 64.101.255.254 – правило, запрещающее ICMP-доступ с PC3 к серверу Server1.

denyicmphost 172.31.1.103 host 64.103.255.254 – правило, запрещающее ICMP-доступ с PC3 к серверу Server2.

permitipanyany – разрешение остальногоIP-трафика.

interfacegigabitEthernet 0/0

ipaccess-groupACLin – применениеACL-списка на соответствующем интерфейсе и направлении.

Проверка расширенного ACL-списка заключается в следующем: проверяется доступ к веб-сайтам на серверах Server1 и Server2, используя веб-браузер PC1, а также протоколы HTTP и HTTPS (рисунок 6.2), проверяется FTP-доступ к серверам Server1 и Server2 с компьютера PC1 (рисунок 6.3),выполняются эхо-запросы на серверы Server1 и Server2 от PC1 (рисунок 6.4). Аналогично поверяются РС2 и РС3. Удачный доступ к веб-сайтам на серверах от РС2 и РС3 – на рисунке 6.5. Неудачный FTP-доступ к серверам от РС2 – на рисунке 6.6. Неудачные эхо-запросы от РС3 к серверам представлены на рисунке 6.7.

Рисунок 6.2 – Проверка доступа через HTTP и HTTPS

Рисунок 6.3 - FTP-доступ к серверам Server1 и Server2 с PC1

Рисунок 6.4 - Эхо-запросы на серверы Server1 и Server2 от PC1

Рисунок 6.5 - Удачный доступ к веб-сайтам на серверах от РС2 и РС3

Рисунок 6.6 - Неудачный FTP-доступ к серверам от РС2

Рисунок 6.7 - Неудачные эхо-запросы от РС3 к серверам


7 Отработка комплексных практических навыков

В рамках этого задания повышенной сложности необходимо завершить схему адресации, настроить маршрутизацию и применить именованные списки контроля доступа. Схема используемой сети представлена на рисунке 7.1.

Рисунок 7.1 – Схема сети

В ходе выполнения лабораторной работы были выполнены следующие требования:

1 Сеть 172.16.128.0/19 разделена на две равные подсети для использования в маршрутизаторе Branch.Последний доступный для использования адрес второй подсети назначен в интерфейс GigabitEthernet 0/0.Последний доступный для использования адрес первой подсети назначен в интерфейс GigabitEthernet 0/1. Задокументированная таблица адресации – в таблице 1.

Таблица 1 – Таблица адресации

Продолжение таблицы 1

Branch G0/0 172.16.159.254 255.255.240.0 Недоступно
G0/1 172.16.143.254 255.255.240.0 Недоступно
S0/0/0 192.168.0.2 255.255.255.252 Недоступно
HQ1 Сетевой адаптер 172.16.64.1 255.255.192.0 172.16.127.254
HQ2 Сетевой адаптер 172.16.0.2 255.255.192.0 172.16.63.254
HQServer.pka Сетевой адаптер 172.16.0.1 255.255.192.0 172.16.63.254
B1 Сетевой адаптер 172.16.144.1 255.255.240.0 172.16.159.254
B2 Сетевой адаптер 172.16.128.2 255.255.240.0 172.16.143.254
BranchServer.pka Сетевой адаптер 172.16.128.1 255.255.240.0 172.16.143.254

Назначение адресов на интерфейсы осуществляется командамина маршрутизаторе Branch:

interface gigabitEthernet0/0

ip address 172.16.159.254 255.255.240.0

interface gigabitEthernet0/1

ipaddress 172.16.143.254 255.255.240.0

2На B1 настроена соответствующая адресация, был использован первый свободный адрес сети, к которой он подключён. Настройка представлена на рисунке 7.2.

Рисунок 7.2 – Настройка адресации на В1

3 Был настроен маршрутизатор Branch с усовершенствованным протоколом внутренней маршрутизации между шлюзами (EIGRP) в соответствии со следующими критериями:

a) объявлены все три подключённые сети;

b) отключено автоматическое объединение;

c) настроены соответствующие интерфейсы как пассивные;

d) объединены 172.16.128.0/19 на последовательном интерфейсе Serial 0/0/0 с административной дистанцией 5.

Настройка осуществлялась следующими командами:

network 168.0.0.0 0.0.0.3

network 172.16.128.0 0.0.15.255

network 172.16.144.0 0.0.15.255

passive-interface gigabitethernet0/0

passive-interface gigabitethernet0/1

interface serial0/0/0

ipsummary-addresseigrp 1 172.16.128.0 255.255.224.0 5

4 Настроен на маршрутизаторе HQ маршрут по умолчанию, направляющий трафик на интерфейс S0/0/1. Перераспределен маршрут к маршрутизатору Branch. Для этого использовались следующие команды:

ip route 0.0.0.0 0.0.0.0 serial0/0/1

redistributestatic

5 Объединены подсети локальной сети HQ на последовательном интерфейсе Serial 0/0/0 с административной дистанцией 5. Команды:

interfaceserial0/0/0

ipsummaryaddresseigrp 1 172.16.0.0 255.255.128.0 5

6 Создан именованный список доступа HQServer, чтобы запретить для всех компьютеров, подключённых к интерфейсу GigabitEthernet 0/0 маршрутизатора Branch, доступ к HQServer.pka. Весь остальной трафик разрешён. Настроен список доступа на соответствующем маршрутизаторе, назначен подходящему интерфейсу на подходящем направлении. Для этого использовали следующие команды:

ipaccess-listextendedHQServer

denyipanyhost 172.16.0.1

permitip any any

interface gigabitethernet0/0

ip access-group HQServer in

7 Создан именованный список доступа BranchServer, чтобы запретить всем компьютерам, подключённым к интерфейсу GigabitEthernet 0/0 маршрутизатораHQ, доступкслужбамHTTPиHTTPSсервераBranch. Весь остальной трафик разрешён. Настроен список доступа на соответствующем маршрутизаторе, он назначен подходящему интерфейсу на подходящем направлении.

ip access-list extended BranchServer

denytcp any host 172.16.128.1 eq 80

denytcp any host 172.16.128.1 eq 443

permitip any any

interface gigabitethernet0/0

ipaccess-groupBranchServerin

Для проверки отправлялись эхо-запросы от В1 к HQServer.pka (неудачно, рисунок 7.3). Веб-доступ к серверу BranchServer.pka с HQ1 также неудачен (рисунок 7.4).

Рисунок 7.3 - Эхо-запрос от В1 к HQServer.pka

Рисунок 7.4 - Веб-доступ к серверу BranchServer.pka с HQ1


©2015-2019 сайт
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-20

Access-lists, Access-control-lists (ACL) – списки контроля доступа. Существует несколько разновидностей аксесс-листов, применяемых на маршрутизаторах и коммутаторах Cisco. Аксесс-листы используются для фильтрации трафика или для определения классов трафика при применении политик. Список доступа представляет собой набор строк вида условие-действие. Строка аксесс-листа называется access-control-entry (ACE). Условием может быть соответствие пакета определенному протоколу или набору параметров. Действием может быть разрешение пакета (permit), либо запрещение (deny). Для списков доступа справедливы следующие правила:

  • Созданный список доступа не действует, пока он не применен к конкретному интерфейсу.
  • Список доступа применяется на интерфейсе в конкретном направлении – для исходящего, либо входящего трафика (inbound/outbound).
  • К интерфейсу можно применить только по одному аксесс-листу на протокол (ip), на направление (in/out).
  • Список доступа проверяется строка за строкой до первого совпадения. Оставшиеся строки игнорируются.
  • В конце любого IP аксесс-листа подразумевается запрещающее правило (implicit deny). Пакет, не попавший ни под одно условие в списке, отбрасывается, в соответствии с правилом implicit deny.
  • Рекомендуется более специфические правила указывать в начале аксесс-листа, а более общие – в конце.
  • Новые строки по умолчанию дописываются в конец списка.
  • Отдельную строку можно удалить из именованного аксесс-листа, другие ACL удаляются лишь целиком.
  • Список доступа должен иметь по крайней мере один permit, иначе он будет блокировать весь трафик.
  • Интерфейс, которому назначен несуществующий аксесс-лист не фильтрует трафик.
  • IP Extended Access-lists применяются как можно ближе к источнику трафика.

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

Стандартный Access-list

Фильтрует только по ip адресу источника. Должен иметь номер в диапазоне 1-99. Пример:

Access-list 10 deny host 172.16.30.2 – запретить ip источника access-list 10 permit any - разрешить всё

Расширенный Access-list

Фильтрует по адресам источника и получателя, по протоколам 3, 4 уровня. Должен иметь номер в диапазоне 100-199. Пример:

Acсess-list 110 deny tcp any host 172.16.30.2 eq 22 - запретить tcp от всех на хост с портом 22 access-list 110 deny ip 192.168.160.0 0.0.31.255 any - запретить ip от сети по шаблону на всех access-list 110 permit ip any any - разрешить всё

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

conf t - переход в режим конфигурирования int fa 0/0 - переход к интерфейсу FastEthernet0/0 ip access-group 110 in - применить ACL 110 на вход ip access-group 120 out - применить ACL 120 на выход

Применение к линиям доступа telnet

conf t - переход в режим конфигурирования line vty 0 4 - переход к линиям vty с 0 по 4 access-class 10 in - применить ACL 10 на вход

Именованный расширенный Access-list

Фильтрует по адресам источника и получателя, по протоколам 3, 4 уровня. Должен иметь имя. Возможно удалять отдельные строки. Пример:

Ip access-list extended INET - создать список с именем INET deny tcp any host 172.16.30.2 eq 22 - запретить tcp от всех на хост с портом 22 deny ip 192.168.160.0 0.0.31.255 any - запретить ip от сети по шаблону на всех permit ip any any - разрешить всё

Строки доступа нумеруются с шагом 10 по-умолчанию. Можно перенумеровать аксесс-лист с другим шагом. Можно добавить строку пронумеровав – она попадет в указанное место, по нумерации.

Просмотр расширенного аксесс-листа:

Router# sh access-list INET Extended IP access list INET 10 deny tcp any host 172.16.30.2 eq 22 (150 matches) 20 deny ip 192.168.160.0 0.0.31.255 any (4 matches) 30 permit ip any any (1556 matches)

Как видим - строки пронумерованы с шагом 10. Можно вставить новую строку в произвольное место листа, используя номер:

Router(conf)# ip access-list extended INET router(config-ext-nacl)# 5 permit ip host 10.10.10.10 any router(config-ext-nacl)# 223 deny ip host 1.1.1.1 any router(config-ext-nacl)# end router# sh access-list INET Extended IP access list INET 5 permit ip host 10.10.10.10 any 10 deny tcp any host 172.16.30.2 eq 22 (150 matches) 20 deny ip 192.168.160.0 0.0.31.255 any (4 matches) 30 permit ip any any (1556 matches) 223 deny ip host 1.1.1.1 any

Удалить отдельную строчку из листа можно по номеру, или по полному указанию строки с префиксом "no". Например так:

Router(conf)# ip access-list extended INET router(config-ext-nacl)# no permit ip host 10.10.10.10 any

Router(config-ext-nacl)# no 223

Полностью удалить список доступа можно указав соответствующую команду и "no":

Router(conf)# no ip access-list extended INET

Расширенные параметры ACE

permit icmp vs. permit ip

Deny ACEs that check Layer 4 information never match a fragment unless the fragment contains Layer 4 information.

Классификация трафика с помощью ACL

Отладка IP ACL

Vlan-ACL (VACL)

VLAN map применяется для всех отбриджованных пакетов. Router ACL только для маршрутизированных. Если

1. VLAN map for input VLAN10

2. Input router ACL / int VLAN10

3. routing VLAN10 to VLAN 20

4. Output router ACL / int VLAN20

5. VLAN map for output VLAN20

ip access-list extended WIFIHOSTEL permit ip 10.12.0.0 0.0.255.255 host 212.192.64.2 permit ip host 212.192.64.2 10.12.0.0 0.0.255.255 deny ip any any ! vlan access-map WIFIHOSTEL 10 match ip address WIFIHOSTEL action forward ! vlan filter WIFIHOSTEL vlan-list 534

Сегодня я расскажу вам о том, как отфильтровать трафик в сети с помощью списков контроля доступа. Рассмотрим как они работают соответственно, что собой представляют, для чего предназначены. Позже я покажу как они настраиваются в Cisco IOS и выложу архив с лабораторными работами для закрепления ваших знаний.

Введение

ACL (Access Control List) - это набор текстовых выражений, которые что-то разрешают, либо что-то запрещают. Обычно ACL разрешает или запрещает IP-пакеты, но помимо всего прочего он может заглядывать внутрь IP-пакета, просматривать тип пакета, TCP и UDP порты. Также ACL существует для различных сетевых протоколов (IP, IPX, AppleTalk и так далее). В основном применение списков доступа рассматривают с точки зрения пакетной фильтрации, то есть пакетная фильтрация необходима в тех ситуациях, когда у вас стоит оборудование на границе Интернет и вашей частной сети и нужно отфильтровать ненужный трафик.
Вы размещаете ACL на входящем направлении и блокируете избыточные виды трафика.

Теория

Функционал ACL состоит в классификации трафика, нужно его проверить сначала, а потом что-то с ним сделать в зависимости от того, куда ACL применяется. ACL применяется везде, например:
  • На интерфейсе: пакетная фильтрация
  • На линии Telnet: ограничения доступа к маршрутизатору
  • VPN: какой трафик нужно шифровать
  • QoS: какой трафик обрабатывать приоритетнее
  • NAT: какие адреса транслировать
Для применения ACL для всех этих компонентов нужно понять как они работают. И мы в первую очередь будем касаться пакетной фильтрации. Применительно к пакетной фильтрации, ACL размещаются на интерфейсах, сами они создаются независимо, а уже потом они прикручиваются к интерфейсу. Как только вы его прикрутили к интерфейсу маршрутизатор начинает просматривать трафик. Маршрутизатор рассматривает трафик как входящий и исходящий. Тот трафик, который входит в маршрутизатор называется входящим, тот который из него выходит - исходящий. Соответственно ACL размещаются на входящем или на исходящем направлении.

Из вашей частной сети приходит пакет на интерфейс маршрутизатора fa0/1, маршрутизатор проверяет есть ли ACL на интерфейсе или нет, если он есть, то дальше обработка ведется по правилам списка доступа строго в том порядке, в котором записаны выражения , если список доступа разрешает проходить пакету, то в данном случае маршрутизатор отправляет пакет провайдеру через интерфейс fa0/0, если список доступа не разрешает проходить пакету, пакет уничтожается. Если списка доступа нет - пакет пролетает без всяких ограничений. Перед тем как отправить пакет провайдеру, маршрутизатор ещё проверяет интерфейс fa0/0 на наличие исходящего ACL. Дело в том, что ACL может быть прикреплен на интерфейсе как входящий или исходящий. К примеру у нас есть ACL с правилом запретить всем узлам в Интернете посылать в нашу сеть пакеты.
Так на какой интерфейс прикрепить данную ACL? Если мы прикрепим ACL на интерфейс fa0/1 как исходящий, это будет не совсем верно, хотя и ACL работать будет. На маршрутизатор приходит эхо-запрос для какого-то узла в частной сети, он проверяет на интерфейсе fa0/0 есть ли ACL, его нет, дальше проверяет интерфейс fa0/1, на данном интерфейсе есть ACL, он настроен как исходящий, всё верно пакет не проникает в сеть, а уничтожается маршрутизатором. Но если мы прикрепим ACL за интерфейсом fa0/0 как входящий, то пакет будет уничтожатся сразу как пришел на маршрутизатор. Последнее решение является правильным, так как маршрутизатор меньше нагружает свои вычислительные ресурсы. Расширенные ACL нужно размещать как можно ближе к источнику, стандартные же как можно ближе к получателю . Это нужно для того, чтобы не гонять пакеты по всей сети зря.

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

ACL разделяются на два типа:

  • Стандартные (Standard): могут проверять только адреса источников
  • Расширенные (Extended): могут проверять адреса источников, а также адреса получателей, в случае IP ещё тип протокола и TCP/UDP порты
Обозначаются списки доступа либо номерами, либо символьными именами. ACL также используются для разных сетевых протоколов. Мы в свою очередь будем работать с IP. Обозначаются они следующим образом, нумерованные списки доступа:
  • Стандартные: от 1 до 99
  • Расширенные: от 100 до 199
Символьные ACL разделяются тоже на стандартные и расширенные. Расширенные напомню могут проверять гораздо больше, нежели стандартные, но и работают они медленнее, так как придется заглядывать внутрь пакета, в отличии от стандартных где мы смотрим только поле Source Address (Адрес отправителя). При создании ACL каждая запись списка доступа обозначается порядковым номером, по умолчанию в рамках десяти (10, 20, 30 и т.д). Благодаря чему, можно удалить конкретную запись и на её место вставить другую, но эта возможность появилась в Cisco IOS 12.3, до 12.3 приходилось ACL удалять, а потом создать заново полностью. Нельзя разместить более 1 списка доступа на интерфейс, на протокол, на направление . Объясняю: если у нас есть маршрутизатор и у него есть интерфейс, мы можем на входящее направление для IP-протокола разместить только один список доступа, например под номером 10. Ещё одно правило, касающееся самих маршрутизаторов, ACL не действует на трафик, сгенерированный самим маршрутизатором .
Для фильтрации адресов в ACL используется WildCard-маска. Это обратная маска. Берем шаблонное выражение: 255.255.255.255 и отнимаем от шаблона обычную маску.
255.255.255.255-255.255.255.0, у нас получается маска 0.0.0.255, что является обычной маски 255.255.255.0, только 0.0.0.255 является WildCard маской.
Виды ACL
Динамический (Dynamic ACL)
Позволяет сделать следующее, например у вас есть маршрутизатор, который подключен к какому-то серверу и нам нужно закрыть доступ к нему из внешнего мира, но в тоже время есть несколько человек, которые могут подключаться к серверу.
Мы настраиваем динамический список доступа, прикрепляем его на входящем направлении, а дальше людям, которым нужно подключиться, подключаться через Telnet к данному устройству, в результате динамический ACL открывает проход к серверу, и уже человек может зайти скажем через HTTP попасть на сервер. По умолчанию через 10 минут этот проход закрывается и пользователь вынужден ещё раз выполнить Telnet чтобы подключиться к устройству.
Рефлексивный (Reflexive ACL)
Здесь ситуация немножко отличается, когда узел в локальной сети отправляет TCP запрос в Интернет, у нас должен быть открытый проход, чтобы пришел TCP ответ для установки соединения. Если прохода не будет - мы не сможем установить соединение, и вот этим проходом могут воспользоваться злоумышленники, например проникнуть в сеть. Рефлексивные ACL работают таким образом, блокируется полностью доступ (deny any) но формируется ещё один специальный ACL, который может читать параметры пользовательских сессий, которые сгенерированны из локальной сети и для них открывать проход в deny any, в результате получается что из Интернета не смогут установить соединение. А на сессии сгенерированны из локальной сети будут приходить ответы.
Ограничение по времени (Time-based ACL)
Обычный ACL, но с ограничением по времени, вы можете ввести специальное расписание, которое активирует ту или иную запись списка доступа. И сделать такой фокус, например пишем список доступа, в котором запрещаем HTTP-доступ в течении рабочего дня и вешаем его на интерфейс маршрутизатора, то есть, сотрудники предприятия пришли на работу, им закрывается HTTP-доступ, рабочий день закончился, HTTP-доступ открывается,
пожалуйста, если хотите - сидите в Интернете.

Настройка

Сами ACL создаются отдельно, то есть это просто некий список, который создается в глобальном конфиге, потом он присваивается к интерфейсу и только тогда он и начинает работать. Необходимо помнить некоторые моменты, для того, чтобы правильно настроить списки доступа:
  • Обработка ведется строго в том порядке, в котором записаны условия
  • Если пакет совпал с условием, дальше он не обрабатывается
  • В конце каждого списка доступа стоит неявный deny any (запретить всё)
  • Расширенные ACL нужно размещать как можно ближе к источнику, стандартные же как можно ближе к получателю
  • Нельзя разместить более 1 списка доступа на интерфейс, на протокол, на направление
  • ACL не действует на трафик, сгенерированный самим маршрутизатором
  • Для фильтрации адресов используется WildCard маска
Стандартный список доступа
Router(config)#access-list <номер списка от 1 до 99> {permit | deny | remark} {address | any | host}
  • permit: разрешить
  • deny: запретить
  • remark: комментарий о списке доступа
  • address: запрещаем или разрешаем сеть
  • any: разрешаем или запрещаем всё
  • host: разрешаем или запрещаем хосту
  • source-wildcard: WildCard маска сети
  • log: включаем логгирование пакеты проходящие через данную запись ACL
Расширенный список доступа
Router(config)#access-list <номер списка от 100 до 199> {permit | deny | remark} protocol source [operator operand] [port <порт или название протокола>
  • protocol source: какой протокол будем разрешать или закрывать (ICMP, TCP, UDP, IP, OSPF и т.д)
  • deny: запретить
  • operator:
    A.B.C.D - адрес получателя
    any - любой конечный хост
    eq - только пакеты на этом порте
    gt - только пакеты с большим номером порта
    host - единственный конечный хост
    lt - только пакеты с более низким номером порта
    neq - только пакеты не на данном номере порта
    range - диапазон портов
  • port: номер порта (TCP или UDP), можно указать имя
  • established: разрешаем прохождение TCP-сегментов, которые являются частью уже созданной TCP-сессии
Прикрепляем к интерфейсу
Router(config-if)#ip access-group <номер списка или имя ACL> {in | out}
  • in: входящее направление
  • out: исходящее направление
Именованные списки доступа
Router(config)#ip access-list {standard | extended} {<номер ACL> | <имя ACL>}
Router(config-ext-nacl)# {default | deny | exit | no | permit | remark}
  • standard: стандартный ACL
  • extended: расширенный ACL
  • default: установить команду в значение по умолчанию
Ограничение доступа к маршрутизатору
R(config)#line vty 0 4 - переходим в режим настройки виртуальных линий.
R(config-line)#password <пароль>
R(config-line)#login
R(config-line)#access-class 21 in - настраиваем логин и пароль, а также закрепляем список доступа с разрешенными IP-адресами.
Динамические списки доступа

R3(config)#username Student password 0 cisco - создаем пользователей для подключения через Telnet.
R3(config)#access-list 101 permit tcp any host 10.2.2.2 eq telnet
R3(config)#access-list 101 dynamic testlist timeout 15 permit ip 192.168.10.0 0.0.0.255 192.168.30.0 0.0.0.255 - разрешаем подключаться к серверу по Telnet всем узлам.
R3(config)#interface serial 0/0/1
R3(config-if)#ip access-group 101 in - закрепляем 101 ACL за интерфейсом в входящем направлении.
R3(config)#line vty 0 4
R3(config-line)#login local
R3(config-line)#autocommand access-enable host timeout 5 - как только пользователь аутентифицируеться, сеть 192.168.30.0 будет доступна, через 5 минут бездействия сеанс закроется.

Рефлексивные списки доступа


R2(config)#ip access-list extended OUTBOUNDFILTERS
R2(config-ext-nacl)#permit tcp 192.168.0.0 0.0.255.255 any reflect TCPTRAFFIC
R2(config-ext-nacl)#permit icmp 192.168.0.0 0.0.255.255 any reflect ICMPTRAFFIC - заставляем маршрутизатор отслеживать трафик, который инициировался изнутри.
R2(config)#ip access-list extended INBOUNDFILTERS
R2(config-ext-nacl)#evaluate TCPTRAFFIC
R2(config-ext-nacl)#evaluate ICMPTRAFFIC - создаем входящую политику, которая требует, чтобы маршрутизатор проверял входящий трафик, чтобы видеть инициировался ли изнутри и связываем TCPTRAFFIC к INBOUNDFILTERS.
R2(config)#interface serial 0/1/0
R2(config-if)#ip access-group INBOUNDFILTERS in
R2(config-if)#ip access-group OUTBOUNDFILTERS out - применяем входящий и исходящий ACL на интерфейс.
Ограничение по времени

R1(config)#time-range EVERYOTHERDAY
R1(config-time-range)#periodic Monday Wednesday Friday 8:00 to 17:00 - создаем список времени, в котором добавляем дни недели и время.
R1(config)#access-list 101 permit tcp 192.168.10.0 0.0.0.255 any eq telnet time-range EVERYOTHERDAY - применяем time-range к ACL.
R1(config)#interface s0/0/0
R1(config-if)#ip access-group 101 out - закрепляем ACL за интерфейсом.

Поиск проблем
R#show access-lists {ACL номер | имя} - смотрим информацию о списке доступа.
R#show access-lists - смотрим все списки доступа на маршрутизаторе.
Пример
Router#show access-lists
Extended IP access list nick
permit ip host 172.168.1.1 host 10.0.0.5
deny ip any any (16 match(es))
Standard IP access list nick5
permit 172.16.0.0 0.0.255.255

Мы видим что у нас есть два ACL (стандартный и расширенный) под названиями nick и nick5. Первый список разрешает хосту 172.16.1.1 обращаться по IP (это значит что разрешены все протоколы работающие поверх IP) к хосту 10.0.0.5. Весь остальной трафик запрещен показывает команда deny ip any any. Рядом с этим условием в нашем примере пишет (16 match(es)). Это показывает что 16 пакетов попали под это условие.
Второй ACL разрешает проходить трафик от любого источника в сети 172.16.0.0/16.

Практика
Я собрал лабораторные работы для Packet Tracer с 5 главы курса CCNA 4 по теме ACL. Если у вас есть желание закрепить знания на практике, пожалуйста -

Загрузка...