Алиасы pfSense - группировка адресов, сетей и портов

Алиасы в pfSense представляют собой именованные группы IP-адресов, сетей, портов или URL-адресов, которые используются в правилах файрвола, NAT и других компонентах системы вместо указания каждого значения по отдельности. Применение алиасов устраняет дублирование данных в правилах (принцип DRY - Don’t Repeat Yourself): при изменении списка адресов достаточно обновить алиас, а не каждое правило, в котором он используется. Это существенно упрощает администрирование, снижает вероятность ошибок и делает набор правил самодокументируемым.

Типы алиасов

pfSense поддерживает несколько типов алиасов, каждый из которых предназначен для определённой категории данных. Управление алиасами выполняется через меню Firewall > Aliases.

Host

Алиас типа Host содержит отдельные IP-адреса или полные доменные имена (FQDN). При сохранении алиаса pfSense разрешает FQDN-записи через DNS и добавляет полученные IP-адреса в таблицу. Диапазоны адресов и подсети автоматически конвертируются в список отдельных IP-адресов.

Типичное применение: группировка серверов мониторинга, почтовых серверов провайдера или IP-адресов администраторов для создания единого правила доступа.

Пример записей:

ЗаписьОписание
10.0.1.10Сервер мониторинга
10.0.1.11Резервный сервер мониторинга
monitor.example.comFQDN сервера мониторинга

Внимание:

При использовании FQDN в алиасе типа Host pfSense выполняет DNS-запрос при сохранении и периодически обновляет результат. Если DNS-сервер недоступен или возвращает устаревшие записи, алиас будет содержать некорректные адреса. Для критически важных правил рекомендуется использовать статические IP-адреса.

Network

Алиас типа Network содержит подсети в нотации CIDR. Этот тип подходит для указания целых сетей или диапазонов адресов. pfSense автоматически конвертирует произвольные диапазоны IPv4 в эквивалентные CIDR-сети.

Типичное применение: определение внутренних подсетей организации, списков доверенных сетей партнёров или блокировка географических диапазонов.

Пример записей:

ЗаписьМаскаОписание
192.168.10.0/24Подсеть отдела разработки
192.168.20.0/24Подсеть бухгалтерии
10.0.0.0/8Все внутренние сети

Для указания одиночного хоста в алиасе типа Network используется маска /32 (IPv4) или /128 (IPv6).

Port

Алиас типа Port содержит номера портов или диапазоны портов. Допустимые значения - целые числа от 1 до 65535. Диапазоны указываются через двоеточие (например, 1194:1199).

Типичное применение: группировка портов веб-сервисов (80, 443, 8080), портов управления (22, 3389, 5900) или портов баз данных (3306, 5432, 27017).

Пример записей:

ЗаписьОписание
80HTTP
443HTTPS
8080:8089Альтернативные HTTP-порты

Внимание:

Алиасы портов не привязаны к конкретному протоколу. Один алиас может использоваться как в правилах TCP, так и в правилах UDP. Протокол определяется в самом правиле файрвола, а не в алиасе.

URL

Алиас типа URL загружает список записей с одного или нескольких URL-адресов однократно - в момент создания или сохранения алиаса. После загрузки данные сохраняются локально и не обновляются автоматически. Каждый URL может содержать до 3000 записей.

Существуют два подтипа:

  • URL (IPs) - URL содержит IP-адреса, сети в CIDR-нотации или FQDN; создаётся алиас сетевого типа
  • URL (Ports) - URL содержит номера портов или диапазоны; создаётся алиас портового типа

Типичное применение: разовая загрузка списка адресов из корпоративной системы управления или из файла на внутреннем веб-сервере.

URL Table

Алиас типа URL Table аналогичен URL, но поддерживает автоматическое периодическое обновление и предназначен для работы с большими списками (тысячи и десятки тысяч записей). Данные хранятся в файловых таблицах pf, что обеспечивает эффективную работу с объёмными наборами данных.

Существуют два подтипа:

  • URL Table (IPs) - загружает IP-адреса, сети и FQDN
  • URL Table (Ports) - загружает номера портов и диапазоны

Типичное применение: подключение внешних списков блокировки (Spamhaus DROP, DSHIELD, Emerging Threats), списков Tor-узлов или географических списков IP-адресов.

Создание алиаса

Процесс создания алиаса выполняется через веб-интерфейс pfSense.

Пошаговая процедура

  1. Перейти в меню Firewall > Aliases

