Kernel trap при отключении ipfilter (обновился, блин)

FreeBSD, NetBSD, OpenBSD, DragonFly и т. д.

Модератор: arachnid

Аватара пользователя
Sector812
Сообщения: 23
ОС: Gentoo, FreeBSD

Kernel trap при отключении ipfilter

Сообщение Sector812 »

Обновился по RELENG_6 с месяц назад...
В том числе и ipfilter обновился до 4.1.13...
С тех пор раз 5 самопроизвольно перезагружались.

В результате поисков выяснилось, что при
'ipf -D' или '/etc/rc.d/ipfilter stop|restart'
возникает следующее:

Код: Выделить всё

Fatal trap 12: page fault while in kernel mode
fault virtual address = 0x0
fault code = supervisor read, page not present
instruction pointer = 0x20:0xc0549eeb
stack pointer = 0x28:0xde5d2a44
frame pointer = 0x28:0xde5d2a4с
code segment = base 0x0, limit 0xfffff, type 0x1b
        = DPL 0, pres 1, def32 1, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = 1109 (ipf)
trap number = 12
panic: page fault

До обновления, все работало безукоризненно
Подскажите, плз, в какую сторону копать...
Своих мыслей уже не осталось... :(

IP Filter: v4.1.13 (416)
Kernel: IP Filter: v4.1.13
Running: yes
Log Flags: 0 = none set
Default: pass all, Logging: available
Active list: 0
Feature mask: 0x10f
Спасибо сказали:
GeoF
Сообщения: 181
Статус: BSD guy
ОС: FreeBSD 6 Stable

Re: Kernel trap при отключении ipfilter

Сообщение GeoF »

Перед пересборкой мира и ядра делали:

# cd /usr/obj
# chflags noschg *
# rm -r *

?
Спасибо сказали:
Аватара пользователя
Sector812
Сообщения: 23
ОС: Gentoo, FreeBSD

Re: Kernel trap при отключении ipfilter

Сообщение Sector812 »

GeoF писал(а):
29.09.2006 18:20
Перед пересборкой мира и ядра делали:

# cd /usr/obj
# chflags noschg *
# rm -r *

?

Хмм... нет.
Только make clean && make cleandepend
В принципе, тоже самое.... Почти
Спасибо сказали:
Аватара пользователя
Sector812
Сообщения: 23
ОС: Gentoo, FreeBSD

Re: Kernel trap при отключении ipfilter

Сообщение Sector812 »

GeoF писал(а):
29.09.2006 18:20
# cd /usr/obj
# chflags noschg *
# rm -r *

Попробовали... Та же фигня :(
Спасибо сказали:
GeoF
Сообщения: 181
Статус: BSD guy
ОС: FreeBSD 6 Stable

Re: Kernel trap при отключении ipfilter

Сообщение GeoF »

ipf(8) говорит:

Код: Выделить всё

       -D     Disable the filter (if enabled).   Not  effective  for  *loadable
              kernel versions*.

У Вас ipf в ядро собран? То же самое и в скрипте написано:

Код: Выделить всё

geof@sunny:~> cat /etc/rc.d/ipfilter|grep "_stop()" -A 9
ipfilter_stop()
{
        # XXX - The ipf -D command is not effective for 'lkm's
        if [ `sysctl -n net.inet.ipf.fr_running` -eq 1 ]; then
                echo "Saving firewall state tables"
                ${ipfs_program:-/sbin/ipfs} -W ${ipfs_flags}
                echo "Disabling ipfilter."
                ${ipfilter_program:-/sbin/ipf} -D
        fi
}

На сколько я понимаю, в данном случае это ожидаемое, но не адекватное на мой вкус, поведение.
Спасибо сказали:
Аватара пользователя
Sector812
Сообщения: 23
ОС: Gentoo, FreeBSD

Re: Kernel trap при отключении ipfilter

Сообщение Sector812 »

GeoF писал(а):
01.10.2006 01:11
У Вас ipf в ядро собран? То же самое и в скрипте написано:

Испытывали во всех вариантах...
И в ядре и не в ядре. Всегда одно и тоже.
Система обновлялась через cvsup с версии 5.2.
Никаких проблем до сих пор не было.
Неужели пришла пора от ipfilter'а отказываться.
Стремно. Правил очень много.
Спасибо сказали:
GeoF
Сообщения: 181
Статус: BSD guy
ОС: FreeBSD 6 Stable

Re: Kernel trap при отключении ipfilter

Сообщение GeoF »

А Вы не помните, как в какой-то 5.х ветке ipfilter вообще не обрабатывал правила и единственное его поведение было default to accept?

Я попробую еще поискать похожие симптомы. Может что-то и накопаем.

А на счет правил. Можно попробовать их скормить pf'у. Декларируется, что он понимает правила ipf (синтаксис у них один в один, ну почти везде) и умеет еще много вкусного.
Спасибо сказали: