Перевод правила масок в текстовый формат

Утилита iptables не позволяет задать больше одного диапазона для адреса отправителя или получателя в одном правиле. Чтобы иметь такую возможность, нужно воспользоваться разработкой под названием ipset [15], которая поставляется в виде модуля ядра Linux и является официальным дополнением к netfilter/iptables. Этот модуль, в числе прочего, решает проблему с проверкой адреса на принадлежность сразу нескольким диапазонам. Причем, по выражению создателей, реализация ipset обеспечивает «молниеносную» проверку записи на соответствие набору параметров. Поэтому далее работу с диапазонами с помощью ipset можно считать за одну проверку.

При вызове метода распечатки правила масок сначала проверяется, не является ли правило отключенным. Если да, то возвращается пустая строка. Именно поэтому во фрагменте правил, приведенном в главе об общей архитектуре генератора, нет проверки на адрес назначения в строке X — все соединения, попавшие туда, имели внешний адрес назначения.

Если правило не отключено, то проверяется, сколько диапазонов фигурирует в его описании. При единственном диапазоне строка проверки выводится в формате «чистого» iptables. Если при этом еще и количество различных адресов во множестве равно единице, то вместо диапазона выводится точный адрес. Если диапазонов больше одного, для проверки используются возможности ipset.

 

Структура и использование генерируемых правил.

 

При запуске генератора пользователь должен в параметрах командной строки указать статистику, а также желаемое имя для файла правил. В дальнейшем предполагаем, что это имя — rules. Результатом работы генератора являются несколько файлов скриптов, содержащих команды для утилит iptables и ipset:

1. rules — файл с деревом правил на языке команд iptables. Выполнение этого файла с привилегиями администратора приведет к применению в системе содержащихся в нем правил. Перед запуском файла нужно запустить файл rules.ipset;

2. rules.ipset — генерирует наборы ipset, используемые в правилах. Должен быть выполнен до выполнения файла rules, иначе возникнут ошибки;

3. rules.rm — набор команд, предназначенный для корректного удаления из системы сгенерированных правил и наборов ipset.

Разделение команд iptables и наборов ipset на два файла может показаться не лучшей идеей. Это решение принято с целью обеспечения легкой правки файла rules администратором. В начало этого файла вынесено несколько команд, которые могут вызвать интерес (описано ниже).

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: