Давно не было на Хабре новостей про новые версии pfSense - последняя новость датируется 2014 годом и рассказывает ещё о pfSense 2.1.5. Последняя стабильная Community Edition версия pfSense на сегодня - 2.5.2 (вышла в июле 2021). О ней и пойдёт речь, точнее о доступном функционале и полезных фишках. Так как нового накопилось довольно много, будет цикл статей по разным сервисам файрвола (уведомления в Telegram!) и его пакетам (Squid, pfBlockerNG, Snort/Suricata). А сейчас VPN.

IPsec

К одним из наиболее важных изменений стоит отнести поддержку аппаратного ускорения AES-NI, что позволяется заметно ускорить криптографические операции на современных процессорах. Активизируется на вкладке System → Advanced / Miscellaneous. См. про оптимизацию VPN в официальных доках.

IPsec демон strongswan обновлён до версии 5.9.2_2.

Поддержка сертификатов на эллиптических кривых (ECDSA),- возможно использовать не только в IPsec, но и в OpenVPN, пакетах Squid, HAProxy и пр. Несмотря на обилие разных алгоритмов, современное ПО работает только с тремя из них - secp384r1, secp521r1 и prime256v1.

Возможность выбора PRF (Pseudo-Randon Functions) при настройке первой фазы - не настолько часто используемая функция, обычно нужна если на удалённой стороне решили помудрить с данным параметром.

Ручная настройка таймаутов Rekey и Reauth, а также Child SA Start/Close action. Бывает необходимо для корректной переинициализации SA. Подробнее.

Gateway duplicates - позволяет создать несколько IPsec конфигураций к одному удалённому хосту. Нужно если на pfSense несколько внешних сетевых интерфейсов + динамическая маршрутизация на них (BGP, OSPF).

PKCS#11 - использование ключа с PKCS#11 токена. Можно использовать Yubikey, Rutoken и пр. токены поддерживаемые opensc.

Maximum IKEv1 Phase 2 Exchanges - как понятно из название это максимальное кол-во IKEv1 Phase 2 Exchanges. Если вам всё ещё непонятно, то данная опция пригодится только если у вас IKEv1 с большим количеством Phase 2 туннелей (чтобы не отваливались при rekeying).

Custom IKE/NAT-T Ports - возможность использования нестандартных портов для IKE (500 порт по дефолту) и NAT-T (4500 порт). Может использоваться для обхода блокировки IPsec и в некоторых экзотических случаях.

Что касается remote access IPsec (правильно IPsec Mobile), то тут два небольших дополнения:

  • RADIUS IP address priority - при использовании RADIUS сервера для аутентификации, назначать клиенту IP адрес получаемый в RADIUS ответе,- если его там нет, то динамически назначать адрес из пула.

  • RADIUS Advanced Parameters - тюнинг таймаутов, нужен в основном при использовании 2FA аутентификации (внешний DUO сервер, к примеру)

IPsec Filter Mode - важная опция, позволяющая переключать режим пакетного фильтра для IPsec, в связи с особенностями его работы на FreeBSD. Так, по-умолчанию возможно настраивать фильтр пакетов для всего IPsec трафика на одной вкладке, т.е. Tunnel, Transport и VTI трафик весь фильтруется в одном месте (псевдо-интерфес enc0). Если же переключить режим в Filter IPsec VTI and Transport on assigned interfaces, то можно создавать отдельные правила файрвола на каждом VTI или Transport интерфейсе, но Tunnel режим работать не будет.

OpenVPN

Главным образом багфиксы, вышеупомянутая поддержка ECDSA сертификатов, обновление OpenVPN до версии 2.5.2, а также:

Username as Common Name - позволяет использовать Client Specific Overrides (персональные настройки для нужных пользователей) в Remote Access (User Auth) режиме.

Регистрация DNS имён клиентов при подключении - IPv4, IPv6 и обратные зоны. Опция Services > DNS Resolver / OpenVPN Clients.

OCSP Check - проверка валидности сертификатов с помощью OCSP сервера.

Многочисленные улучшение в парсере Cisco-AVPair правил прилетающих с RADIUS сервера - поддержка IPv6, протоколов icmp, udp, tcp, опций для указания диапазонов портов (gt, lt, range, eq, ne). Пример:

Cisco-AVPair = "ip:inacl#1=permit tcp host 192.168.5.10 host 192.168.6.3 eq 80",
Cisco-AVPair += "ip:inacl#2=permit udp host {clientip} host 192.168.33.4 eq 53",
Cisco-AVPair += "ipv6:inacl#1=permit icmp host {clientipv6} host 2001:DB8::10",
Cisco-AVPair += "ipv6:inacl#2=permit udp host 2001:DB8::4444 host 2001:DB8::7 range 1024 65535"

Pull DNS - теперь pfSense может использовать DNS сервер получаемый при подключении к удёлённому OpenVPN серверу. Необходимо если ваш VPN-провайдер выдаёт параметры DNS сервера при каждом подключении (например ExpressVPN).

Remove Server Routes - новая опция при настройке Client Specific Override, предотвращающая добавление маршрутов в таблицу маршрутизации клиента.

