pfSense сегодня — VPN

Давно не было на Хабре новостей про новые версии 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), то тут два небольших дополнения:

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:

@silinio
29.09.2021 15:20 UTC
Первоисточник

Комментарии

@Ra-Jah
29.09.2021 10:54 UTC
0

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

@Nova_Logic
29.09.2021 11:27 UTC
0

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

01.10.2021 05:35 UTC
0

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

@silinio
29.09.2021 11:27 UTC
0

исправлен как раз в 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

@TheRaven
29.09.2021 11:36 UTC
+1
В ветке 2.5 творится какая-то невнятная фигня с VPN и маршрутизацией. Периодически трафик начинает ходить мимо L2TP в основной шлюз и я вижу заглушку провайдера о цензуре, вместо нужного сайта. Помогает Status -> Filter Reload.
На более ранних релизах подобное не наблюдалось.
@Bonio
29.09.2021 12:54 UTC
0

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

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

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

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

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

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

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

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

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

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

@NekoYos
01.10.2021 05:34 UTC
0

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

@Bonio
01.10.2021 17:29 UTC
0

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

01.10.2021 17:34 UTC
0

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

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

01.10.2021 19:35 UTC
0

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

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

@camojiet
25.07.2022 11:34 UTC
0

Здравствуйте!

Прошу помощи, уважаемое сообщество!

Настроил IKEv2 на pfsense по вот этому ману:
https://docs.netgate.com/pfsense/en/latest/recipes/ipsec-mob...

Всё получилось, но мне нужна связь до IP-шки VPN клиента из внутренней сети. Сейчас клиенту выдаётся 192.168.253.129, и ниоткуда я не могу пингануть этот адрес (Я хочу подключаться к клиенту). У pfsense нигде не видно ни этого интерфейса, ни ip из сети vpn клиента. На самом клиенте тоже нет никакого другого адреса кроме его самого (шлюза нет).

Я уже всё облазил в конфигурации и почти всё в интернете. Интернет говорит, что мне надо смотреть в  сторону Site to site и в pfsense такое представлено вот так:
https://docs.netgate.com/pfsense/en/latest/recipes/ipsec-s2s...
И в этом случае нужны две белые IP-шки, а есть только одна.

Старый PPTPd позволял мне раздавать VPN клиентам IP-шки из внутренней сети, и я мог обращаться к клиентам напрямую и роутить на них.