Как написать межсетевой экран?

Есть задача написать простой межсетевой экран. Есть компьютер - сервер с выходом в интернет, и куча компьютеров в этой сети. Сервер раздает интернет на клиенты. Но нужно реализовать так, чтобы на некоторые сайты клиенты попасть не могли. При этом, эти сайты варьируются от клиента к клиенту. То есть, кому то доступ в вк доступен,а кому то нет. Также, нужно просматривать проходящий трафик каждого клиента. Я думаю сделать помесь прокси-сервера и сниффера. Но может кто-то такое писал на C#? Буду очень благодарен за исходник или просто совет. Может я начал решать эту задачу вообще с другого конца. Заранее благодарен за ответы)
  • Вопрос задан
  • 1176 просмотров
Решения вопроса 1
jamakasi666
@jamakasi666
Просто IT'шник.
Как вариант наименьшей кровью(для jav'ы но 100% для шарпа будет так же просто).
Напишите простейший днс сервер.
Алгоритм простой довольно:
Клиент шлет на сервер запрос скажем vk.com. Сервер принимает его, смотрит на IP клиента и сравнивает с записями в бд, дальше смотрит заголовок с доменным именем и опять же сверяет с базой. Если в БД есть IP этого клиента и конкретно этот сайт то просто не шлем ответа если нет то делаем lookup на днс провайдера.
На яве я пользовался www.xbill.org/dnsjava , решить такую задачу получилось буквально 30 строчками.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@spotifi
Если это учебная задача - см. исходники аналогичных программ. Полно открытых.
Если это для дела - нафига писать такую вещь самому - полно готовых.
Ответ написан
Комментировать
AxisPod
@AxisPod
А в чём проблем, делаете прокси сервер, навешиваете анализ заголовков. Принцип работы тут прост, открывается коннект к прокси серверу, он в свою очередь анализирует заголовок, выдирает данные какие ему нужны, анализирует пускать или нет, затем сам стучится в интернет, получает ответ, модифицирует как ему надо данные и отдаёт клиенту.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы