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


Автор: danie 7.11.2007, 21:38
Приветствую! Вроде бы такие вопросы здесь ещё не задавались. Не знает ли кто, как можно сделать фаервол? А точнее, меня интересует, как можно сделать, чтобы при попытке соединения с любым сервером на моём компьютере, первой получала вопрос о соединении моя программа и она же могла отказать в подключении или пропустить подключение. Похоже на сниффер, который может в определённых случаях запрещать соединение. Сниффер написать не проблема, а вот на соединение он влиять не может... Просто мне хочется написать программу, которая запретила бы доступ к компьютеру с некоторых IP по любым портам. Но использовать файрвол крайне нежелательно (да и самому интересно, как такое работает). Вот и ломаю голову.
Спасибо за внимание. smile

Автор: ptr 8.11.2007, 06:13
http://www.programmerworld.net/personal/firewall.htm

Автор: danie 8.11.2007, 08:10
О! Огромное спасибо!
Правда... там что-то понять затруднительно. smile Эх, идею бы построения блокирования сокетов знать...

Автор: jonie 8.11.2007, 20:16
идея написать фильтрующий драйвер и резать пакеты на уровне драйверов (в винде это зовется как фильтр драйверы, в никсах все немного запутанее....)

Автор: danie 8.11.2007, 21:46
Идея-то чудесная, но вот реализация... Да и приведённый файрвол работает как-то иначе. Но я пока глянул код и что-то не очень понял, как именно он это делает. Я не понимаю механизм перехвата без драйвера. Если бы можно было бы перехватить сокетные функции - вот это было бы замечательно... Жалко что ничего по данной теме в русском сегменте не найти, а с английским я дружу очень скверно.

А нет, ошибаюсь - у этого файрвола тоже какой-то собственный драйвер подключается. Мда. Интересно... Придётся искать, как такие драйвера писать и использовать... :(

Автор: jonie 9.11.2007, 01:44
попробуй посмотреть на код wipfw он попроще наверняка)
ну и почитай wasm.ru и их форум, там даже лежал файрволл в сорцах мелкий и простой )
подробнее тама:
http://wasm.ru/forum/index.php?action=vthread&forum=12&topic=13699

Автор: nanoo 9.11.2007, 13:44
как насчет inetd?

Автор: danie 9.11.2007, 17:20
Спасибо всем!

Нет, inetd не пойдёт - это нужно на Windows машину. smile

Автор: RatHat 13.12.2007, 17:16
danie, драйвера такие пишутся на MS DDK (Driver Development Kit)

Автор: W4FhLF 13.12.2007, 17:19
Цитата(RatHat @  13.12.2007,  17:16 Найти цитируемый пост)
DDK


Сейчас общий набор средств для разработки называется WDK. Качать лучше его. 

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