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

    OpenVPN и раздача прав пользователям.

    Scheduled Pinned Locked Moved Russian
    14 Posts 3 Posters 5.8k 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.
    • A
      Ave Alex
      last edited by

      Всем доброго.
      В организации стоит pfsense, который роутит интернет от двух провайдеров в три внутренние сети.
      Нужно:
      1. связать сеть удалённого офиса (192.168.3.0/24) с одной из сетей (тут всё вроде ясно pfsense - OpenVPN - push "route 192.168.1.0 255.255.255.0"; route 192.168.3.0 255.255.255.0 - уже настроено)
      2. Некоторым пользователям предоставить доступ к оборудованию в сети 192.168.2.0/24
      3. Ещё более некоторым пользователям предоставить доступ к почтовому серверу 192.168.1.2, но запретить доступ в сети 192.168.1.0/24 и 192.168.3.0/24
      4. Обеспечить доступ к оборудованию в сети 192.168.4.0/24
      5. никто не в курсе, OpenVPN  на айфонах поднимается? (это свеженькое, если честно - ещё на эту тему не гуглил)

      После некоторых раздумий решено следующее…

      • для пользователей пунктов 2 и 3 завести пользователей и прописать в "Client Specific Overrides" "ifconfig 10.10.40.XXX; route........" кому куда нужно.
      • настроить правила трафика, разрешающие трафик с адресов розданных в предыдущем пункте.

      Гложут сомнения, на счёт совместимости с п.1 требований.

      Я правильно понимаю, что если будет обнаружен пользователь с именем, совпадающем с именем в сертификате клиента то будет запрошен пароль этого пользователя, а если будет узнан только сертификат, то запрос пароля производиться не будет?

      Ну и как кто видит правила, например, разрешающее роутинг трафика из сети 192.168.3.0/24 в сеть 192.168.1/24 через VPN клиента с адресом 10.10.40.6/32
      и правило, запрещающее клиенту с адресом 10.10.40.10 ходить в сеть 192.168.1.0/24

      Уточняющие вопросы приветствуются - мож сам лучше пойму чего хочу. И смогу объяснить заказчику чего он хочет :)

      1 Reply Last reply Reply Quote 0
      • A
        Ave Alex
        last edited by

        Ага.
        Ну, уточнения… нужно таки поднимать два севера на разных портах - для организации канала между офисами Peer-to-Peer (SSL/TLS) или Remote access (SSL/TLS) (кстати, где можно прочесть в чём разница?), а для доступа прочих - Remote Access (SSL/TLS+User auth).

        С чем пока не разобрался - если в настройках клиента указать push ifconfig и два адреса то один будет назначен клиенту, а второй будет алиасом для виртуального интерфейса ovpncX. Но если нарисовать правило, куда можно, куда нельзя ходить с этих адресов ничего не получится. Я пытался сделать assign интерфейса - тоже ничего хорошего не получается. Что я делаю не так?

        1 Reply Last reply Reply Quote 0
        • A
          Ave Alex
          last edited by

          openvpn[57795]: ERROR: FreeBSD route add command failed: external program exited with error status: 1

          С какого-то момента на сервере завелась такая вот бяда и как с ней бороться я не знаю :(
          push "route 192.168.1.0 255.255.255.0"; route 192.168.4.0 255.255.255.0; в advanced configuration сервера.

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

            @Ave:

            openvpn[57795]: ERROR: FreeBSD route add command failed: external program exited with error status: 1

            С какого-то момента на сервере завелась такая вот бяда и как с ней бороться я не знаю :(
            push "route 192.168.1.0 255.255.255.0"; route 192.168.4.0 255.255.255.0; в advanced configuration сервера.

            http://forum.pfsense.org/index.php/topic,35815.0.html

            1 Reply Last reply Reply Quote 0
            • A
              Ave Alex
              last edited by

              Я добился устойчивой установки VPN соединений. Со шлюзов (то бишь машин с pfSense) можно просматривать удалённые сети. Броадкасты и мультикасты вполне слышны в разных частях сети (побочный эффект правил "разрешить весь траффик из сети …." на локльном интерфейсе). А вот "правильные" пакеты подхватываются правилом NAT  и роутятся уже с внешнего интерфейса.

              В процессе чтения документации к pf возник вопрос: pf обрабатывает правила не в порядке следования, а по правилу максимального соответствия. Как заставить его не маскарадить пакеты между сетками?

              Кстати, после применения правил итоговый конфиг pf попадает в файл /tmp/config.debug (там, конечно есть немного лишних переменных - их php скрипт вытрясает, но вполне понятно что к чему)
              Но от попыток разобраться какое ж всё-таки правило сработает становится малость грустно.

              1 Reply Last reply Reply Quote 0
              • A
                Ave Alex
                last edited by

                Всем доброго.
                Щастье почти наступило - на стороне VPN клиента сделал assign интерфейса openvpn и добавил правило outbond NAT:
                Do not NAT - не выбрано (хотя, по идее оно как раз мне и надо!!!)
                Interface - OpenVPN
                Protocol - any
                Source - 192.168.X.0/24 - подсеть клиента
                Destination - 192.168.1.0/24 - подсеть сервера
                Translation - interface address

                Из клиентской сети стало можно свободно ходить в сеть головной организации. Но в логах отображается адрес виртуального шлюза (в данном случае 10.10.40.X - адрес виртуального интерфейса OpenVPN), а хотелось бы видеть клиента. Помогите сформулировать правило для NAT…

                1 Reply Last reply Reply Quote 0
                • D
                  dvserg
                  last edited by

                  Вопрос - вы хотите видеть всю подсеть клиента?
                  Тогда NAT здесь не подойдет. Необходимо делать все роутингом.
                  При этом местный роутер должен быть шлюзом для всех компьютеров офиса.

                  SquidGuardDoc EN  RU Tutorial
                  Localization ru_PFSense

                  1 Reply Last reply Reply Quote 0
                  • A
                    Ave Alex
                    last edited by

                    Угу… все маршруты прописались правильно...
                    И со шлюза всё правильно отправляется.
                    А вот из подсети - первым срабатывает NAT. Отправляет пакет на внешний интерфейс и усё, роуты даже не задействуются.
                    Попробовал в правиле NAT LAN-to-WAN исправить назначение с any на "не подсеть 192.168.1.0/24" - не работает.

                    1 Reply Last reply Reply Quote 0
                    • D
                      dvserg
                      last edited by

                      NAT должен прописываться на WAN интерфейсе, а правила роутинга на LAN.

                      SquidGuardDoc EN  RU Tutorial
                      Localization ru_PFSense

                      1 Reply Last reply Reply Quote 0
                      • A
                        Ave Alex
                        last edited by

                        Можно на яблоках… уже просто ничего не могу придумать и сижу перебираю варианты.
                        две сети: 192.168.1.0/24 (со стороны сервера) и 192.168.4.0/24 (со стороны клиента)
                        Между WAN интерфейсами проброшен туннель 10.10.40.1<-->10.10.40.2 cо стороны сервера и 10.10.40.10<-->10.10.40.9 со стороны клиента.
                        Маршруты:
                        на сервере -
                        10.10.40.0/24 10.10.40.2 UGS 0 233482 1500 ovpns2
                        10.10.40.1 link#11 UHS 0 0 16384 lo0
                        10.10.40.2 link#11 UH 0 0 1500 ovpns2
                        192.168.1.0/24 link#4 U 0 228190654 1500 fxp0
                        192.168.4.0/24 10.10.40.2 UGS 0 19 1500 ovpns2

                        На клиенте
                        10.10.40.1/32 10.10.40.5 UGS 0 0 1500 ovpnc1
                        10.10.40.9 link#9 UH 0 0 1500 ovpnc1
                        10.10.40.10 link#9 UHS 0 0 16384 lo0
                        127.0.0.1 link#4 UH 0 67 16384 lo0
                        192.168.1.0/24 10.10.40.9 UGS 0 6 1500 ovpnc1
                        192.168.4.0/24 link#1 U 0 241004 1500 sis0
                        192.168.4.1 link#1 UHS 0 0 16384 lo0

                        На сервере уже есть один VPN клиент, используется для удалённых сотрудников, поэтому интерфейс ovpns2.

                        После установления соединения с клиентского шлюза можно бродить по сети 192.168.1.0/24
                        Что нужно прописать в правилах клиента, чтоб народ оттуда мог выбраться только в сеть головного офиса?

                        1 Reply Last reply Reply Quote 0
                        • A
                          Ave Alex
                          last edited by

                          Вот не роутит он и всё тут.
                          Как определить, какой из шлюзов гасит пакеты - они без NAT не отправляются, или не принимаются? Стоят галки скиывать в лог на всех правилах с обеих сторон, стоит галка кадать в лог пакеты отброшенные дефолтовым правилом. И в логах ничего с обеих сторон.

                          1 Reply Last reply Reply Quote 0
                          • D
                            dvserg
                            last edited by

                            Я, к сожалению, не могу понять Вашу схему по описанию.

                            SquidGuardDoc EN  RU Tutorial
                            Localization ru_PFSense

                            1 Reply Last reply Reply Quote 0
                            • A
                              Ave Alex
                              last edited by

                              (192.168.4.0/24 удалённая)<–>192.168.4.1 LAN (pfSense) 10.10.40.X ovpnc1

                              (192.168.1.0/24 сеть офиса)<-->192.168.1.43 LAN (psSense) 10.10.40.1 ovpns2

                              Я попробовал запустить на клиенте и сервере tcpdump -i ovpnXX -vv

                              Без преобразования адресов на сервере не ловится ничего. На клиенте пакеты вида localhost.(случайный порт) > localhost.(порт на сервере)... Может, сервер удаляет пакеты по приходу? хотя, вроде правила "пропускать все пакеты" на закладке OpenVPN выставлены.

                              1 Reply Last reply Reply Quote 0
                              • A
                                Ave Alex
                                last edited by

                                Ситуация немного проясняется.
                                Если сгребать пакеты со внешнего интерфейса сервера, то он получает положенное количество пакетов (проверено пингом - сколько пакетов отправлено, столько сервер и получил).
                                Далее, как я понимаю, из-за того, что это уже второй VPN-сервер на шлюзе на него не распространяются правила, определённые на закладке OpenVPN.
                                Я попытался сделать assign интерфейса на сервере - у меня тут же отвалился клиент, который подключен к другому VPN-серверу.
                                Немного смущает, что в логах эти пакеты не отображаются как отброшенные.
                                Как побороть такое?

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