Фильтрация DNS запросов от браузера
От: Аноним  
Дата: 16.05.11 09:50
Оценка:
Здравствуйте

Возникла задача написать приложение Parental Control, которое работает под двумя системами — BSD и Windows(XP-7).

И нужна точка старта, с которой я бы мог начать копаться в документации
Мне нужно распознать, что приложение, которое ломиться в сеть — браузер, и не позволить этому браузеру перейти по ссылке, если ее доменное имя находится в черном списке. Собственно, на фильтрации DNS запросов я и застрял.
Подскажите, как лучше такое сделать?

Первое решение которое приходит в голову — Windows TDI фильтр (BSD — NKE фильтр, что практически аналогично TDI фильтру, только для BSD), который просматривает все DNS запросы системы, и возвращает DNS-ответ вида 127.0.0.1 на "неугодные" домены.

Но DNS кешируется, в BSD есть файл /etc/hosts, который просматривается перед каждым запросом "в настоящий Интернет" для разрешения DNS-имени (не уверен насчет Windows — но и там очевидно что-то кешируется). То есть нужно обработать и запросы к кешу DNS . Слышал что существует некая LSP для Windows. Также можно использовать pcap для просмотра трафика (и остановки его). Под BSD можно использовать ipfw. Но вот что именно лучше подходит для этой цели пока не знаю .

Возможно ли как-то идентифицировать, что запрос к DNS был сделан именно от браузера, а не от другого приложения вроде Windows Update?

Заранее благодарен!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.