Постоянная необходимость изменения списков доступа угрожала превратить администраторов сетей в круглосуточно работающие автоматы. На помощь им пришли списки доступа, учитывающие время.
В предыдущей статье («Инструкции по сборке прилагаются» в февральском номере LAN) шла речь о списках доступа маршрутизатора, о том, для чего они предназначены, как они работают и какие команды используются для их создания. В статье рассматривались стандартные и расширенные списки доступа, их структура и применение на интерфейсах маршрутизатора. Я постарался показать различные приемы, которые сетевые администраторы могут использовать для решения специфических задач, стоящих перед ними.
В данной статье будут рассмотрены некоторые дополнительные возможности списков доступа, появившиеся в последнее время. Одна из них — создание так называемых списков доступа, учитывающих время (time-based access list). Воздействие таких списков доступа на трафик определяется двумя переменными — днем недели (или точная дата) и временем суток.
Приводимые в статье примеры даны для маршрутизаторов Cisco Systems, поскольку эта компания— ведущий производитель маршрутизаторов. Но все сказанное здесь касается большинства современных маршрутизаторов, так как другие производители предлагают в своих продуктах схожие возможности. И все же если вы работаете с устройством иного производителя, то я бы тем не менее рекомендовал обратиться к соответствующим руководствам, для того чтобы разобраться в конкретном способе создания списков доступа, учитывающих время.
ОГРАНИЧЕНИЕ ДОСТУПА ПО ВРЕМЕНИ
Одной из ключевых версий межсетевой операционной системы (Internet-working Operating System, IOS) маршрутизаторов Cisco Systems для списков доступа была версия 12.0. В этой версии функциональность маршрутизаторов была значительно расширена в части ограничения доступа и фильтрации потока данных, в результате чего маршрутизаторы стали способны выполнять функции межсетевых экранов. Не последнюю роль в этом играют списки доступа, учитывающие время, далее для краткости называемые временными.
До версии 12.0 для того, чтобы изменить «поведение» списка доступа, требовалось вмешательство сетевого администратора: необходимо было создать новый список доступа, удалить на интерфейсе старый и затем назначить новый. Это не занимает много времени, но требует присутствия сетевого администратора на рабочем месте в момент изменения списка доступа, порой в нерабочее время — вечерами или в выходные.
Даже если администратор использовал для управления маршрутизатором удаленный доступ, например работал дома, используя telnet, то ему надо было не забыть оказаться около компьютера в момент изменения списка доступа. Если же он запланировал путешествие, поход в кино, дружеский ужин, наконец, то необходимость возвращаться домой и брать с собой портативный компьютер вряд ли выглядела для него перспективной.
Такая ситуация далека от оптимальной при работе с маршрутизатором, и в версии программного обеспечения 12.0 Cisco Systems ввела временные списки доступа, что позволило сетевым администраторам контролировать доступ в сети, используя в качестве параметров время, день недели или комбинацию этих параметров.
ИСПОЛЬЗОВАНИЕ СПИСКОВ ДОСТУПА
Использование временных списков доступа позволяет удовлетворить многие требования, предъявляемые к современной компьютерной сети. Например, политика ограничения доступа в организации может быть разной для рабочего времени, вечерних часов или выходных. В частности, сетевой администратор может ограничить пользование Internet только рабочим временем, т. е. разрешить доступ с 8:00 до 17:00, исключая при этом обеденный час.
Другим применением для временн`ых списков доступа может служить приоритезация трафика в зависимости от времени суток и значения поля TOS/DiffServ. В простейшем случае управление потоками данных может осуществляться в зависимости от времени суток, даты или комбинации этих параметров. Генерация и запись сообщений в файл журнала регистрации для протоколирования трафика могут производиться на основе тех же параметров.
В маршрутизаторах Cisco для определения временн`ых списков доступа используется синтаксическая конструкция time-based access list. Данная конструкция не создает новый тип списка доступа, а делает существующий список зависящим от времени, расширяя его функциональность.
В маршрутизаторах Cisco временн`ыми можно сделать списки доступа, использующиеся для протоколов IP и IPX. Списки могут быть нумерованными или именованными. Составление временн`ого списка доступа довольно простая процедура, состоящая из двух этапов. Сначала необходимо определить диапазон времени, а затем сделать ссылку на него в соответствующем списке доступа, используя ключевое слово time-range.
Определение диапазона времени также состоит из двух этапов. Сначала ему назначается имя, а после этого определяется диапазон времени с помощью одного или более интервалов времени. Интервалы времени бывают двух типов — абсолютный (absolute) или периодический (periodic). В последнем случае диапазон времени может состоять более чем из одного временного интервала. Соответствующие команды показаны в приведенных ниже примерах. Жирным шрифтом выделены команды операционной системы маршрутизатора (IOS), обычный текст обозначает вводимые переменные. Необязательные параметры заключены в квадратные скобки.
time-range time-range-name absolute [[start] time date] [end time date] periodic days-of-the-week hh:mm to [days-of-the-week]hh:mm
В приведенном примере time-range-name следует заменить на имя, которое вы считаете нужным назначить создаваемому диапазону времени. При этом необходимо соблюдать ограничения, накладываемые операционной системой IOS, например на использование специальных символов и длину имен. Для удобства присвоенное имя должно говорить о функциональном назначении временного диапазона или связываемого с ним списка доступа. Такие имена, как allow-http, block-telnet и support-accountants, помогут вам разобраться в созданных конструкциях. Это важно в том случае, если вы создаете сразу несколько списков доступа, несколько временных интервалов, возвращаетесь к конфигурации маршрутизатора по прошествии какого-либо времени или вам необходимо работать с несколькими маршрутизаторами в разные моменты времени. Значащие имена не позволят запутаться в проделанной ранее работе.
Вернемся к синтаксису. Время в командах вводится в 24-часовом формате, т. е. сначала идет час, затем минуты (hh:mm); дата вводится в формате: день, месяц, год, т. е. в европейском формате. Не пытайтесь ввести дату, используя формат, принятый в Северной Америке — месяц, день, затем год, — результат будет отличаться от ожидаемого, естественно, исключая те случаи, когда день и месяц совпадают.
В случае периодических временных списов доступа, в качестве параметров используются дни недели. Например, допустимыми аргументами являются какой-либо один день недели, например Monday (понедельник), или сразу несколько дней — Saturday and Sunday (суббота и воскресенье). Можно использовать параметры, указывающие сразу на несколько дней — daily, weekdays или weekend (все дни недели, рабочие или выходные дни).
В списке доступа можно использовать только один абсолютный временной интервал, но периодических интервалов может быть несколько.
НЕСКОЛЬКО СОВЕТОВ
Перед тем как перейти к примерам использования временн`ых списков доступа, я бы хотел остановиться на некоторых моментах, о которых всегда следует помнить. Во-первых, время в списках доступа всегда измеряется с помощью внутренних часов маршрутизатора. Если вы хотите быть уверены в том, что списки доступа работают правильно, то часы маршрутизатора надо настроить соответствующим образом. Для этого можно воспользоваться или сетевым протоколом времени (Network Time Protocol, NTP), или встроенным календарем (часами) маршрутизатора.
Во-вторых, использование абсолютных и периодических параметров временного интервала должно подчиняться определенным правилам. Например, время и дата начала временного интервала должны предшествовать времени и дате его конца. Кроме того, если вы используете одновременно абсолютный и периодический временной интервалы, необходимо помнить, что периодический интервал начнет действовать только после начала абсолютного — так же как и перестанет действовать после его окончания.
Если начальное время абсолютного временного периода не указано, то он начнет действовать немедленно после определения. Если же конечное время не зафиксировано, то такой временной интервал будет длиться бесконечно. Кроме того, работая не в Европе, всегда легко ошибиться с форматом введения даты.
ПРИМЕР ИСПОЛЬЗОВАНИЯ. ОГРАНИЧЕНИЕ ДОСТУПА В INTERNET ПО ВРЕМЕНИ
Перейдем теперь к реальным примерам. Представим, что в организации требуется ограничить доступ к Internet в зависимости от времени суток. Она имеет два сегмента Ethertnet, подключенных к глобальной сети через маршрутизатор (см. Рисунок). Сотрудники, которые находятся в сети 198.78.46.0, принадлежат к бухгалтерскому отделу. Путешествие по серверам Web не является частью их работы, т. е. Internet в рабочие часы им не нужен. Но руководство считает, что им можно разрешить пользоваться Internet в рабочие дни во время перерыва на обед. Кроме того, в качестве исходных данных для ограничения доступа указывается, что такая политика должна начать действовать с 1 февраля 2001 г. Конец ее действия не определен.
Блокируй этот пакет. Как видно из рисунка, маршрутизатор используется для подключения двух сегментов Ethernet к глобальной сети. Устанавливать фильтр следует как можно ближе к источнику фильтруемой информации, т. е. в нашем первом примере список доступа желательно привязать к интерфейсу е0 |
Давайте посмотрим на Рисунок. Из него видно, что определяемый список доступа можно применить к двум интерфейсам — s0 или e0. Интерфейс s0 является синхронным интерфейсом, подключенным к глобальной сети, а e0 — портом Ethernet, через который подключается бухгалтерский отдел. Список доступа можно назначить как одному, так и другому интерфейсу, но правильнее будет выполнять фильтрацию в точке, как можно более близкой к источнику, генерирующему фильтруемый трафик. В нашем случае трафик генерируется в сети 198.78.46.0, поэтому список доступа назначим интерфейсу e0.
Создадим список доступа в соответствии с приведенными ранее требованиями.
interface ethernet0 ! ip access-group 101 in time-range allow-http absolute start 12:00 1 February 2001 periodic weekdays 12:00 to 13:00 ! ip access-list 101 permit tcp any any eq 80 time-range allow-http
РАЗБОР ПРИМЕРА
Давайте остановимся на некоторых операторах приведенного выше примера. Как вы помните, нам требовалось ограничить доступ в Internet пользователям сети 198.78.46.0. Следовательно, список доступа должен быть назначен интерфейсу e0 и применен к входящему трафику. Первая команда переводит маршрутизаторы в режим конфигурации нужного интерфейса. Далее список доступа применяем к интерфейсу командой ip access-group. Общий формат этой команды имеет следующий вид:
ip access-group access-list-number [in|out]
Параметр access-list-number указывает номер списка доступа, который команда access-group ставит в соответствие конфигурируемому интерфейсу. Параметры in или out указывают, в каком направлении будут фильтроваться пакеты, т. е. определяют, к какому трафику — входящему или исходящему — применяется фильтр. В нашем примере используется параметр in, следовательно, маршрутизатор будет фильтровать входящие пакеты.
Как говорилось ранее, использование времени как параметра возможно для расширенных нумерованных или именованных списков доступа. В нашем примере используется нумерованный список доступа. В маршрутизаторах Cisco Systems диапазон, к которому принадлежит номер списка доступа, определяет протокол, с которым работает список. В приведенной здесь таблице указаны номера списков доступа и соответствующие им протоколы.
Таким образом, при конфигурации списка доступа на маршрутизаторе следует указать фильтруемый протокол, применяя номер списка доступа как параметр. В некоторых случаях возможно использование символьных имен. Обратите внимание на таблицу с номерами списков доступа. Некоторые из них перекрываются. Каким образом различаются протоколы в этом случае?
В случае фильтрации пакетов на канальном уровне при назначении списка доступа интерфейсу вместо команды access-group используется команда bridge-group. Такой формат ввода команд позволяет сетевому администратору работать с фильтрацией на втором, третьем и четвертом уровнях — канальном, сетевом и транспортном соответственно. В нашем примере взят расширенный список доступа для протокола IP, т. е. мы должны использовать номера в диапазоне 100—199. Я выбрал 101, но мог бы выбрать любой номер в этом диапазоне.
Следующая команда — time-range allow-http. Как было отмечено раньше, хорошей практикой является употребление символьных имен, указывающих на функциональное назначение списка доступа. В нашем случае формируемый список доступа разрешает использование Web-серверов Internet в определенное время, поэтому в качестве имени для временн`ого диапазона я выбрал allow-http (разрешить протокол http).
После задания имени укажем параметры временного диапазона. Это делается с помощью команд:
absolute start 12:00 1 February 2001 periodic weekdays 12:00 to 13:00
Первая команда указывает, что действие списка доступа начинается 1 февраля 2001 г. в 12:00. Мы не указали дату окончания действия, поэтому список доступа будет действовать до тех пор, пока не будет удален.
Вторая команда задает временные параметры на периодической основе. Эта команда указывает, что временной диапазон действует во все рабочие дни недели с 12:00 до 13:00. Периодический временной интервал начнет действовать только после начала абсолютного и перестанет действовать после его окончания.
Как говорилось ранее, внутри одного временного диапазона может быть задано несколько периодических временных интервалов. Следовательно, в качестве разрешенного времени доступа в Internet вы можете указать не только время с 12:00 до 13:00, но и дополнительное время: например, разрешить доступ в Internet бухгалтерскому отделу после окончания рабочего времени в течение часа.
Следующая команда — ip access-list. Она формирует список доступа с № 101, который разрешает передачу пакетов протокола TCP с любого адреса на любой другой адрес при передаче данных протокола HTTP (номер порта 80). Обратите внимание, что в качестве одного из параметров команды указан определенный нами ранее временной диапазон allow-http. Таким образом, создаваемый список доступа будет действовать только в диапазоне времени allow-http. В маршрутизаторах Cisco Systems при использовании списков доступа действует правило «что не разрешено, то запрещено», следовательно, в остальное время доступ по протоколу http будет закрыт. Необходимо отметить, что доступ по всем остальным протоколам будет закрыт тоже, и, если требуется, чтобы бухгалтерский отдел использовал другие протоколы, их придется разрешить, применяя дополнительные списки доступа.
ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ
Давайте рассмотрим дополнительные примеры использования временн`ых списков доступа. Представим, что в бухгалтерском отделе установлен сервер Web с адресом 198.78.46.8. Доступ к этому серверу разрешен только для пользователей сети 205.131.175.0 по рабочим дням с 8:00 до 17:00. Такая политика должна вступить в действие немедленно и закончиться к концу календарного года.
В соответствии со схемой подключения мы можем назначить список доступа на интерфейс e0 или на интерфейс e1. Однако напомню, что список доступа удобнее применять для фильтрации входящего потока данных. Поэтому мы назначим список доступа интерфейсу e1. Если бы существовала необходимость ограничивать доступ к серверу для пользователей посторонних сетей, подключенных к другим интерфейсам маршрутизатора, то тогда мы использовали бы список доступа на интерфейсе e0 для контроля исходящего потока данных.
При конфигурации фильтров надо помнить, что если вы ранее определили список доступа на интерфейсе e0, то после назначения дополнительного списка доступа на интерфейсе e1, вы можете не достичь желаемого результата. Почему? Вспомним правило — «что не разрешено, то запрещено». Это правило будет действовать на интерфейсе e0, и при этом в списке доступа может не содержаться разрешения на передачу пакетов из сети 205.131.175.0. А так как в передаче трафика через маршрутизатор участвуют два интерфейса, то на результат оказывают влияние списки доступа на обоих интерфейсах.
Итак, необходимо создать временн`ой список доступа со следующими параметрами: разрешить доступ пользователям сети 205.131.175.0 к серверу Web с адресом 198.78.46.8 только по рабочим дням с 8:00 до 17:00. Ниже приведена последовательность команд такого списка доступа.
interface ethernet1 ! ip access-group 102 in ! time-range http-ok absolute end 24:00 31 December 2001 periodic weekdays 08:00 to 17:00 ! ip access-list 102 permit tcp any host 198.78.46.8 eq 80 time-range http-ok
Первая команда служит для перехода в режим конфигурации интерфейса e1, следующая — назначает список доступа с №102 для фильтрации входящего потока данных. Далее определяется временной диапазон с помощью двух временных интервалов: абсолютного и периодического. Для абсолютного интервала не установлено время начала, поэтому он начинает действовать сразу. В качестве времени окончания указывается конец года, как и требовалось в техническом задании. Периодический временной интервал включает все рабочие дни с 8:00 до 17:00.
Последняя команда создает список доступа со следующими параметрами: с любого адреса на адрес 198.78.46.8, во временном промежутке, определяемом временным диапазоном с именем http-ok, разрешена передача пакетов протокола TCP, содержащих данные протокола http.
ЗАКЛЮЧИТЕЛЬНЫЕ РЕКОМЕНДАЦИИ
При определении списков доступа всегда необходимо помнить, что когда список доступа назначается какому-либо интерфейсу, в нем всегда неявно присутствует запрещение передачи всего трафика, исключая тот, который разрешен. Если вы забудете об этом, введя некоторые разрешающие и запрещающие правила, то не получите от маршрутизатора тех результатов, которых ожидаете. Временные списки доступа не являются исключением из этого правила.
При сопоставлении списков доступа всегда необходимо быть аккуратным и следовать определенным процедурам их создания — и тогда результаты будут оптимальными для вашей сети.
Гилберт Хелд — автор многочисленных книг и статей. С ним можно связаться по адресу: gil_held@yahoo.com.
Протокол | Диапазон номеров |
IP | 1-99 |
Расширенный IP | 100-199 |
Коды Ethernet-type | 200-299 |
Ethernet-адреса | 700-799 |
Алгоритм прозрачного моста (по типу протокола) | 200-299 |
Алгоритм прозрачного моста (по коду производителя) | 700-799 |
Расширенный алгоритм прозрачного моста | 1100-1199 |
DECnet и расширенный DECnet | 300-399 |
XNS | 400-499 |
Расширенный XNS | 500-599 |
AppleTalk | 600-699 |
Алгоритм моста с маршрутизацией от источника (по типу протокола) | 200-299 |
Алгоритм моста с маршрутизацией от источника (по коду производителя) | 700-799 |
IPX | 800-899 |
Расширенный IPX | 900-999 |
IPX SAP | 1000-1099 |
Информация. В соответствии с синтаксисом списков доступа маршрутизаторов Cisco Systems в операторах списков доступа протоколы идентифицируются по их номеру.
назадРесурсы Internet
Документы, в которых рассматриваются списки доступа, можно найти на сервере Web компании Cisco Systems. Если вы хотите получить дополнительную информацию о временн`ых списках доступа, стоит посмотреть «Access Control Lists: Overview and Guidelines», по адресу: http://www.cisco.com/univercd/cc/ td/doc/product/software/ios113ed/113ed_cr/ secur_c/scprt3/scalcs.htm, и «Using Time Rangers», по адресу http://www.cisco.com/univercd/cc/ td/doc/product/software/ios120/ 120newft/120t/120tl/timerang.htm. Если у вас есть желание набраться опыта в работе с временн`ыми списками доступа, но нет маршрутизаторов, то вы можете использовать продукцию Software Control AB, доступную по адресу: http://www.softcom.se/english/ products/cisco/cisco.htm. На этом сервере вы можете получить демонстрационную программу, позволяющую создавать списки доступа для маршрутизатора с двумя интерфейсами. Если вы захотите имитировать маршрутизатор с большим количеством интерфейсов, то для этого вам потребуется приобрести отдельную лицензию.