C# Перенаправление DNS-сервера - PullRequest
1 голос
/ 28 апреля 2020

Я пытаюсь создать свой собственный DNS-сервер с нуля, который будет отфильтровывать домены с контентом для взрослых и перенаправлять пользователя на веб-страницу с информацией, URL-адрес которой он пытается загрузить, содержит контент для взрослых, который блокируется.

Пока все хорошо, я настроил свой собственный http-сервер и заменяю IP-адреса домена, занесенного в черный список, своим собственным сервером для отображения ошибки (Не уверен, что это правильный способ, и другие серверы ДНК делают это

Проблема возникает, когда я пытаюсь занести домен в черный список с настройкой https, и в этом случае после перенаправления браузер отображает ошибку о ненадежном источнике или что-то подобное.

Есть ли способ обойти эту ситуацию или, может быть, для отображения моей веб-страницы другим способом?

1 Ответ

3 голосов
/ 28 апреля 2020

Вы будете бороться с этим, потому что у предпосылки есть основной недостаток c:

  • ваш пользователь набрал https://prawnsite.com в своем браузере
  • ваш DNS-сервер распознал его как сайт для взрослых и вернул Ip 10.0.0.1 вместо реального 12.34.56.78
  • , когда браузер подключился к 10.0.0.1 и пытается выполнить обмен сертификатами и получите сертификат Ask, который действительно идентифицирует сервер как prawnsite.com, прежде чем он сделает что-либо еще
  • на вашем сервере нет сертификата для этого домена (но он может иметься, если вы его получили)

В сертификатах ssl я бы ничего не стоил, если бы любой хакер мог sh открыть сайт, похожий на ваш банк, проникнуть в DNS и перенаправить его, чтобы все люди в конкретном интернет-провайдере были указаны вместо поддельного сайта, и собирать их детали. Который в основном то, что вы пытаетесь сделать без уборочной части. Одна из основных идей SSL как безопасности заключается в том, что конечный пользователь может быть уверен, что его компьютер действительно общается с сервером, с которым он хочет общаться, речь идет не только о шифровании данных, чтобы люди на этом пути (временные маршрутизаторы) могли захватить его и проверить его

Я упоминал, что вы можете получить сертификат для каждого сайта в вашем списке; Вы можете найти службу, которая выдает базовые c ssl сертификаты, предназначенные для шифрования трафика c, но без проверки личности владельца сервера, на лету. Есть гугл для "ssl на лету" и посмотреть, если кто-нибудь делает это. Сертификаты Basi c могут хорошо работать для вас, если, например, пользователь не ожидает (или не заботится) о расширенной проверке / зеленой адресной строке. Имея сертификат EV, эмитент удостоверяется, что удостоверение, за которое он выдает, но для базового c сертификата вы просто получаете сертификат, который защищает доменное имя, и после установки на вашем сервере обмен сертификатами сработает. и браузер пользователя не будет отображать никаких ошибок


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

1022 * Посмотрите на то, как Прокси-сервер отладки Fiddler выполняет функцию посредника, поэтому вы можете просматривать веб-трафик c, когда соединение между браузером и сервером установлено по протоколу HTTPS (фактически браузер подключается к Fiddler, а затем Fiddler подключается к серверу, поэтому соединения). Запуск вашего http-сервера в качестве прокси-сервера также может помочь вам в том, что вам нужно
...