Команда ip access — list используется для создания именованных списков доступа. Списки доступа могут быть стандартными и расширенными.
Выполнение команды ip access — list осуществляет вход в режим настройки списка, в котором с помощью команд deny и permit следует определить условия доступа.
Синтаксис ip access-list < standard | extended >name
standard Указывает стандартный список доступа .
extended Указывает расширенный список доступа .
name Имя списка доступа. Возможные варианты имени списка:
число из диапазонов и для стандартных списков
число из диапазонов и для расширенных списков
слово, которое не должно начинаться с цифры, и не содержит пробелов и кавычек.
Значение по умолчанию значение по умолчанию отсутствует.
Режимы команды Global configuration.
При использовании опции standard осуществляется вход в режим настройки стандартных списков доступа (config-std-nacl).
При использовании опции extended осуществляется вход в режим настройки расширенных списков доступа (config-ext-nacl).
Рекомендации по использованию
Команда ip access — list с опцией standard используется для создания и редактирования стандартных списков доступа (config-std-nacl). Стандартные списки доступа используются для фильтрации пакетов только по IP-адресу отправителя (источника) пакетов.
Команда ip access — list с опцией extended используется для создания и редактирования расширенных списков доступа (config-ext-nacl). Расширенные списки доступа используются для более гибкой фильтрации пакетов – по IP-адресу отправителя пакета, IP-адресу получателя пакета, по типу протокола, порту отправителя пакета и порту получателя.
Если ввести команду ip access-list extended с именем, с которым уже существует standard список доступа, то выдается сообщение об ошибке (аналогично Cisco IOS):
Access-list type conflicts with prior definition
% A named standard IP access list with this name already exists
Если ввести команду ip access — list standard с именем, с которым уже существует extended список доступа, то выдается сообщение об ошибке (аналогично Cisco IOS):
Access-list type conflicts with prior definition
% A named extended IP access list with this name already exists
Редактирование записей списков доступа производится с помощью команд permit и deny . В зависимости от того в каком режиме производится редактирование, возможности команд permit и deny будут различаться.
Удаление списка доступа целиком осуществляется командой
Созданные списки доступа могут использоваться в следующих случаях:
· фильтрующие списки доступа привязываются к сетевому интерфейсу (команда ip access-group при настройке интерфейса);
· списки доступа привязываются к статической криптографической карте и динамической криптокарте для указания защищенного трафика (команда match address при настройке crypto map);
· стандартные нумерованные списки доступа используются для ограничения сервисов (протоколов) (команда ip port-map );
· задавать критерий соответствия трафика данному классу (команда match access-group при настройке class-map).
Ниже приведен пример создания списка доступа с именем E105:
Router(config)#ip access-list extended E105
Router(config-ext-nacl)#deny udp host 10.1.1.2 range 500 500 host 10.2.2.2 range 500 500
Router(config-ext-nacl)#deny udp host 10.1.1.2 range 500 500 host 10.3.3.2 range 500 500
Router(config-ext-nacl)#deny udp host 10.1.1.2 range 500 500 host 4.4.4.4 range 500 500
Router(config-ext-nacl)#permit ip 10.11.11.0 0.0.0.255 10.4.4.0 0.0.0.255
Содержание
Материал из Xgu.ru
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.
Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.
Автор: Наташа Самойленко
Содержание
[править] Стандартные и расширенные ACL
Именованные ACL могут быть стандартные и расширенные. У них немного отличается синтаксис с нумерованными:
В конце любого ACL есть невидимое правило deny ip any any.
[править] Стандартные ACL
Стандартный ACL позволяет указывать только IP-адрес отправителя:
Применение ACL на интерфейсе:
[править] Пример настройки стандартного ACL
Пример стандартного нумерованного ACL, который запрещает хосту 10.0.3.2 доступ в сегмент сервера, но разрешает всем остальным:
Применение ACL на интерфейсе (если применить ACL на интерфейсе fa0/0 в направлении in, то он заблокирует и доступ хоста 10.0.3.2 в интернет):
Тот же пример только с именованным ACL:
Применение ACL на интерфейсе:
[править] Применение ACL к vty
К vty ACL применяется другой командой:
Для ограничения доступа к маршрутизатору, по протоколам telnet или SSH, можно использовать стандартный ACL и применить его к vty.
Данный пример ACL разрешает подключаться к маршрутизатору только с адреса 4.4.4.4:
[править] Расширенные ACL
Расширенный ACL, при указании протоколов IP, ICMP и др., позволяет указывать IP-адреса отправителя и получателя:
Расширенный ACL, при указании протоколов TCP или UDP, позволяет указывать и порты отправителя и/или получателя:
[править] Пример настройки расширенного ACL
Задание для расширенного ACL:
- запретить хосту 10.0.3.2 доступ к серверу по RDP,
- запретить хосту 10.0.3.1 доступ по HTTP,
- разрешить всем остальным из сети 10.0.3.0 всё,
- запретить всем остальным хостам (хотя в конце и так есть невидимое deny ip any any, его часто дописывают в конце правил, чтобы явно видеть по срабатыванию счетчиков, что трафик заблокировал ACL):
Пример расширенного нумерованного ACL:
Применение ACL на интерфейсе:
Расширенный именованный ACL:
Применение ACL на интерфейсе:
[править] Команды просмотра
[править] Другие виды ACL
[править] Динамические ACL
[править] Пример настройки динамических ACL
Создание обычного ACL (в нём разрешён telnet для того чтобы пользователи могли пройти аутентификацию):
Создание динамического ACL:
Если необходимо чтобы параметр any при применении ACL был заменен на IP-адрес инициатора telnet-соединения, то в команде access-enable host необходимо указать параметр host.
Дополнительно можно настроить временной интервал, после которого динамическая запись будет удалена независимо от активности пользователя:
Применение ACL на интерфейсе:
Настройка доступа telnet:
Команда access-enable host активирует динамический ACL:
- host — указывает, что запись будет создана для хостов, которые инициировали сессию telnet,
- timeout — настройка периода времени после которого, в случае не использования динамической записи, запись будет удалена.
[править] Проверка работы
Проверка связи до активирования динамического ACL:
Просмотр информации на dyn1 до активирования динамического ACL:
После активирования динамического ACL (qua7 пингуется, а интерфейс dyn1 по-прежнему нет):
Просмотр информации на dyn1 после активирования динамического ACL:
Если команда access-enable указана без параметра timeout, то запись будет оставаться постоянно. Удалить её можно с помощью команды clear ip access-template. Например, очистить запись в динамическом ACL:
[править] Пример конфигурации маршрутизатора
[править] Reflexive ACL
Reflexive ACl могут быть настроены только с расширенными именованными ACL. Сами RACL не применяются к интерфейсу, они применяются к ACL.
[править] Настройка RACL
Схема сети такая же как и для динамических ACL.
Создание ACL для исходящего трафика:
Создание ACL для входящего трафика:
[править] Настройка таймеров
Значение глобального таймера по умолчанию 300 секунд:
Изменение значения глобального таймера:
Можно для каждой записи указать своё значение таймера, например:
Если настроены и глобальный и специфический таймер для записи, то приоритет у более специфического таймера.
[править] Пример конфигурации
[править] Временные интервалы для ACL
Применение временных интервалов к правилам ACL может быть полезно, например, в таких случаях:
- правилами компании разрешается различный тип доступа в зависимости от времени рабочего дня,
- необходимо создать временное правило
Первый вариант может быть, например, когда в компании запрещен доступ к определенным ресурсам в рабочее время, но разрешен час до начала рабочего времени, и час после окончания рабочего времени.
Второй вариант может возникнуть, например, когда в компании периодически необходимо предоставлять сотрудникам временный доступ к ресурсам. Например, в компании неделю работает подрядчик и ему нужен доступ к каким-то из серверов компании. Если создать правило сразу с временным интервалом, то оно перестанет работать (станет неактивным) в строго определенное время и можно не бояться забыть его удалить. К сожалению, ACL со временем, как правило, сильно разрастаются и в них остаются «мертвые» правила. Такой подход с временными интервалами хотя бы немного позволит упростить поддержание ACL в актуальном виде.
[править] Настройка параметров временного интервала
Пример настройки временного интервала для рабочих дней:
Пример настройки временного интервала для выходных дней:
Просмотр информации о настроенных временных интервалах (второй интервал неактивен, так как сейчас рабочий день):
Списки управления доступом являются частью комплексной системы безопасности сети. Они позволяют запретить/разрешить определенным хостам доступ к ресурсам сети. Например, в корпоративной сети администраторы могут запретить доступ в интернет определенным пользователям, а остальным наоборот — разрешить.
Запретить/разрешить мы можем на основе IP адресов, портов и задействованных протоколов. На этом принципе и работают списки управления доступом ACL ( Access Control List ).
Другим примером использования списков доступа является запрет поступающих на маршрутизатор пакетов протокола ICMP. Как мы знаем с помощью ICMP работают утилиты Ping, Traceroute/Tracert. С помощью данных утилит можно просканировать сеть, а это нежелательно с точки зрения политики безопасности каждой сети.
Списки доступа позволяют фильтровать трафик на входе и выходе интерфейса маршрутизатора.
И в чем же разница?
Разница в том, что на входе весь поступающий трафик подвергается фильтрации. Нежелательные пакеты отбрасываются и уже только потом остальные пакеты маршрутизируются:

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

