Ключевые слова:cisco, acl, firewall, limit, (найти похожие документы)
From: ВОЛКА <BOJIKA@mailru.com.>
Newsgroups: http://cisco.far.ru
Date: Mon, 20 Apr 2005 18:21:07 +0000 (UTC)
Subject: [Cisco] Пакетные фильтры и их конфигурирование
Оригинал: http://cisco.far.ru/acl.html
Пакетные фильтры и их конфигурирование
Пакетные фильтры позволяют управлять прохождением траффика через
интерфейсы роутера, разрешая или запрещая передачу пакетов,
удовлетворяющих указанным условиям. Пакетные фильтры используются в
качестве базового средства обеспечения безопасности сети.
Пакетные фильтры в Cisco реализованы через списки доступа
(access-lists).
Списки доступа (Access Lists)
Списки доступа (access-lists) используются в целом ряде случаев и
являются общим механизмом задания условий, которые роутер проверяет
перед выполнением каких-либо действий. Некоторые примеры использования
списков доступа:
* Управление передачей пакетов на интерфейсах
* Управление доступом к виртуальным терминалам роутера и управлению
через SNMP
* Ограничение информации, передаваемой динамическими протоколами
роутинга
Конфигурирование списков доступа
Списки доступа либо нумеруются, либо именуются. Использование
нумерованных, либо именованных списков доступа определяется их
применением (некоторые протоколы требуют использования только
нумерованных списков, некоторые - допускают как именованные, так и
нумерованные списки).
Если используются нумерованные списки, то номера их должны лежать в
определенных диапазонах, в зависимости от области применения списка.
Некоторые, наиболее часто применяемые диапазоны приведены ниже:
Протокол Диапазон номеров
Стандартный список IP 1 to 99
Расширенный список IP 100 to 199
MAC Ethernet address 700 to 799
IPX 800 to 899
Extended IPX 900 to 999
IPX SAP 1000 to 1099
Задачи и правила построения списков доступа для различных протоколов
различны, но, в общем, можно выделить два этапа работы с любыми
списками доступа. Сначала, необходимо создать список доступа, затем
применить его к соответствующему интерфейсу, линии или логической
операции, выполняемой роутером.
Создание списков доступа (краткий обзор)
Списки доступа определяют критерии, на соответствие которым
проверяется каждый пакет, обрабатываемый роутером в точке списка
доступа.
Типичными критериями являются адреса отправителя и получателя пакета,
тип протокола. Однако, для каждого конкретного протокола существует
свой собственный набор критериев, которые можно задавать в списках
доступа.
Каждый критерий в списке доступа записывается отдельной строкой.
Список доступа в целом представляет собой набор строк с критериями,
имеющих один и тот же номер (или имя).
Запомните, что дополнение списка новыми критериями производится в
конец списка. Запомните также, что нет возможности исключить
какой-либо критерий из списка. Есть только возможность стереть весь
вписок целиком.
Порядок задания критериев в списке существенен. Проверка пакета на
соответствие списку производится последовательным применением
критериев из данного списка (в том порядке, в котором они были
введены). Если пакет удовлетворяет какому-либо критерию, то дальнейшие
проверки его на соответствие следующим критериям в списке - НЕ
ПРОИЗВОДЯТСЯ
В конце каждого списка системой добавляется неявное правило. Таким
образом, пакет, который не соответствует ни одному из введенных
критериев будет отвергнут.
Использование tftp-сервера для создания списков доступа
Поскольку порядок строк в списке доступа очень важен, а также
поскольку невозможно изменить этот порядок или исключить какие-либо
строки из существующего списка доступа, рекомендуется создавать списки
доступа на tftp-сервере и загружать их целиком в роутер, а не пытаться
редактировать их на роутере.
Не забывайте, что если список доступа с данным номером (именем)
существует, то строки с тем же номером (именем) будут добавляться к
существующему списку в конец его. Поэтому, первой строкой в файле,
содержащем описание списка доступа для загрузки с tftp-сервера, должна
стоять команда отмены данного списка "no access-list <number/name>".
Назначение списков доступа на интерфейсы (Обзор)
Для каждого протокола на интерфейс может быть назначен только один
список доступа.
Для большинства протоколов можно задать раздельные списки для разных
направлений траффика.
Если список доступа назначен на входящий через интерфейс траффик, то
при получении пакета, ротуер проверяет критерии, заданные в списке.
Если пакет разрешен данным списком, то он передается для дальнейшей
обработки. Если пакет запрещен, то он отбрасывается.
Если список доступа назначен на выходящий через интерфейс траффик, то
после приянтия решения о передаче пакета через данный интерфейс роутер
проверяет критерии, заданные в списке. Если пакет разрешен данным
списком, то он передается в интерфейс. Если пакет запрещен, то он
отбрасывается.
Не забывайте, что в конце каждого списка стоит неявное правило "deny
all", поэтому при назначении списков на интерфейс нужно следить, чтобы
явно разрешить все виды необходимого траффика через интерфейс (не
только пользовательского, но и служебного, например, обмен информацией
по протоколам динамического роутинга).
Списки доступа для протокола IP
Стандартные и расширенные нумерованные списки доступа
Поддерживаются следующие виды списков доступа для IP:
* Стандартные списки доступа (проверяют адрес отправителя пакета)
* Расширенные списки доступа (проверяют адрес отправителя, адрес
получателя и еще ряд параметров пакета)
* Динамические расширенные списки доступа (имеют конечное и условия
применения)
Создание стандартного списка доступа:
Критерии записываются последовательно в следующем формате:
access-list access-list-number {deny | permit} source [source-wildcard]
Пример:
access-list 1 deny 192.168.1.0 0.0.0.255
access-list 1 permit 192.168.0.0 0.0.255.255
Разрешается прохождение пакетов с адресов в блоке 192.168.0.0/16 за
исключением адресов 192.168.1.0/24
Обратите внимание на порядок записи критериев. Запись их в другом
порядке приведет к тому, что второе условие не будет работать никогда.
Обратите внимание на запись маски, в отличие от метода записи маски на
сетевых интерфейсах маска в списках доступа записана инверсно,
единицами отмечены биты, которые НЕ будут проверяться.
Часто используемое описание фильтра, которому удовлетворяет любой
адрес 0.0.0.0 255.255.255.255 имеет специальное обозначение "any".
access-list access-list-number {deny | permit} any
Создание расширенного списка доступа:
Критерии расширенного списка доступа записываются в следующем формате:
access-list access-list-number {deny | permit}
protocol source source-wildcard destination destination-wildcard
[precedence precedence] [tos tos] [established] [log]
access-list access-list-number {deny | permit}
protocol any any
access-list access-list-number {deny | permit}
protocol host source host destination
Ключевое слово "log" вызывает выдачу записи о совпадении пакета с
данным критерием на консоль и в системный лог-файл.
Если в качестве протокола указано "tcp" или "udp", то описания source-
и destination-wildcard могут включать номера портов для данных
протоколов с ключевыми словами "eq", "lt", "gt", "range". Для
протокола "tcp", возможно также применение слова "established" для
выделения только установленных tcp-сессий.
Ключевое слово "hostsource" - эквивалентно записи: "source 0.0.0.0"
Создание динамического списка доступа
access-list access-list-number [dynamic dynamic-name
[timeout minutes]] {deny | permit} protocol
source source-wildcard destination destination-wildcard
[precedence precedence] [tos tos] [established] [log]
Создание именованных списков доступа
Именованные списки доступа не распознаются Cisco IOS версиях младше 11.2.
Именованные списки доступа в настоящее время можно использовать только
в качестве пакетных фильтров и фильтров роутинга.
Прежде чем использовать именованные списки доступа, запомните
следующее:
* Именованные списки несовместимы с предыдущими версиями IOS.
* Не во всех случаях, где необходимы списки доступа, могут быть
использованы именованные списки.
* Не могут существовать одновременно стандартный и расширенный
списки с одинаковым именем.
Создание стандартного именованного списка доступа
Шаг 1. Задание имени и переход в режим формирования списка.
Router(config)#ip access-list standard name
Шаг 2. Задание критериев в порядке, в котором они должны применяться в
списке.
Router(config-std-nacl)#deny {source [source-wildcard]| any}
or
Router(config-std-nacl)#permit {source [source-wildcard]| any}
Шаг 3. Выход из режима формирования списка.
Router(config-std-nacl)#exit
Расширенный именованный список доступа создается аналогично.
Шаг 1.
Router(config)#ip access-list extended name
Шаг 2.
Router(config-ext-nacl)#{deny | permit}protocol
source source-wildcard destination destination-wildcard
[precedence precedence] [tos tos] [established] [log]
Router(config-ext-nacl)#{deny | permit}protocolany any
Router(config-ext-nacl)#{deny | permit}protocol
host source host destination
Шаг 3.
Router(config-ext-nacl)#exit
Назначение списка доступа на интерфейс или терминальную линию.
* На терминальную линию могут быть назначены только нумерованные
списки.
* На интерфейс могут назначаться ка кнумерованные, так и именованные
списки.
В режиме конфигурировании терминальной линии выполните команду:
access-class access-list-number {in | out}
В режиме конфигурирования интерфейса выполните команду:
ip access-group {access-list-number | name} {in | out}
Если в результате применения списка доступа, назначенного на
интерфейс, пакет отбрасывается, то отправителю посылается ICMP Host
Unreachable message.
Если на интерфейс назначен список доступа, который не определен в
конфигурации, то считается, что никакого списка не назначено и никакой
фильтрации пакетов не происходит.
Обратите внимание, что как только будет введен хотя бы один критерий с
этим номером/именем списка доступа, вслед за ним появится критерий
"deny all", который добавляется в конце всех существующих списков
доступа. Поэтому, во избежание полной блокировки системы при заведении
списков доступа следует:
* Либо отменять назначение списка доступа на интерфейс перед
редактированием списка и назначать на интерфейс только полностью
сформированные и проверенные списки
* Либо создавать и редактировать списки доступа на tftp-сервере и
загружать в роутер опять-таки полностью сформированные и
провереные списки доступа.
Примеры расширенных списков доступа
Первый критерий разрешает любые входящие TCP-соединения на порты с
номерами больше 1023. Второй критерий разрешает входящие
SMTP-соединения на адрес 128.88.1.2. Следующий критерий разрешает
прохождение ICMP-сообщений.
ВСЕ остальные пакеты, входящие с интерфейса Ethernet0 будут ОТБРОШЕНЫ!
!
access-list 102 permit tcp 0.0.0.0 255.255.255.255 128.88.0.0 0.0.255.255 gt 1023
access-list 102 permit tcp 0.0.0.0 255.255.255.255 128.88.1.2 0.0.0.0 eq 25
access-list 102 permit icmp 0.0.0.0 255.255.255.255 128.88.0.0 255.255.255.255
!
interface ethernet 0
ip access-group 102 in
Пример именованного списка доступа
Создается стандартный списко доступа с именем Internet_filter и
расширенный список доступа с именем marketing_group:
!
interface Ethernet0/5
ip address 2.0.5.1 255.255.255.0
ip access-group Internet_filterout
ip access-group marketing_groupin
...
!
ip access-list standard Internet_filter
permit 1.2.3.4
deny any
ip access-list extended marketing_group
permit tcp any 171.69.0.0 0.0.255.255 eq telnet
deny tcp any any
permit icmp any any
deny udp any 171.69.0.0 0.0.255.255 lt 1024
deny ip any any log
"Запомните, что дополнение списка новыми критериями производится в
конец списка. Запомните также, что нет возможности исключить
какой-либо критерий из списка. Есть только возможность стереть весь
вписок целиком."
Маленькая поправочка, если использовать Cisco Network Assistant, можно делать любые изменения списка доступа, т.е. добавление строк в любое место списка, редактирование строки и т.п.
Еще одна маленькая поправочка. Если ip access-list extended - то можно добавлять или удалять правила по порядковым номерам. Например:
ip access-list extended test
[номер правила] permit ip any any
подставив нужный номер правила, можно добавить его в начало или между другими правилами, а
no [номер правила] удаляет указанное правило.
Правила добавляются с шагом 10 (если не указан номер).
Посмотреть конкретный номер правила можно через:
show access-lists