Cisco acl in out

Материал из 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).

Именно по этому принципу и строятся сети предприятий.

Задача у нас следующая:

  1. Всем серверам из DMZ запретить доступ во внутреннюю сеть
  2. Всем серверам из DMZ разрешить двустороннюю связь в интернет
  3. Пользователям из интернета разрешить доступ на серверы в DMZ, учитывая протокол взаимодействия и порты TCP/UDP
  4. Разрешить доступ внутренним пользователям на серверы DMZ
  5. Запретить Алине и Саше доступ в интернет и 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 решается с помощью стандартного списка

Списки IN и OUT на интерфейсах в cisco

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

Допустим, существует 2 интерфейса: А – внутренний, В – внешний.

  • если повесить список IN на интерфейс А, то будет фильтроваться трафик идущий из внутренней сети через этот интерфейс А;
  • если повесить список OUT на интерфейс А, то будет фильтроваться трафик, идущий из внешней сети через этот интерфейс А;
  • если повесить список IN на интерфейс B, то будет фильтроваться трафик идущий из внешней сети через этот интерфейс В;
  • если повесить список OUT на интерфейс В, то будет фильтроваться трафик, идущий из внутренней сети через этот интерфейс B.

Рис.1 (нажмите для увеличения):

Поясню на примере. Существует два интерфейса: внешний – interface FastEthernet0/0 и, соответственно, внутренний – interface FastEthernet0/1. Через эту cisco проходит трафик внутренней сети LOCALNET во внешнюю сеть INTERNET . Делаем:

Этими командами мы присвоили ip из интернетовского пула, повесили список out с именем acl_out, в котором прописали все возможные локальные сети и запретили трафик с этого списка во внешнюю сеть INTERNET . Так же мы обозначили этот интерфейс, как выходной для nat.

Этими командами мы настроили внутренний интерфейс – его ip, и обозначили как входящий для nat.

Теперь осталось настроить роутинги, nat и группы различного доступа во внешнюю сеть. Например:

Данными строками мы прописали gateway по-умолчанию (нашего провайдера); обозначили, что все будет роутиться через этот gateway; настроили nat списком acl_nat_LOCALNET; прописали доступы группам (или отдельным хостам) доступ во внешнюю сеть. (Все, кому запрещен прямой доступ в интернет, будут ходить через squid).

Осталось проверить сделанное нами (примерный вывод команд):

Вот такой принцип… Если есть вопросы – задавайте, постараюсь ответить.

  • Currently 4.60/5
  • 1
  • 2
  • 3
  • 4
  • 5

Rating: 4.6/5(5 votes cast)

«>


[an error occurred while processing the directive]
Карта сайта