Данная особенность может быть полезна при определенных обстоятельствах.
Так что же из себя представляют списки доступа и как они работают?
Списки доступа содержат просто набор инструкций какие порты и адреса блокировать, а какие наоборот разрешить. Этих инструкций может от нескольких единиц до десятков.
При поступлении трафика проверка списка доступа начинается сверху вниз, то есть с первой инструкции. Как только будет найдено совпадение проверка списка прекратится и будет выполнено действие, указанное в инструкции (заблокировать или пропустить).
Внизу списка всегда следует неявная инструкция по блокировке всего трафика. Данная инструкция добавляется автоматически самой системой. В настройках она не видна, но нужно знать, что она есть.
Cisco IOS поддерживает 3 типа ACL:
- стандартные списки
- расширенные списки
- именованные списки
Стандартные списки позволяют проверять только IP адрес отправителя. Например,в нашем 1-ом примере доступ в интернет Алисе и Кате можно закрыть с помощью стандартного списка. В данном случае блокируется абсолютно весь трафик, проходящий через маршрутизатор. Стандартные списки доступа рекомендуется устанавливать как можно ближе к отправителю.
Расширенные списки позволяют фильтровать пакеты на основе адресов, портов и протоколов получателя и отправителя.
Например, Алисе разрешается использовать электронную почту, но все еще запрещается использовать остальной доступ в интернет. Кате же разрешены звонки по интернет и запрещены все остальные службы интернет.
Электронная почта работает по протоколам POP/SMTP (порты 110/ 25). Следовательно можно внести исключение в списки доступа исходя из выше описанных условий.
То же самое касается и IP телефонии — выбираем задействованный протокол и порт и вносим в список доступа.
Расширенные списки рекомендуется устанавливать ближе к получателю.
Именованные списки являются теми же стандартными и расширенными ACL, однако предоставляют более гибкие возможности для редактирования (об этом немного позже).
Рассмотрим какие команды используются в каждом типе ACL, а затем применим их на примере.
Инструкция задается следующей командой:
Router(config)# access-list номер permit | deny IP_адрес_отправителя инвертированная_маска (wildcard mask)
Router(config)# access-list 1 deny 192.168.1.0 0.0.0.255
Router(config)# access-list 1 permit 10.1.0.0 0.0.255.255
Router(config)# access-list 1 deny any
Номер списка принимает значения от 1 до 99. Цифры не означают приоритет или упорядоченность. Это просто номер списка. Затем следует команда permit (разрешить) или deny (запретить). С помощью инвертированной маски (wildcard mask) мы можем определить диапазон адресов, на которые будет распространяться запрет/разрешение.
В первой команде мы запрещаем сеть 192.168.1.0/24, а во второй разрешаем сеть 10.1.0.0/16.
Таких команд (инструкций) можно добавлять сколько угодно. Как было отмечено ранее работа всегда начинается с самой первой команды и далее идет вниз по списку. В конце списка всегда стоит неявная команда запрещающая весь остальной трафик, поэтому необходимо это учитывать при планировании списков доступа. При добавлении новой команды в список она добавляется всегда в конец списка.
А как работает инвертированная маска (wildcard mask)?
Работа инвертированной маски основана на следующем принципе.
На тех битовых позициях, где установлен 0 IP адрес устройства должен совпадать с адресом, указанным в настройках ACL.
На тех битовых позициях, где установлена 1 IP адрес устройства может не совпадать с адресом, указанным в настройках ACL, то есть может принимать любые значения. Поясню сказанное на примерах.
Пример №1
Необходимо разрешить доступ диапазону адресов 192.168.1.0 — 192.168.1.255. Так как первые 3 октета должны совпадать полностью, а четвертый может принимать любые значения, то используем маску 0.0.0.255. Вот как это выглядит на рисунке

Пример №2
К диапазону 192.168.1.0-192.168.1.255 добавим еще один диапазон 192.168.2.0 — 192.168.2.255.
Теперь у нас должны совпадать первые 2 октета полностью и первые 6 бит третьего октета. Поэтому маска у нас 0.0.3.255. А в настройках ACL мы укажем адрес 192.168.0.0. Можно, конечно, указать сразу 2 отдельные команды на каждый диапазон, с помощью маски мы можем сократить запись
Пример №3
Необходимо разрешить/запретить диапазон 200.40.0.4 — 200.40.0.7. У нас совпадают полностью первые 3 октета и первые 6 бит четвертого октета:

После того, как список создан, необходимо определить направление (входящий или исходящий) трафика и на каком интерфейсе он будет фильтроваться:
Router(config-if)# ip access-group номер_применяемого_списка in | out
in — входящий трафик
out — исходящий трафик
Алгоритм работы стандартного списка выглядит так:

Расширенный список доступа
Расширенные списки доступа имеют номера от 100 до 199.
Команды имеют довольно широкий набор опций, поэтому покажу наиболее общий пример команды:
Router(config)#access-list номер permit | deny протокол IP_адрес_отправителя инвертированная_маска порт_отправителя IP_адрес_получателя инвертированная_маска порт_получателя
Router(config)#access-list 100 permit tcp 192.168.1.0 0.0.0.255 eq 80 10.1.1.0 0.0.0.255 eq 443
Данная команда разрешает TCP трафик от хостов с диапазоном 192.168.1.0/24 на хосты с диапазоном 10.1.1.0/24. Причем порты отправителя должны быть равны 80, а порты получателя — 443. Если все эти условия соблюдаются, то пакет пропускается, если нет, то переходит к следующей команде.
Router(config)#access-list 100 deny tcp any host 172.16.1.5 gt 5000
А вот эта команда запрещает весь TCP трафик от любого хоста на конкретный хост с адресом 172.16.1.5. Причем запрет действует при условии, что запросы идут на порты получателя от 5001 и выше.
В конце списка всегда следует неявная команда, запрещающая весь трафик.
Не забудь определить интерфейс и направление трафика для фильтрации.
Вот как выглядит алгоритм работы расширенных списков:
Для просмотра настроек используй следующие команды:
Router# show running-config

