Итак. У меня уже есть впс с xray, за которым стоит dns-сервис unbound, слушающий его на локальном порте (без всяких doh/dot). Будучи "домохозяйкой" — не знаю как, но эта связка работает, так как избавила меня от замедлений ютьюба.
Но у меня есть головная боль — Gemini, которой невозможно пользоваться на андроиде, не указывая в настройках ОС частный dns-сервер. Проблема стала еще более злободневной после отключения гугл асссистента в пользу Gemini на часах.
По понятным причинам (локальный порт) указать свой dns-сервер на впс я не могу.
Пользоваться сторонним сервером типа comss — у меня паранойя (возможно неоправданная, тем более ничего незаконного я не посещаю).
Открывать публичный 53 и 853 (если андроид вообще работает с dot) страшно. Если он работает только с doh — то 1) страшно 2) 443 у меня уже занят xray. Ну и в целом настройка doh/dot на сервере и клиентах для моего уровня знаний звучит как приключение на несколько дней.
Вопросы:
1) Какие реальные риски днс сервера, слушающего на публичных портах? Ответ желательно на бытовом уровне, какие могут быть последствия? Могут украсть историю посещенных доменов / ботнет раздаст мой сервер другим пользователям под свои нужды / еще что-то?
2) Есть ли риски при использовании сторонних днс серверов (adguard, comss и прочее)? История посещений — ради бога. Подмена адресов? Насколько вероятно? И что еще?
3) Может быть есть какие-то простые лаконичные решения моего вопроса? По понятным причинам настроить фильтр по ip я не могу, дома и на телефоне статические айпишники не получишь.
Для правильного вопроса надо знать половину ответа
1. DNS amplification. Злоумышленник отправляет на ваш сервер короткий DNS-запрос, подменяя обратный IP-адрес на адрес атакуемого сервера. Ваш DNS-сервер отправляет гораздо больший по размерам ответ на подменённый IP, участвуя, таким образом, в DDoS-атаке.
Спасибо! А как тогда (мелкие, не Google и CF) публичные днс сервера тогда борятся с этой историей? Можно ли, например, просто включить у хостинга опцию защиты от ддос или это не то?
И насколько сильно это вещает мой собственный сервер? Понятно, что разрешать эксплуатировать мой сервер — не очень ответственно по отношению к серверу жертвы, но если не будут юзать мой сервер — все равно найдут чей-нибудь другой.
12345egor, По разному борются. Например, по стандарту EDNS0 при большом объёме ответа DNS-сервер может изменить тип ответа с UDP на TCP и попытаться инициировать соединение. Можно ограничивать объём ответа на A-, AAAA- и CNAME-запросы, снижая коэффициент мультипликативности, и частоту ответов на другие типы запросов (ANY, TXT, RRSIG, DNSSEC) от одного клиента. https://www.securitylab.ru/blog/personal/aodugin/3...
Первое и главное - открывать порт на сервере необязательно. Для удобства можно поднять AdGuard Home или pi-hole, и в клиентском приложении указать Внутренний DNS - 127.0.0.1
spoiler
Так как вы уже подключены к серверу, запрос к dns для системы как бы придет "из локалки", и всё будет работать. У меня работает.
12345egor, Так если порт закрыт для внешнего мира, никаких левых запросов не будет.
Шаги в вкратце: Не трогать 53 порт (оставить закрытым); поднять днс сервер, настроить; в клиентском приложении прописать Внутренний DNS как "127.0.0.1". Всё
User, попробовал сделать как у вас на скрине (там v2rayng же, как я понимаю?) — при включении галочки локального днс клиент просто отказывается подключаться к серверу — тупо "сбой при запуске служб", даже без ошибки хендшейка.
12345egor, На скрине v2raytun. На других клиентах не пробовал.
И для уверенности можно проверить на сервере, от кого приходит ответ: dig habr.com | grep SERVER, там должно быть 127.0.0.1, если отвечает кто-то другой (8.8.8.8, 1.1.1.1 и тд) - надо понять, почему.