Список алиасов pfSense

Рис. 1. Главный экран Firewall > Aliases со списком существующих алиасов

  1. Выбрать соответствующую вкладку: IP (для алиасов типа Host и Network), Ports (для портовых алиасов) или URLs (для URL и URL Table)

  2. Нажать кнопку Add для создания нового алиаса

  3. Заполнить обязательные поля:

ПолеОписание
NameИмя алиаса. Допустимые символы: a-z, A-Z, 0-9, _. Имя не должно совпадать с зарезервированными именами (имена интерфейсов, шлюзов)
DescriptionОписание назначения алиаса (необязательно, но настоятельно рекомендуется)
TypeТип алиаса: Host, Network, Port, URL (IPs), URL (Ports), URL Table (IPs), URL Table (Ports)
  1. Добавить записи. Для каждой записи доступно поле значения и поле описания. Кнопка Add добавляет новую строку, кнопка Delete удаляет строку

Редактирование алиаса типа Host

Рис. 2. Редактирование алиаса типа Host с указанием IP-адресов и описаний

  1. Нажать Save для сохранения алиаса

  2. Нажать Apply Changes на странице списка алиасов для применения изменений

Требования к именам алиасов

Имя алиаса должно соответствовать следующим правилам:

  • Содержать только латинские буквы, цифры и символ подчёркивания
  • Не начинаться с цифры
  • Не совпадать с именами интерфейсов (WAN, LAN, OPT1 и т. д.)
  • Не совпадать с именами шлюзов
  • Не совпадать с зарезервированными словами pf

Рекомендуется использовать информативные имена, отражающие назначение алиаса: Web_Servers, Management_Ports, Blocked_Countries, RFC1918_Networks.

Массовый импорт

Для добавления большого количества записей предусмотрена функция массового импорта:

  1. Перейти в Firewall > Aliases
  2. Выбрать вкладку IP или Ports
  3. Нажать кнопку Import
  4. Указать имя и описание алиаса
  5. Вставить записи в текстовое поле (по одной записи на строку)
  6. Нажать Save

Ограничение: алиасы, созданные вручную (включая массовый импорт), поддерживают до 5000 записей. Для более объёмных списков следует использовать алиасы типа URL Table.

Вложенные алиасы

pfSense поддерживает вложенные алиасы - алиасы, которые ссылаются на другие алиасы. Эта функция позволяет строить иерархические структуры группировки.

Пример: алиас All_Servers может содержать ссылки на алиасы Web_Servers, DB_Servers и Mail_Servers. При изменении состава любого из вложенных алиасов родительский алиас автоматически отражает изменения.

Для создания вложенного алиаса достаточно указать имя существующего алиаса в поле записи. pfSense распознает вложенность автоматически и подставит содержимое дочернего алиаса.

Практический сценарий:

Alias: Web_Servers
  - 10.0.1.10  (Frontend)
  - 10.0.1.11  (Backend API)

Alias: DB_Servers
  - 10.0.2.10  (PostgreSQL primary)
  - 10.0.2.11  (PostgreSQL replica)

Alias: All_Application_Servers
  - Web_Servers    (nested alias)
  - DB_Servers     (nested alias)

В правиле файрвола, ссылающемся на All_Application_Servers, будут учтены все четыре IP-адреса из обоих вложенных алиасов.

Внимание:

Вложенные алиасы должны быть одного типа. Нельзя вложить алиас портов в алиас хостов. Циклические ссылки (алиас A ссылается на B, а B ссылается на A) недопустимы и приведут к ошибке при сохранении.

URL-таблицы

URL-таблицы (URL Table) - наиболее мощный тип алиаса для интеграции с внешними источниками данных об угрозах. Они позволяют автоматически загружать и обновлять большие списки IP-адресов или портов из внешних источников.

Настройка URL-таблицы

  1. Перейти в Firewall > Aliases, вкладка URLs
  2. Нажать Add
  3. Установить тип URL Table (IPs)
  4. В поле записи указать URL источника данных
  5. Установить интервал обновления в днях (поле Update Freq.)
  6. Нажать Save, затем Apply Changes

Настройка алиаса URL Table

Рис. 3. Настройка алиаса типа URL Table с указанием внешнего URL и интервала обновления

Популярные источники блокировок

