Поставете сервер за Android DNS за мобилна мрежа security Блог за безбедност на ИТ Кукец

1. Поставките се исечени

Со секоја верзија на Android, Google дополнително ја ограничи можноста за прилагодување на DNS серверот за мрежата на мобилни податоци. Сепак, не сакав да го прифатам тоа, бидејќи имам мала доверба во DNS-серверите на мојот (мобилен) провајдер. Давателите честопати најавуваат DNS барања, ги користат/споделуваат овие информации со трети страни или цензурираат повикување на одредени адреси. Доволно причина да се префрлите на алтернативни DNS сервери.

поставете

Ако сакате да ги следите овие упатства, вашиот уред со Android мора да биде вкоренет и веќе треба да бидете запознаени со прилагодените скрипти на AFWall +. Во оваа статија ви презентирам две различни решенија кои се „принудени“ со употреба на правила за правила iptables.

2. Андроид и (мобилниот) ДНС-сервер

Вашиот уред со Android обично има разни мрежни интерфејси, т.н. интерфејси. Комуникацијата во мрежата WiFi се одвива, на пример, преку wlan0 Интерфејс, податоците за мобилната мрежа се пренесуваат преку интерфејсот rmnet0 (Ознаката може да варира) и интерфејсот е за VPN конекции do0 резервиран.

За интерфејсот wlan0 можете да го конфигурирате DNS-серверот под поставките:

  • Поставки → WiFi tap Допрете долг прст на вашата активна WiFi конекција → Променете ја мрежата.
  • Проверете го полето за "Покажи напредни опции" и потоа изберете "Статички" за поставките на IP.
  • Скролувајте надолу додека не ги пронајдете двете поставки „DNS 1“ и „DNS 2“.
  • Внесете нов DNS сервер за DNS 1 и DNS 2. Еве неколку предлози за бесплатни и нецензурирани DNS сервери без најавување.

За мобилниот интерфејс (rmnet0), сепак, не е можно да се прилагоди DNS-серверот преку графичко мени. До Android 6.0.0, сепак, можевте да пристапите до терминал помош.

2.1 До Android 4.3

До Android 4.3, DNS-серверот за мобилниот интерфејс (rmnet0) сè уште може да се постави со команда:

Веднаш штом ќе се случи нова врска (повторно поврзете се) со мрежата на мобилни податоци, овие команди мора повторно да се извршат. Дури и тогаш, имаше смисла да се работи со прилагодена скрипта за AFWall +, која повторно ги извршува командите секогаш кога ќе се смени врската со податоци или интерфејс (LAN, WLAN, мобилни податоци, итн.) И DNS-серверот пренесен од давателот на мобилен телефон пребришува.

2.2 До вклучително и Андроид 6.0.0

Од Андроид 4.3 до и со вклучена верзија 6.0.0, DNS-серверот за мобилниот интерфејс (rmnet0) потоа може да се постави со друга команда (ndc). Сепак, командите варираат во скоро секоја верзија на Android и тешко е да се најде точната синтакса. На пример, следниов команден сет е точен за Android 6.0.0:

Секој пат кога врската ќе се смени (на пр. WLAN -> мобилни податоци), поставките се презапишуваат повторно. Затоа, има смисла да се работи со AFWall + и тука.

2.3 Од Android 6.1.x

Најдоцна од Андроид 6.1.x, Гугл ги отстрани сите команди со кои може да се влијае на мобилниот ДНС-сервер за интерфејсот rmnet0. Затоа, DNS-серверите веќе не можат да се менуваат со употреба на конвенционални средства; наместо тоа, потребни се специјални апликации како што се DNS Changer или Engelsiz. Сепак, сите споменати алатки имаат еден голем недостаток: Тие иницираат еден локално VPN тунели за да влијаат на DNS серверите на мобилната врска - исто така, тие не се со отворен извор.

3. iptables и AFWall+

Со посебни правила за iptables и Сопствени написи на AFWall + веќе беше можно да се препратат сите DNS барања до одреден DNS сервер - и да се "заобиколи" мобилниот DNS сервер:

Но, фрагментот на кодот имаше еден недостаток: DNS-серверот беше препишан за сите интерфејси, вклучително и за вашиот дом WLAN. Ова е особено непрактично ако филтрирате реклами и тракери во вашата мрежа со дупка за пи или слично решение.

3.1 Решение 1: Ваш сопствен DNS сервер за интерфејсот rmnet0

Решението е многу едноставно: Секогаш кога DNS-барање (порта 53 TCP/UDP) е примено од уредот преку rmnet0 Интерфејсот остава (-o rmnet +), пакетот е испратен на IP-адресата 85.214.20.141 - DNS-серверот на дигиталната храброст. Не е важно кој DNS-сервер е поставен од вашиот оператор за мобилни телефони, следниве правила за iptables "го присилуваат" барањето до DNS-серверот по ваш избор за мобилен интерфејс

3.2 Решение 2: Ваш сопствен DNS-сервер за домашен WLAN

Решението 1 работи беспрекорно, но според мене има мал недостаток: Ако се најавите на трети лица WLAN, обично ќе ви биде доделен ДНС-сервер преку DHCP. Лично, сепак, јас исто така би сакал да користам ДНС-сервер по мој избор во други мрежи WLAN. Ова може да го постигнам со следната фрагмент од кодот:

Што се случува овде? Сите пребарувања на ДНС што не доаѓаат од домашната мрежа (192.168.150.0/24) се проследуваат до ДНС-серверот на Дигитална храброст. За да може ова навистина да работи, надворешната мрежа WLAN не смее да го користи истиот опсег на IP адреси (192.168.150.0/24) како вашата домашна мрежа. Меѓутоа, ако тоа се случи, тогаш сите барања за DNS едноставно се пренесуваат на DNS серверот пренесен од DHCP - така да нема прекин на воздухот.

Со оваа варијанта, DNS-барањата во мобилната мрежа секогаш одат на DNS-серверот што сте го дефинирале. Решението 2 во основа гарантира само дека DNS-серверот што го сакате е користен и во други мрежи WLAN.

Благодарение на Марко од просторијата XMPP, кој даде решителен придонес кон ова второ решение.

Забелешка

3.3 Потврдување на DNS серверот

Потоа, правилата за iptables за сопствената скрипта на AFWall + мора да бидат проверени. На крајот на краиштата, постои само една варијанта која секогаш работи правилно: Поврзете го вашиот паметен телефон Андроид со вашиот компјутер со USB кабел и потоа користете ADB:

Потоа, на конзолата ќе ги видите сите пакети што влегуваат и излегуваат преку портата 53. Можете да го користите ова за јасно идентификување на DNS-серверот што се користи во мобилната мрежа - ако rmnet0 е активен и wlan0 е неактивен:

И, исто така, во WLAN - ако wlan0 е активен и rmnet0 е неактивен:

Друга варијанта се услугите преку Интернет, кои, сепак, не секогаш даваат точен резултат:

4. Заклучок

Решението 1 треба да работи на сите уреди што имаат пристап до iptables. Значи, не мора да се мачите со терминални команди на постарите верзии на Android, туку едноставно можете да користите iptables или AFWall + во комбинација со CustomScript.

Од Андроид 6.1.x, колку што сум запознаен во моментов, немате друг избор освен да го пребришете мобилниот ДНС-сервер на вашиот оператор на мобилна мрежа користејќи ги презентираните множества правила iptables. Јас лично користам решение 2 и исто така го вметнав во мојот AFWall + CustomScript.

Извори на слики:

За авторот

Јас се викам Мајк Кукец и му го пишувам блогот безбедност- и релевантни за заштита на податоците Правење теми полесно разбирливи и достапни за секого.

Во мојата хонорарна работа како Пентестер (Кукец ИТ-безбедност) Јас влегувам во улогата на „хакер“ и барам слаби точки во ИТ-системите, веб-апликациите и апликациите. Понатаму, јас сум Предавач за ИТ безбедност на двојниот универзитет во Карлсруе и меѓу другото како автор за компјутерското списание c’t.

Блогот Кукец или мојата личност редовно е застапувана во медиумите (хејзе преку Интернет, Зидојче Цајтунг, итн.).

Доколку сакате да бидете информирани за најновите објави, имате неколку опции за следење на блогот: