Релиз pfSense 2.6 / pfSense Plus 22.01

image-loader.svg

14 февраля вышла новая версия opensource файрвола pfSense — 2.6.0. Одновременно с этим вышла версия pfSense Plus 22.01 — варианта для фирменных железок компании-разработчика Netgate, поддерживающая оборудование на базе процессоров ARM и включающая в себя некоторые дополнительные пакеты и функции.

Подразумевается, что читатель имеет определённый опыт работы с pfSense и не нуждается в подробном разъяснении, что означает тот или иной термин.

Пройдёмся по новым функциям и наиболее заметным багфиксам. Детальный список изменений можно найти на странице релиза.

Aliases / Tables

image-loader.svg

Самым заметным багфиксом является исправление использования вложенных URL алиасов,- теперь их можно использовать как в обычных, так и собственно в URL алисах, создавая различные вложенные конфигурации.

Authentication

При создании нового пользователя или изменении пароля существующего, для хеширования пароля используется алгоритм SHA-512 (ранее использовался Blowfish). Важно отметить, что это нарушает обратную совместимость бэкапа с предыдущими версиями — они не смогут аутентифицировать пользователей с таким хэшированием.

Backup / Restore

image-loader.svg

Бэкап серверных SSH ключей (включен по умолчанию) — особенно удобно, если используются скрипты автоматизации с подключением к pfSense по SSH. После восстановления бэкапа те не будут ругаться на изменение ключей файрвола.

Восстановление дополнительных данных (SSH ключи, DHCP/DHCP6 данные аренды, БД Captive Portal) при восстановлении бэкапа с флэшки во время установки (см. Automatically Restore Configuration During Installation).

Auto Config Backup теперь загружает бэкап в фоновом режиме, не тормозя загрузку страниц.

Исправлена загрузка станицы Auto Config Backup в случае недоступности интернета или DNS сервера.

CARP

Исправления багов:

  • Стало возможным перейти в Persistent CARP Maintenance Mode из выключенного CARP (Temporary Disable CARP);

  • Исправлено изменение CARP VHID на Secondary узле (ранее CARP VIP мог удалиться при этом);

  • Корректное обновление IP Алиасов прицепленных к CARP VIP при изменении VHID.

Captive Portal

image-loader.svg

При использовании RAM дисков теперь можно сохранять данные баз данных Captive Portal (подключенных пользователи, ваучеры и пр.).

Ранее при некорректном завершении работы pfSense, могли быть неправильные правила файрвола и неактуальные данные статистики Captive Portal (страница Status / Monitoring → Captive Portal). Теперь это исправлено.

Certificates

Корректно отображаются сертификаты с UTF-8 кодировкой:

image-loader.svg

Вкладка Certificate Revocation теперь отображает, какими сервисами/пакетами используется CRL:

image-loader.svg

Console menu

При конфигурировании IPv4 адресов интерфейсов в консоли, теперь допустимо использовать маску /32 (раньше минимальная маска была /31).

DHCP (IPv4)

image-loader.svg

Добавлена поддержка появившейся в спецификации UEFI 2.5 опции UEFI HTTP Boot, позволяющей вместо привычного TFTP, загружаться по сети с веб-сервера.

DNS Resolver

Исправлены ошибка, когда в некоторых ситуациях процесс unbound завершался с 'signal 11' во время перезагрузки. Так же исправлена ошибка запуска unbound, когда тот не находил указанный Python скрипт (актуально при восстановлении бэкапа с pfBlockerNG).

Dashboard

Добавлен новый виджет, отображающий использованное месте на диске:

image-loader.svg

В pfSense Plus добавлен виджет для ZFS:

image-loader.svg

Dynamic DNS

  • Добавлена поддержка DynDNS провайдеров Strato, deSEC, Name.com и Dy.fi

  • Исправлена работа NoIP.com, Yandex PDD и One.com.

  • Добавлена поддержка прокси для DynDNS и Check IP services.

  • Исправлена ошибка, когда обновление DynDNS может случиться в ошибочный день.

  • Для кастомного DynDNS провайдера теперь можно указать кол-во дней, через которое должен быть запущен процесс принудительного обновления записи (Max Cache Age).

  • Добавлена поддержка Check IP services возвращающих просто IP адрес (без приставки «Current IP Address:»), например https://checkip.amazonaws.com, https://myip.dnsomatic.com и пр.

  • Исправлена ошибка, когда RFC2136 DynDNS мог отправить приватный IP даже при выставленной опции Use public IP.

  • Кастомный DynDNS теперь дополнительно проверяет локальное хранилище сертификатов при подключении по HTTPS (полезно, если у вас собственный DynDNS сервер с локальным CA).

