The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Сетевой фильтр пакетов"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Сетевой фильтр пакетов"  
Сообщение от asik email(ok) on 12-Апр-07, 15:34 
Доброе время суток Господа!
Возник вопрос: Нужно написать сетевой фильтр пакетов сети Интернет.
Фильтрация производится по правилам... Типа если адрес отправителя пакета - доверительный, то пакет пропустить. Иначе запретить.
Я склонен на написания модуля для ядра. Подскажите куда двигаться, и правильно ли моё направление?
П.С. привожу кусок уже работающего кода на с++, для блокировки ВСЕХ пакетов.
Единственное затруднение - это интерфейс с пользователем... Как реализовать?

#define __KERNEL__
#define MODULE
#define LINUX
#define __NO_VERSION__.

#include </usr/include/linux/module.h>
#include </usr/include/linux/version.h>
#include </usr/src/linux-2.4.20-8/include/linux/netfilter.h>
#include </usr/src/linux-2.4.20-8/include/linux/netfilter_ipv4.h>

  MODULE_LICENSE("GPL");
  MODULE_AUTHOR("asik");

  struct nf_hook_ops nf_incoming;
  struct nf_hook_ops nf_outgoing;

  unsigned int main_hook (unsigned int hooknum,struct sk_buff **skb,const struct net_device *in,const struct net_device *out,int (*okfn)(struct sk_buff*))
{
  /* Drop all */
  return NF_DROP;
}

int init_module ()
{
  //Incoming
  nf_incoming.hook = main_hook; /* @ */
  nf_incoming.pf = PF_INET;
  nf_incoming.hooknum = NF_IP_PRE_ROUTING;
  nf_incoming.priority = NF_IP_PRI_FIRST;

  //outgoing
  nf_outgoing.hook = main_hook;
  nf_outgoing.pf = PF_INET;
  nf_outgoing.hooknum = NF_IP_PRE_ROUTING;
  nf_outgoing.priority = NF_IP_PRI_FIRST;

  nf_register_hook(&nf_incoming);
  nf_register_hook(&nf_outgoing);

  printk ("FireWall loaded \n");

  return 0;
}

void cleanup_module ()
{

  nf_unregister_hook(&nf_incoming);
  nf_unregister_hook(&nf_outgoing);

  printk ("FireWall unload \n");
}

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Сетевой фильтр пакетов"  
Сообщение от NuINu (??) on 12-Апр-07, 15:48 
>Доброе время суток Господа!
>Возник вопрос: Нужно написать сетевой фильтр пакетов сети Интернет.
>Фильтрация производится по правилам... Типа если адрес отправителя пакета - доверительный, то
>пакет пропустить. Иначе запретить.
>Я склонен на написания модуля для ядра. Подскажите куда двигаться, и правильно
>ли моё направление?
>П.С. привожу кусок уже работающего кода на с++, для блокировки ВСЕХ пакетов.
>
>Единственное затруднение - это интерфейс с пользователем... Как реализовать?

через файловую систему proc. А чем тебя стандартный файрвол не устраивает? заново будешь писать весь iptables?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Сетевой фильтр пакетов"  
Сообщение от pavel_simple (ok) on 12-Апр-07, 15:54 
так может libconntrack_ipqueue всётаки http://netfilter.org/
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Сетевой фильтр пакетов"  
Сообщение от asik email(ok) on 12-Апр-07, 16:15 
>>Доброе время суток Господа!
>>Возник вопрос: Нужно написать сетевой фильтр пакетов сети Интернет.
>>Фильтрация производится по правилам... Типа если адрес отправителя пакета - доверительный, то
>>пакет пропустить. Иначе запретить.
>>Я склонен на написания модуля для ядра. Подскажите куда двигаться, и правильно
>>ли моё направление?
>>П.С. привожу кусок уже работающего кода на с++, для блокировки ВСЕХ пакетов.
>>
>>Единственное затруднение - это интерфейс с пользователем... Как реализовать?
>
>через файловую систему proc. А чем тебя стандартный файрвол не устраивает? заново
>будешь писать весь iptables?

Есть задание такое.... дипломное... А что конкретнее в proc?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру