я хочу написать Linux
2.6 netfilter
module
, который может проверить входящую информацию IP
пакетов, таких как Dest-IP, источник-IP. После этого передайте эту информацию в приложение user space
, которое (например, приложение Socket
) будет обрабатывать эти данные, как только пакет достигнет HOOK.Linux Netfilter передать содержимое пакетов в пользовательское пространство сокета приложения
Я хочу попробовать два пути:
1. Внутри модуля netfilter
создайте строку структуры fifo
, каждый раз, когда пакет достигает hook
, поместите информацию о пакете в fifo. и с помощью файловой системы /proc/example
. каждый раз, когда приложение пользовательского пространства читает файл /proc/example
, вы получите информацию о пакете из головы fifo.
Я новичок в программе kernel
, эта программа несколько раз разбивает мое ядро. -_-! Интересно, возможно ли это?
2. Внутри модуля netfilter создайте устройство char, приложение пользовательского пространства просмотрит информацию о пакете с этого устройства char. Но я до сих пор не знаю, как обязательно получить пакет как можно скорее, есть ли какой-либо способ, когда пакет достигнет крюка netfilter, ядро отправит некоторый сигнал в приложение для информационного пространства пользователя, затем приложение для пользовательского пространства придет к выбрать информацию о пакете?
спасибо.
Вы, кажется, просто тиражирование NFQUEUE + libnetfilter_queue инфраструктуры. –