ИсточникURLОписание
Spamhaus DROPhttps://www.spamhaus.org/drop/drop.txtHijacked IP-пространства, не используемые легитимными организациями
Spamhaus EDROPhttps://www.spamhaus.org/drop/edrop.txtРасширенный список DROP
DSHIELDhttps://feeds.dshield.org/block.txtНаиболее активные атакующие подсети за последние 3 дня
Emerging Threatshttps://rules.emergingthreats.net/fwrules/emerging-Block-IPs.txtАгрегированный список вредоносных IP-адресов
Abuse.ch Feodo Trackerhttps://feodotracker.abuse.ch/downloads/ipblocklist.txtC2-серверы банковских троянов

Интервал обновления

Интервал обновления задаётся в днях. Значение 1 означает ежедневное обновление. Для большинства списков блокировки рекомендуется интервал от 1 до 7 дней в зависимости от частоты обновления источника.

pfSense проверяет и загружает обновления в фоновом режиме. Обновление не влияет на работу файрвола - новые данные загружаются во временный файл и подменяются атомарно.

Формат файла источника

Файл, доступный по указанному URL, должен содержать записи в текстовом формате - по одной записи на строку. Допустимые форматы строк:

  • IP-адрес: 192.168.1.1
  • Подсеть в CIDR: 192.168.1.0/24
  • Строки, начинающиеся с # или ;, игнорируются как комментарии

Использование алиасов в правилах

Алиасы применяются в полях источника (Source), назначения (Destination) и порта (Port) при создании правил файрвола, NAT и проброса портов.

Выбор алиаса в правиле

При создании или редактировании правила файрвола:

  1. В поле Source или Destination выбрать тип Single host or alias
  2. В текстовом поле начать вводить имя алиаса - pfSense отобразит список совпадений (автодополнение)
  3. Выбрать нужный алиас из выпадающего списка

Для порта:

  1. В поле Destination Port Range или Source Port Range выбрать тип Other
  2. Начать вводить имя портового алиаса
  3. Выбрать алиас из списка автодополнения

Автодополнение фильтрует алиасы по типу: в сетевых полях отображаются только алиасы хостов и сетей, в полях портов - только алиасы портов.

Визуальная проверка

На странице Firewall > Rules при наведении курсора на имя алиаса в правиле отображается всплывающая подсказка с полным содержимым алиаса. Это позволяет быстро проверить, какие адреса или порты входят в группу, без перехода к редактированию алиаса.

Пример набора правил с алиасами

Типичный набор правил для LAN-интерфейса с использованием алиасов:

#ДействиеИсточникНазначениеПортОписание
1PassAdmin_PCsMgmt_ServersMgmt_PortsДоступ администраторов к управлению
2PassLAN netDNS_Servers53DNS-запросы
3PassLAN netanyWeb_PortsВеб-доступ
4BlockLAN netBlocked_IPsanyБлокировка вредоносных адресов

Без алиасов каждая строка потребовала бы нескольких правил для каждого отдельного адреса и порта. Алиасы сокращают набор правил и делают его читаемым.

Миграция с других платформ

При переходе на pfSense с другого межсетевого экрана существующие группы объектов необходимо преобразовать в алиасы. Ниже приведено соответствие концепций.

Cisco ASA

Cisco ASApfSenseПримечания
object-group networkАлиас типа Network или HostПрямое соответствие
object-group serviceАлиас типа PortВ ASA объединяет порт и протокол; в pfSense протокол задаётся в правиле
object network (единичный)Запись в алиасеВ pfSense нет отдельного объекта для единичного хоста - используется запись в алиасе
Вложенные object-groupВложенные алиасыПоддерживается

Пример миграции:

Cisco ASA:

object-group network Web_Servers
 network-object host 10.0.1.10
 network-object host 10.0.1.11
 network-object host 10.0.1.12

object-group service Web_Ports tcp
 port-object eq www
 port-object eq https
 port-object eq 8080

pfSense: создать алиас Web_Servers типа Host с записями 10.0.1.10, 10.0.1.11, 10.0.1.12 и алиас Web_Ports типа Port с записями 80, 443, 8080.

Fortinet FortiGate

FortiGatepfSenseПримечания
Address ObjectЗапись в алиасе Host или NetworkЕдиничный объект - аналог одной записи в алиасе
Address GroupАлиас типа Host или NetworkГруппа - прямой аналог алиаса
Service ObjectЗапись в алиасе PortОбъект сервиса включает протокол; в pfSense протокол задаётся в правиле
Service GroupАлиас типа PortПрямое соответствие
External Threat FeedАлиас типа URL TableФункционально эквивалентны
ISDB (Internet Service Database)Нет прямого аналогаТребуется ручное создание алиасов с IP-адресами сервисов