IPsec

Традиционно много изменений:

  • Изменена система именования VTI интерфейсов — если раньше это были имена вида ipsecXXXX, то теперь просто ipsecX, где X — это reqid второй фазы. Соответственно, если вы использовали скрипты для работы с такими интерфейсами, их нужно будет поправить.

  • Множество багфиксов виджета и страницы статуса IPsec — всё, что можно теперь отображается корректно, при нажатии на connect/disconnect подключаются/отключаются правильные IPsec фазы.

  • Mobile IPsec клиенты в режиме EAP-RADIUS получают дополнительные параметры как надо, — было сломано начиная с 2.5.0.

  • Демон PC/SC смарт карт pcscd (используется для PKCS#11 токенов) отключен по умолчанию — на ряде платформ данный демон страдает утечками памяти, что может привести к её полному исчерпанию.

  • Добавлена возможность нормализации IPsec/OpenVPN трафика (страница System / Advanced / Firewall & NAT → VPN Packet Processing), — необходимо её включать, в частности, когда OpenVPN клиенты должны получить доступ к хостам через IPsec туннель (схема вида «OpenVPN клиент → pfSense → = IPsec = → Хост):

    image-loader.svg
  • Исправлено создание BINAT правил файрвола для Mobile IPsec клиентов.

  • Для IKEv2 добавлена возможность настраивать параметр IKEv2 Retransmission на странице VPN / IPsec / Advanced Settings:

    image-loader.svg
  • Исправлено создание автоматических правил файрвола в случае, когда в качестве remote gateway выбрано 0.0.0.0 или ::.

  • Исправлена ошибка, когда вторичный High Availability узел мог инициировать IPsec соединение, если в качестве исходящего интерфейса выбрана гейтевей группа (gateway group).

  • Множество более мелких исправлений, подробнее см. https://forum.netgate.com/topic/165510/heads-up-ipsec-changes.

IPv6 Router Advertisements (RADVD)

  • Время IPv6 RA DNSSL теперь равно MaxRtrAdvInterval * 3, что соответствует значению RFC 8106.

  • Интервалы router advertisement равны значениям, принятым большинством вендоров, и теперь составляют:

    • Minimum RA interval: 200

    • Maximum RA interval: 600

    • Router lifetime: 1800

Interfaces

  • Теперь при загрузке с динамических IPv6 интерфейсов корректно стартуют туннели GRE и GIF.

  • Исправлена ошибка, когда QinQ интерфейсы, прикреплённые к OpenVPN TAP интерфейсам, не поднимались при загрузке.

  • Добавлена поддержка сортировка столбцов на странице настройки VLAN’ов.

  • Исправлена ошибка, когда было невозможно создать два GRE туннеля разных IP протоколов (IPv4 и IPv6) к одному и тому же хосту.

  • Удалена проверка пересечения IPv6 сетей для 6RD интерфейсов, для более гибкого назначения адресов внутренних сетей (subneting) — например, это позволяет использовать на LAN интерфейсах адреса 2001:2002:51e3:5443:1::/80 и 2001:2002:51e3:5443:2::/80 в то время как на 6RD интерфейсе используется адрес 2001:2002:51e3:5443::/32.

  • Иные, менее значимые исправления.

L2TP

  • Исправлена ошибка, когда L2TP retransmit события могли привести к kernel panic.

  • Исправлена ошибка подключения по L2TP при загрузке, когда в качестве сервера подключения используется FQDN имя (актуально при подключении к некоторым провайдерам).

Logging

На системах с файловой системой ZFS, сжатие файлов журнала автоматически отключается, т.к. ZFS сама сжимает подобные данные.

NTP

  • Добавлена поддержка Peer режима, когда два узла обмениваются NTP данными друг с другом. Удобно для HA кластеров.

  • Минимально допустимый Poll Interval теперь равен 8 секундам.

  • Добавлена поддержка SHA-256 аутентификации для режима сервера (клиентская часть всё ещё не поддерживает аутентификацию).

Notifications

  • Добавлена поддержка уведомлений в Slack.

  • Отправка уведомлений при перезагрузке/выключении.

  • Возможно отключить уведомления о просроченных сертификатах.

OpenVPN

Традиционно много изменений:

  • Добавлена поддержка алиасов — теперь, вместо того, чтобы перечислять через точку с запятой нужные сети в Tunnel/Local/Remote networks, можно просто создать алиасы с всем нужными сетями и использовать их в настройке OpenVPN. Очень удобно.

  • Исправлена проверка валидности клиентских сертификатов через OCSP.

  • Добавлен чекбокс для проверки корректности EKU сертификата — сертификат клиента должен иметь EKU «TLS Web Client Authentication», а при проверке сертификата сервера, EKU должен быть «TLS Web Server Authentication».

  • Добавлено логирование внешнего IP адреса клиента при подключении/отключении (особенно полезно, если логи pfSense отправляются на отдельный syslog сервер и там нужно парсить OpenVPN события).

  • Если настроена автоматическая регистрация OpenVPN клиентов в DNS сервере pfSense, то теперь добавляется ещё и соответствующая PTR запись.

  • Исправлен парсинг Cisco-ACL правил с RADIUS сервера, в которых указан диапазон портов (правила вида «permit tcp host 192.168.2.5 host 192.168.6.3 range 10000 65535», ранее парсились некорректно).

  • Исправлен парсинг Framed-IP атрибута RADIUS.

  • Опции «exit-notify» и «inactive timeout» теперь отключены по умолчанию для соединений вида точка-точка. В предыдущей версии, из-за этой опции удалённая сторона могла завершить соединение, отправив уведомление об отключении, в результате чего соединение не восстанавливалось автоматически.

  • На странице Status / OpenVPN добавлена возможность просмотра отпарсенных RADIUS правил — просто нажмите на иконке с буквой «i» справа от соединения:

    image-loader.svg
  • На той же странице добавлена кнопка принудительного завершения сессии — иконка с косым крестом в красном круге справа от соединения. Позволяет отключить клиента отправив тому сообщение «exit-notify», благодаря чему тот не будет пытаться автоматически переподключиться (в этом основное отличие от имеющейся кнопки «terminate».

Operational System

  • Для RAM дисков теперь используется tmpfs.

  • Встроенный веб-сервер Nginx обновлён для устранения уязвимости CVE-2021–23017.

  • На странице настройки логов добавлено замечание, что отключение логирования так же отключает работу sshguard (т.к. тот следит за неудачными попытками аутентификации).

  • В ядре исправлена ошибка функции nd6_dad_timer (), которая могла при определённых условиях привести к kernel panic.

  • ZFS теперь используется по умолчанию на большинстве appliance’ов Netgate (актуально для корпоративных клиентов использующих pfSense Plus).

PPPoE Server

Добавлена поддержка выбора протокола аутентификации клиентов (PAP/CHAP):

image-loader.svg

Package System

  • Исправлена ошибка, когда в некоторых случаях терялись тэги и  пакетов из конфигурационного файла. В итоге это могло приводить к ошибкам, когда на HA кластере функционирование определённого пакета корректно менялось на одной ноде, но не работало на другой.

  • Добавлен пакет librdkafka (устанавливается в консоли: pkg install librdkafka). Нужен, если на pfSense необходимо установить nProbe.

  • Исправлена ошибка на странице обновления прошивки (pkg_mgr_install.php), при открытии её в нескольких вкладках.

RRD graphs

Добавлена поддержка графиков температуры (при использовании поддерживаемых процессоров и/или сетевых карт):

image-loader.svg

Routing

  • Исправления в настройке статических маршрутов — теперь они корректно обновляются при изменении шлюза, алиаса (если тот указан в качестве destination), удалении маршрута и пр.

  • Исправлен баг, когда статический маршрут, помеченный как «disabled», мог являться причиной того, что данный статический маршрут удалялся из системной таблицы маршрутизации, даже если был получен из другой подсистемы (например, OpenVPN).

Firewall / NAT

  • В скрипт easyrule добавлена поддержка IPv6 адресов.

  • Исправлены ошибки проверки введённых данных на страницах настройки NAT.

  • Исправлена ошибка, когда policy-routing правило для IPv6 маршрута по умолчанию (::/0) не срабатывало, если в IPsec PH2 также использовалась сеть ::/0.

  • Исправлена ошибка создания правил файрвола, когда на странице 1:1 NAT в качестве «Internal Net» выбрано «Any».

  • Ускорена загрузка страниц правил файрвола с большим количеством Policy-Routing правил.

  • Исправлена ошибка создания Port Forward правил при выборе в качестве Source/Destination сети интерфейса, к которому прикручены ещё и Virtual IP адреса (конкретно они не добавлялись к правилам).

  • На странице Floating правил теперь отображается иконка с направлением правила (in/out).

  • Исправлено создание Port Forward правил для специальных сетей — OpenVPN, PPPoE Server (теперь можно редиректить PPPoE клиентов к своему DNS, к примеру).

  • Исправлено создание Automatic Outbound NAT правил для IPv6.

  • Теперь можно перейти на настройку шлюза / Gateway Group’ы, просто нажав на соответствующее имя в столбце Gateway страницы правил файрвола.

  • Исправлена ошибка изменения tracker ID правила после нескольких перезапусков фильтра. Теперь всё стабильно.

SNMP

Штатный SNMP демон теперь поддерживает IPv6

Traffic Shaper (ALTQ)

  • Исправлен kernel crash при использовании CBQ.

  • Сетевые карты Chelsio T6 CXGBE добавлены в список поддерживаемых QoS (ALTQ).

  • По умолчание Traffic Shaper теперь использует Mbit/s (давно пора).

  • Traffic Shaper Wizard теперь создаёт правила и для IPv4, и для IPv6 трафика.

Traffic Shaper (Limiters)

  • Для удаления лимитера теперь не нужно предварительно убирать его с соответствующих правил файрвола (само удаляется).

  • Исправлен kernel crash при использовании fq_pie.

UPnP/NAT-PMP

Добавлена возможность использования STUN сервера для определения внешнего IP — если ваш провайдер использует unrestricted NAT 1:1, то это позволит UPnP корректно работать несмотря на то, что ваш WAN интерфейс имеет адрес из RFC1918 диапазона.

Upgrade

При обновлении/изменении версии pfSense теперь запускается переустановка всех пакетов. Раньше это было не всегда так, что приводило к неработоспособности некоторых программ.

User Manager / Privileges

На странице пользователей добавлена кнопка копирования. Удобно, если вам необходимо создать несколько пользователей с одинаковыми правами.

Wake on LAN

При нажатии на кнопку «Wake All Devices» теперь появляется окно подтверждения, дабы случайно не перебудить всех).

Web Interface

  • Формат шрифтов изменён на WOFF2.

  • Исправлена ошибка загрузки страниц Status / DHCP Leases и Diagnostics / ARP Table и медленная загрузка некоторых других страниц при недоступном DNS сервере.

  • Исправлена ошибка на странице System / Advanced / Notifications, когда было невозможно сохранить настройки, не поставив галочку Disable SMTP (если, к примеру, нужно настроить только Telegram уведомления, но не трогать остальное).

  • Исправлен баг, когда при редактировании интерфейсов типа PPP (PPP/PPPoE/L2TP/PPTP), соответствующий интерфейс мог быть удалён при сохранении настроек

Wireless

  • Исправлена ошибка в wpa_supplicant, приводящая к загрузке CPU на 100% во время загрузки.

  • Исправлено отображение опций EAP клиента на странице настройки интерфейса.

XMLRPC

  • Исправлена ошибка XMLRPC синхронизации в случае, если указана опция Failover peer IP в настройках DHCP сервера, но данный интерфейс не настроен (выключен, либо не поднятый динамический/VPN интерфейс и пр.).

  • Добавлена поддержка синхронизации DHCP Relay.

  • Исправлена синхронизация / обновление настроек IPsec на бэкап узле HA.

  • Небольшие улучшения в логировании / отображении ошибок XMLRPC синхронизации.

© Habrahabr.ru