Предоставление общего доступа к списку напоминаний. Ограничение доступа к маршрутизатору

Врезка

Мнение специалиста

Вот что сказал о проблемах квотной выборки один из авторитетнейших специалистов в обла­сти методики и методологии А. Крыштановский. В чем лукавство квотных выборок? В том, что квоту мы задаем по одним параметрам, а изу­чаем другие. Более того, мы точно знаем, что некоторые характеристики существенно влияют на результаты, и по логике вещей их следовало оы квотировать. Но сделать этого не можем, поскольку для планирования квот необходимо знать распределение интересующих показате­лей в генеральной совокупности, но это возмож­но лишь в отношении достаточно узкого круга

оциально-демографических характеристик. Другая проблема. Практически опрос находит-Maif Руках инт ервыоера. Мы даем ему мини-

альное количество квотируемых параметров,

то КаК ° Н Р аспо Р я Д ится ими " мы не знаем. Час-

он выбирает симпатичных девушек, игнори-

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

непонятны характер и масштаб перекосов, а следовательно, и их последствия. Адаптировано по источнику: Встреча маркетоло­гов в ГУ-ВШЭ // http://marketing.spb.ru/conf/hse/ 02/report.htm

Многоступенчатая выборка поначалу напоминает огромную воронку, поскольку широкое горлышко (огромную совокупность респондентов или объектов) через ряд процедур сводят к узкой горловине, с которой социолог в конечном итоге и имеет дело.

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

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

Такая вот странная диалектика у нас получается: число ошибок на каж­дой ступеньке возрастает, они накапливаются с каждым шагом и разраста­ются к концу исследования до неуправляемых размеров. Вместо обратной пирамиды, т.е. воронки, мы получили теперь прямую пирамиду (рис. 11).

Рис. 11. Парадоксальная диалектика многоступенчатой выборки

Специалисты об этом явлении говорят так: на каждой ступени процессу не­зависимого извлечения выборки сопутствует своя выборочная ошибка. Отдель­ные ошибки складываются в общую ошибку многоступенчатой выборки. Таким образом, увеличение количества ступеней, с одной стороны, приводит к сокра­щению базовых точек опроса и, следовательно, к экономии людских и матери­альных ресурсов, сдругой - к уменьшению точности выборочных оценок 20 .



При прочих равных условиях социологи отдают предпочтение вероятно­стной выборке, поскольку в этом случае исследователь может заранее рас­считать, насколько правильно такая выборка отражает популяцию, из кото­рой она спроектирована. Напомним, однако, что главным условием осуще­ствления вероятностной выборки является наличие полного списка всех

20 Формирование выборочной совокупности // http://polosocis.com/methods/

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

Начнем с нематериальных средств. В 1994-1995 гг. мы проводили комплек­сное исследование по заказу Управления социальной защиты (УСЗ) Советско­го района Нижнего Новгорода. В тот период социальная политика в стране претерпевала коренную реформу. Целью исследования была оценка эффектив­ности существующей системы социальной защиты так называемых «слабозащи-щенных» слоев населения и выработка рекомендаций по первоочередным ме­рам ее преобразования в новых рыночных условиях. Достижение этой цели предполагало решение рада задач, одной из которых был опрос клиентов Уп­равления социальной защиты, которые состояли из различных категорий, - пенсионеров по старости, инвалидности, потере кормильца, а также сирот, матерей-одиночек, обитателей детских домов, приютов и т.п. Поскольку УСЗ располагало списками каждой из этих групп и оно же выступало в роли заказ­чика, это означало, что наша исследовательская группа имела свободный дос­туп к спискам т.е. располагала своеобразным «административным ресурсом».

