Давно интересует такой вопрос или парочка, но занятся ими захотелось сейчас:
1)Насколько сложно написать модуль ядра, который будет обрабатывать сетевой поток данных(прием пакетов, их отброс, и т.д)
2)Вопрос, связанный с 1-м. Как понимаю - netgraph способен на многое, работает на уровне ядра, но нигде не нашел примеров того, каким образом с помощью него можно делать разбор пакетов, установку неких флагов, которые отвечают за то - пропускать в систему данный пакет или нет. Тоесть в общем случае каким образом реализовывается accept и drop policy.
интерфейс не пользовательский - должны присутсвовать знания системного программиста
Это понимаю, что необходимы такие знания, но можно немного поподробней про это? что почитать?
P.S. но все таки вопрос остается: возможно ли с помощью netgraph вести политики accept и drop для сетевого потока?
Извеняюсь за то, что немного зачастил с постингами с маленьким промежутком времени, но тут в голову тукнулу то, ЧТО ДЕЙСТВИТЕЛЬНО!!! захотелось разобраться с написанием модуля ядра для работы с сетевым потоком. Что можете порекомендовать? Может есть исходники небольших софтин, чтобы можно было получше разобраться, может кто уже писал такое и поделится. Очень хочу разобраться. Есть статья про написание модуля, но там вообще не о том, о чем нужно, нет информации о том, что как и когда применять и как все работает.
Кому не трудно - поделитесь инфой, в материале разберусь без проблем, опыт в кодинге 5 лет, но с таким не сталкивался.
Посмотри вот этот материал: http://www.samag.ru/art/08.2003/08.2003_08.pdf
Как понял - NETFILTER это чисто для Linux, а как насчет FreeBSD?
>Как понял - NETFILTER это чисто для Linux, а как насчет FreeBSD?
>Так надо сразу говорить, какая ОС интересует.
а вы топик почитайте
ядро самой OS - куда лучше примера не придумаешь
>Давно интересует такой вопрос или парочка, но занятся ими захотелось сейчас:
>1)Насколько сложно написать модуль ядра, который будет обрабатывать сетевой поток данных(прием пакетов,
>их отброс, и т.д)
>2)Вопрос, связанный с 1-м. Как понимаю - netgraph способен на многое, работает
>на уровне ядра, но нигде не нашел примеров того, каким образом
>с помощью него можно делать разбор пакетов, установку неких флагов, которые
>отвечают за то - пропускать в систему данный пакет или нет.
>Тоесть в общем случае каким образом реализовывается accept и drop policy.netgraph умеет все, что ты можешь себе представить. Примеры - /usr/src/sys/netgraph/ng_*. Обрати внимание на ng_bpf, может и писать ничего не нужно будет - делит пакеты на основе соответствия bpf правилам. Свою ноду несложно написать - нет там никаких флагов, просто если пакет проходит - отправляешь его дальше, иначе не отправляешь.