Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Сети > "Блокировка пакетов" |
Автор: mrin 23.1.2007, 02:55 |
Вобщем есть ПК. На нем 2 сетевые карты. Возможно соединение "МОСТ" между сетевухами, т.е. выход в основную сеть. - Что нужно: Блокировать пакеты, которые отправлены с IP и MAC адреса не находящегося в БД. Если с заголовками все ок, т.е. есть в базе данных IP и МАС допустимый - пропускать его дальше куда он шел собственно. Мысли такие: Без "МОСТА": Каким-то образом переключить прием пакета и отправку на сокет, т.е. чтобы все пакеты шли через софт(сокет.), и когда делать прием пакета, разобрать его на заголовки IP,ICMP,UDP,TCP, проверить принадлежность, и если все ок, собрать обратно, или там копию оставить, и отослать дальше. (мысли новичка). Но как-то не понятно для мне в таком случае даже то, как будет делаться прозрачность интерфейся, т.е. как софт поймет юзера что имеено через меня идет основная сеть ![]() Я дел еще правда с сетями не имел при программировании, прочитал много по протокалам TCP/IP, посмотрел исходники снифферов... но вот такая идея пока что-то не дошла ![]() С "мостом": Каким-то образом может можно произвести контроль бриджа(моста) этого, т.е. слушать и чуть что каким-то образом блокировать. Не понятно это для меня, не именно программная часть(пока), а имеено последовательность действий. ---- И еще такое, ведь даже поидеи если идет куча пакетов в сек., обращение каждое к БД будет же ооооочень ресурсоемким, может как то это можно реализовать сессиями или есть какие идеи тож ? Может создать стек записей из базы при загрузке программы, т.е. IP,MAC и там еще каких нить полей и по ней как то позиционироваться. Подскажите какие у кого по этому поводу мысли. |
Автор: Snowy 23.1.2007, 11:20 |
А что, нельзя просто поставить файрвол/прокси/TrafficInspector ? Зачем чего-то писать? Тем более не имея опыта... |
Автор: mrin 24.1.2007, 00:19 |
Ну так все же как то учаться, что-то пишут чтоб получить какие то знания по программированию ![]() ![]() Интересно все таки как это реализовать, сторонний софт - это хорошо, свой - интересней ![]() ![]() |
Автор: Snowy 24.1.2007, 01:51 |
Это ты слишком круто взялся. Даже для суперспеца это не простая задача. А с минимальным уровнем - вообще невозможная. |
Автор: mrin 24.1.2007, 03:19 |
Может и круто взялся, есть некоторые еще идеи. Можно получить пакет, отпарсить его к примеру, по заголовку IP узнать MAC и по базе сделать просмотр. - это я смогу реализовать. (модифицированны снифер). А вот как забанить этот пакет ? ![]() Может вообще есть идеи, все таки хочеться эту тему реализовать, а не закинуть... Да и на диплом бы было интересней делать, чем нам обычно всучат сделать какую-нить базу данных и чо-нить подсчтитать - что уже собственно достало и уже не так интересно... |
Автор: Romikgy 24.1.2007, 11:36 |
драйвер фильтр на сетевую карту или перехват апи ф_ций работы с сокетом |
Автор: mrin 24.1.2007, 19:24 |
Драйвер на сетевуху ![]() ![]() Еще созрела такая идея, но вот низнаю как другие ПК в сети будут понимать, что выход в сеть основную имеено чеерез этот фильтр... На 1ую сетевую: Создается 1 сокет для прослушки в режиме Promiscuous (прием всех пакетов). Создается 1 сокет для отправки данных в эту сетевую со второй сетевой(после получения пакета со второй сетевой). На вторую сетевую тоже самое, только сокет для отправки данных в эту сетевую, после получения данных в первой сетевой. Есть какие идеи ? Такой метод будет вообще работать ? ---- Еще мысля: есть ли виндовые маршуртизаторы с определением MAC отправителя, которые бы можно было управлять каким-то образом ? |
Автор: mrin 27.1.2007, 02:43 |
Уже много чего "начтил". Побывал у сисадмина, про идею поговорил. В итоге вот что вырисовал на чирновике, алгоритм. _http://nemirofka.info/algoritm.jpg Зацените, вроде говорят должно работать. Я уже "загнался" сделать эту задачу, так что мож все таки кто еще поможет чем-нить. |