1 votes

Comment utiliser le fichier "/etc/hosts" comme seul DNS sur Android ?

Sur mon appareil Android, je dois bloquer l'accès à tous les sites Web, à l'exception de ceux qui figurent sur une liste blanche. Je sais que sur le bureau de Windows, je peux dresser la liste des hôtes autorisés dans le fichier hosts, puis faire passer le DNS de la carte réseau de l'obtention automatique à l'obtention automatique. 127.0.0.1 . Et maintenant je ne peux accéder qu'aux sites web du fichier hosts.

J'ai essayé de faire la même chose en ajoutant des hôtes autorisés dans le fichier system/etc/hosts sur Android et ensuite j'ai ajouté la ligne

new_domain_name_servers="127.0.0.1 $new_domain_name_servers"

au début du fichier /etc/dhcpcd/dhcpcd-hooks/20-dns.conf tel que décrit par le lien .

Et puis j'ai redémarré mon appareil.

Mais je peux toujours accéder à tous les sites web, donc la solution ne fonctionne pas. Et même si j'ajoute simplement un site Web à résoudre en tant que 127.0.0.1 dans le fichier hosts et que je vide le cache du navigateur, le site Web est toujours ouvert.

PS : Je ne suis intéressé que par une solution qui pourrait être réalisée sur un appareil rooté uniquement (Android 4.0.4).

2voto

Irfan Latif Points 16863

Ajouter les hôtes autorisés à /etc/hosts et définissez ces règles de pare-feu pour bloquer toute requête DNS sortante sur le port UDP standard. 53 :

~# iptables -I OUTPUT -p udp --dport 53 -j REJECT

* Peut aussi utiliser moins grossier DROP à la place de REJECT

Pour être sûr, bloquez également le port TCP :

~# iptables -I OUTPUT -p tcp --dport 53 -j REJECT

iptables fait partie des versions stock d'Android. Vous devez ajouter ces règles à chaque démarrage. Utilisez init.d ou définir init service : Comment lancer un exécutable au démarrage ?

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X