PfSense значения переменных
-
Добрый день.
Как посмотреть текущие значения встроенных переменных, например LAN net и LAN address?
-
Может cat /tmp/rules.debug | grep -i lan ?
-
@lucas1 said in PfSense значения переменных:
встроенных переменных, например LAN net и LAN address?
А разве они встроенные? Значения этих переменных pf-ом на лету берутся с интерфейсов и в актуальных правилах /tmp/rules.debug уже значения фигурируют. Имхо.
-
Как вариант поискать в .php-файлах пф.
-
@vladimirlind
Ну а какие это переменные, если не встроенные? Эти переменные никто не создает.
Например, Alias можно просмотреть через Diagnosics\Tables.При создании определенного правила для LAN интерфейса c 2 IP Alias правило с LAN address не работало именно для IP Alias, но работало для основного адреса.
Поэтому и возник вопрос. -
@lucas1 said in PfSense значения переменных:
Alias можно просмотреть через Diagnosics\Tables.
Эти алиасы - просто последовательность данных - IP, URL, hostnames, обозначенных одним словом для удобства использования в системе. IP Alias - это тип виртуального интерфейса. Слово Alias там и там не должно сбивать с толку - это разные фичи.
Какой айпи эффективно применился в правиле надо смотреть в /tmp/rules.debug
-
@vladimirlind
Я и написал про Firewall\Aliases для примера как посмотреть значение переменной, созданной пользователем.
Интересует, например это: LAN adress = основной + 2 IP Alias?Посмотрел в /tmp/rules.debug - внешне текстовый вариант правил в стиле Packet Filter.
И еще вопрос.
Создал 2 правила: 1. для TCP ALL 2. для TCP HTTP.
Поочереди поместил некий компьютер (IP) в эти правила.
Браузеры с правилом TCP ALL работают заметно быстрее.Непонятно почему.
-
@lucas1 said in PfSense значения переменных:
LAN adress = основной + 2 IP Alias?
LAN adress - это только IP на самом LAN интерфейсе. Для IP Alias надо отдельные правила создавать.
@lucas1 said in PfSense значения переменных:
Браузеры с правилом TCP ALL работают заметно быстрее.
Это странно. Может, redirectы не могут сработать к https. Сделайте еще правило для https.
надо посмотреть на правила -
@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 сразу вычисляет и подставляет нужные значения
-
@vladimirlind
Правила простые.- TCP ALL source group1 (Alias hosts) ports * destination * ports *
- TCP HTTP source LAN net ports * destination * ports HTTP(80) встроенный
- TCP HTTP(s) source LAN net ports * destination * ports HTTP_https (alias ports)
Все 3 правила в одной очереди (queue). Очередность правил такая же.
group1 - список определенных IP.
alias ports = 80+443 -
@lucas1
Попробовал. Разницу не заметил.Правила выполняются сверху-вниз до 1-го совпадения. И все, что не разрешено явно - запрещено.
Если IP и в Алиасе и в LAN net, то сработает то, что стоит выше.
Грубо говоря , если заходите на сайт по http , а на сайте висят баннеры с ссылками на https, то пф разрешит http и полезет дальше проверять можно ли еще и httpS.
Само собой, что правило с ALL сработает сразу же и оно "легче" для пф, а правило "Только http и httpS" породит лишние итерации проверки.Но чтобы на глаз это было видно - это "чудо" какое-то.