Фильтрация может быть простой (с использованием автоматически созданных правил фильтрации) и сложной (с определением специальных функций фильтрации на основе параметров IP-пакетов). Проверка принимаемых пакетов на соответствие выполняется с помощью сравнения адреса источника и значения SPI со значениями в таблице фильтров. Следовательно, эта пара должна быть уникальной.
Каждая строка в таблице фильтров называется правилом. Набор правил определяет, прием и отправку каких пакетов следует разрешать, и куда их следует направлять. Правила фильтрации могут управлять многими параметрами связи, включая адрес источника и назначения, маску, протокол, номера портов, направление, управление фрагментацией, туннель и интерфейс.
Существуют различные типы правил фильтрации:
С этими правилами фильтрации связаны Маски подсети, в которые входят ИД, связанные с правилом фильтрации и опция настройки хост-брандмауэр-хост. В приведенных ниже разделах приведено описание различных типов правил фильтрации и связанных с ними функций.
Более подробное описание следующего примера статических правил фильтрации приведено в следующих за ним разделах. В каждом правиле поля располагаются в следующем порядке (примеры полей из правила 1 показаны в скобках): Rule_number (1), Action (permit), Source_addr (0.0.0.0), Source_mask (0.0.0.0), Dest_addr (0.0.0.0), Dest_mask (0.0.0.0), Source_routing (no), Protocol (udp), Src_prt_operator (eq), Src_prt_value ( 4001), Dst_prt_operator (eq), Dst_prt_value (4001), Scope (both), Direction (both), Logging (no), Fragment (all packets), Tunnel (0) и Interface (all).
1 permit 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 no udp eq 4001 eq 4001 both both no all packets 0 all 2 permit 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 no ah any 0 any 0 both both no all packets 0 all 3 permit 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 no esp any 0 any 0 both both no all packets 0 all 4 permit 10.0.0.1 255.255.255.255 10.0.0.2 255.255.255.255 no all any 0 any 0 both outbound no all packets 1 all 5 permit 10.0.0.2 255.255.255.255 10.0.0.1 255.255.255.255 no all any 0 any 0 both inbound no all packets 1 all 6 permit 10.0.0.1 255.255.255.255 10.0.0.3 255.255.255.255 no tcp lt 1024 eq 514 local outbound yes all packets 2 all 7 permit 10.0.0.3 255.255.255.255 10.0.0.1 255.255.255.255 no tcp/ack eq 514 lt 1024 local inbound yes all packets 2 all 8 permit 10.0.0.1 255.255.255.255 10.0.0.3 255.255.255.255 no tcp/ack lt 1024 lt 1024 local outbound yes all packets 2 all 9 permit 10.0.0.3 255.255.255.255 10.0.0.1 255.255.255.255 no tcp lt 1024 lt 1024 local inbound yes all packets 2 all 10 permit 10.0.0.1 255.255.255.255 10.0.0.4 255.255.255.255 no icmp any 0 any 0 local outbound yes all packets 3 all 11 permit 10.0.0.4 255.255.255.255 10.0.0.1 255.255.255.255 no icmp any 0 any 0 local inbound yes all packets 3 all 12 permit 10.0.0.1 255.255.255.255 10.0.0.5 255.255.255.255 no tcp gt 1023 eq 21 local outbound yes all packets 4 all 13 permit 10.0.0.5 255.255.255.255 10.0.0.1 255.255.255.255 no tcp/ack eq 21 gt 1023 local inbound yes all packets 4 all 14 permit 10.0.0.5 255.255.255.255 10.0.0.1 255.255.255.255 no tcp eq 20 gt 1023 local inbound yes all packets 4 all 15 permit 10.0.0.1 255.255.255.255 10.0.0.5 255.255.255.255 no tcp/ack gt 1023 eq 20 local outbound yes all packets 4 all 16 permit 10.0.0.1 255.255.255.255 10.0.0.5 255.255.255.255 no tcp gt 1023 gt 1023 local outbound yes all packets 4 all 17 permit 10.0.0.5 255.255.255.255 10.0.0.1 255.255.255.255 no tcp/ack gt 1023 gt 1023 local inbound yes all packets 4 all 18 permit 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 no all any 0 any 0 both both yes all packets
Ниже приведены пояснения к правилам этого примера.
Примечание:Данное правило фильтрации следует изменять только для обеспечения ведения протокола.
Примечание:Правила фильтрации 2 и 3 следует изменять только для обеспечения ведения протокола.
Для точного определения значений каждого поля каждое правило можно просмотреть отдельно (с помощью команды lsfilt). Например:
Правило 1: Действие правила : разрешить Адрес источника : 0.0.0.0 Маска источника : 0.0.0.0 Адрес назначения : 0.0.0.0 Маска назначения : 0.0.0.0 Маршрутизация источн. : да Протокол : udp Исходный порт : eq 4001 Целевой порт : eq 4001 Область : обе Направление : оба Ведение протокола : нет Контроль фрагментации : все пакеты ИД туннеля : 0 Интерфейс : все Автогенерация : да
Ниже приведен список всех
параметров, которые можно задать в правиле фильтрации:
Дополнительная информация приведена в описаниях команд genfilt и chfilt.
Некоторые правила фильтрации, используемые системой защиты IP, создаются автоматически. К автоматически созданным правилам относятся:
Кроме того, автоматическое создание правил фильтрации выполняется при определении туннелей. В этих правилах задаются адреса источника и назначения, а также значения масок и ИД туннеля. Весь поток данных между этими адресами будет проходить через заданный туннель.
Автоматически созданные правила фильтрации для туннелей IKE определяют во время согласования IKE номера протокола и порта. Обычно правила фильтрации IKE хранятся в отдельной таблице и просматриваются после статических правил фильтрации, но перед правилами, созданными автоматически. Расположение правил IKE в таблице статических правил определяется по умолчанию, но может быть изменено пользователем.
Автоматически созданные правила разрешают прохождение через туннель любых пакетов. Для ограничения потока некоторых видов данных следует применять пользовательские правила. Эти пользовательские правила следует поместить выше созданных автоматически, так как Защита IP всегда применяет первое правило, соответствующее пакету. Ниже приведен пример пользовательских правил, фильтрующих поток с помощью операций ICMP.
1 permit 10.0.0.1 255.255.255.255 10.0.0.4 255.255.255.255 no icmp any 8 any 0 local outbound no all packets 3 all 2 permit 10.0.0.4 255.255.255.255 10.0.0.1 255.255.255.255 no icmp any 0 any 0 local inbound no all packets 3 all 3 permit 10.0.0.4 255.255.255.255 10.0.0.1 255.255.255.255 no icmp any 8 any 0 local inbound no all packets 3 all 4 permit 10.0.0.1 255.255.255.255 10.0.0.4 255.255.255.255 no icmp any 0 any 0 local outbound no all packets 3 all
Правила фильтрации будут созданы автоматически при определении туннелей, что позволяет упростить их настройку. Если это не требуется, укажите флаг -g в команде gentun. Примеры команд genfilt для создания правил фильтрации для различных служб TCP/IP можно найти в файле /usr/samples/ipsec/filter.sample.
Существует несколько предопределенных правил фильтрации, которые автоматически создаются при возникновении определенных событий. При загрузке устройства ipsec_v4 или ipsec_v6 предопределенное правило вставляется в таблицу фильтров и активизируется. По умолчанию это правило разрешает передачу всех пакетов, однако пользователь может изменить его и, например, запретить передачу всех пакетов.
Примечание: При удаленной настройке правило запрета нельзя включать до завершения настройки. В случае включения этого правила вы не сможете связаться с настраиваемой системой. Для того чтобы избежать этой ситуации, можно включить по умолчанию правило, разрешающее передачу всех пакетов, либо перед запуском защиты IP настроить туннель между локальной и удаленной системой.
Предопределенные правила существуют как для таблицы фильтров IPv4, так и IPv6. Каждое из них можно изменить на правило Запретить все. При этом все пакеты, не удовлетворяющие дополнительным правилам фильтрации, не будут пропущены. Для предопределенных правил можно установить еще одну опцию - указать в команде chfilt флаг -l, что позволит вести протокол пакетов, удовлетворяющих данному правилу.
Для поддержки туннелей IKE в таблицу фильтров IPv4 помещается динамическое правило фильтрации. Это правило добавляется в таблицу в позицию вставки динамических правил фильтрации. Пользователь может изменять относительное положение этой позиции в таблице фильтров. После инициализации демона администратора туннеля и демона isakmpd становится возможным согласование параметров туннелей IKE. При этом в таблицу фильтров автоматически добавляются правила обработки сообщений IKE, а также пакетов AH и ESP.
С помощью масок подсети группируются ИД, связанные с правилом
фильтрации. Логическое произведение значения маски и ИД правила
фильтрации сравнивается с ИД, указанным в пакете. Например, правило
фильтрации с исходным IP-адресом 10.10.10.4 и
маской подсети 255.255.255.255 должны совпасть
с десятичным IP-адресом, как это показано ниже:
Двоичное значение | Десятичное значение | |
---|---|---|
Исходный IP-адрес | 1010.1010.1010.0100 | 10.10.10.4 |
Маска подсети | 1111.1111.1111.1111 | 255.255.255.255 |
Подсеть 10.10.10.x задается в виде 1111.1111.1111.0 или 255.255.255.0. К входящему адресу добавляется маска подсети, и полученная комбинация сравнивается с идентификатором из правила фильтрации. Например адрес 10.10.10.100 после применения маски подсети преобразуется в 10.10.10.0, а это значение совпадает с ИД правила фильтрации.
Маска подсети 255.255.255.240 допускает любое значение последних четырех битов адреса.
Опция конфигурации хост-брандмауэр-хост позволяет устанавливать туннели между хостом и брандмауэром, автоматически создавая необходимые правила фильтрации для правильного соединения с хостом, находящимся за брандмауэром. Автоматически созданные правила фильтрации разрешают прохождение всех пакетов между двумя хостами, не являющимися брандмауэрами, через заданный туннель. Правила по умолчанию для протокола пользовательских дейтаграмм (UDP), Заголовков идентификации (AH) и заголовков ESP должны обслуживать соединение хост-брандмауэр. Для завершения установки необходимо правильно настроить брандмауэр. Для ввода необходимых для брандмауэра значений SPI и ключей воспользуйтесь файлом экспорта для созданного туннеля.
Рис. 4-7. Хост -- Брандмауэр -- Хост. На этой схеме показана конфигурация Хост -- Брандмауэр -- Хост. Хост A подключен к туннелю, который выходит через брандмауэр в сеть Internet. Затем туннель проходит через удаленный брандмауэр B и далее к удаленному Хосту C.