zikolingmoth писал(а): ↑19 дек 2022, 03:00
Добрый день! Не подскажете столкнулся с проблемой. При использовании данного правила ипшники добавляются в адрес лист и трафик уходит в впн, но есть проблема. Ощущение что он не все нужные ип добавляет, так как наблюдал картину, когда первый раз открываешь приложение инсты, оно не грузит ничего. Второй раз все работает. Далее выгружаешь приложение из памяти смартфона и заново его запускаешь и оно не грузит контент. Ощущение что правило не добавляет нужные ип адреса. Можно ли пофиксить данную проблему?
Можно. Решается связкой: правило TLS HOST + перехват DNS request/answer.
Так и есть.
TLS HOST добавляет только часть ip адресов в список. В настоящий момент времени еще необходимо добавлять все ip адреса, что
резольвятся DNS по данному домену и всем его субдоменам. Если посмотреть трафик к этим доменам, там не всегда полное пересечение по ip с теми, что получены от TLS HOST.
Но нужно учесть нюанс, упомянутый
GMX в предыдущем сообщении, ответ DNS на соответствующий запрос должен быть из той же географической зоны, куда ходит ваш VPN. Для разных регионов, разные пулы ip из CDN. Именно поэтому недостаточно просто взять и добавить в Address List наименование host.com и думать, что теперь всё завернется в канал. Современные порталы разный контент грузят с разных субдоменов, расположенных на разных ip (и всё это с оглядкой на геозоны CDN). Использование маски, например, *.host.com в перехвате DNS ответов решает это полностью (об этом ниже). Либо самостоятельно изучите трафик и посмотрите все субдомены к которым идёт обращение. В принципе, можно попробовать их всех прописать вручную в Address List как a.host.com, b.host.com и т.д., но некоторые порталы создают такие субдомены динамически и там поможет только маска *. И еще раз про геозону DNS, если у вас инста резольвится через московский cloudflare, а впн бегает в Амстердам, то есть шанс словить connection refused у сайта, делайте всё красиво - в одной геозоне vpn и dns resolver.
Что касаемо перехвата, то перехватить ip прилетающие в качестве ответов на DNS request нужного домена стандартными средствами ROS не получится. Решения кастомные в принципе есть, разные способы, разные плюсы и минусы. Каждый сам изобретает свой велосипед. Я сделал у себя даже в рилтайме добавление DNS answer в Address List. Ни одного ip не теряется, все открывается сразу. И какие там субдомены, сколько их - у меня голова не болит.
Получаемое решение именно через перехват DNS request/answer - очень гибкое. Заворачивать в канал можно выборочно субдомены, а можно домены целиком, или даже полностью доменные зоны. С тем вектором, как развивается криптографическая защита трафика, работоспособность одного лишь способа TLS HOST лишь временна. Закроют это поле шифром или сам пакет установления связи TLS и всё, его не прочесть. Если мне не изменяет память, в TLS 1.3 уже можно скрывать это поле по желанию. Сохраняйте контроль над DNS запросами за собой, в этом решение.