OpenVPN Client Export теперь может создавать "silent installer" - неинтерактивный установщик который можно использовать для деплоя.

В новой версии pfSense ожидается поддержка алиасов в OpenVPN и вам больше не придётся писать через запятую перечень всех local/remote сетей)

L2TP

Из нового только возможность указать VPN MTU, а в целом это небольшие багфиксы. К примеру теперь сервис не будет рестартовать при каждом добавлении/удалении/изменении пользователей.

WireGuard

Новый тип VPN в pfSense - поставляется в виде отдельного пакета и настраивается в несколько кликов. Будет отдельная статья про эти самые клики)

на сегодня всё о новинках pfSense - это моя первая статья на хабре, буду рад ответить на вопросы и исправить замечания

Полезные статьи по pfSense:

Комментарии (15)


  1. Ra-Jah
    29.09.2021 13:54

    Надеюсь баг в стабильной версии 2.5.1 с неработающим статическим NAT при нескольких WAN починили.


    1. Nova_Logic
      29.09.2021 14:27

      Там ещё были проблемы с ipsec туннелями при использовании carp:-(


      1. silinio Автор
        01.10.2021 08:35

        что конкретно?


    1. silinio Автор
      29.09.2021 14:27

      исправлен как раз в 2.5.2 -

      https://docs.netgate.com/pfsense/en/latest/releases/2-5-2.html#rules-nat:
      Fixed: Port forward rules only function through the default gateway interface, reply-to does not work for Multi-WAN (CE Only) #11805


  1. TheRaven
    29.09.2021 14:36
    +1

    В ветке 2.5 творится какая-то невнятная фигня с VPN и маршрутизацией. Периодически трафик начинает ходить мимо L2TP в основной шлюз и я вижу заглушку провайдера о цензуре, вместо нужного сайта. Помогает Status -> Filter Reload.
    На более ранних релизах подобное не наблюдалось.


    1. Bonio
      29.09.2021 15:54

      Сделайте основным шлюзом vpn интерфейс, а не провайдерский wan.


    1. silinio Автор
      30.09.2021 12:47

      • Создаёте Policy-Based Route правило сверху остальных на LAN интерфейсе, указав L2TP VPN шлюз в Advanced / Gateway

      • На странице System > Advanced > Miscellaneous ставите галочку у Skip rules when gateway is down

      Теперь если L2TP VPN шлюз недоступен то трафик будет дропаться чтобы не нарваться на цензуру


      1. TheRaven
        30.09.2021 14:26

        Так в том-то и дело, что гейтвей не даун, VPN работает и pfSense отмечает его зеленым на дашборде. А трафик идёт не туда.


        1. silinio Автор
          30.09.2021 14:29

          Тут надо смотреть правила файрвола и настройки роутинга / Gateway Groups. Что-то не так с очерёдностью правил скорее всего.
          А какая версия, кстати?


          1. TheRaven
            30.09.2021 16:14

            Последняя, 2.5.2-RELEASE (amd64)
            С настройкой, на мой взгляд, всё в порядке т.к. подобная конфигурация на 2.3.4 работает без проблем.
            Если хотите, я могу выложить скриншоты настроек, но по хорошему нужно смотреть что там в роутах в момент проблемы.


            1. silinio Автор
              30.09.2021 18:35

              Можно и скриншоты

              Вообще сделаю отдельную статью именно про настройку Firewall / NAT в pfSense

              p.s. не могу ускорится из-за низкой кармы


  1. NekoYos
    01.10.2021 08:34

    Ага, долгое время сидел на "вашем" pfsense и всем рекламировал, и в итоге перешел на чистую FreeBSD с IPFW) Причина - полный контроль и тюнинг всего что хочу, гибкость и отсутствие рамок в которых ты должен использовать специфичный гуй. Больше к нему не вернусь. Хотя дома у меня машрутизатор на opnsense :)


    1. Bonio
      01.10.2021 20:29

      За годы использования pfsense ни разу не столкнулся с ограничениями в рамках гуи, хотя конфигарация сети у меня сложная, с vlan, несколькими vpn туннелями, резервированием интернета и разными маршрутами. Хотя обычно я тоже не сторонник гуи, но вот конкретно в pfsense он очень мощный и позволяет сделать вообще все, что требуется от маршрутизатора. Сценарии, когда вы хотите запустить на нем неспецефичные для маршрутизатора задачи, вроде торрентов и всякого стороннего софта я не рассматриваю.


      1. NekoYos
        01.10.2021 20:34

        KEA DHCP. Один из примеров на моей практике. Гуйный файрволл удобный, но после чистого ipfw не понимаю как можно гуем полбзоваться для файрвола. Ну и конфигать квагу из cli намного понятнее и приятнее нежели из гуя.

        Но это все привычки и вкуса. Хорошо что в гуе pfsense почти все предусмотрели


        1. silinio Автор
          01.10.2021 22:35

          KEA DHCP хорошая штука. Но чего именно не хватает в pfSense'вском DHCP сервере?

          Для FRR (квагу уже давно никто не использует) есть возможность использовать RAW-конфиг. Там уже что хотите можно накручивать.