Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > "Блокировка пакетов"


Автор: mrin 23.1.2007, 02:55
Вобщем есть ПК. На нем 2 сетевые карты. Возможно соединение "МОСТ" между сетевухами, т.е. выход в основную сеть.

-
Что нужно:
Блокировать пакеты, которые отправлены с IP и MAC адреса не находящегося в БД. Если с заголовками все ок, т.е. есть в базе данных IP и МАС допустимый - пропускать его дальше куда он шел собственно.

Мысли такие:
Без "МОСТА":
Каким-то образом переключить прием пакета и отправку на сокет, т.е. чтобы все пакеты шли через софт(сокет.), и когда делать прием пакета, разобрать его на  заголовки IP,ICMP,UDP,TCP, проверить принадлежность, и если все ок, собрать обратно, или там копию оставить, и отослать дальше. (мысли новичка).  Но как-то не понятно для мне в таком случае даже то, как будет делаться прозрачность интерфейся, т.е. как софт поймет юзера что имеено через меня идет основная сеть smile - бред наверное.
Я дел еще правда с сетями не имел при программировании, прочитал много по протокалам TCP/IP, посмотрел исходники снифферов... но вот такая идея пока что-то не дошлаsmile
С "мостом":
Каким-то образом может можно произвести контроль бриджа(моста) этого, т.е. слушать и чуть что каким-то образом блокировать. Не понятно это для меня, не именно программная часть(пока), а имеено последовательность действий.
----
И еще такое, ведь даже поидеи если идет куча пакетов в сек., обращение каждое к БД будет же ооооочень ресурсоемким, может как то это можно реализовать сессиями или есть какие идеи тож ? Может создать стек записей из базы при загрузке программы, т.е. IP,MAC и там еще каких нить полей и по ней как то позиционироваться.

Подскажите какие у кого по этому поводу мысли.


Автор: Snowy 23.1.2007, 11:20
А что, нельзя просто поставить файрвол/прокси/TrafficInspector ?
Зачем чего-то писать? Тем более не имея опыта...

Автор: mrin 24.1.2007, 00:19
Ну так все же как то учаться, что-то пишут чтоб получить какие то знания по программированию smile.  И мне бы вот хотелось чему-то научиться. Уже пару дней просматриваю исходники, смотрю как там все работает, по теоретической немного поумнел, по практической в том направлении нет smile, практика - практика....

Интересно все таки как это реализовать, сторонний софт - это хорошо, свой - интереснейsmile. Вот теже фаеры, как же вот они работают, блочат пакеты и т.д. по правилам? - как то же наверное прослушивают локалку и смотрят.. хз smile

Автор: Snowy 24.1.2007, 01:51
Это ты слишком круто взялся.
Даже для суперспеца это не простая задача.
А с минимальным уровнем - вообще невозможная.

Автор: mrin 24.1.2007, 03:19
Может и круто взялся, есть некоторые еще идеи.
Можно получить пакет, отпарсить его к примеру, по заголовку IP узнать MAC и по базе сделать просмотр. - это я смогу реализовать.  (модифицированны снифер).
 А вот как забанить этот пакет ?smile Мне бы понять как сделать как бы данные проходили имеенно через сокеты...
Может вообще есть идеи, все таки хочеться эту тему реализовать, а не закинуть... Да и на диплом бы было интересней делать, чем нам обычно всучат сделать какую-нить базу данных и чо-нить подсчтитать  - что уже собственно достало и уже не так интересно...

Автор: Romikgy 24.1.2007, 11:36
драйвер фильтр на сетевую карту
или 
перехват апи ф_ций работы с сокетом

Автор: mrin 24.1.2007, 19:24
Драйвер на сетевуху smile)) Точнее на 2 сетевухи... уух, еслиб я знал как их писать smile) Но почитаю чтонить про это...

Еще созрела такая идея, но вот низнаю как другие ПК в сети будут понимать, что выход в сеть основную имеено чеерез этот фильтр...

На 1ую сетевую:
Создается 1 сокет для прослушки в режиме Promiscuous (прием всех пакетов).
Создается 1 сокет для отправки данных в эту сетевую со второй сетевой(после получения пакета со второй сетевой).

На вторую сетевую тоже самое, только сокет для отправки данных в эту сетевую, после получения данных в первой сетевой.
Есть какие идеи ? Такой метод будет вообще работать ?
----

Еще мысля:
 есть ли виндовые маршуртизаторы с определением MAC отправителя, которые бы можно было управлять каким-то образом ?

Автор: mrin 27.1.2007, 02:43
Уже много чего "начтил". Побывал у сисадмина, про идею поговорил.
В итоге вот что вырисовал на чирновике, алгоритм. _http://nemirofka.info/algoritm.jpg
Зацените, вроде говорят должно работать. Я уже "загнался" сделать эту задачу, так что мож все таки кто еще поможет чем-нить.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)