Доброго всем времени суток.
В общем ситуация такая: есть работающий сервер на FreeBSD 6.3, в качестве фаервола используется pf. Появилась необходимость перенести систему на другое железо. При помощи dump/restore перенес все разделы, подправил fstab и сделал диск загрузочным. Система запускается, все сервисы вроде бы нормально запускаются и работают, только с pf непонятные проблемы: сам pf работает, а вот правил загруженных у него нет (то есть pfctl -e выдает что pf запущен, а pfctl -sa никаких правил не показывает). После pfctl -f /etc/pf.conf все правила загружаются без проблем. При этом на старом железе таких проблем не возникало. В rc.conf проверял запускающие строки есть:
# firewall
pf_enable="YES" # Enable PF (load module if required)
pf_rules="/etc/pf.conf" # rules definition file for pf
pf_flags="" # additional flags for pfctl startupВ логах на первый взгляд ничего криминального нет. Какие есть идеи? Вариант с установкой системы с нуля просьба не прелагать - не подходит по ряду причин.
А названия сетевых интерфейсов не поменялись случаем?
Скорее всего сетевые карты ведь другого производителя.
>А названия сетевых интерфейсов не поменялись случаем?
>Скорее всего сетевые карты ведь другого производителя.Сетевые интерфейсы остались теже самые(что на стром что на новом железе em). Если бы это было нет так то после загрузки сервера вручную бы не получилось загрузить правила. А в реальности при ручной загрузке правил все проходит успешно. Сегодня попробовал пересобрать мири и ядро - не помогло.
Пробовал такую вещь: закомментировал все правила, кроме block all. - загрузка прошла нормально. Затем постепенно убирал коменты, выяснилось что есть несколько правил, из- за которых проявляется данная проблема. Но в них нет ничего особенного. Пример одного из "проблемных правил":
pass in on $int_if proto tcp from $Allow_FTP_FM to $Server_FM port { 20, 21, 35500:35600 } keep state$Allow_FTP_FM и $Server_FM объявлены ранее ине требуют DNS-преобразования, тем более что такое правило при pfctl -f /etc/pf.conf нормально подгружается
В рамках мозгового шторма: может, загружаться стало быстрее и чёто "недогружается" к моменту запуска pf?
man rcorder
Вывод `dmesg -a` после загрузки в студию.
Всем спасибо за помощь. Проблема решена.
Дело было в следующем: новый сервер запускал не подключеннным к сети, для того чтобы предварительно убедиться в его полной работоспособности. А для некоторых правил все же требовалось DNS-преобразование. После того как сервер был нормально подключен к сети, все нормально заработало.
Еще точно такое же бывает в FreeBSD если используется OpenVPN или PPPoE, в частности интерфейс tun0..9
Т.е. когда начинает загружаться pf, то tun0..9 не имеют еще ip адресов, и pf выдает ошибку (которую видно по команде, как написал domas, 'dmesg -a'):no IP address found for tun0
/etc/pf.conf:141:
could not parse host specificationpfctl:
Syntax error in config file: pf rules not loadedЧтобы этого избежать нужно убрать во всех правилах из полей 'from' и 'to' имена интерфесов tun0..9, т.к. имя интерфейса в этих полях меняются на текущие ip адреса эти интерфейсов, а т.к. ip еще не присвоены, то и просходит ошибка.
Просто впишите вместо tun0..9 ip_адрес или маску подсети если ip выдается по dhcp.Пример.
неправильно, правила не будут загружаться:
me = "vr0 tun0"
pass out quick proto udp from $me to port 33433:33626 keep state
# 33433:33626 (UDP) - traceroute for *nixправильно так:
me = "vr0 192.168.10.0/24"
pass out quick proto udp from $me to port 33433:33626 keep state