MikroTik RouterOS

MikroTikpfSenseПримечания
/ip firewall address-listАлиас типа Host или NetworkПрямое соответствие. В MikroTik один address-list может содержать записи с таймаутом - в pfSense таймаут не поддерживается
Множественные address-list с одним именемОдин алиас с несколькими записямиВ MikroTik записи добавляются отдельными командами; в pfSense - в одном алиасе
Динамические записи (добавленные скриптами)Алиас типа URL TableДля динамических списков из внешних источников

Пример миграции с MikroTik:

MikroTik:

/ip firewall address-list
add address=10.0.1.0/24 list=trusted_networks comment="Office"
add address=10.0.2.0/24 list=trusted_networks comment="VPN"
add address=172.16.0.0/12 list=trusted_networks comment="Partners"

pfSense: создать алиас Trusted_Networks типа Network с записями 10.0.1.0/24, 10.0.2.0/24, 172.16.0.0/12.

Устранение неполадок

Алиас не разрешается или содержит неверные адреса

Симптомы: правило файрвола с алиасом не работает; на странице Diagnostics > Tables алиас пуст или содержит неожиданные IP-адреса.

Возможные причины и решения:

  1. FQDN не разрешается. Проверить доступность DNS-сервера, настроенного в pfSense (System > General Setup > DNS Servers). Выполнить тестовый запрос через Diagnostics > DNS Lookup. Если DNS-сервер недоступен, алиас с FQDN-записями будет пустым.

  2. DNS-кэширование. pfSense кэширует DNS-ответы. Если IP-адрес хоста изменился, обновление в алиасе произойдёт после истечения TTL записи. Для принудительного обновления - пересохранить алиас и нажать Apply Changes.

  3. Имя алиаса совпадает с зарезервированным словом. Проверить, что имя не конфликтует с именами интерфейсов, шлюзов или встроенных таблиц pf. Переименовать алиас при необходимости.

URL-таблица не обновляется

Симптомы: алиас типа URL Table содержит устаревшие данные; внешний источник обновился, но pfSense не загрузил новую версию.

Возможные причины и решения:

  1. URL недоступен. Проверить доступность URL через Diagnostics > Command Prompt, выполнив fetch -o /dev/null <URL>. Убедиться, что правила файрвола на WAN-интерфейсе не блокируют исходящие HTTPS-соединения.

  2. Некорректный формат файла. Файл по URL должен содержать записи в текстовом формате (по одной на строку). HTML-страницы, JSON или XML не поддерживаются. Проверить содержимое файла вручную.

  3. Интервал обновления не наступил. pfSense проверяет URL с интервалом, указанным в поле Update Freq. (в днях). Для принудительного обновления - пересохранить алиас.

  4. Ошибка TLS-сертификата. Если URL использует HTTPS с самоподписанным сертификатом, загрузка может завершиться ошибкой. Проверить журналы в Status > System Logs > System > General.

Алиасы с FQDN и проблемы DNS

При использовании доменных имён в алиасах необходимо учитывать следующие особенности:

  • pfSense разрешает FQDN через настроенные DNS-серверы. Если DNS-серверы настроены на использование DNS через WAN-интерфейс, а правила WAN блокируют исходящий DNS - разрешение не выполнится.
  • Запись DNS может возвращать несколько IP-адресов (round-robin). pfSense добавит все полученные адреса в алиас.
  • Изменение IP-адреса, на который указывает FQDN, не отражается в алиасе мгновенно. Обновление происходит при переприменении конфигурации или по таймеру (интервал зависит от TTL DNS-записи и настроек pfSense).
  • В алиасе типа Network при указании FQDN маска CIDR к полученным адресам не применяется - используется маска /32 (для IPv4) или /128 (для IPv6) вне зависимости от указанной маски.

Проверка содержимого алиаса

Для просмотра текущего содержимого алиаса (разрешённые IP-адреса, загруженные записи):

  1. Перейти в Diagnostics > Tables
  2. Выбрать имя алиаса из выпадающего списка
  3. Просмотреть список записей, входящих в таблицу

Альтернативный способ - через командную строку:

pfctl -t <alias_name> -T show

Эта команда выводит все IP-адреса, входящие в указанный алиас, в формате таблицы pf.

Связанные разделы

Last updated on