Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    OpenVPN and NAT Outbound

    Scheduled Pinned Locked Moved Russian
    9 Posts 3 Posters 1.6k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      Pritorius
      last edited by

      Здравствуйте господа.
      Прошу помощи в решении одной проблемы.

      Офис "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, но что-то корректные правила создать не получается. Хожу вокруг да около, но свой затуп понять не могу  :(
      Буду признателен за помощь и развернутый ответ.

      1 Reply Last reply Reply Quote 0
      • R
        rubic
        last edited by

        Решение не так уж и очевидно. Попробуйте вот что:

        Создайте Virtual IP типа Other на GRE интерфейсе и задайте в нем какой-нибудь адрес не используемый в локальной сети (например 192.168.1.254/32). Затем сделайте правило в NAT Outbound:

        GRE1   	10.0.8.0/24 	* 	* 	* 	192.168.1.254 	* 	NO
        
        1 Reply Last reply Reply Quote 0
        • P
          Pritorius
          last edited by

          Скорее всего вы имели в виду, создать 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 шифровать эти данные перед отправкой в туннель?

          1 Reply Last reply Reply Quote 0
          • R
            rubic
            last edited by

            Покажите настройки IPSEC на pfSense

            1 Reply Last reply Reply Quote 0
            • P
              Pritorius
              last edited by

              Прикрепил.

              pfsensegre.jpg
              pfsensegre.jpg_thumb
              pfSenseipsec.jpg
              pfSenseipsec.jpg_thumb
              pfSenseipsec1.jpg
              pfSenseipsec1.jpg_thumb

              1 Reply Last reply Reply Quote 0
              • werterW
                werter
                last edited by

                GRE over IPSec тунелю

                Погодите, у вас же GRE внутри IPSec бегает ? Т.е. сперва поднимается IPSec-туннель, а внутри него уже GRE-туннель ?
                Если это так, то GRE-трафик получается защищен, т.к. нах-ся внутри IPSec.

                1 Reply Last reply Reply Quote 0
                • P
                  Pritorius
                  last edited by

                  В данной ситуации создается GRE интерфейс и все данные которые по нему идут, заворачиваются в ESP пакеты.
                  Возможно вы правы, правильнее было бы написать IPSec over GRE.

                  pfsenseint.jpg_thumb
                  pfsenseint.jpg

                  1 Reply Last reply Reply Quote 0
                  • R
                    rubic
                    last edited by

                    @Pritorius:

                    …все данные которые по нему идут, заворачиваются в 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.

                    1 Reply Last reply Reply Quote 0
                    • P
                      Pritorius
                      last edited by

                      rubic - большое спасибо вам за помощь и развернутые ответы !
                      Понял свои ошибки и благодаря вам, более подробнее стал понимать принципы работы VPN. И заодно разобрался с правилами NAT Outbound.

                      Вопрос решен. Еще раз Спасибо!  ;)

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post
                      Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.