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

    Исходящий трафик с определённого хоста лl

    Scheduled Pinned Locked Moved Russian
    22 Posts 4 Posters 8.0k 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.
    • S
      strio911
      last edited by

      Доброго времени суток!

      PfSense v.1.2.3

      Три физических интерфейса (WAN, OPT, LAN);
      Один провайдер, несколько белых статических адресов от него. (111.111.111.111/29, 111.111.111.112/29) - они же WAN и OPT соответственно;
      LAN (10.10.10.10/24) - шлюз для локалки
      Хост (10.10.10.11/24)

      Есть такая задача (проблема):

      Трафик С этого хоста должен идти с интерфейса OPT (т.е. с адреса 111.111.111.112) и это принципиально.
      На него как бы проблем нет, а вот наоборот… уже мозг щиплет. Кто в теме подскажите пожалуйста каким
      простым или сложным способом можно это сделать!?...

      PfSense.png
      PfSense.png_thumb

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

        @strio911:

        Доброго времени суток!

        PfSense v.1.2.3

        Три физических интерфейса (WAN, OPT, LAN);
        Один провайдер, несколько белых статических адресов от него. (111.111.111.111/29, 111.111.111.112/29) - они же WAN и OPT соответственно;
        LAN (10.10.10.10/24) - шлюз для локалки
        Хост (10.10.10.11/24)

        Есть такая задача (проблема):

        Трафик С этого хоста должен идти с интерфейса OPT (т.е. с адреса 111.111.111.112) и это принципиально.
        На него как бы проблем нет, а вот наоборот… уже мозг щиплет. Кто в теме подскажите пожалуйста каким
        простым или сложным способом можно это сделать!?...

        Попробуйте создать в файевроле для этого хоста правило (для нужных сервисов) и указать шлюз для него не дефолт, а интерфейс opt1.

        1 Reply Last reply Reply Quote 0
        • S
          strio911
          last edited by

          Попробуйте создать в файевроле для этого хоста правило (для нужных сервисов)

          Правилами через ВЕБ-морду или руками? И какое правило на PF, 1:1 или Outbound?
          Я бы если честно вообще создал бы статический маршрут с указанием что если source 10.10.10.11 то ходить тебе через этот интерфейс, но увы PfSnse штатно, то есть, чтобы потом можно было конфиг сохранить и восстановиться с него, так не умеет  :(

          и указать шлюз для него не дефолт, а интерфейс opt1.

          Это для адреса 10.10.10.11 указать шлюз 111.111.111.112? Но так работать не будет.  ???

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

            @strio911:

            Попробуйте создать в файевроле для этого хоста правило (для нужных сервисов)

            Правилами через ВЕБ-морду или руками? И какое правило на PF, 1:1 или Outbound?
            Я бы если честно вообще создал бы статический маршрут с указанием что если source 10.10.10.11 то ходить тебе через этот интерфейс, но увы PfSnse штатно, то есть, чтобы потом можно было конфиг сохранить и восстановиться с него, так не умеет  :(

            и указать шлюз для него не дефолт, а интерфейс opt1.

            Это для адреса 10.10.10.11 указать шлюз 111.111.111.112? Но так работать не будет.  ???

            В Firewall rules на ЛАН создаем правило, разрешающее хосту ходить в инет а в правиле гейтвеем указываем ип ОПТа. Это называется PolicyBased routing - то есть правило с маршрутом. Надеюсь про порядок правил помним.

            SquidGuardDoc EN  RU Tutorial
            Localization ru_PFSense

            1 Reply Last reply Reply Quote 0
            • S
              strio911
              last edited by

              В Firewall rules на ЛАН создаем правило, разрешающее хосту ходить в инет. Надеюсь про порядок правил помним.

              Помним ;D

              в правиле гейтвеем указываем ип ОПТа. Это называется PolicyBased routing - то есть правило с маршрутом.

              А вот здесь как выбрать именно интерфейс с которого будем ходить? У меня оба внешних IP из одной подсети и естественно у них один и тот-же шлюз (111.111.111.110/29)
              и при создании этого самого правила в выпадающем списке выдаёт просто мне default, 111.111.111.110, 111.111.111.110, т.е. по шлюзу для каждого интерфейса, а они одинаковые..

              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
                • D
                  DasTieRR
                  last edited by

                  @strio911:

                  В Firewall rules на ЛАН создаем правило, разрешающее хосту ходить в инет. Надеюсь про порядок правил помним.

                  Помним ;D

                  в правиле гейтвеем указываем ип ОПТа. Это называется PolicyBased routing - то есть правило с маршрутом.

                  А вот здесь как выбрать именно интерфейс с которого будем ходить? У меня оба внешних IP из одной подсети и естественно у них один и тот-же шлюз (111.111.111.110/29)
                  и при создании этого самого правила в выпадающем списке выдаёт просто мне default, 111.111.111.110, 111.111.111.110, т.е. для по шлюзу для каждого интерфейса, а они одинаковые..

                  Вот так, выделенное жирным шрифтом и показывает? Поставьте один из них, вытащите один из кабелей wan или opt1 и будет понятно, какой шлюз использует нужный комп.

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

                    @DasTieRR:

                    @strio911:

                    В Firewall rules на ЛАН создаем правило, разрешающее хосту ходить в инет. Надеюсь про порядок правил помним.

                    Помним ;D

                    в правиле гейтвеем указываем ип ОПТа. Это называется PolicyBased routing - то есть правило с маршрутом.

                    А вот здесь как выбрать именно интерфейс с которого будем ходить? У меня оба внешних IP из одной подсети и естественно у них один и тот-же шлюз (111.111.111.110/29)
                    и при создании этого самого правила в выпадающем списке выдаёт просто мне default, 111.111.111.110, 111.111.111.110, т.е. для по шлюзу для каждого интерфейса, а они одинаковые..

                    Вот так, выделенное жирным шрифтом и показывает? Поставьте один из них, вытащите один из кабелей wan или opt1 и будет понятно, какой шлюз использует нужный комп.

                    Лучше поставить и правила посмотреть. Если там на интерфейсах все сделано - то должно работать.
                    Правила в /tmp/rules.debug

                    ПС У меня гейтвей ОПТа последним стоит

                    SquidGuardDoc EN  RU Tutorial
                    Localization ru_PFSense

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

                      Люблю подстраховаться… с кабелем оно наверняка :)))

                      1 Reply Last reply Reply Quote 0
                      • S
                        strio911
                        last edited by

                        ПС У меня гейтвей ОПТа последним стоит

                        У меня тоже.

                        Создал правило: написал для проверки, что если адрес соурса 10.10.10.11 и порт назначения 80, то ходить через указанный шлюз (OPT)
                        cat /tmp/rules.debug

                        User-defined rules follow

                        pass in quick on $lan proto tcp from {  10.10.10.11 }  to <vpns>port = 80 keep state  label "NEGATE_ROUTE: Negate policy route for local network(s)"
                        pass in quick on $lan  route-to ( xl0 111.111.111.110 ) proto tcp from {  10.10.10.11 } to any port = 80 keep state  label "USER_RULE"
                        pass in quick on $lan from 10.10.10.0/24 to any keep state  label "USER_RULE: Default LAN -> any"

                        зашёл для проверки на getip.ру. Как и ожидал показывает IP моего ван интерфейса.

                        На всякий случай указал и другой (такой же шлюз в выпадающем меню) эффект такой-же.</vpns>

                        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
                          • D
                            DasTieRR
                            last edited by

                            @strio911:

                            ПС У меня гейтвей ОПТа последним стоит

                            У меня тоже.

                            Создал правило: написал для проверки, что если адрес соурса 10.10.10.11 и порт назначения 80, то ходить через указанный шлюз (OPT)
                            cat /tmp/rules.debug

                            User-defined rules follow

                            pass in quick on $lan proto tcp from {  10.10.10.11 }  to <vpns>port = 80 keep state  label "NEGATE_ROUTE: Negate policy route for local network(s)"
                            pass in quick on $lan  route-to ( xl0 111.111.111.110 ) proto tcp from {  10.10.10.11 } to any port = 80 keep state  label "USER_RULE"
                            pass in quick on $lan from 10.10.10.0/24 to any keep state  label "USER_RULE: Default LAN -> any"

                            зашёл для проверки на getip.ру. Как и ожидал показывает IP моего ван интерфейса.

                            На всякий случай указал и другой (такой же шлюз в выпадающем меню) эффект такой-же.</vpns>

                            Для ICMP тоже сделай правило.
                            я не думаю, что он через 80 порт IP узнаёт (могу ошибаться)

                            1 Reply Last reply Reply Quote 0
                            • S
                              strio911
                              last edited by

                              А кабель выдернуть ?

                              Да я попробовал бы =), только во первых: не пойму зачем, во вторых я сейчас не рядом с файрволом, я по ВПН.
                              А просто OPT отключить через вебморду не пойдёт?

                              Для ICMP тоже сделай правило.
                              не думаю, что он через 80 порт IP узнаёт (могу ошибаться)

                              Не поможет.

                              Вобщем поступил так:

                              в файле /tmp/rules.debug

                              нашёл строку в которой создано "неправильное" правило

                              pass in quick on $lan  route-to ( xl0 111.111.111.110 ) proto tcp from {  10.10.10.11 } to any port = 80 keep state  label "USER_RULE"

                              • жирным это WAN;
                                Заменил название интерфейса на нужное мне (2-ой WAN)
                                pass in quick on $lan  route-to ( rl0 111.111.111.110 ) proto tcp from {  10.10.10.11 } to any port = 80 keep state  label "USER_RULE"

                              после чего сделал pfctl -f /tmp/rules.debug …

                              И всё заработало  :D

                              Но теперь другая проблема, как сделать чтобы это правило на постоянку "прилипло". ведь после перезагрузки файл с правилами генерируется заново из XML-файла конфигурации.
                              В XML пробывал посмотреть, но там описание этого правила имеет несколько другой вид:
                              <rule><type>pass</type>
                              <interface>lan</interface>
                              <max-src-nodes><max-src-states><statetimeout><statetype>keep state</statetype>
                              <os><protocol>tcp</protocol>
                              <source>

                              <address>10.10.10.11</address>

                              <destination><any><port>80</port></any></destination>
                              <descr><gateway>111.111.111.110</gateway></descr></os></statetimeout></max-src-states></max-src-nodes></rule>

                              Как в этой секции, отвечающей за генерацию нужно мне правила, указать, что интерфейс для выхода rl0 ???
                              Добавление <interface>opt1</interface> перед <gateway>111.111.111.110</gateway> не помогает (при парсинге XML выдается ошибка)

                              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
                                • E
                                  Eugene
                                  last edited by

                                  Возможно тупой вопрос, но - если линк от провайдера один, то зачем два интерфейса WAN и OPT-WAN? Почему бы не сделать один WAN с виртуальными адресами? а там уж рути/нать трафик как хочешь… Чего-то я вас не догоняю сутра, братцы -(

                                  http://ru.doc.pfsense.org

                                  1 Reply Last reply Reply Quote 0
                                  • E
                                    Eugene
                                    last edited by

                                    Да… и Евгений перешёл на другую работу, абсолютно никак несвязанную с pfSense, посему наверное скоро скажет проекту "до свидания" -(

                                    http://ru.doc.pfsense.org

                                    1 Reply Last reply Reply Quote 0
                                    • S
                                      strio911
                                      last edited by

                                      один WAN с виртуальными адресами?

                                      А чем это поможет? Ведь у меня от этого у меня не появиться возможность на основе PolicyBased routing перенаправлять исходящий трафик через нужный мне интерфейс.

                                      1 Reply Last reply Reply Quote 0
                                      • E
                                        Eugene
                                        last edited by

                                        @strio911:

                                        один WAN с виртуальными адресами?

                                        А чем это поможет? Ведь у меня от этого у меня не появиться возможность на основе PolicyBased routing перенаправлять исходящий трафик через нужный мне интерфейс.

                                        Если задача - перенаправлять через нужный интерфейс, то - нет, не появится, т.к. этот интерфейс перестанет существовать. Если задача - перенаправлять через/с нужный IP, то всё решится.
                                        Если не секрет - зачем через отдельный интерфейс если всё равно к одному провайдерскому шлюзу?

                                        http://ru.doc.pfsense.org

                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          strio911
                                          last edited by

                                          Если задача - перенаправлять через/с нужный IP, то всё решится.

                                          Да в принципе на данный момент именно такая задача. Но как это сделать что-то не приложу ума как.

                                          зачем через отдельный интерфейс если всё равно к одному провайдерскому шлюзу?

                                          Просто так исторически сложилось (были/осталась задумки).

                                          1 Reply Last reply Reply Quote 0
                                          • E
                                            Eugene
                                            last edited by

                                            @strio911:

                                            Если задача - перенаправлять через/с нужный IP, то всё решится.

                                            Да в принципе на данный момент именно такая задача. Но как это сделать что-то не приложу ума как.

                                            Один WAN c 111.111.111.111/29.
                                            На WAN создаёшь Proxy-ARP виртуальный IP 111.111.111.112.
                                            Далее трафик с хоста 10.10.10.11/32 в OutboundNAT делаешь натить используя 111.111.111.112, а трафик с 10.10.10.0/24  - используя 111.111.111.111 (порядок правил должен быть именно такой). Всё собственно.

                                            http://ru.doc.pfsense.org

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