Router# show ip access-lists

Router# show ip access-lists interface название_интерфейса

Ничем не отличаются от стандартных и расширенных списков, однако позволяют гибко редактировать вновь созданные списки.
Стандартные и расширенные списки редактировать нельзя. К примеру, нельзя в середину списка вставить команду или удалить ее. Для этого нужно сначала деактивировать список на самом интерфейсе , а затем полностью его удалить и настроить заново.
Именованный список позволяет использовать названия списков вместо их номеров. Все введенные команды нумеруются, что позволяет легко добавлять и удалять команды.
Синтаксис команд представлен ниже.
Для стандартных списков:
Router(config)# ip access-list standard название
Router(config-std-nacl)# permit host IP_адрес_отправителя
Router(config-std-nacl)# deny IP_адрес_отправителя инвертированная_маска
Для расширенных списков:
Router(config)# ip access-list extended название
Router(config-ext-nacl)# permit ip IP_адрес_отправителя инвертированная_маска IP_адрес_получателя инвертированная_маска
Router(config-ext-nacl)# deny tcp IP_адрес_отправителя инвертированная_маска порт_отправителя IP_адрес_получателя инвертированная_маска порт_получателя
Чтобы удалить ненужную команду достаточно узнать ее номер. Чтобы узнать номер введи команду:
Router# show ip access-list название

