Welcome to Энциклопедия сетевых протоколов
Поиск

Модули
· Титульная страница
· Мир протоколов
· Основные темы
· Архив публикаций
· Поиск
· Каталог ссылок
· Участники
· Документы и программы

Выбор языка
Язык интерфейса:


Статистика
20490796
запросов с 22 сентября 2005

Внешняя статистика
Rambler's Top100

  
Основные соответствия ebtables
Опубликовано 01 нояб. 2005 (Вт.) в 22:40:41
Тема: Вопросы безопасности

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



Проверка полей DSAP/SSAP и SNAP в кадрах 802.3

Описанные здесь соответствия служат для проверки полей 802.3 DSAP/SSAP или типа SNAP. Для проверки соответствия требуется указать протокол LENGTH.

--802_3-sap [!] sap

проверяет однобайтовые поля DSAP и SSAP в заголовках кадров 802.3. Значения этих полей всегда совпадают, поэтому в качестве аргумента указывается только одно значение.

--802_3-type [!] type

Если в кадре 802.3 поля DSAP и SSAP имеют значение 0xaa, для определения типа содержимого пакета должно использоваться 2-байтовое поле SNAP. Аргумент задается шестнадцатеричным значением. Поле SNAP проверяется только для кадров 802.3 с полями DSAP/SSAP = 0xaa.

Для использования этой проверки в ядре должна быть включена опция ebt: 802.3 filter support. Если для этой опции было выбрано значение M, потребуется также загрузить модуль ядра ebt_802_3.

Проверка наличия адресов в списке

Это условие служит для проверки наличия MAC-адресов или пар MAC/IP в списке MAC-адресов и пар MAC/IP. Записи списка имеют формат xx:xx:xx:xx:xx:xx[=ip.ip.ip.ip][,]. Записи списка разделяются запятыми, поле адреса IP является необязательным. Для проверки соответствия можно указывать один MAC-адрес в паре с различными адресами IP и наоборот. Если MAC-адрес не присутствует ни в одной записи списка, кадр считается несоответствующим данному правилу (если не указана инверсия с помощью знака !). Для проверки соответствия можно использовать две опции:

--among-dst [!] list

проверяет наличие MAC-адреса получателя в заданном списке. Если кадр Ethernet имеет тип IPv4 или ARP, можно проводить сравнение для пары MAC/IP.

--among-src [!] list

проверяет наличие MAC-адреса отправителя в заданном списке. Если кадр Ethernet имеет тип IPv4 или ARP, можно проводить сравнение для пары MAC/IP.

Для использования такой проверки в ядре должна быть включена опция ebt: among filter support. Если при компиляции ядра для опции было выбрано значение M, потребуется также загрузить модуль ядра ebt_among.

Проверка полей ARP

Описанные ниже соответствия служат для проверки полей arp. Для использования этих условий должен быть указан протокол ARP или RARP.

--arp-opcode [!] opcode

проверяет значение поля opcode пакетов ARP/RARP. Код может быть указан именем или десятичным значением. Соответствие имен и значений приведено ниже. Для просмотра списка имен и значений кодов можно также воспользоваться командой ebtables -h arp.

1=Request (запрос)
2=Reply (отклик)
3=Request_Reverse (запрос обратного преобразования)
4=Reply_Reverse (отклик на запрос обратного преобразования)
5=DRARP_Request (запрос DRARP)
6=DRARP_Reply (отклик на запрос DRARP)
7=DRARP_Error (ошибка DRARP)
8=InARP_Request (запрос InARP )
9=ARP_NAK

--arp-htype [!] hardware type

проверяет тип оборудования. В качестве идентификатора типа может использоваться символьное имя Ethernet или десятичное значение 1.

--arp-ptype [!] protocol type

проверяет тип используемого протокола для пакетов ARP/RARP. Протокол может быть задан символьным именем (IPv4) или шестнадцатеричным числом (0x0800).

--arp-ip-src [!] address[/mask]

проверяет IP-адрес отправителя пакетов ARP.

--arp-ip-dst [!] address[/mask]

проверяет IP-адрес получателя пакетов ARP.

--arp-mac-src [!] address[/mask]

