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

    PfSense значения переменных

    Scheduled Pinned Locked Moved Russian
    11 Posts 4 Posters 1.1k 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.
    • L
      lucas1
      last edited by

      Добрый день.

      Как посмотреть текущие значения встроенных переменных, например LAN net и LAN address?

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

        Может cat /tmp/rules.debug | grep -i lan ?

        1 Reply Last reply Reply Quote 0
        • V
          vladimirlind @lucas1
          last edited by

          @lucas1 said in PfSense значения переменных:

          встроенных переменных, например LAN net и LAN address?

          А разве они встроенные? Значения этих переменных pf-ом на лету берутся с интерфейсов и в актуальных правилах /tmp/rules.debug уже значения фигурируют. Имхо.

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

            Как вариант поискать в .php-файлах пф.

            1 Reply Last reply Reply Quote 0
            • L
              lucas1 @vladimirlind
              last edited by

              @vladimirlind
              Ну а какие это переменные, если не встроенные? Эти переменные никто не создает.
              Например, Alias можно просмотреть через Diagnosics\Tables.

              При создании определенного правила для LAN интерфейса c 2 IP Alias правило с LAN address не работало именно для IP Alias, но работало для основного адреса.
              Поэтому и возник вопрос.

              V 1 Reply Last reply Reply Quote 0
              • V
                vladimirlind @lucas1
                last edited by

                @lucas1 said in PfSense значения переменных:

                Alias можно просмотреть через Diagnosics\Tables.

                Эти алиасы - просто последовательность данных - IP, URL, hostnames, обозначенных одним словом для удобства использования в системе. IP Alias - это тип виртуального интерфейса. Слово Alias там и там не должно сбивать с толку - это разные фичи.

                Какой айпи эффективно применился в правиле надо смотреть в /tmp/rules.debug

                L 1 Reply Last reply Reply Quote 0
                • L
                  lucas1 @vladimirlind
                  last edited by

                  @vladimirlind
                  Я и написал про Firewall\Aliases для примера как посмотреть значение переменной, созданной пользователем.
                  Интересует, например это: LAN adress = основной + 2 IP Alias?

                  Посмотрел в /tmp/rules.debug - внешне текстовый вариант правил в стиле Packet Filter.
                  И еще вопрос.
                  Создал 2 правила: 1. для TCP ALL 2. для TCP HTTP.
                  Поочереди поместил некий компьютер (IP) в эти правила.
                  Браузеры с правилом TCP ALL работают заметно быстрее.

                  Непонятно почему.

                  K 1 Reply Last reply Reply Quote 0
                  • V
                    vladimirlind
                    last edited by

                    @lucas1 said in PfSense значения переменных:

                    LAN adress = основной + 2 IP Alias?

                    LAN adress - это только IP на самом LAN интерфейсе. Для IP Alias надо отдельные правила создавать.

                    @lucas1 said in PfSense значения переменных:

                    Браузеры с правилом TCP ALL работают заметно быстрее.

                    Это странно. Может, redirectы не могут сработать к https. Сделайте еще правило для https.
                    надо посмотреть на правила

                    L 1 Reply Last reply Reply Quote 0
                    • K
                      Konstanti @lucas1
                      last edited by Konstanti

                      @lucas1 Здр
                      эти переменные можно узнать , если написать свой PHP скрипт
                      Lan address - вычисляется функцией get_interface_ip
                      Lan net - вычисляется через маску подсети функцией get_interface_subnet

                      Это переменные , которые создаются системой и хранятся в многомерном массиве
                      Например , для получения ip адреса используется такой код

                      if (is_array($config['interfaces'][$interface]) &&
                      	    is_ipaddr($config['interfaces'][$interface]['ipaddr'])) {
                      		return ($config['interfaces'][$interface]['ipaddr']);
                      

                      Для маски подсети вот такой

                      if (is_array($config['interfaces'][$interface]) &&
                      		!empty($config['interfaces'][$interface]['subnet'])) {
                      		return ($config['interfaces'][$interface]['subnet']);
                      	}
                      

                      Поэтому когда создаются правила в файле rules.debug , запускается скрипт , который вместо LAN NET и LAN ADDRESS сразу вычисляет и подставляет нужные значения

                      1 Reply Last reply Reply Quote 0
                      • L
                        lucas1 @vladimirlind
                        last edited by

                        @vladimirlind
                        Правила простые.

                        1. TCP ALL source group1 (Alias hosts) ports * destination * ports *
                        2. TCP HTTP source LAN net ports * destination * ports HTTP(80) встроенный
                        3. TCP HTTP(s) source LAN net ports * destination * ports HTTP_https (alias ports)

                        Все 3 правила в одной очереди (queue). Очередность правил такая же.
                        group1 - список определенных IP.
                        alias ports = 80+443

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

                          @lucas1
                          Попробовал. Разницу не заметил.

                          Правила выполняются сверху-вниз до 1-го совпадения. И все, что не разрешено явно - запрещено.

                          Если IP и в Алиасе и в LAN net, то сработает то, что стоит выше.
                          Грубо говоря , если заходите на сайт по http , а на сайте висят баннеры с ссылками на https, то пф разрешит http и полезет дальше проверять можно ли еще и httpS.
                          Само собой, что правило с ALL сработает сразу же и оно "легче" для пф, а правило "Только http и httpS" породит лишние итерации проверки.

                          Но чтобы на глаз это было видно - это "чудо" какое-то.

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