а затем укажи ее номер при удалении:
Router(config-ext-nacl)# no 10 — этого уже достаточно
Ну а чтобы добавить команду достаточно тоже указать номер и затем саму команду.
Обращаю твое внимание, что удаление и добавление строк списка происходит в режиме настройки ACL, например так:
Router(config-ext-nacl)# 5 deny ip any any
Пример использования списков доступа
Сеть состоит из 3 частей:
- Внутренняя сеть — основная инфраструктура локальной сети любого предприятия.
- Демилитаризованная зона DMZ — в ней располагаются сервера, которые доступны из интернета. Доступ во внутреннюю сеть из этой зоны закрыт из соображений безопасности.
- Внешняя сеть — связывается напрямую с провайдером. Обычно состоит из маршрутизаторов и сетевых экранов (firewalls).
Именно по этому принципу и строятся сети предприятий.
Задача у нас следующая:
- Всем серверам из DMZ запретить доступ во внутреннюю сеть
- Всем серверам из DMZ разрешить двустороннюю связь в интернет
- Пользователям из интернета разрешить доступ на серверы в DMZ, учитывая протокол взаимодействия и порты TCP/UDP
- Разрешить доступ внутренним пользователям на серверы DMZ
- Запретить Алине и Саше доступ в интернет и DMZ, то есть они могут работать только во внутренней сети.
Пункт №1 можно решить с помощью расширенного списка на маршрутизаторе LAN_Router

На самом деле в данном примере серверы не имеет доступа к внутренним компьютерам, потому что подключены к различным интерфейсам маршрутизатора Firewall. Данный маршрутизатор ничего не знает о сети 192.168.1.0/24, поэтому не может перенаправить пакеты серверов к маршрутизатору LAN_Router. Однако достаточно маленькой ошибки в конфигурации и внутренние компьютеры станут доступны не только для DMZ, но и для внешней сети.
Поэтому список доступа на маршрутизаторе LAN_router безусловно необходим.
А какие ошибки могут привести к тому, что сеть LAN будет доступна для DMZ?
Например, на маршрутизаторе Firewall при настройке статического маршрута может быть по ошибке указан интерфейс, ведущий к маршрутизатору LAN_Router.
Или на маршрутизаторе LAN_Router будет выполнена команда redistribute connected . В данный момент между 2-мя маршрутизаторами настроен EIGRP. Если выполнить вышеназванную команду, то маршрутизатор Firewall узнает о сети LAN.
Пункты №2 и №3 не требуют списков доступа. Достаточно настроить правильно маршрутизацию и NAT на маршрутизаторе Firewall
Пункт №4. Внутренние пользователи уже имеют доступ в зону DMZ, однако связь будет работать только в одну сторону, так как мы закрыли доступ еще в п.1.
Как же сделать так, чтобы внутренние пользователи имели полноценный доступ ко всем серверам и в то же время запретить серверам доступ во внутреннюю сеть?
Решение простое — достаточно настроить NAT на маршрутизаторе LAN_Router. Тогда только внутренние пользователи смогут подключаться к серверам, а сервера уже не смогут из-за активированного списка доступа. Однако это не единственное решение

Пункт №5 решается с помощью стандартного списка
«>






