- Настроить acl d link
- Привязка IP-MAC-порт (IP-MAC-Port Binding)
- Для чего нужна функция IP-MAC-Port binding?
- Пример 1. Использование режима ARP или ACL для блокирования снифера
- Пример 2. Использование режима ACL для предотвращения ARP атаки Man-in-the-Middle
- Советы по настройке IP-MAC-Port binding ACL Mode
- Вопрос: Что делать, если необходимо создать еще один профиль, когда режим ACL уже включен (рисунок 2)?
- IP-MAC-Port Binding (пример)
- IP-MAC-Port Binding ACL Mode (пример)
- Общие принципы
- Многоэтапная обработка пакетов
- Несколько действий одного правила (Action Map)
- Быстрое изменение последовательности правил
- Access Control List в DAS-3248
Настроить acl d link
Функция IP-MAC-Port Binding в коммутаторах D-Link позволяет контролировать доступ компьютеров в сеть на основе их IP и MAC-адресов, а также порта подключения. Если какая-нибудь составляющая в этой записи меняется, то коммутатор блокирует данный MAC-адрес с занесением его в блок-лист.
Привязка IP-MAC-порт (IP-MAC-Port Binding)
Для чего нужна функция IP-MAC-Port binding?
- D-Link расширил популярную функцию IP-MAC binding до более удобной в использовании IP-MAC-Port binding с целью повышения гибкости аутентификации пользователей в сети.
- IP-MAC-Port binding включает два режима работы: ARP (по умолчанию) и ACL.
Сравнение этих двух режимов показано в таблице ниже:
ARP режим
ACL режим
Плюсы
Простота в использовании и
независимость от ACL
Позволяет предотвратить несанкционированное подключение даже если нарушитель использует статический МАС-адрес
Минусы
Невозможность фильтрации в случае если hacker/sniffer присвоит себе статический MAC-адрес для спуфинга коммутатора
Тратится профиль ACL, а также необходимо продумывать целиком всю
стратегию ACL
- IP-MAC-Port будет поддерживаться коммутаторами L2 серии xStack — DES-3500 (R4 – ACL Mode), DES-3800 (R3), and DGS-3400 (R2). На данный момент IP-MAC-Port Binding поддерживается коммутатором DES-3526.
- Данный документ описывает примеры настройки IP-MAC-Port binding, например, против атак ARP Poison Routing.
Пример 1. Использование режима ARP или ACL для блокирования снифера
Шаг 1: Клиенты A и B подключены к одному порту коммутатора, клиент A (sniffer) шлет поддельные ARP
Шаг 2: Сервер C отвечает на запрос и изучает поддельную связку IP/MAC.
Шаг 3: Клиент A хочет установить TCP соединение с сервером C
Шаг 4: Т.к. клиент A не в белом листе, DES-3526 блокирует пакет, поэтому, соединение не сможет быть установлено
Пример 2. Использование режима ACL для предотвращения ARP атаки Man-in-the-Middle
Шаг 1: Sniffer C (Man in the middle) отсылает поддельный пакет ARP-Reply клиентам A и B
Шаг 2: Клиент A хочет установить TCP соединение с клиентом B
Шаг 3: Т.к. С не в белом листе, DES-3526 блокирует пакет, поэтому, соединение не сможет быть установлено
Советы по настройке IP-MAC-Port binding ACL Mode
- ACL обрабатываются в порядке сверху вниз (см. рисунок 1). Когда пакет «соответствует» правилу ACL, он сразу же отбрасывается (если это запрещающее, правило, deny) либо обрабатывается (если это разрешающее правило, permit)
- При использовании IP-MAC-Port binding в режиме ACL автоматически создаются 2 профиля (и правила для них) в первых двух доступных номерах профилей.
— Любое запрещающее правило после IP-MAC-Port binding становится ненужным, поэтому рекомендуется располагать все остальные ACL в более приоритетном порядке.
— Нельзя включать одновременно функции IP-MAC-Port ACL mode и ZoneDefense. Т.к. правила привязки IP-MAC-Port создаются первыми, и правила, создаваемые ZoneDefense автоматически после этого, могут быть неправильными.
Вопрос: Что делать, если необходимо создать еще один профиль, когда режим ACL уже включен (рисунок 2)?
– Нужно использовать команды “disable address_binding acl_mode” (Рисунок 3) и затем “enable address_binding acl_mode” (Рисунок 4)
IP-MAC-Port Binding (пример)
- Задача: Ограничить доступ на портах коммутатора по IP и MAC-адресам одновременно
- Команды для настройки коммутатора:
1) create address_binding ip_mac ipaddress 192.168.0.7 mac_address
00-03-25-05-5F-F3 ports 2
.
.
.
2) config address_binding ip_mac ports 2 state enable
.
.
.
IP-MAC-Port Binding ACL Mode (пример)
- Задача: Ограничить доступ на портах коммутатора по IP и MAC-адресам одновременно
- Команды для настройки коммутатора:
1) create address_binding ip_mac ipaddress 192.168.0.7 mac_address
00-03-25-05-5F-F3 ports 2 mode acl
.
.
.
2) config address_binding ip_mac ports 2 state enable
.
.
.
3) enable address_binding acl_mode
Источник
Общие принципы
Generic Filter Rule
Правило — это набор подправил, используемых для классификации пакетов. Правило может быть применено к одному или нескольким интерфейсам (eth-xx, eoa-xx).
К данному интерфейсу может быть применено одно или несколько правил Generic Filter. Во время привязки правила к интерфейсу необходимо указать OrderID. OrderID задает порядок выполнения правил в случае, если к одному и тому же интерфейсу применено несколько правил. Правила с меньшим OrderID будут выполнены раньше, чем те, что имеют больший OrderID.
Каждое правило имеет свой уникальный идентификатор RuleID.
После того, как найден пакет, соответствующий какому-либо правилу, к пакету может быть применено одно из следующих действий:
- Forward exit: передать пакет в выходную очередь. Игнорировать все последующие этапы. Этапы обработки пакетов будут описаны ниже в данном документе.
- Allow: пакет прошел данный этап обработки и будет передан первому правилу следующего этапа на данном интерфейсе.
- Drop: отбросить пакет
- Set Output Priority: установить внутренний приоритет для пакета который будет использоваться совместно с traffic class mapping table egress порта для определения выходной очереди для данного пакета.
- Retag Priority: установить тег приоритета (802.1p) для выходящего пакета. Данное значение приоритета будет использоваться совместно с traffic class mapping table egress порта для определения выходной очереди для данного пакета.
- Go To Next Rule: передать пакет следующему правилу данного интерфейса.
- Classifier Defined: используется для того, чтобы присоединить дерево классификатора как правило generic фильтра.
ЗАМЕЧАНИЕ: каждое правило может иметь несколько действий в добавлении к тому, которое указано как часть правила. Концепция нескольких действий для одного правила будет описана далее в этом документе.
Во время создания правила пользователь может задать приоритет для него. Данный приоритет определяет тип памяти, которая будет использована для хранения правила. DAS-3248 поддерживает следующие приоритеты:
- High: высокоскоростная память
- Low: низкоскоростная память
Правила, ожидаемая частота срабатывания которых велика, должны создаваться как High priority.
Generic Filter Subrule
Подправило определяет поле пакета, которое будет использоваться при фильтрации. DAS-3248 поддерживает следующие типы подправил:
Существуют следующие типы операций сравнения, поддерживаемых в правилах:
- Equal (равно)
- Not equal (не равно)
- Less than (меньше, чем)
- Less than equal (меньше или равно)
- Greater than (больше чем)
- Greater than equal (больше или равно)
- In range (находится в интервале)
- Ex range (находится вне интервала)
- In Generic List (используется только для Generic подправил и адресов IP source и IP destination IP подправила)
- Not In Generic List (используется только для Generic подправил и адресов IP source и IP destination IP подправила)
- In Named List (только для Generic подправила)
- Not In Named List (только для Generic подправила)
Во время создания подправила пользователь может задать его приоритет. Данный приоритет определяет тип памяти, которая будет использоваться для хранения данного подправила. DAS-3248 поддерживает следующие приоритеты:
- High: высокоскоростная память
- Low: низкоскоростная память
- As in Rule: использовать настройки родительского правила
Рекомендуется для часто срабатывающих правил использовать высокий приоритет.
Для подправил третьего уровня и выше (IP, TCP, UDP, ICMP и IGMP) пользователь может указать тип протокола второго уровня: Ethernet или PPPoE.
Рисунок1: Порядок исполнения правил и подправил
Порядок действий при создании правила Generic Filter:
- Создать правило generic фильтра
- Добавить одно или несколько подправил к правилу
- Включить правило
- Применить правило к интерфейсу
Примеры использования Generic Filter
1. Фильтр для запрета icmp echo (type 8 code 0) сообщений на определенном интерфейсе (eoa-x, eth-x)
create filter rule entry ruleid 2 action drop ruleprio high
Создаем главное правило:
- action drop — отбрасывать
- ruleprio high — правило будет загружаться в высокоприоритетную память (рекомендуется для «часто срабатывающих» правил)
create filter subrule icmp ruleid 2 subruleid 1 icmptype 8 icmptypecmp eq subruleprio asinrule
Создаем подправило, в котором указываем, что же все-таки фильтровать:
- ruleid 2 subruleid 1 — первое подправило второго правила
- icmptype 8 icmptypecmp eq — все icmp type 8 пакеты
- subruleprio asinrule — приоритет подправила такой же, как у правила
create filter rule map ifname eoa-23 stageid 1 ruleid 2
Применяем правило к конкретному интерфейсу (eoa-xx, eth-x)
modify filter rule entry ruleid 2 status enable
Включаем фильтр в работу
2. Фильтр для запрета icmp echo (type 8 code 0) сообщений на определенном интерфейсе (eoa-xx, eth-x) с определенного ip адреса
create filter rule entry ruleid 2 action drop ruleprio high
Создаем главное правило:
- action drop — отбрасывать
- ruleprio high — правило будет загружаться в высокоприоритетную память (рекомендуется для «часто срабатывающих» правил)
create filter subrule ip ruleid 2 subruleid 1 srcipaddrfrom 192.168.100.197 srcaddrcmp eq dstaddrcmp any ipsrcaddrmask 0xffffffff subruleprio asinrule
Создаем первое подправило, в котором указываем, что нас интересует трафик от хоста 192.168.100.197:
- ruleid 2 subruleid 1 — первое подправило второго правила
- srcipaddrfrom 192.168.100.197 — нижнее значение диапазона ip адресов источников трафика (т.к. srcaddrcmp равен eq, верхнее можно не указывать)
- dstaddrcmp any — ip адрес назначения любой
- ipsrcaddrmask 0xffffffff — маска источника 255.255.255.255
- subruleprio asinrule — приоритет подправила такой же, как у правила
create filter subrule icmp ruleid 2 subruleid 2 icmptype 8 icmptypecmp eq subruleprio asinrule
Создаем подправило, в котором указываем, что из ранее выбранного ip трафика от хоста 192.168.100.197 нас интересуют icmp echo сообщения:
- ruleid 2 subruleid 2 — второе подправило второго правила
- icmptype 8 icmptypecmp eq — все icmp type 8 пакеты
- subruleprio asinrule — приоритет подправила такой же, как у правила
create filter rule map ifname eoa-23 stageid 1 ruleid 2
Применяем правило к конкретному интерфейсу (eoa-xx, eth-x)
modify filter rule entry ruleid 2 status enable
Включаем фильтр в работу
3. Фильтр для привязки IP адреса к adsl порту (ATM PVC)
create filter rule entry ruleid 2 action allow
Создаем разрешающее правило для нужного ip адреса:
- action allow — принимать пакеты
create filter subrule ip ruleid 2 subruleid 1 srcipaddrfrom 192.168.100.207 srcaddrcmp eq dstaddrcmp any ipsrcaddrmask 0xffffffff
Создаем подправило, в котором указываем, что нас интересует трафик от хоста 192.168.100.207:
- ruleid 2 subruleid 1 — первое подправило второго правила
- srcipaddrfrom 192.168.100.207 — нижнее значение диапазона ip адресов источников трафика (т.к. srcaddrcmp равен eq, верхнее можно не указывать)
- dstaddrcmp any — ip адрес назначения любой
- ipsrcaddrmask 0xffffffff — маска источника 255.255.255.255
create filter rule entry ruleid 3 action drop
Создаем правило, запрещающее весь остальной трафик.
create filter subrule ip ruleid 3 subruleid 1 srcaddrcmp any dstaddrcmp any
Подправило, задающее весь трафик.
create filter rule map ifname eoa-23 stageid 1 ruleid 2
create filter rule map ifname eoa-23 stageid 1 ruleid 3
Применяем ранее созданные правила к конкретному интерфейсу (eoa-xx, eth-x)
modify filter rule entry ruleid 2 status enable
modify filter rule entry ruleid 3 status enable
Включаем фильтр в работу
Многоэтапная обработка пакетов
Иногда возникает необходимость осуществлять фильтрацию в несколько этапов. Например, первый этап может использоваться для отбрасывания неавторизованных пакетов, а на втором этапе может осуществляться приоритезация. Для того чтобы удовлетворять этим требованиям, фильтрация и приоритезация пакетов в DAS-3248 может быть разделена на несколько этапов. Этап, во время которого будет работать данное правило, определяется во время его приложения к конкретному интерфейсу.
Этапы выполняются согласно их StageID. Т.е. правила меньших этапов будут выполнены перед правилами этапов с большим значением StageID.
Рисунок 2: Многоэтапность обработки пакетов.
Пакет не будет передан на следующий этап если:
- на текущем этапе пакет соответствует правилу с действием Drop. В этом случае пакет будет отброшен, никаких правил к нему больше применяться не будет.
Пакет будет передан на следующий этап если:
- если текущий этап является последним, пакет будет поставлен в исходящую очередь
- пакет не совпал ни с одним из правил на текущем этапе
- пакет совпал с правилом allow. В этом случае к данному пакету на текущем этапе больше ни одного правила применено не будет.
- пакет совпал с правилом setprio или retagprio. В этом случае к данному пакету на текущем этапе больше ни одного правила применено не будет.
Максимальное число этапов во входящем и выходящем направлениях может быть различно.
Несколько действий одного правила (Action Map)
В DAS-3248 одно и то же правило может иметь несколько действий (allow, setprio, etc). Все эти действия будут выполнены в случае соответствия пакета данному правилу. Это очень полезно если над некоторым типом пакетов нужно произвести сразу несколько действий. Дополнительные действия ассоциируются с правилом уже после того, как оно создано. Каждое действие имеет свой orderindex, который определяет порядок выполнения всех действий, ассоциированных с правилом.
- в первую очередь выполняются действия из action map в порядке возрастания их Order Index
- после этого выполняется действие, указанное при создании правила
Итак, для того, чтобы ассоциировать несколько действий с одним правилом нужно:
- Создать правило Generic Filter
- Создать соответствие действия правилу (rule to action map) для данного правила Generic фильтра:
- create filter rule actionmap ruleid 1 orderindex 1 action copytocontrol
create filter rule actionmap ruleid 1 orderindex 2 action retagprio priority 2 - Создать подправила данного правила
- Включить правило
- Приложить правило на интерфейс
Быстрое изменение последовательности правил
Пользователь DAS-3248 может заменить последовательность выполнения правил одного этапа путем выполнения всего одной команды. То же самое можно получить путем изменения значений OrderId всех правил. Однако в этом случае, в процессе изменения порядка следования правил, возможно, появление ошибочной их последовательности, которая может повлечь нарушения в работе сети. Для того чтобы этого избежать, в DAS-3248 пользователь может заменить целиком одну последовательность применения правил другой последовательностью.
Generic Filter Sequence — последовательность выполнения правил. Логически она состоит из Generic Filter Sequence Information (задает идентификатор данной последовательности) и Generic Filter Sequence entries (набор правил данной последовательности).
Для примера рассмотрим следующую ситуацию:
Пусть к интерфейсу eoa-2 приложены следующие правила во входящем направлении:
ruleid 1 Orderid 1
ruleid 3 Orderid 2
ruleid 5 Orderid 3
ruleid 6 Orderid 4
Требуется сменить данную последовательность на:
ruleid 5 Orderid 1
ruleid 2 Orderid 2
ruleid 7 Orderid 3
Для того чтобы сменить последовательность надо:
- Создать sequence information путем задания sequence ID
- create filter seq info seqid 1
2. Создать членов искомой последовательности
- create filter seq entry seqid 1 ruleid 2 orderid 2
create filter seq entry seqid 1 ruleid 5 orderid 1
create filter seq entry seqid 1 ruleid 7 orderid 3
3. Применить получившуюся последовательность
- modify filter seq entry seqid 1 ifname eoa-2 stageid 1 seqdir in
Access Control List в DAS-3248
Access Control List позволяет задать пользователю список MAC адресов, которым будет разрешен или наоборот запрещен доступ. Данные списки могут быть созданы для каждого bridge порта в отдельности или для всего DSLAM-а в целом.
- Per port ACL: данный список создается для конкретного bridge порта. MAC адресам, указанным в этом списке, доступ разрешен.
- Global ACL: данный список создается целиком для устройства. Если выбрана опция Deny, MAC адресам, находящимся в этом списке доступ запрещен.
Per Port ACL
- Создается для конкретного bridge порта
- Все входящие пакеты, у которых source MAC адрес совпадает с одним из адресов, перечисленных в списке, имеют доступ к данному bridge порту. Все остальные входящие пакеты доступа к данному bridge порту не имеют, т.е. отбрасываются.
- Если список MAC адресов пуст, любые адреса имеют доступ на данный Bridge порт.
- Только unicast MAC адреса могут быть добавлены в список.
Global ACL
- Создается на глобальном уровне (целиком на DAS-3248)
- Всем пакетам, имеющим source MAC адрес, совпадающий с одним из адресов, перечисленных в списке, может быть запрещен доступ путем выбора опции Deny.
- Данный список может быть использован для отслеживания содержащихся в нем MAC адресов. В этом случае при перемещении MAC адреса на другой порт будет сгенерирован SNMP Trap.
- Только unicast MAC адреса могут быть добавлены в список.
Замечание: ACL применяется после классификаторов и правил Generic Filter.
Примеры использования Global ACL
- Добавление MAC адреса в глобальный список MAC адресов и включение опции deny:
create acl global macentry macaddr 00:11:95:90:26:46 deny enable
Добавление MAC адреса в глобальный список MAC адресов и включение опции слежения:
create acl global macentry macaddr 00:11:95:90:26:46 track enable
Добавление MAC адреса в глобальный список MAC адресов и включение обеих опций deny и слежения:
create acl global macentry macaddr 00:11:95:90:26:46 deny enable track
enable
Создание bridge порта с включенными опциями Global ACL (по умолчанию данные опции включены)
create bridge port intf ifname eoa-0 portid 1 aclGlbDenyApply enable
aclGlobalTrackApply enable
Созданную запись в глобальном списке MAC адресов можно удалить командой:
delete acl global macentry macaddr xx:xx:xx:xx:xx:xx
delete acl global macentry macaddr 00:11:95:90:26:46
Пример использования Per Port ACL
- Соответствующий bridge порт должен существовать до создания ACL
- Добавление MAC адреса в список для данного порта:
create acl port macentry portid 2 macaddr 00:50:34:8D:AF:76:4A
Источник