проверяет MAC-адрес отправителя пакетов ARP.

--arp-mac-dst [!] address[/mask]

проверяет MAC-адрес получателя пакетов ARP.

Для использования такой проверки в ядре должна быть включена опция ebt: ARP filter support. Если при компиляции ядра для опции было выбрано значение M, потребуется также загрузить модуль ядра ebt_arp.

Проверка полей IP

Эти условия служат для проверки полей IP и требуют указания в спецификации правила протокола IPv4.

--ip-source [!] address[/mask]

проверяет IP-адрес отправителя. Допускается использование синонима --ip-src.

--ip-destination [!] address[/mask]

проверяет IP-адрес получателя. Допускается использование синонима --ip-dst.

--ip-tos [!] tos

проверяет тип обслуживания, задаваемый шестнадцатеричным значением.

--ip-protocol [!] protocol

проверяет протокол IP. Допускается использование синонима --ip-proto.

--ip-source-port [!] port[:port]

проверяет порт (диапазон портов) отправителя для протоколов TCP (6) и UDP (17). Если опущена нижняя граница диапазона, ее значение предполагается нулевым, при опущенной верхней границе предполагается значение 65535. Допускается использование синонима --ip-sport.

--ip-destination-port [!] port[:port]

проверяет порт (диапазон портов) получателя для протоколов TCP (6) и UDP (17). Если опущена нижняя граница диапазона, ее значение предполагается нулевым, при опущенной верхней границе предполагается значение 65535. Допускается использование синонима –ip-dport.

Для проверки полей IP требуется ядро со включенной опцией ebt: IP filter support. Если при компиляции ядра для опции было выбрано значение M, потребуется также загрузить модуль ядра ebt_ip.

Ограничение темпа совпадений (limit)

Это условие позволяет ограничить темп совпадений с остальными условиями данного правила. Для ограничения темпа соответствия могут использоваться параметры

--limit <средняя частота>

и

--limit-burst <пиковое значение>

Первый параметр задает пороговую частоту событий (число событий в единицу времени) и указывается в формате значение/суффикс. Значение определяет число событий, а суффикс – единицу времени (/s или /second – секунда, /m или /minute – минута, /h или /hour – час, /d или /day – сутки). По умолчанию используется пороговая частота 3 пакета в час. Второй параметр определяет пик “разовой” доставки пакетов. По умолчанию для пика используется значение 5. Модуль работает следующим образом:

  • условие считается выполненным, пока значение счетчика пакетов не превысит пика limit-burst;

  • каждый пакет, соответствующий правилу, увеличивает значение счетчика на 1;

  • по истечении каждого интервала 1/limit значение счетчика уменьшается на 1.

Для установки пороговых значений темпа соответствия требуется ядро со включенной опцией. Если при компиляции ядра для опции было выбрано значение M, потребуется также загрузить модуль ядра ebt_limit.

Проверка маркеров

Условие

--mark [!] [value][/mask]

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

Для проверки маркеров требуется ядро с поддержкой опций ebt: mark target support и ebt: mark filter support. В зависимости от выбора значения этих опций при компиляции ядра может также потребоваться загрузка модулей ebt_mark и ebt_mark_m.

Проверка типа кадров

Условие

--pkttype-type [!] type

позволяет проверить для кадров “класс” Ethernet. Допустимы значения классов:

  • broadcast (широковещательный MAC-адрес получателя),

  • multicast (групповой MAC-адрес получателя),

  • host (MAC-адрес принимающего устройства),

  • otherhost (не относится ни к одному из перечисленных типов).

Для проверки соответствия кадров тому или иному классу требуется ядро с поддержкой опции ebt: packet type filter support. Если при компиляции ядра для опции было выбрано значение M, потребуется также загрузить модуль ядра ebt_pkttype.

Проверка STP

Этот модуль используется для проверки полей STP1 BPDU2. Адрес получателя должен быть указан как BGA-адрес.

--stp-type [!] type

проверяет тип BPDU (0-255); распознаются типы config (0) и tcn (128 – изменение топологии).

--stp-flags [!] flag

