1 votos

¿Cómo usar el archivo "/etc/hosts" como único DNS en Android?

En mi dispositivo basado en Android necesito bloquear el acceso a todos los sitios web excepto aquellos que están en una lista blanca. Sé que en Windows de escritorio puedo enumerar los hosts permitidos en el archivo hosts y luego cambiar el DNS en el adaptador de red de obtenido automáticamente a 127.0.0.1. Y ahora solo puedo acceder a los sitios web de la lista de hosts.

He intentado lo mismo agregando hosts permitidos en el archivo system/etc/hosts en Android y luego agregué la línea

new_domain_name_servers="127.0.0.1 $new_domain_name_servers"

al principio del archivo /etc/dhcpcd/dhcpcd-hooks/20-dns.conf como se describe en el enlace.

Y luego reinicié mi dispositivo.

Pero todavía puedo acceder a todos los sitios web, por lo que la solución no funciona. E incluso si solo agrego un sitio web para que se resuelva como 127.0.0.1 en el archivo hosts y limpio la caché del navegador, el sitio web aún se abre.

PD: Solo estoy interesado en una solución que se pueda realizar en un dispositivo rooteado (Android 4.0.4)

2voto

Jack Wade Puntos 231

Agrega hosts permitidos a /etc/hosts y define estas reglas de firewall para bloquear cualquier consulta DNS saliente en el puerto UDP estándar 53:

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

* También se puede usar el objetivo DROP en lugar de REJECT

Para estar más seguro, también bloquea el puerto TCP:

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

iptables es parte de las versiones estándar de Android. Necesitas agregar estas reglas en cada inicio. Usa un script init.d o define un servicio init: ¿Cómo ejecutar un ejecutable en el inicio?

0 votos

¿Quieres decir que si apago mi dispositivo y luego lo enciendo de nuevo, las reglas de bloqueo no funcionarían?

0 votos

@stckvrw Las reglas de iptables no se guardan en ningún lugar. Necesitas aplicar la(s) regla(s) en cada reinicio. Entonces el bloqueo definitivamente funcionará.

0 votos

¿Existe alguna forma de bloquear todos los hosts excepto aquellos que están en los hosts de forma permanente? Por ejemplo, ¿cambiando algún archivo en el dispositivo con acceso de root?

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X