Глоссарий
- userdefined-access-list - нумерованный тип ACL;
- Offset - смещение относительно начала заголовка;
- Unit - единица измерения смещения;
- Window - окно, в котором находятся значимые байты;
- Mask - маска для содержимого окна.
Принципиальный алгоритм
Определить смещения относительно начала заголовка в модели OSI. Смещения определяются глобально, то есть распространяются для всех правил во всех userdefined-access-list, которые будут созданы. Возможно создание различных ACL или одного ACL с несколькими правилами;
Создание ACL и правил фильтрации с возможностью permit\deny для значений окон;
Значения задаются в шестнадцатеричной системе счисления (HEX). Ведущие нули в содержимом отбрасываются автоматически, в готовой конфигурации их не видно;
Значение маски требуется указывать для всех байт содержимого окна.
Пример настройки userdefined-access-list
S2965, S2985G
Размер окна (Window) для коммутаторов серий S2965 и S2985G составляет 2 байта. Смещение выбирается относительно начала заголовка l2start, l3start или l4start. Единица смещения (Unit) составляет 1 байт:
Блокировка по Destination MAC-address 00:1F:29:AD:3E:F7:
userdefined-access-list standard offset window1 l2start 0 window2 l2start 2 window3 l2start 4 userdefined-access-list standard 1200 deny window1 1f ffff window2 29ad ffff window3 3ef7 ffff
Блокировка по Source/Destination IP-address 192.168.1.2/192.168.1.5:
userdefined-access-list standard offset window1 l3start 12 window2 l3start 14 window3 l3start 16 window4 l3start 18 userdefined-access-list standard 1202 deny packet-type ipv4 window1 c0a8 ffff window2 102 ffff userdefined-access-list standard 1203 deny packet-type ipv4 window3 c0a8 ffff window4 105 ffff
Запрет NetBIOS по Source/Destination портам UDP 137/137 и 138/138:
userdefined-access-list standard offset window1 l4start 0 window2 l4start 2 userdefined-access-list standard 1204 deny packet-type ipv4 window1 89 ffff window2 89 ffff userdefined-access-list standard 1204 deny packet-type ipv4 window1 8a ffff window2 8a ffff
Блокировка всех ARP-сообщений по полю Ethertype (0x0806):
userdefined-access-list standard offset window1 l2start 12 userdefined-access-list standard 1200 deny packet-type l2-eth2 window1 806 ffff
Блокировка ARP-сообщений (0x0806) с Source MAC-address D0:BF:9C:58:2B:3B:
userdefined-access-list standard offset window1 l2start 6 window2 l2start 8 window3 l2start 10 window4 l2start 12 userdefined-access-list standard 1201 deny packet-type l2-eth2 window1 d0bf ffff window2 9c58 ffff window3 2b3b ffff window4 806 ffff
Блокировка ARP-запросов (Who has?) с Source IP-address из подсети 192.168.0.0/23:
userdefined-access-list standard offset window1 l2start 12 window2 l3start 12 window3 l3start 14 userdefined-access-list standard 1200 deny window1 806 ffff window2 c0a8 ffff window3 0 fe00
S2990, S2990X, S300X
Для коммутаторов данных серий в общем случае размеры окна (Window) и единица смещения (Unit) составляют 4 байта. Смещение задается относительно начала заголовка L2. При этом важно отметить, что размер окна при нулевом смещении будет равен 2 байтам, и, соответственно смещение на одну единицу, даст сдвиг на 2 байта, смещение на 2 единицы даст сдвиг на 6 байт, на 3 единицы - 10 байт и т.д:
Блокировка Ethernet-кадров содержащих D0:BF:9C:58 в первых 4 байтах Source MAC-address:
userdefined-access-list offset window1 2 userdefined-access-list 1200 deny packet-type l2-eth2 window1 d0bf9c58 ffffffff
Блокировка пакетов с Source IP-address 192.168.0.2:
userdefined-access-list offset window1 7 userdefined-access-list 1200 deny packet-type ipv4 window1 c0a80102 ffffffff
Блокировка ARP-сообщений (0x0806) с Source MAC-address 00:1F:29:AD:3E:F7:
userdefined-access-list offset window1 2 window2 3 userdefined-access-list 1300 deny packet-type l2-eth2 window1 1f29ad ffffff window2 3ef70806 ffffffff
Блокировка IGMP Report v1 (0x12):
userdefined-access-list standard offset window1 10 userdefined-access-list standard 1200 deny window1 12000000 ff000000
S2995G, S3850G, S2989G
Размер окна (Window), как и единица смещения (Unit), для коммутаторов серий S2989G, S2995G и S3850G составляет 1 байт. Также, как и для серий S2962, S2965, S2982G, S2985G смещение выбирается относительно начала заголовка l2start, l3start либо l3start, но отличие от данных серий в том, что l3start начинается с Ethertype, а не после него:
Блокировка всех ARP-сообщений по полю Ethertype (0x0806):
userdefined-access-list standard offset window1 l3start 0 window2 l3start 1 userdefined-access-list standard 1200 deny window1 08 ff window2 06 ff
Блокировка Ethernet-кадров содержащих D0:BF:9C:58 в первых 4 байтах Source MAC-address:
userdefined-access-list offset window1 l2start 6 window2 l2start 7 window3 l2start 8 window4 l2start 9 userdefined-access-list 1200 deny window1 d0 ff window2 bf ff window3 9c ff window4 58 ff
Запрет по Source/Destination UDP port 137:
userdefined-access-list standard offset window1 l4start 1 window2 l4start 3 userdefined-access-list standard 1204 deny window1 89 ff window2 89 ff