проверяет флаг BPDU (0-255); распознаются флаги topology-change (1 – изменение топологии) и topology-change-ack (128 – подтверждение изменения топологии).

--stp-root-prio [!] [prio][:prio]

проверяет значение приоритета корневого моста (0-65535).

--stp-root-addr [!] [address][/mask]

проверяет MAC-адрес корневого моста.

--stp-root-cost [!] [cost][:cost]

проверяет стоимость пути до корневого моста (0-4294967295).

--stp-sender-prio [!] [prio][:prio]

проверяет значение приоритета для отправителя BPDU (0-65535).

--stp-sender-addr [!] [address][/mask]

проверяет MAC-адрес отправителя BPDU.

--stp-port [!] [port][:port]

проверяет идентификатор порта (0-65535).

--stp-msg-age [!] [age][:age]

проверяет значение таймера “старения” (age timer - 0-65535).

--stp-max-age [!] [age][:age]

проверяет максимальное значение таймера “старения” (0-65535).

--stp-hello-time [!] [time][:time]

проверяет значение таймера hello (0-65535).

--stp-forward-delay [!] [delay][:delay]

проверяет значение таймера задержки пересылки (0-65535).

Возможность проверки полей STP BPDU обеспечивается при включенной опции ядра ebt: STP filter support. Если для опции было выбрано значение M, потребуется также загрузка модуля ядра ebt_stp.

Проверка параметров VLAN

Этот модуль служит для проверки управляющих полей тегов 802.1Q. Для использования модуля в спецификации правила должен быть задан протокол 802_1Q (0x8100).

--vlan-id [!] id

проверяет значение идентификатора VLAN (VID); допустимые значения лежат в диапазоне от 0 до 4095.

--vlan-prio [!] prio

проверяет значение поля user_priority (0 – 7). Поле VID должно иметь значение 0 (null VID) или быть пустым (в этом случае предполагается VID = 0).

--vlan-encap [!] type

проверяет тип/размер инкапсулированного кадра Ethernet, заданный шестнадцатеричным значением (0x0000 – 0xFFFF) или символьным именем3. Значения меньше 0x0800 задают размер инкапсулированного кадра Ethernet.

Для проверки тегов VLAN требуется ядро со включенной опцией ebt: 802.1Q VLAN filter support. Если при компиляции ядра для этой опции использовалось значение M, потребуется также загрузка модуля ebt_vlan.

1Spanning Tree Protocol – протокол остовного дерева, используемый для реализации беспетлевой топологии на канальном уровне.


2Bridge protocol data unit – пакет данных протокола мостов.


3Соответствие имен и значений указывается в файле /etc/ethertypes.


 
Вход
Регистрационное имя

Пароль

[Восстановить пароль]

Если у Вас еще нет учетной записи, Вы можете зарегистрироваться.


Связанные ссылки
· Поиск в разделе Вопросы безопасности
· Статьи пользователя Николай Малых


Самая популярная статья раздела Вопросы безопасности:
Соответствия для правил iptables (часть 3)


Оценка статьи
Средняя оценка: 5
голос.: 1


Оцените эту публикацию:

Отлично
Очень хорошо
Хорошо
Приемлемо
Плохо


Параметры

 Вариант для печати Вариант для печати


Связанные темы

Контроль сетевого трафикаНастройка параметров оборудованияНастройка сетевых параметров хостов

"Вход" | Вход/регистрация | 0 коммент.
Комментарии выражают мнение их авторов. Администрация сайта не несет никакой ответственности за достоверность представленных в комментариях посетителей сведений, а также за содержание таких комментариев.

Для публикации своих комментариев Вам нужно зарегистрироваться..
Copyright © Nikolai Malykh
Все права на опубликованные на сайте материалы принадлежат Nikolai Malykh, если в опубликованном на сайте документе явно не указано иное.
Не разрешается воспроизведение опубликованных на сайте документов без согласия правообладателя.

Hosted By Web Hosting by iPage

Copyright © 2005 by Nikolai Malykh
Based on PHP-Nuke by Francisco Burzi. This is free software, and you may redistribute it under the GPL. Author comes with absolutely no warranty.
Время генерации страницы: 0.33 сек.