OpenVPN and NAT Outbound
-
Здравствуйте господа.
Прошу помощи в решении одной проблемы.Офис "A" локальная сеть 192.168.1.0/24
Офис "B" локальная сеть 172.16.0.0/12
Они соеденены по GRE over IPSec тунелю
Так же есть клиенты которые подключаются по OpenVPN тунелю к Офису "А" 10.0.8.0/24Политика фаервола офиса "B" заключается в том, что к нему может идти трафик только от IP адресов сети офиса "A" 192.168.1.0/24 и поменять эту политику нельзя.
Вся проблема в том что клиенты OpenVPN не могут попасть в локальную сеть офиса "B"
Маршруты у клиентов прописаны.Я знаю что решение простейшее, но реализовать не получается, сижу туплю уже неделю. Если я правильно понимаю, то надо смотреть в сторону NAT Outbound, но что-то корректные правила создать не получается. Хожу вокруг да около, но свой затуп понять не могу :(
Буду признателен за помощь и развернутый ответ. -
Решение не так уж и очевидно. Попробуйте вот что:
Создайте Virtual IP типа Other на GRE интерфейсе и задайте в нем какой-нибудь адрес не используемый в локальной сети (например 192.168.1.254/32). Затем сделайте правило в NAT Outbound:
GRE1 10.0.8.0/24 * * * 192.168.1.254 * NO
-
Скорее всего вы имели в виду, создать Virtual IP на LAN интерфейсе, т.к. на GRE вылазит ошибка.
The following input errors were detected:
The interface chosen for the VIP has no IPv4 or IPv6 address configured so it cannot be used as a parent for the VIP.
В итоге подменить IP на 192.168.1.254, получилось.
Но всплыла другая проблема.
Посредством tcpdump'a на GRE интерфейсе, выяснилось, что данные попадают в GRE туннель в не зашифрованном виде (хотя все остальные данные из LAN шифруются) и соответственно на шлюзе офиса "B" они фильтруются.
Как заставить IPSec шифровать эти данные перед отправкой в туннель? -
Покажите настройки IPSEC на pfSense
-
Прикрепил.
-
GRE over IPSec тунелю
Погодите, у вас же GRE внутри IPSec бегает ? Т.е. сперва поднимается IPSec-туннель, а внутри него уже GRE-туннель ?
Если это так, то GRE-трафик получается защищен, т.к. нах-ся внутри IPSec. -
В данной ситуации создается GRE интерфейс и все данные которые по нему идут, заворачиваются в ESP пакеты.
Возможно вы правы, правильнее было бы написать IPSec over GRE.
-
…все данные которые по нему идут, заворачиваются в ESP пакеты.
Ну, как видим, не все. По сути у вас сейчас два не вложенных друг в друга туннеля - IPSec и GRE. Через какой из них пойдет трафик определяется только системными маршрутами. Между тем, GRE-туннель вам не нужен, т. к. IPSec в туннельном режиме (вот как у вас) обеспечивает тот же функционал что и GRE + шифрование. Когда говорят "GRE over IPSec" обычно имеют ввиду GRE-туннель обернутый в IPSec-транспорт, где первый дает связность локальных сетей, а второй - защиту.
Возвращаясь к вопросу о клиентах OpenVPN, удаляйте этот виртуальный IP и его правило NAT. Удаляйте все static и policy routes, напрвляющие трафик в GRE, если таковые есть. Создавайте новую phase 2 в IPSec для подсети клиентов OpenVPN (Local Network) и там же в "In case you need NAT/BINAT on this network specify the address to be translated" делайте ей NAT в 192.168.1.254.
-
rubic - большое спасибо вам за помощь и развернутые ответы !
Понял свои ошибки и благодаря вам, более подробнее стал понимать принципы работы VPN. И заодно разобрался с правилами NAT Outbound.Вопрос решен. Еще раз Спасибо! ;)