Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
kiv Гость
|
Добавлено: Чт Июл 08 2004 13:44 Заголовок сообщения: Шифрование ЛВС |
|
|
Есть задача - осуществить шифровние ЛВС для машин под управлением Linux на ядре 2.2.20. Предполагается ее решение путем создания модуля ядра включающегося между сетевой подсистемой Linux и драйвером сетевой катрочки, такой а-ля Windows драйвер-фильтр. Для этого наш модуль находит соответствующую структуру device для eth0 например и подменяет функцию hard_start_xmit. Таким образов исходящий поток на интерфейсе eth0 перехватить не проблема. Проблема в том чтобы перехватить поток входящий. Отсюда собственно и вопросы:
- возможно ли подменить функцию netif_rx?
- может кто-либо подсказать как решались подобные и сходные задачи.
Буду благодарен за любые предложения - может у меня вообще подход не корректный |
|
Вернуться к началу |
|
|
Mr.Nobody
Зарегистрирован: 12.07.2004 Сообщения: 33 Откуда: Москва
|
Добавлено: Пн Июл 12 2004 10:34 Заголовок сообщения: Mr.Nobody |
|
|
Если взаимодействие будет только между Linux-компами то чем не годится IPSec? |
|
Вернуться к началу |
|
|
совсем незнакомый
Зарегистрирован: 24.12.2003 Сообщения: 183 Откуда: Israel
|
Добавлено: Вт Июл 13 2004 12:51 Заголовок сообщения: |
|
|
есть несколько решений шифрования.
не знаю ответов на вопросы:
что такое "ЛВС" ?
почему именно 2.2.х ? |
|
Вернуться к началу |
|
|
kiv Гость
|
Добавлено: Ср Июл 14 2004 08:58 Заголовок сообщения: |
|
|
совсем незнакомый писал(а): | есть несколько решений шифрования.
не знаю ответов на вопросы:
что такое "ЛВС" ?
почему именно 2.2.х ? |
ЛВС - Локальная Вычислительная Сеть иже нечто что находится под сетевым драйвером (интерфейсом)
2.2.x потому что задачу ставил не я, видимо есть необходимость.
На самом деле решение я уже нашел: как описано подменяю функцию hard_start_xmit целевого интерфейса - для перехвата исходящего трафика в сетевое устройство, и подменяю своим обработчиком обработчики в хеш-массиве протоколов ptype_base (net/core/dev.c). Но если есть несколько вариантов, то будет интересно их посмотреть.
ЗЫ. Тольк осталась проблема со сборкой и загрузкой модуля:
При загрузке модуля в вылезает ошибка
unresolved symbol ptypes_base.
Хотя в netdevice.h он описан как
extern struct packet_type* ptype_base;
Компилирую:
gcc -DLINUX -DMODULE -D__KERNEL__ knet.c |
|
Вернуться к началу |
|
|
совсем незнакомый
Зарегистрирован: 24.12.2003 Сообщения: 183 Откуда: Israel
|
Добавлено: Ср Июл 14 2004 11:58 Заголовок сообщения: |
|
|
kiv писал(а): |
unresolved symbol ptypes_base.
Хотя в netdevice.h он описан как
extern struct packet_type* ptype_base;
Компилирую:
gcc -DLINUX -DMODULE -D__KERNEL__ knet.c
|
по написанному видно, что в netdevice.h написано "ptype_base"
а где-то в вашем коде написано "ptypes_base"
что не есть идентично.
Это похоже на опечатку.... |
|
Вернуться к началу |
|
|
kiv Гость
|
Добавлено: Чт Июл 15 2004 09:21 Заголовок сообщения: |
|
|
совсем незнакомый писал(а): | kiv писал(а): |
unresolved symbol ptypes_base.
Хотя в netdevice.h он описан как
extern struct packet_type* ptype_base;
Компилирую:
gcc -DLINUX -DMODULE -D__KERNEL__ knet.c
|
по написанному видно, что в netdevice.h написано "ptype_base"
а где-то в вашем коде написано "ptypes_base"
что не есть идентично.
Это похоже на опечатку.... |
Да сорри это опечатка. Вместо ptypes_base читать ptype_base.
Я так предполагаю что в ядре символ ptype_base дополнен еще какимито клуджиками хотя в /boot/System.map он именно ptype_base. А в модуле ссылка именно на "ptype_base". При загрузке модуля insmod -v knet.o говорит что версия ядра "" (не помню точно помоему что-то наподобее этого) |
|
Вернуться к началу |
|
|
|