Сегодня мы начнем изучение списка управления доступом ACL, эта тема займет 2 видеоурока. Мы рассмотрим конфигурацию стандартного списка ACL, а на следующем видеоуроке я расскажу про расширенный список.
На этом уроке мы рассмотрим 3 темы. Первая – что такое ACL, вторая — в чем заключается разница между стандартным и расширенным списком доступа, а в конце урока в качестве лабораторной работы мы рассмотрим настройку стандартного ACL и решение возможных проблем.
Итак, что такое ACL? Если вы изучали курс с самого первого видеоурока, то помните, как мы организовывали связь между различными сетевыми устройствами.
Мы также изучили статическую маршрутизацию по разным протоколам с целью приобретения навыков организации связи между устройствами и сетями. Сейчас мы достигли этапа обучения, на котором следует озаботиться обеспечением контроля трафика, то есть помешать «плохим парням» или неавторизованным пользователям проникнуть в сеть. Например, это может касаться людей из отдела продаж SALES, который изображен на данной схеме. Здесь у нас показаны также финансовый отдел ACCOUNTS, отдел управления MANAGEMENT и серверная SERVER ROOM.
Так вот, в отделе продаж может работать сотня сотрудников, и мы не хотим, чтобы кто-то из них смог бы добраться до серверной по сети. Исключение сделано для менеджера отдела продаж, который работает за компьютером Laptop2 – он может иметь доступ к серверной. Новый сотрудник, работающий за компьютером Laptop3, не должен иметь такого доступа, то есть если трафик с его компьютера достигнет роутера R2, он должен быть отброшен.
Роль ACL заключается в том, чтобы фильтровать трафик согласно заданным параметрам фильтрации. Они включают в себя IP-адрес источника, IP-адрес назначения, протокол, количество портов и другие параметры, благодаря которым можно идентифицировать трафик и совершить с ним какие-то действия.
Итак, ACL представляет собой механизм фильтрации 3-го уровня модели OSI. Это означает, что данный механизм применяется в роутерах. Основным критерием для фильтрации является идентификация потока данных. Например, если мы хотим заблокировать парню с компьютером Laptop3 доступ к серверу, прежде всего мы должны идентифицировать его трафик. Этот трафик перемещается в направлении Laptop- Switch2-R2-R1-Switch1-Server1 через соответствующие интерфейсы сетевых устройств, при этом интерфейсы G0/0 роутеров не имеют к нему никакого отношения.
Чтобы идентифицировать трафик, мы должны идентифицировать его путь. Сделав это, мы сможем решить, где именно нужно установить фильтр. Можете не беспокоиться о самих фильтрах, мы обсудим их на следующем уроке, пока что нам нужно понять принцип, к какому интерфейсу следует применить фильтр.
Если рассмотреть роутер, можно увидеть, что каждый раз при движении трафика есть интерфейс, куда поступает поток данных, и интерфейс, через который этот поток исходит.
Фактически существуют 3 интерфейса: входной интерфейс, выходной интерфейс и собственный интерфейс роутера. Просто запомните, что фильтрация может быть применена только к входному или к выходному интерфейсу.
Принцип работы ACL напоминает пропуск на мероприятие, которое могут посетить только те гости, чье имя имеется в списке приглашенных особ. ACL представляет собой список квалификационных параметров, которые служат для идентификации трафика. Например, это список указывает на то, что с IP-адреса 192.168.1.10 разрешен любой трафик, а трафик со всех остальных адресов запрещен. Как я уже сказал, этот список может быть применен как для входного, так и для выходного интерфейса.
Существует 2 вида списков ACL: стандартные и расширенные. Стандартный ACL имеет идентификатор от 1 до 99 или от 1300 до 1999. Это просто названия списков, которые не имеют никаких преимуществ друг перед другом по мере возрастания нумерации. Кроме номера, списку ACL можно присвоить собственное имя. Расширенные списки ACL имеют нумерацию от 100 до 199 или от 2000 до 2699 и также могут иметь название.
В стандартном ACL классификация основана на IP-адресе источника трафика. Поэтому при использовании такого списка вы не можете ограничить трафик, направленный к какому-либо источнику, можно только заблокировать трафик, исходящий из какого-то устройства.
Расширенный ACL классифицирует трафик по IP-адресу источника, IP-адресу назначения, по применяемому протоколу и по номеру порта. Например, вы можете заблокировать только FTP-трафик, или только HTTP-трафик. Сегодня мы рассмотрим стандартный ACL, а расширенным спискам посвятим следующий видеоурок.
Как я уже сказал, ACL представляет собой список условий. После того, как вы применили этот список ко входящему или исходящему интерфейсу роутера, роутер сверяет трафик с этим списком, и если он соответствует изложенным в списке условиям, принимает решение, разрешить или запретить данный трафик. Часто люди затрудняются в определении входного и выходного интерфейсов роутера, хотя здесь нет ничего сложного. Когда мы говорим о входящем интерфейсе, это означает, что на данном порту будет контролироваться только входящий трафик, а по отношению к исходящему трафику роутер не будет применять ограничений. Аналогично, если речь идет о выходном интерфейсе, это означает, что все правила будут применяться только к исходящему трафику, при этом входящий трафик на данном порту будет приниматься без ограничений. Например, если роутер имеет 2 порта: f0/0 и f0/1, то список ACL будет применяться только для трафика, входящего в интерфейс f0/0, или только для трафика, исходящего из интерфейса f0/1. На трафик, входящий в интерфейс f0/1 или исходящий из порта f0/0, действие списка распространяться не будет.
Поэтому пусть вас не смущает входящее или исходящее направление интерфейса, оно зависит от направления движения конкретного трафика. Итак, после того, как роутер проверил трафик на совпадение условиям ACL, он может принять только два варианта решений: пропустить трафик или отклонить его. Например, вы можете разрешить трафик, направленный на адрес 180.160.1.30 и отклонить трафик, предназначенный для адреса 192.168.1.10. Каждый список может содержать множество условий, но каждое из этих условий должно разрешать или запрещать.
Предположим, имеется список:
Запретить _______
Разрешить ________
Разрешить ________
Запретить _________.
Сначала роутер проверит трафик на совпадение с первым условием, если оно не совпадает – со вторым условием. Если трафик совпадает с третьим условием, роутер прекратит проверку и не будет сравнивать его с остальными условиями списка. Он выполнит действие «разрешить» и перейдет к проверке следующей порции трафика.
На тот случай, если вы не установили правило для какого-либо пакета и трафик прошел все строки списка, не попав ни под одно из условий, он уничтожается, потому что каждый список ACL по умолчанию заканчивается командой deny any – то есть отбросить любой пакет, не попавший ни под одно из правил. Это условие вступает в силу, если в списке имеется хотя бы одно правило, в противном случае оно не действует. Но если в первой строке будет запись deny 192.168.1.30 и список больше не будет содержать никаких условий, то в конце должна быть команда permit any, то есть разрешить любой трафик, кроме запрещенного правилом. Вы должны учесть это обстоятельство, чтобы не допускать ошибок при настройке списка ACL.
Я хочу, чтобы вы запомнили основное правило формирования списка ASL: стандартный ASL размещайте как можно ближе к назначению, то есть к получателю трафика, а расширенный ASL – максимально близко к источнику, то есть к отправителю трафика. Таковы рекомендации Cisco, однако на практике встречаются ситуации, когда разумнее размещать стандартный ACL вблизи источника трафика. Но если вам на экзамене попадется вопрос о правилах размещения ACL, следуйте рекомендациям Cisco и отвечайте однозначно: стандартный – ближе к назначению, расширенный – ближе к источнику.
Теперь давайте рассмотрим синтаксис стандартного ACL. Существуют два типа синтаксиса команд в режиме глобальной конфигурации роутера: классический синтаксис и современный синтаксис.
Классический тип команды это access-list <номер ACL> <запретить/ разрешить> <критерий>. Если вы зададите <номер ACL> от 1 до 99, устройство автоматически поймет, что это стандартный AСL, а если от 100 до 199 – то расширенный. Поскольку на сегодняшнем уроке мы рассматриваем стандартный список, то можем использовать любое число от 1 до 99. Затем указывается действие, которое нужно применить при совпадении параметров с указанным далее критерием – разрешить или запретить трафик. Критерий мы рассмотрим позже, так как он используется и в современном синтаксисе.
Современный тип команды также используется в режиме глобальной конфигурации Rx(config) и выглядит так: ip access-list standard <номер/имя ACL>. Здесь можно использовать как номер от 1 до 99, так и название ACL-списка, например, ACL_Networking. Эта команда немедленно переводит систему в режим подкоманд стандартного режима Rx(config-std-nacl), где уже необходимо ввести <запретить/ разрешить> <критерий>. Современный тип команд имеет больше преимуществ по сравнению с классическим.
В классическом списке, если вы набираете access-list 10 deny ______, затем набираете следующую команду такого же рода для другого критерия и в результате у вас образуется 100 таких команд, то для изменения какой-либо из введенных команд вам понадобится удалить весь список access-list 10 командой no access-list 10. При этом будут удалены все 100 команд, потому что не существует способа отредактировать какую-либо отдельную команду данного списка.
В современном синтаксисе команда разделена на две строки, первая из которых содержит номер списка. Предположим, если у вас имеется список access-list standard 10 deny ________, access-list standard 20 deny ________ и так далее, то у вас существует возможность вставить между ними промежуточные списки с другими критериями, например, access-list standard 15 deny ________.
Кроме того, вы можете просто удалить строки access-list standard 20 и набрать их заново с другими параметрами между строками access-list standard 10 и access-list standard 30. Таким образом, существуют различные способы редактирования современного синтаксиса ACL.
Вам нужно очень тщательно подходить к составлению ACL-списков. Как известно, списки читаются сверху вниз. Если вы разместите сверху строку с разрешением трафика какого-то конкретного хоста, то ниже сможете расположить строку с запретом трафика целой сети, в которую входит этот хост, при этом будут проверяться оба условия – трафик к конкретному хосту будет пропускаться, а трафик всех остальных хостов этой сети блокироваться. Поэтому всегда располагайте конкретизированные записи вверху списка, а общие – внизу.
Итак, после того, как вы создали классический или современный ACL, вы должны его применить. Для этого нужно зайти в настройки конкретного интерфейса, например, f0/0 с помощью команды interface < тип и слот >, перейти к режиму подкоманд интерфейса и ввести команду ip access-group <номер/имя ACL> <in/out>. Обратите внимание на разницу: при составлении списка используется access-list, а при его применении — access-group. Вы должны определить, к какому интерфейсу будет применен данный список – к интерфейсу входящего или к интерфейсу исходящего трафика. Если список имеет имя, например, Networking, это же имя повторяется в команде применения списка на данном интерфейсе.
Теперь давайте возьмем конкретную задачу и попробуем её решить на примере схемы нашей сети с использованием Packet Tracer. Итак, у нас имеется 4 сети: отдела продаж, бухгалтерии, менеджмента и серверной.
Задача №1: весь трафик, направляемый с отдела продаж и финансового отдела в отдел менеджмента и серверную, должен блокироваться. Местом блокировки является интерфейс S0/1/0 роутера R2. Сначала мы должны составить список, в котором будут содержаться такие записи:
Назовем список «ACL безопасности менеджмента и серверной», сокращенно ACL Secure_Ma_And_Se. Далее следует запрет трафика сети финансового отдела 192.168.1.128/26, запрет трафика сети отдела продаж 192.168.1.0/25 и разрешение любого другого трафика. В конце списка указано, что он применяется для исходящего интерфейса S0/1/0 роутера R2. Если у нас не будет записи Permit Any в конце списка, то весь остальной трафик будет заблокирован, потому что по умолчанию в конце списка ACL всегда устанавливается запись Deny Any.
Могу ли я применить данный ACL к интерфейсу G0/0? Конечно, могу, но в этом случае заблокируется только трафик из бухгалтерии, а трафик отдела продаж ничем не будет ограничен. Точно также можно применить ACL к интерфейсу G0/1, но в этом случае не будет блокироваться трафик финансового отдела. Конечно, мы можем составить для этих интерфейсов два отдельных списка блокировки, но намного эффективнее соединить их в один список и применить его для выходного интерфейса роутера R2 или входного интерфейса S0/1/0 роутера R1.
Хотя согласно правилам Cisco, стандартный список ACL должен размещаться как можно ближе к назначению, я все же размещу его ближе к источнику трафика, потому что хочу заблокировать весь исходящий трафик, а это целесообразнее сделать ближе к источнику, чтобы этот трафик зря не занимал сеть между двумя роутерами.
Я забыл рассказать вам о критериях , так что давайте быстро вернемся назад. В качестве критерия вы можете указать any – в этом случае любой трафик любого устройства и любой сети будет запрещен или разрешен. Можно также указать хост с его идентификатором – в этом случае запись будет представлять собой IP-адрес конкретного устройства. Наконец, можно указать целую сеть, например, 192.168.1.10/24. При этом /24 будет означать наличие маски подсети 255.255.255.0, однако в ACL невозможно указать IP-адрес маски подсети. Для этого случая в ACL имеется концепт под названием Wildcart Mask, или «обратная маска». Поэтому вы должны указать IP-адрес и обратную маску. Обратная маска выглядит следующим образом: вы должны отнять из общей маски подсети прямую маску подсети, то есть от 255 отнимается число, соответствующее значению октета в прямой маске.
Таким образом, в качестве критерия в списке ACL вы должны использовать параметр 192.168.1.10 0.0.0.255.
Как это работает? Если в октете обратной маски расположен 0, считается, что критерий совпадает с соответствующим октетом IP-адреса подсети. Если в октете обратной маски имеется какое-то число, совпадение не проверяется. Таким образом, для сети 192.168.1.0 и обратной маски 0.0.0.255, весь трафик с адресов, три первых октета которых равны 192.168.1., независимо от значения четвертого октета, будет блокироваться или разрешаться в зависимости от заданного действия.
Использование обратной маски не представляет сложностей, и мы еще вернемся к Wildcart Mask в следующем видео, чтобы я смог объяснить, как с ней работать.
28:50 мин
Спасибо, что остаётесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас оформив заказ или порекомендовав знакомым, 30% скидка для пользователей Хабра на уникальный аналог entry-level серверов, который был придуман нами для Вас: Вся правда о VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от $20 или как правильно делить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40GB DDR4).
Dell R730xd в 2 раза дешевле? Только у нас 2 х Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 ТВ от $199 в Нидерландах! Dell R420 — 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — от $99! Читайте о том Как построить инфраструктуру корп. класса c применением серверов Dell R730xd Е5-2650 v4 стоимостью 9000 евро за копейки?
Автор: ua-hosting