Привет.
Я столкнулся с такой задачей:
1. фильтровать входящие пакеты: все TCP пакеты на порт 9999 пропускать, остальные, например, молча дропать
2. у всех входящих TCP-пакетов на порт 9999 сохранять ip.src, tcp.src и ip.dst в таблицу1, после чего подменить ip.dst на свой IP (эти пакеты предназначались не нам :))
3. В юзерспейсе подхватываем эти соединения с помощью accept, создаем новое соединение на original dst (из таблицы1) и порт 9999. из полученных 2 сокетов заполняем таблицу2: original ip.src, tcp.src - new ip.src, tcp.src.
4. У всех исходящих пакетов на порт 9999 смотреть IP.src, искать по нему в таблице2 original IP.src, и подменять ip.dst на original IP.dst из таблицы 1.
Как я понял, с этим со всем отлично справляются netfilter в ядре и lipiptс в user-space. С lipiptc вроде все понятно, а по поводу программирования ядерного модуля в netfilter-hacking-howto - какая-то каша. Немногочисленные примеры кода меня только запутали :(
Посему вопрос:
1. есть ли смысл писать код в kernel-space: все равно какая-то информация (инфа для таблиц 1 и 2) будет передаваться в userspace. Нагрузка на интерфейс - около 50 килопакетов в секунду.
2. если ответ на п.2 - "да", то есть ли где-нибудь "пошаговое" руководство где все подробно разжевано про программирование с netfilter в ядре?
P.S.: Не пинайте сильно, я в этой области еще не очень силен.
P.P.S.: Да, я организую man-in-the-middle атаку :)
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от BreadFan
Ответ на:
DMA & memory-to-memory
от int_0dh
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум netfilter (2009)
- Форум ipw3945 (netfilter) (2008)
- Форум netfilter pom (2004)
- Форум расширение netfilter/conntrack (2014)
- Форум ndpi-netfilter - правила (2021)
- Новости Уязвимость в Netfilter (2021)
- Форум skb_copy_expand в netfilter (2009)
- Форум netfilter custom logging (2006)
- Форум Netfilter. Iptables Help? (2002)
- Форум Sylpheed(GNUPG) и NetFilter (2016)