Приложение пользовательского пространства arptables позволяет создавать и поддерживать таблицу правил ARP в ядре Linux. Программа проверяет пакеты ARP, работая аналогично модулям пользовательского пространства iptables, но отличается от последних простотой использования.
Для работы с программой требуется ядро со включенной опцией ARP tables support. Если для опции было выбрано значение M, перед использованием arpatables потребуется загрузить модуль arp_tables.
Цепочки arptables
Программа использует таблицу ядра для распределения своих функций по нескольким наборам правил, называемых цепочками (chain). Каждая из цепочек представляет собой упорядоченный список правил, по которым проверяется соответствие для кадров ARP. Если кадр соответствует заданным правилом условиям, по отношению к этому кадру выполняется заданное правилом действие (target), в качестве которого может использоваться одна из стандартных операций arptables или пользовательская цепочка. После выполнения этой операции обработка кадра в данной цепочке может завершиться1. Если кадр не соответствует данному правилу, он передается следующему в списке правилу и процесс продолжается до завершения списка. После проверки последнего правила к пакету применяется операция, заданная политикой цепочки.
Таблица filter
Таблица фильтрации программы arptables содержит две (ядра серии 2.4) или 3 (ядра серии 2.6) встроенных цепочки – INPUT (фильтрация пакетов, адресованных данному хосту), OUTPUT (фильтрация пакетов, сгенерированных данным хостом) и FORWARD2 (фильтрация пакетов, пересылаемых с использованием функций моста). Для использования фильтрации пакетов с помощью программы arptables в ядре Linux должна быть включена опция ARP packet filtering. Если для опции было выбрано значение M, потребуется также загрузка модуля arptable_filter.
Операции arptables
Правила arptables содержат спецификации условий, которым должен соответствовать кадр, и операцию, выполняемую в случае соответствия (target). Выполнение заданной правилом операции может завершить прохождение кадра через данную цепочку или передать кадр следующему правилу. Если кадр не соответствует заданным условиям, для него проверяются условия следующего правила и процесс продолжается пока одна из операций не прервет прохождение кадра через цепочку или не будет достигнут конец цепочки3. В качестве операций по над пакетами могут использоваться основные операции arptables (ACCEPT, DROP, CONTINUE, RETURN, дополнительные операции или пользовательские цепочки.
Операция ACCEPT означает восприятие кадра и завершение его обработки в данной цепочке. Операция DROP приводит к завершению обработки кадра и его отбрасыванию. Операция CONTINUE просто передает кадр следующему правилу цепочки и может быть полезна для учета и протоколирования работы. Операция RETURN прерывает прохождение кадра через данную цепочку и возвращает его в точку вызова (предыдущую цепочку). Дополнительные операции arptables описаны в отдельной статье.
Примечание: Для загрузки исходного кода используйте ссылку.
|