Állítsa be az Android DNS-kiszolgálót a mobilhálózathoz ⋆ Kuketz IT biztonsági blog
1. A beállítások levágva
Az Android minden verziójával a Google tovább korlátozta a DNS-kiszolgáló mobiladat-hálózathoz történő adaptálásának lehetőségét. Ezt azonban nem akartam elfogadni, mert kevéssé bízom a (mobil) szolgáltatóm DNS-kiszolgálóiban. A szolgáltatók gyakran naplózzák a DNS-kéréseket, felhasználják/megosztják ezeket az információkat harmadik felekkel, vagy cenzúrázzák bizonyos címek hívását. Elég ok arra, hogy alternatív DNS-kiszolgálókra váltson.

Ha követni kívánja ezeket az utasításokat, akkor androidos eszközének gyökérzetet kell készítenie, és már ismernie kell az AFWall + CustomScripteit. Ebben a cikkben két különböző megoldást mutatok be, amelyeket az iptables szabálykészletek "kényszerítenek".
2. Android és a (mobil) DNS-szerver
Android-eszközén általában különféle hálózati interfészek vannak, úgynevezett interfészek. A WiFi hálózatban a kommunikáció például a wlan0 Interfész, a mobilhálózat adatait az interfészen keresztül továbbítják rmnet0 (A megnevezés változhat), és az interfész VPN-kapcsolatokra szolgál do0 fenntartott.
A wlan0 felülethez a DNS-kiszolgálót a beállítások alatt konfigurálhatja:
- Beállítások → WiFi → Hosszú ujjal koppintson az aktív WiFi-kapcsolatra → Hálózat módosítása.
- Jelölje be a "Speciális beállítások megjelenítése" jelölőnégyzetet, majd az IP-beállításokhoz válassza a "Statikus" lehetőséget.
- Görgessen lefelé, amíg meg nem találja a két beállítást: "DNS 1" és "DNS 2".
- Adjon meg egy új DNS-kiszolgálót a DNS 1 és a DNS 2 számára. Íme néhány javaslat az ingyenes és cenzúrázatlan naplózás nélküli DNS-kiszolgálókról.
A mobil interfész (rmnet0) esetében azonban nem lehetséges a DNS-kiszolgáló adaptálása grafikus menü segítségével. Az Android 6.0.0-ig azonban elérheti a terminál Segítség.
2.1 Akár Android 4.3-ig
Android 4.3-ig a mobil interfész (rmnet0) DNS-kiszolgálója továbbra is parancs segítségével állítható be:
Amint új kapcsolat jön létre (újracsatlakozás) a mobil adathálózathoz, ezeket a parancsokat újra végre kell hajtani. Akkor is volt értelme az AFWall + egyedi szkriptjével dolgozni, amely minden alkalommal újra végrehajtja a parancsokat, amikor az adatkapcsolat vagy egy interfész (LAN, WLAN, mobil adat, stb.) Megváltozik, és a mobiltelefon szolgáltatótól továbbított DNS-szerver felülírja.
2.2 Akár Android 6.0.0-ig
Az Android 4.3-tól a 6.0.0-ig terjedő verzióig a mobil felület DNS-kiszolgálója (rmnet0) beállítható egy másik paranccsal (ndc). A parancsok azonban az Android szinte minden verziójában eltérnek, és nehéz megtalálni a helyes szintaxist. Például a következő parancskészlet helyes az Android 6.0.0 esetében:
Minden alkalommal, amikor a kapcsolat megváltozik (pl. WLAN -> mobil adat), a beállítások újra felülíródnak. Ezért van értelme itt is dolgozni az AFWall + programmal.
2.3 Android 6.1.x verzióról
Legkésőbb az Android 6.1.x verzióból a Google eltávolított minden olyan parancsot, amellyel az rmnet0 interfész mobil DNS-kiszolgálója befolyásolható. A DNS-kiszolgálókat ezért már nem lehet hagyományos eszközökkel megváltoztatni, ehelyett speciális alkalmazásokra, például DNS-váltóra vagy Engelsizre van szükség. Az összes említett eszköznek azonban van egy fő hátránya: ők kezdeményeznek egyet helyi VPN-alagutak a cellás kapcsolat DNS-kiszolgálóinak befolyásolására - ezek sem nyílt forráskódúak.
3. iptables és AFWall+
Speciális iptables szabályokkal és az AFWall + CustomScripteivel már lehetett továbbítani az összes DNS-kérést egy adott DNS-kiszolgálóra - és "megkerülni" a mobil DNS-kiszolgálót:
De a kódrészletnek egyetlen hátránya volt: A DNS-kiszolgáló felül lett írva az összes interfészre, beleértve az otthoni WLAN-t is. Ez különösen nem praktikus, ha a hálózaton lévő hirdetéseket és nyomkövetőket egy lyukkal vagy hasonló megoldással kiszűri.
3.1 1. megoldás: Saját DNS-kiszolgáló az rmnet0 interfészhez
A megoldás nagyon egyszerű: Amikor egy DNS-kérést (53-as port TCP/UDP) küldünk az eszközre a rmnet0 Az interfész elhagyja (-ormnet +), a csomagot elküldik a 85.214.20.141 IP címre - a digitális bátorság DNS szerverére. Nem számít, hogy melyik DNS-kiszolgálót állította be a mobiltelefon-szolgáltató, a következő iptables-szabályok "kényszerítik" a lekérdezést a választott DNS-kiszolgálóra a mobil interfész számára:
3.2 2. megoldás: Saját DNS-kiszolgáló az otthoni WLAN számára
Az 1. megoldás hibátlanul működik, de véleményem szerint van egy kis hátránya: Ha harmadik féltől származó WLAN-ba jelentkezik be, akkor általában a DHCP-n keresztül DNS-kiszolgálót kapunk. Személy szerint azonban szeretnék egy választott DNS-kiszolgálót is használni más WLAN-hálózatokban. Ezt a következő kódrészlettel érhetem el:
Mi történik itt? Minden olyan DNS-lekérdezést, amely nem az otthoni hálózatból származik (192.168.150.0/24), továbbítja a Digital Courage DNS-kiszolgálójának. Annak érdekében, hogy ez valóban működjön, a külső WLAN-hálózatnak természetesen nem kell ugyanazt az IP-címtartományt (192.168.150.0/24) használni, mint az otthoni hálózatot. Ha mégis, akkor az összes DNS-kérést egyszerűen továbbítja a DHCP által továbbított DNS-kiszolgálóra - így nincs törés a levegőben.
A mobilhálózat DNS-kéréseit mindig az Ön által definiált DNS-kiszolgálóra küldjük, még ezzel a változattal is. A 2. megoldás alapvetően csak azt biztosítja, hogy a kívánt DNS-kiszolgálót más WLAN-hálózatokban is használják.
Köszönet az XMPP teremből származó Marco-nak, aki döntő mértékben hozzájárult ehhez a második megoldáshoz.
jegyzet
3.3 A DNS-kiszolgáló ellenőrzése
Ezután ellenőrizni kell az iptables szabálykészleteket az AFWall + egyéni szkriptjéhez. Végül csak egy változat működik mindig megfelelően: Csatlakoztassa Android-okostelefonját a számítógépéhez az USB-kábellel, majd használja az adb-t:
Ezután a konzolon megmutatja az összes csomagot, amely az 53-as porton keresztül megy be és ki. Ezzel egyértelműen azonosíthatja a mobilhálózatban használt DNS-kiszolgálót - ha az rmnet0 aktív és a wlan0 inaktív:
És WLAN-ban is - ha a wlan0 aktív és az rmnet0 inaktív:
Egy másik változat az online szolgáltatások, amelyek azonban nem mindig nyújtják a helyes eredményt:
4. Következtetés
Az 1. megoldásnak működnie kell minden olyan eszközön, amely hozzáfér az iptables-hez. Tehát nem kell bajlódnia a régebbi Android verziók terminálparancsaival, hanem egyszerűen használhatja az iptables vagy az AFWall + szolgáltatásokat a CustomScripts-kel együtt.
Az Android 6.1.x verziótól kezdve, amennyire jelenleg tudom, nincs más választása, mint a bemutatott iptables szabálykészletek segítségével felülírnia a mobilszolgáltatója mobil DNS-szerverét. Személy szerint a 2. megoldást használom, és ezt beépítettem az AFWall + CustomScript-be is.
Képforrások:
A szerzőről
A nevem Mike Kuketz, és ennek a blognak írok Biztonság- és adatvédelem releváns A témák könnyebb megértése és mindenki számára elérhetővé tétele.
Szabadúszó munkám során as Pentester (Kuketz IT-Security) Belecsúszok a »hacker« szerepébe, és az IT rendszerek, a webalkalmazások és az alkalmazások gyenge pontjait keresem. Továbbá az vagyok Előadó az informatikai biztonságért a karlsruhei duális egyetemen és többek között a számítógépes magazin szerzőjeként c’t.
A Kuketz blogot vagy személyemet rendszeresen képviselik a médiában (heise online, Süddeutsche Zeitung stb.).
Ha szeretne értesülni a legfrissebb bejegyzésekről, több lehetősége van a blog követésére: