Меню Рубрики

Use access list acl в роутере что это

Урок 39. Списки контроля доступа ACL (Access List Control)

Списки управления доступом являются частью комплексной системы безопасности сети. Они позволяют запретить/разрешить определенным хостам доступ к ресурсам сети. Например, в корпоративной сети администраторы могут запретить доступ в интернет определенным пользователям, а остальным наоборот — разрешить.

Запретить/разрешить мы можем на основе 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 решается с помощью стандартного списка

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Ярлык на рабочий стол linux
  • Яндекс строка для linux
  • Яндекс программы для linux
  • Яндекс навигатор для linux
  • Яндекс диск монтирование linux