Как в абсолютном большинстве случаев, мы использовали метод много­ступенчатой выборки. На первом этапе мы прибегли к методу стратифици­рованной (районированной) выборки, разделив всю генеральную совокуп­ность клиентов на указанные выше категории, т.е. группы, обладавшие оп­ределенной внутренней однородностью. Численность каждой из этих групп была известна из тех же списков, следовательно, нам не составляло труда определить не только их долю в общем объеме генеральной совокупности, но и численность, исходя из заданного объема выборочного массива. Далее мы переходили к систематической выборке, рассчитав ее шаг, который в данном случае оказался одинаковым для каждой из групп. Составив список респондентов по каждой из категорий (с указанием конкретных имен и ад­ресов), мы произвели картографирование, т.е. распределили всех, кто попал в состав выборочной совокупности, по отдельным территориальным участ­кам обслуживания - в соответствии с принятой в УСЗ схемой закрепления за каждым из участком определенных социальных работников.

Следует отметить, что в этом опросе в качестве анкетеров мы использо­вали именно социальных работников. Это имело свои положительные и от­рицательные стороны. Нам редко приходилось располагать столь активны­ми и добросовестными сотрудниками. Во-первых, большинство из них име­ли высшее образование: как правило, это были потерявшие работу инженеры, библиотекари, научные сотрудники (трое были кандидатами наук). Во-вто­рых, сам характер работы сформировал у них высокое чувство ответствен­ности; нам и в голову не приходило усомниться в их аккуратности и испол­нительности. Между тем это достаточно серьезная проблема полевого эта­па. Как отмечает Элизабет Ноэль, опираясь на опыт Института демоскопии

вАлленсбахе, «ежемесячно 3% работающих интервьюеров поддаются соблаз­ну заполнить анкеты самостоятельно, без беседы с респондентами. Нередко даже начинающие интервьюеры выдумывают свои первые пробные беседы. Иногда интервьюеры, добросовестно проработавшие много лет, допускают подделки» 21 . Тот же характер работы выработал у наших анкетеров еще одно важнейшее качество, необходимое для интервьюеров: они должны уметь входить в контакт с любыми людьми, располагать их к себе и побуждать со­беседника к искренности. Поскольку каждому из анкетеров предстояло со­бирать информацию на том участке, где они постоянно работали, у них не возникало проблемы доступа к респондентам, которых они регулярно наве­щали по долгу службы, а значит были хорошо с ними знакомы. Однако это имело и свою отрицательную сторону. Дело в том, что одно из правил, кото­рое должен соблюдать анкетер или интервьюер, состоит в том, чтобы по воз­можности, избегать опрашивать знакомых людей, поскольку в этом случае теряется анонимность, а значит, снижается уровень искренности.

Если обратиться к нашей исследовательской практике, то во всех других слу­чаях доступ к полным спискам генеральной совокупности обеспечивался с по­мощью финансового ресурса (что, в принципе, неудивительно в условиях рыноч­ных отношений). Приведем два примера. Первый из них относится к маркетин­говому исследованию по изучению рынка свободных денежных средств населения г. Нижнего Новгорода, заказанному одним из нижегородских коммерческих бан­ков и проведенному в течение ноября 1991 - января 1992 г. группой исследова­телей под руководством автора этих строк. Одной из задач исследования было выявление информированности нижегородцев о деятельности вновь создаваемых коммерческих банков и уровне доверия к ним и, далее на основе этого - опреде­ление страты потенциальных клиентов коммерческого банка среди населения города (с составлением их социального и демографического портретов). Кроме того, предстояло выявить и проранжировать по степени важности и привлекатель­ности потребностей основных потенциальных клиентов в определенных банков­ских услугах и операциях, а также в новых, нетрадиционных формах платы за вложенные денежные средства. Сбор соответствующих данных предполагалось осуществить с помощью почтового опроса.

