Alias тип host(s)
-
@Konstanti
Я про вчерашнее.
Хотел сказать, что если тип alias (table) Url table (IPs) , то можно загрузить связанный с таблицей файл в DiagnosticsTables нажать Update. И с содержимым таблицы все нормально.
А в случае если alias (table) тип host(s) не связан с внешним файлом , то кроме указанного вами вчера способа редактирования содержимого таблицы, в текущем ruleset ничего не меняется.
Т.е. получается PfSense при обновлении всегда удаляет содержимое всех таблиц и создает их заново, но не всегда с правильным содержимым.
Или создал тестовый alias IPs, нажал Empty и он до сих пор пустой.
Второй вопрос связан с первым. Status \ Filter Reload, pfctl -f(наверно врядли) или как еще? -
@lucas1
Поясните пожалуйста на примере , что значит "не всегда с правильным содержимым"
И второй вопрос - зачем лишний раз перезагружать правила (при условии , что с содержимым таблиц можно работать динамически) ? -
Добрый
@lucas1Что-то похожее было и у меня.
Накостылил так:- Установил пакет Cron
- Добавил в Cron строку:
*/5 * * * * root /usr/bin/killall -9 filterdns ; /bin/sleep 5 ; /usr/local/sbin/filterdns -p /var/run/filterdns.pid -i 300 -c /var/etc/filterdns.conf -d 1
Зы. С NTP тоже иногда что-то нехорошее происходит. Добавил тамже в Cron-е:
*/15 * * * * root /usr/bin/killall -9 ntpd ; /bin/sleep 5 ; /usr/local/sbin/ntpd -g -c /var/etc/ntpd.conf -p /var/run/ntpd.pid -
@Konstanti
Так я описал ситуацию в первом сообщении темы.
Если смотреть сам Alias, то в нем 10 dns-имен и ip-адресов.
Если смотреть Diagnostics\Tables Alias - то в таблице 5 записей. И в результате на одном из серверов не было интернета (его ip отсутствовал в самой таблице). Но до этого естественно был. И был Интернет.
Ваш совет pfctl -t имя_таблицы -T add ip_адрес помог - 1/1 addresses added.
Но причина в чем?
По второму вопросу. как reload Pfsense ruleset и всего остального без перезагрузки устройства. -
Попробуйте схему с Кроном. У меня была ситуация подобная вашей.
Потому как "pfctl -t имя_таблицы -T add ip_адрес" поможет только ЕДИНОЖДЫ - при добавлении адреса в Алиас. Если ip хоста из Алиаса изменится - помжет только ручное передергивание dns resolver-а. Или схема с Кроном. Пробуйте.
Зы. В настройках пф указано передергивание dns resolver каЖные 5 минут для разрешения адресов в Алиасах. Но, видимо, оно как-то некорректно отрабатывает (
-
@lucas1
попробуйте так/usr/local/sbin/pfSctl -c 'filter reload'
в результате в логах должна появиться вот такая запись
Dec 27 17:24:39 check_reload_status Reloading filter -
@werter
Речь не о dns resolver. Добавление ip-адреса в Alias то-же не работает.
создал тестовый alias IPs, нажал Empty и он до сих пор пустой - дополнительный вопрос.
/var/etc/filterdns.conf - что за файл? -
@Konstanti
в Status\System Logs\System\General? -
@Konstanti
команда выполнилась. Но содержимое таблицы не изменилось. -
@lucas1
А почему содержимое таблицы должно было измениться ???
В таблицу попадает то , что в PF подают на вход. Дали 5 ip , он добавил 5, дали 10 , он добавит 10 .
Посмотрите файл
/var/tmp/rules.debug
и увидите то содержимое таблицы, которое получает на входе PF.По-моему, тут проблема не в PF. У меня лично есть подозрение , что где-то скрипт "ломается" .
Вы же не показываете "живой пример" проблемы ( если не хотите тут , напишите в личку).
Не видя настроек алиаса сложно что-либо говорить -
@Konstanti
Так меня интересует как раз содержимое таблицы на основе содержимого созданного/измененного Alias. Возможно alias действительно "сломался", когда я добавил в него как-бы вложенный alias:
был список IP и DNS имен. Я добавил в этот alias другой alias из трех DNS-имен.
Но сейчас я все вернул назад.
И есть проблема и по другому alias всего из 2 IP записей.
И это есть - создал тестовый alias IPs, нажал Empty и он до сих пор пустой.
Тогда вопрос в том как изменить /var/tmp/rules.debug.
ну не весь и не вручную. -
@lucas1
Никак. Это файл , который создается самим PFSense , каждый раз когда перезагружаются правила , и затем следует перезапуск PF.
Если некорректно создаются данные для этого файла , это значит , что или PFSense допускает ошибку при обработке алиаса , или что-то Вы неверно сделали.
Повторюсь , не видя алиаса и результатов работы PFSense ( куска файла rules.debug) сложно что-либо советовать -
@Konstanti
Взял перезагрузил, все нормально. -
@lucas1
Та не.
На примере тестового Alias: Tesing тип Host(s).
server1.domain.com, server2.domain.com, X.Y.12.5Добавил третье значение X.Y.12.5.
С PfSense все доступно: ping, nslookup.
Diagnostics\Tables
No entries exist in this table. -
@lucas1
Посмотрел /tmp/rules.debugtable <1C_Servers> persist
1C_Servers = "<1C_Servers>"
В DiagnosticsTables по этой таблице все нормально: 2 entries.
Но в /tmp/rules.debug пусто.table <ERP_Servers> { X.X.12.44 X.X.12.46 X.X.12.32 }
ERP_Servers = "<ERP_Servers>"
В DiagnosticsTables ее вообше нет.table <Servers_Internet> persist
Servers_Internet = "<Servers_Internet>
Но в /tmp/rules.debug пусто.
В DiagnosticsTables нет 2 entries из 9.Это что сразу заметил.
Откуда взялось persist по некоторым таблицам?
получается несоответствие (по некоторым таблицам) определению таблицы (alias) содержимому в /tmp/rules.debug. -
@lucas1
Чтобы увидеть точно , что у Вас происходит в системе , я бы рекомендовал все-таки пользоваться консолью ( красивая обертка - это конечно здорово , но не всегда корректно)
Итак ,- чтобы увидеть , про какие таблицы знает PF
pfctl -sT - чтобы увидеть содержимое таблиц
pfctl -t имя_таблицы -Ts - попробуйте настроить PFSense так ,чтобы он использовал публичный DNS сервер (это надо для того ,чтобы не использовать Resolver при построении таблиц)
- необязательный пункт ( напишите мне в личку имена доменов и ip адрес сервера , чтобы на стенде можно было смоделировать ситуацию)
P.S. persist добавляется в том случае, если при построении файла rules.debug отсутствуют входные данные для таблицы.
- чтобы увидеть , про какие таблицы знает PF
-
-
pfctl -sT - вывод этой команды полностью соответствует списку таблиц из Diagnostics\Tables.
в частности table <ERP_Servers> в выводе нет.
И так ее нет:
pfctl -t ERP_Servers -T show
pfctl: Table does not exist. -
pfctl -t имя_таблицы -Ts - выборочно вывод по таблицам полностью соответствует выводу в Diagnostics\Tables.
-
Без DNS Resolver не будет работать PfBlockerNG DNSBL. И проблема есть и просто по IPs в Alias.
-
-
@lucas1
Утилита pfctl имеет опцию проверки синтаксиса файла конфигурации PF. Попробуйте запустить её на предмет ошибок. Должна быть причина, по которой таблица не создаётся из файла -
Скрин Alias покажите.
-
@werter
Насчет пустых таблиц. Если alias не участвует в правиле Firewall его таблица будет пустой.На англоязычном форуме это решают уже давно.
И кроме указанного вами решения Cron другого нету.