Здравствуй, многоуважаемый All!
Нужно написать пакетный перехватчик для Linux (читай фаервольное ядро). Ядро 2.2, 2.4. Разбираюсь в кодах IP Filter'а. Понятно, создается там chardev, рулится все, как понимаю, через /proc и ioctl. Но совсем не понятно как все это хозяйство встраивается:
1) Как пакеты забираются с сетевй карты (по идее должно быть чтение с каког-нибудь /dev/foo -- но не нашел такого интерфейса к сетевому драйверу)
2) Самое главное: как блокируется доступ TCP/IP стека к драйверу сетевой карты. То есть как разрывается эта связь? Думал, что делается это через sys_call_table или через хуки какие -- ничего из этого не нашел. Видел код фаервола для Linux 2.2 -- там это делается, так понял, через интерфейс из linux/firewall.h
Может впросы тупые, но у меня из прочитанной литературы один Померанц и ноль опыта в LKM.
Заранее спасибо! C уважением, Александр.