Однако рассылка инструментария по почтовым адресам потенциальных респондентов предполагала наличие полного списка адресов жителей горо­да. Где же можно было получить такой список? Разумеется, в городском ад­ресном бюро. Когда мы обратились к руководству этой организации с офи­циальным письмом от заказчика - коммерческого банка, то особого энту­зиазма это не вызвало, хотя банк готов был оплатить эту услугу. В ходе переговоров было выдвинуто большое количество предварительных условий, приведено немалое число доводов относительно трудоемкости, технических сложностей, необходимости согласования с вышестоящими организациями и т.д. и т.п. Словом, задача представлялась практически невыполнимой или, в лучшем случае требовала для своего выполнения совершенно нереальных для нас сроков. Мы уже покидали это заведение в полном унынии, когда на выходе к нам обратилась руководитель одного из подразделений бюро (она присутствовала на переговорах с руководством, но деятельного участия в них не принимала) и предложила проделать интересующую нас операцию при-

21 Ноэль Э. Массовые опросы: Введение в методику демоскопии. М.: АВА-ЭСТРА, 1993. С. 160.

ватным образом с соответствующей оплатой. Это вполне устроило заказчи­ка. Обучение нашего добровольного помощника методике систематической выборки заняло совсем немного времени. На другой день мы принесли ей тысячу чистых конвертов, а спустя три дня получили их с уже надписанны­ми адресами. У нас немногим меньше времени занял процесс вложения в каждый конверт анкеты и еще одного - пустого - конверта с уже надписан­ным адресом. Отметим, кстати, что из тысячи разосланных по отобранным адресам анкет возврат составил 330; после первичного просмотра и оценки качества заполнения к обработке и анализу было принято 308; это довольно высокий процент, поскольку большинство авторов считают, что в ходе поч­тового опроса возврат составляет обычно не более 10-15%.

Этот опыт обращения за получением необходимой исходной информации не к должностным лицам, обладающим формальным правом распоряжения соот­ветствующими базами данных, а непосредственно к тем, кто с ними оперативно работает, был нами использован спустя несколько лет, в ходе маркетингового омнибусного исследования, проводившегося в ряде крупных регионов России летом 1995 г. одним из столичных маркетинговых центров. Наша исследователь­ская группа принимала в нем участие в качестве субподрядчика. Для Нижнего Новгорода объем выборки был задан в 800 человек. В качестве единицы отбора первой ступени мы определили три городских района из восьми с предполагае­мым объемом выборки 300 респондентов по каждому из них. Здесь, как и на сле­дующей ступени, был использован метод типичных представителей. Определив среднюю численность населения городского района, мы остановились на трех из них - Канавинском, Советском и Нижегородском, - численность населения которых в наименьшей степени отклонялась от этого среднего значения. Посколь­ку интерес для заказчика составляла лишь платежеспособная часть населения, то мы решили принять за основу выборки списки избирателей (поскольку абсолют­ное большинство из них действительно выступают самостоятельными экономи­ческими агентами рынка в качестве покупателей). Здесь в качестве единиц отбо­ра второй ступени предстояло определить по три избирательных участка в каждом районе. Предполагалось опять же использовать метод типичных представителей, т.е. рассчитать средний размер участка по району, а затем отобрать по три - тех, в которых численность избирателей в наименьшей степени отклонялась от сред­ней. На третьей ступени за основу выборки следовало принять общий список избирателей каждого из трех отобранных участков. Было решено, что на каждом из них предстоит опросить по сто человек (л (. =100). На этом последнем этапе для окончательного отбора единиц наблюдения применялся метод систематической выборки. Определив шаг выборки (на каждом участке он должен быть своим, поскольку численность избирателей от участка к участку была разной), мы мог­ли получить девять выборочных массивов численностью по 100 человек каждый в виде списков потенциальных респондентов с указанием домашних адресов. Таким образом, проект выборки был определен, оставалось только получить до­ступ к полным спискам избирателей.

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

котором излагается соответствующая просьба; эта просьба - по истечении определенного срока (надо знать классическое правило российского чиновни­ка: «бумага должна вылежаться») - удовлетворяется; потом заказчик оплачи­вает услугу, и, наконец, после поступления денег на расчетный счет облада­теля базы данных мы получаем то, что нам нужно. Прохождение этого пути потребовало бы значительного времени и при этом вовсе не гарантировало согласия владельца информации. Поэтому мы решили использовать нефор­мальный способ: напрямую обратились к рядовым специалистам отделов АСУ районных администраций с аналогичной просьбой (и, разумеется, описани­ем методики, приведенной выше, которая была понята буквально с полусло­ва, - вот что значит иметь дело с настоящими, а главное заинтересованными специалистами). Утром следующего дня они принесли нам распечатанные списки девяти выборочных подмассивов, получив соответствующую оплату, размеры, которой были оговорены накануне. Вечером того же дня группа ан­кетеров уже выходила на полевые маршруты. Таким образом, неформальный путь оказался куда более прямым и коротким, нежели окольная формальная дорога. В результате опроса, как мы и предполагали, объем реально опрошен­ной выборочной совокупности составил немногим более 800 человек (осталь­ных по тем или иным причинам просто не оказалось в городе).

Лабораторная работа

Списки доступа

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

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

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

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

    идентификатор пакета (например, адрес).

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

Для IP-трафика существует два базовых типа списков: стандартный и расширенный. Фильтрация стандартных списков доступа основана на адресах в исходной сети. Типичный стандартный список доступа выглядит так:

access-list 1 deny 10.10.1.0 0.0.0.255

access-list 1 deny 10.10.2.0 0.0.0.255

access-list 1 permit any

Этот список блокирует любой трафик из подсетей 10.10.1.0 и 10.10.2.0, независимо от того, какому адресату предназначены пакеты, и разрешает любой трафик, описание которого не соответствует первым двум строкам. Другими словами, разрешен весь трафик, за исключением трафика из подсетей 10.10.1.0 и 10.10.2.0. Создав список, можно применить его к пакетам, проходящим в том или ином направлении через определенный интерфейс. Чтобы применить этот список к трафику, поступающему на определенный интерфейс (то есть к входящему трафику данного интерфейса), используйте команду ip access-group:

interface ethernet0

ip access-group 1 in

Как я уже было упомянуто, существует множество других контекстов, допускающих применение списков доступа. Их можно использовать для ограничения доступа к определенной линии TTY, для указания маршрутов входящего и исходящего трафиков в различных процессах маршрутизации, для решения множества других задач. Также стоит заметить, что, хотя применение списка доступа 1 к пакетам, поступающим на интерфейс ethernet0, предотвращает прохождение через маршрутизатор трафика из подсетей 10.10.1.0 и 10.10.2.0, этот список никак не влияет на трафик, поступающий на любой другой интерфейс, а также не учитывает другие протоколы, отличные от IP. Необходимо настраивать каждый интерфейс и протокол отдельно.

Стандартные списки доступа выполняют фильтрацию на базе исходных IP- адресов (адресов источников). Расширенные списки доступа позволяют создавать намного более сложные фильтры, использующие исходные и целевые адреса в дополнение к информации протоколов более высокого уровня. Например, можно сконструировать фильтр на основе типа и кодовых значений протокола ICMP. Для TCP и UDP можно осуществлять фильтрацию на основе исходных и целевых портов. На рисунке ниже показан маршрутизатор, в котором расширенный список доступа применяется к интерфейсу ethernet0. Этот список доступа блокирует входящий TCP-трафик на порте 23 независимо от исходного и целевого адресов трафика. Так как порт 23 - это telnet-порт, данный список запрещает любым узлам в сети А подключаться по протоколу telnet к любым узлам в сети В и к самому маршрутизатору.

Списки доступа можно применять к исходящему трафику. Например, можно создать список, запрещающий трафик на порте 80, и применить его к исходящим пакетам, передаваемым через интерфейс ethernet0. Таким образом, узлы в сети В не смогут обращаться к веб-серверам в сети А:

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

ip access-list 111 deny tcp any any eq 80

ip access-list 111 permit ip any any

interface ethernet0

Применить список доступа 111 к исходящему трафику

ip access-group 111 out

Соответствие пакетов пунктам списка

Стандартный список доступа состоит из набора правил. Эти правила обрабатываются по порядку и описывают, какие пакеты следует разрешить или запретить, исходя из адресов их источников. Синтаксис каждого пункта стандартного списка доступа:

access-list номер действие источник

Параметры команды:

    номер - число от 1 до 99, идентифицирующее список.

    действие - ключевое слово permit или deny, в зависимости от того, хотите вы разрешить или блокировать пакеты.

    источник - адрес источника пакетов.

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

Задание адресов в списках доступа

Синтаксис

Объяснение

Адрес/маска

192.168.2.0 0.0.0.255

Описывает блок IP-адресов. Маска используется в качестве шаблона: единица (1) указывает, что соответствующий бит в адресе может быть любым. Нуль (0) в маске означает, что соответствующий бит должен быть точно таким же, как в указанном адресе. В этом примере указаны адреса от 192.168.2.0 до 192.168.2.255. Таким образом, маска говорит, что при сравнении адресов мы игнорируем последний байт адреса

Host адрес

Host 192.168.2.1

Адрес должен точно совпадать с указанным

Любой IP-адрес

Пары адрес-маска (шаблоны)

Практически каждый пользователь, впервые столкнувшись со списками доступа, испытывает трудности в понимании шаблонных масок. Проблема заключается в том, что шаблонная маска выглядит как маска подсети, но в действительности ею не является, а представляет собой дополнение cсоответствующей маски подсети. Например, чтобы разрешить любой IP-трафик в сеть 192.168.2.0/24 (то есть 192.168.2.0 с маской подсети 255.255.255.0), соответствующий пункт списка доступа должен выглядеть так:

access-list 10 permit 192.168.2.0 0.0.0.255

Теперь предположим, что маршрутизатор получает пакет с целевым адресом 192.168.2.1. Как определить, что имеет место соответствие? Выполняется побитовая операция ИЛИ шаблонной маски с фактическим адресом назначения и адресом, указанным в правиле списка доступа. Если результаты двух операций совпадают, это говорит о соответствии, и пакет либо допускается, либо блокируется. Чтобы понять это, давайте рассмотрим процесс на уровне битов. В таблице показаны соответствующие адреса и маски в двоичном представлении.

Так происходит вычисление:

Результат 1 = Результат 2

Так как результаты совпадают, целевой адрес 192.168.2.1 подпадает под действие правила в списке доступа. Вкратце, значение маски 0.0.0.255 означает, что последний байт входящего адреса может принимать любое значение, то есть нам неважно, какое именно число стоит на последнем месте. В данном случае соответствие имеет место для всех IP-адресов от 192.168.2.0 до 192.168.2.255. Помимо этого, так как маска указывает, что в последнем байте входящего адреса может находиться любое число, то и последним байтом адреса в списке доступа также может быть любое число. Звучит запутанно, но это означает всего лишь, что 192.168.2.0 0.0.0.255 - это то же самое, что 192.168.2.139 0.0.0.255; обе пары адрес-маска указывают на одну и ту же группу адресов (с 192.168.2.0 по 192.168.2.255).

Сегодня я расскажу вам о том, как отфильтровать трафик в сети с помощью списков контроля доступа. Рассмотрим как они работают соответственно, что собой представляют, для чего предназначены. Позже я покажу как они настраиваются в 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. Если у вас есть желание закрепить знания на практике, пожалуйста -

Информационная безопасность телекоммуникационных сетей обеспечивается комплексом мер по их защите. Для защиты информации широко используются пароли, криптографирование передаваемой информации, устройства физической безопасности и другие аппаратные и программные средства . В настоящем разделе рассматриваются списки контроля доступа - сетевые фильтры, которые устанавливаются на интерфейсах маршрутизаторов. Списки доступа обеспечивают базовый уровень безопасности и определяют, к каким доменам сети открыт доступ , а к каким закрыт. Списки доступа широко применяются на практике.

5.1. Функционирование списков доступа

Сетевой администратор должен иметь возможность управления трафиком, обеспечивая доступ к требуемым ресурсам зарегистрированным легальным пользователям и запрещая несанкционированный доступ к сети. Эффективным средством фильтрации трафика являются списки контроля доступа ( Access Control Lists - ACL ) или просто списки доступа , которые являются сетевыми фильтрами . Списки доступа представляют собой последовательность команд, разрешающих (permit) или запрещающих (deny) продвижение пакетов через маршрутизатор , т.е. разрешающих или запрещающих доступ из других локальных сетей или из Интернета в защищаемую сеть , а также удаленный доступ по протоколам Telnet, SSH . При конфигурировании списков доступа маршрутизатор не только создает пути передачи пакетов, но и фильтрует проходящий через него трафик.

Списки доступа ACL могут быть созданы для всех сетевых протоколов, функционирующих на маршрутизаторе, например, IPv4, IPv6 или IPX , и устанавливаются на интерфейсах маршрутизаторов. Запрет или разрешение сетевого трафика через интерфейс маршрутизатора реализуется на основании анализа совпадения определенных условий (правил). Для этого списки доступа представляются в виде последовательных записей, в которых анализируются используемые адреса и протоколы.

Списки доступа (сетевые фильтры)создаются как для входящих, так и для исходящих пакетов на основании анализируемых параметров (адреса источника, адреса назначения, используемого протокола и номера порта верхнего уровня), указанных в списке доступа ACL ( рис. 5.1).


Рис. 5.1.

Отдельные списки доступа могут быть созданы на каждом интерфейсе маршрутизатора для каждого направления сетевого трафика (исходящего и входящего) и для каждого сетевого протокола, установленного на интерфейсе. Например, на трех интерфейсах маршрутизатора ( рис. 5.2), сконфигурированных для двух сетевых протоколов (IPv4, IPv6 ), может быть создано 12 отдельных списков доступа: шесть для IPv4 и шесть для IPv6 . То есть, на каждом интерфейсе по 4 списка: 2 для входящего и 2 для исходящего трафика.


Рис. 5.2.

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

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

Списки доступа повышают гибкость сети. Например, списки, ограничивающие видео трафик, могут уменьшить нагрузку на сеть и поэтому повысить ее пропускную способность для передачи данных или аудио сигналов. Списки позволяют определить, какие типы трафика могут быть отправлены, а какие заблокированы в интерфейсах маршрутизатора, например, можно разрешить маршрутизацию электронной почте, но блокировать трафик Telnet. Можно использовать разрешение или запрет доступа различным типам файлов, таким как FTP или HTTP .

Если списки доступа не формируются на маршрутизаторе, то все проходящие через маршрутизатор пакеты, будут иметь доступ к сети.

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

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

Созданные маршрутизатором пакеты списками доступа не фильтруются.

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

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

Существуют разные типы списков доступа: стандартные ( standard ACLs), расширенные (extended ACLs), именованные (named ACLs). Когда список доступа конфигурируются на маршрутизаторе, каждый список должен иметь уникальный идентификационный номер или имя . Идентификационный номер созданного списка доступа должен находиться в пределах определенного диапазона, заданного для этого типа списка (табл. 5.1).

Таблица 5.1. Диапазоны идентификационных номеров списков доступа
Диапазон номеров Название списка доступа
1-99 IP standard access-list
100-199 IP extended access-list
1300-1999 IP standard access-list (extended range)
2000-2699 IP extended access-list (extended range)
600-699 Appletalk access-list
800-899 IPX standard access-list
900-999 IPX extended access-list

Стандартные списки доступа (Standard access lists) - для принятия решения (permit или deny ) в