droidwall a fondo

31
Droidwall a fondo. Tutorial para el cortafuegos Droidwall 1.5.7 Publicado el 20/07/2012 de loquehice Para disfrutar de esta estupenda aplicación open source de Rodrigo Zechin Rosauro (un desarrollador de São Paulo (Brasil) al que le estoy muy agradecido por su esfuerzo desinteresado) me fue necesario compilar y flashear el kernel, pero ha valido la pena. En mi Samsung Galaxy Y Pro B5510 salía el error “no chains/target/match by that name” que pude solucionar como detallo en esta otra entrada . He tratado de hacer un tutorial lo más completo posible para animar a que cada vez más gente utilice el Droidwall. Serán bienvenidas las aportaciones, correcciones y sugerencias en los comentarios. Contenido 1. Listado de aplicaciones 2. Modos de funcionamiento 3. Opciones del menú 4. Añadir el widget 5. Localización de Droidwall 6. Forma de trabajo 7. Las reglas de iptables 8. El script "droidwall.sh" 9. El estado inactivo 10. Custom scripts. Añadir reglas personalizadas 11. Exportar el Log a un fichero 12. Algunos problemas que pueden surgir 13. Palabras finales 14. Enlaces 1. El listado de aplicaciones

Upload: thonchy

Post on 14-Sep-2015

17 views

Category:

Documents


0 download

DESCRIPTION

Celus

TRANSCRIPT

Droidwall a fondo. Tutorial para el cortafuegos Droidwall1.5.7Publicado el20/07/2012deloquehicePara disfrutar de esta estupenda aplicacin open source de Rodrigo Zechin Rosauro (un desarrollador de So Paulo (Brasil) al que le estoy muy agradecido por su esfuerzo desinteresado) me fue necesario compilar y flashear el kernel, pero ha valido la pena. En mi Samsung Galaxy Y Pro B5510 sala el error no chains/target/match by that name que pude solucionar como detallo enesta otra entrada.He tratado de hacer un tutorial lo ms completo posible para animar a que cada vez ms gente utilice el Droidwall. Sern bienvenidas las aportaciones, correcciones y sugerencias en los comentarios.Contenido1. Listado de aplicaciones2. Modos de funcionamiento3. Opciones del men4. Aadir el widget5. Localizacin de Droidwall6. Forma de trabajo7. Las reglas de iptables8. El script "droidwall.sh"9. El estado inactivo10. Custom scripts. Aadir reglas personalizadas11. Exportar el Log a un fichero12. Algunos problemas que pueden surgir13. Palabras finales14. Enlaces1. El listado de aplicacionesEl Droidwall es un cortafuegos que utiliza el iptables de linux para filtrar los paquetes y necesita tener acceso root. Muestra un listado con las aplicaciones, y hace posible de manera muy sencilla que podamos seleccionar qu aplicaciones pueden salir y cuales no. Adems nos da la facultad de escoger por qu interfaz le permitimos la salida: wifi o 3G (esta expresin engloba los interfaces 2G, 3G, 4G, etc).

A la izquierda de cada fila aparece, cuando lo hay, el icono de cada aplicacin. A continuacin estn dos columnas de casillas en las que marcar cuando damos permiso a una aplicacin (wifi y 3G). El listado est compuesto por todas las aplicaciones instaladas que tienen permiso para acceder a internet (hasta la versin 1.3.7 las mostraba todas), y tambin por lo que su creador ha llamado aplicaciones especiales, que son las siguientes:Any application: marcar esta opcin es lo mismo que marcar todas las aplicaciones una a una, pero tiene la ventaja de que emplea una sola regla en iptables haciendo ms rpida la generacin de reglas y el filtrado de paquetes.Linux Kernel: desde el kernel tambin puede haber accesos a la red, como estos intentos de conexin a direcciones ip de la red de google:

Root: marca de una sola vez todas las aplicaciones que estn siendo ejecutadas con permisos de root.Media server: para reproducir vdeos desde la red. Si no est marcada no se pueden ver los vdeos de youtube.VPN networking: conexines a una red privada virtual.Linux shell(uid:2000): para establecer conexiones adb sobre wifi .En el listado de aplicaciones que muestra Droidwall aparecen primero las que tienen alguna casilla marcada, y a continuacin todas las dems por orden alfabtico.2. Modos de funcionamientoPulsando en la zona de arriba encima del listado de aplicaciones podemos elegir el criterio a seguir para generar las reglas en iptables.

lista blanca: permitir salida a red a las aplicaciones seleccionadaslista negra: bloquear salida a red a las aplicaciones seleccionadasPara mi gusto da ms tranquilidad usar el modo lista blanca. As nos aseguramos que slo tendrn acceso al exterior las aplicaciones a las que se lo permitamos expresamente. La idea es partir de todo cerrado e ir permitiendo lo que vamos necesitando: si necesitamos enviar sms, le permitimos la salida por 3G a la apliacin de mensajera que utilicemos. si queremos ver vdeos desde la aplicacin youtube, le permitimos la salida a dicha aplicacin (para las bsquedas) y tambin a otra llamada Media Server (para reproducir los vdeos)3. Opciones del menAl pulsar el botn men nos aparecen estas opciones:

Estado del firewallPor un error en la traduccin al espaol las cadenas de ambos estados se han cambiado. Cuando est en verde est activo (aunque ponga Firewall inactivo y viceversa)En el cdigo fuente se puede apreciar este error de traduccin:

El estado del cortafuegos nada ms instalar Droidwall es inactivo. No era as inicialmente, pero haba usuarios que lo instalaban y se olvidaban de aplicar las reglas, quedando el cortafuegos en estado activo pero sin reglas de filtrado.Estado del LogCuando el Log est activo se aaden a las reglas del cortafuegos las que permite loguear los paquetes rechazados. Al dejarlo inactivo se suprimen dichas reglas.La posibilidad de ver el Log se aadi en la versin 1.4.2 y fue un avance muy importante, condicionado eso s por la existencia en el kernel del mdulo que aade el LOG target.Aplicar reglasAl pulsar este botn Droidwall da instrucciones a iptables para que genere y aplique las reglas. Como esto requiere acceso al kernel el cortafuegos necesita permisos de superusuario (de ah la necesidad de tener el telfono rooteado) y aparece el siguiente mensaje del sistema operativo:

la ruta de la parte final del texto es el lugar de la memoria interna donde se encuentra el script que utiliza Droidwall para generar las reglas, cuyo nombre es droidwall.sh. Ms adelante hablaremos de l.Quedan unas cuantas opciones del men que el desarrollador ha incluido en el botnMspor falta de espacio.

mostrar log: muestra para cada aplicacin informacin sobre los paquetes interceptados. En el Log se detallan los intentos de conexin por parte de aplicaciones que no tienen la salida a red permitida, como en este ejemplo:

La informacin proporcionada es: aplicacin que realiza el intento de conexin, uid de la aplicacin, nmero de paquetes interceptados y direccin ip de destino.En caso de que el Log est vaco sale el mensajemostrar reglas: aqu se pueden ver las reglas generadas en iptables

borrar log: el Log de droidwall se almacena en la memoria interna y con esta opcin lo borramos.definir contrasea: para el que quiera acceder a Droidwall de forma segura

definir script personalizado: los usuarios con conocimientos de iptables pueden hacer su propio script. Ms adelante veremos cmo.4. Aadir el widgetEn la versin 1.4.0 se incluy un widget para poder cambiar entre los estados activo/inactivo directamente desde el home. Para aadir el widget de Droidwall, desde home pulsar un par de segundos en la pantalla y aparece el men de aadir a pantalla de inicio, seleccionar Widgets y ya est.5. Localizacin de DroidwallLos ficheros de Droidwall se localizan en la siguiente ruta de nuestro telfono correspondiente a la particin /data de la memoria interna:/data/data/com.googlecode.droidwall/Aqu se almacena la estructura de directorios de la aplicacin, consistente en tres carpetas

En app_bin se encuentran tres ficheros:busybox_g1: desde la versin 1.4.2 se incluye un binario de busybox, que incluye muchas herramientas de Unix, algunas de las cuales necesita Droidwall.droidwall.sh: es un script que se genera cada vez que se van a actualizar las reglas de iptables. Una vez generado se ejecuta para que iptables cree las reglas.iptables_armv5: es el binario de iptables compilado para la arquitectura ARM que necesita Droidwall. Desde la versin 1.5.2 se incluye este binario cuya versin de iptables es la 1.4.10. El binario iptables que trae el kernel (/system/bin/iptables) en los Gingerbread es la 1.3.7 y no sirve para Droidwall. Aunque inicialmente Droidwall utilizaba el iptables del sistema, el autor compil un kernel ms actualizado y lo incluy desde la versin 1.4.0 en la aplicacin para que se pudiese utilizar desde ms modelos de telfono.6. Forma de trabajoDroidwall no est permanentemente activo como los antivirus u otros cortafuegos, ya que es slo un front-end para iptables/netfilter. El trabajo de interceptar los paquetes lo hace netfilter desde el kernel de linux.

La intencin de su creador fue que Droidwall no tuviera que estar residente en memoria constantemente corriendo como un servicio todo el tiempo, sino que se activase solamente ante determinados eventos para luego volverse a cerrar. Esta decisin tiene sus consecuencias, como que desde Droidwall no se pueda ir almacenando el Log entero en un fichero.Los eventos que provocan la activacin de Droidwal (listados desde la aplicacin Autostarts) son:

Vamos a ver qu es lo que pasa cuando se produce cada uno de estos eventos.After Startup: Si tenemos activado el cortafuegos, el Droidwall se ejecuta cada vez que se encienda el telfono, apareciendo el mensaje del sistema que avisa de que se le han concedido permisos de superusuario. Simplemente ejecuta el script almacenado en la ruta /data/data/com.googlecode.droidwall/app_bin/droidwall.sh, que se encarga de mandar a iptables que genere las reglas para que netfilter pueda hacer el filtrado de paquetes.A continuacin Droidwall se cierra y queda actuando netfilter desde el kernel.Application installed: este evento ocurre cada vez que instalamos una aplicacin. En ese caso Droidwall debe activarse, incluirla en el script y ejecutarlo para que iptables genere las nuevas reglas . Si est trabajando en modo lista blanca la aplicacin tendr por defecto denegada la salida a red. En modo lista negra no lo he probado.Cuando entramos en Droidwall nos muestra en primer lugar las aplicaciones instaladas desde la ltima vez que entramos, para que podamos elegir si queremos marcar alguna de las casillas sin tener que buscar por el listado. En segundo lugar muestra las que tienen alguna casilla marcada, y por ltimo todas las dems por orden alfabtico.Application removed: despus de desinstalar una aplicacin tambin hay que actualizar las regas de la misma manera que en el caso anterior, eliminando de ellas si es necesario la aplicacin que acabamos de desinstalar.Widget updating: Droidwall viene con un widget para que se pueda cambiar el estado del cortafuegos de actuvo a inactivo desde el home. Este evento se produce cada vez que el usuario utiliza el widget.En este esquema vemos de manera grfica el funcionamiento de Droidwall activandose su proceso com.googlecode.droidwall ante ciertos eventos, as como la existencia o no de las reglas en iptables segn el estado del cortafuegos:

7. Las reglas de iptablesPara ver realmente cuales son las reglas con las que Droidwall configura en nuestro telfono es necesario instalar primero un emulador de terminal, como por ejemploeste, llamado Android Terminal Emulator de Jack Palevich (verweb del proyecto)

y teclear los siguientes comandos:su/data/data/com.googlecode.droidwall/app_bin/iptables_armv5 -L -v -nEl resultado es algo parecido a esto:

Para poder interpretar las reglas conviene tener una idea de cmo funciona iptables. Hay muchos tutoriales sobre iptables. Estos dos estn muy bien.IPTABLES. Manual prcticode Pello Xabier Altadill IzuraTutorial de IPtablesde Oskar AndreassonEn este esquema se muestra un poco de como funcionan las cadenas en iptables

Dentro de las cadenas se colocan las reglas de filtrado de paquetes.De todas formas no hace falta estudiarse a fondo los tutoriales. La forma en que Droidwall configura las reglas se puede ver con un ejemplo.En un telfono con Droidwall instalado y con las reglas aplicadas por ejemplo para rechazar el trfico 3G y permitir slo algunas aplicaciones por wifi, lo que aparecera al listar las reglas sera esto:Chain INPUT(policy ACCEPT 0 packets, 0 bytes)pkts bytes target prot opt in out source destinationChain FORWARD(policy ACCEPT 0 packets, 0 bytes)pkts bytes target prot opt in out source destinationChain OUTPUT(policy ACCEPT 0 packets, 0 bytes)pkts bytes target prot opt in out source destination0 0 droidwall all * * 0.0.0.0/0 0.0.0.0/0Chain droidwall(1 references)pkts bytes target prot opt in out source destination0 0 RETURN udp * * 0.0.0.0/0 0.0.0.0/0 udp dpt:530 0 droidwall-3g all * rmnet+ 0.0.0.0/0 0.0.0.0/00 0 droidwall-3gall * pdp+ 0.0.0.0/0 0.0.0.0/00 0 droidwall-3g all * ppp+ 0.0.0.0/0 0.0.0.0/00 0 droidwall-3g all * uwbr+ 0.0.0.0/0 0.0.0.0/00 0 droidwall-3g all * wimax+ 0.0.0.0/0 0.0.0.0/00 0 droidwall-3g all * vsnet+ 0.0.0.0/0 0.0.0.0/00 0 droidwall-3g all * ccmni+ 0.0.0.0/0 0.0.0.0/00 0 droidwall-3g all * usb+ 0.0.0.0/0 0.0.0.0/00 0 droidwall-wifi all * tiwlan+ 0.0.0.0/0 0.0.0.0/00 0 droidwall-wifi all * wlan+ 0.0.0.0/0 0.0.0.0/00 0 droidwall-wifi all * eth+ 0.0.0.0/0 0.0.0.0/00 0 droidwall-wifi all * ra+ 0.0.0.0/0 0.0.0.0/0Chain droidwall-3g(8 references)pkts bytes target prot opt in out source destination0 0 droidwall-reject all * * 0.0.0.0/0 0.0.0.0/0Chain droidwall-reject(2 references)pkts bytes target prot opt in out source destination0 0 LOG all * * 0.0.0.0/0 0.0.0.0/0 LOG flags 8 level 4 prefix `[DROIDWALL] 0 0 REJECT all * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachableChain droidwall-wifi(4 references)pkts bytes target prot opt in out source destination0 0 RETURN all * * 0.0.0.0/0 0.0.0.0/0 owner UID match 10140 0 RETURN all * * 0.0.0.0/0 0.0.0.0/0 owner UID match 10100 0 RETURN all * * 0.0.0.0/0 0.0.0.0/0 owner UID match 100270 0 RETURN all * * 0.0.0.0/0 0.0.0.0/0 owner UID match 100630 0 droidwall-reject all * * 0.0.0.0/0 0.0.0.0/0.NOTA: las dos reglas que estn en color rojo existen solamente si el LOG de Droidwall est puesto en estado activo. Se borran cuando pulsamos para desactivar el Log y se crean cuando pulsamos activar el Log.En primer lugar est la poltica por defecto para las cadenas INPUT, FORWARD y OUTPUT que en los tres casos es ACCEPT (tambin podra ser DROP)En la cadena OUTPUT hay una regla que manda todo el trfico a otra subcadena creada por el cortafuegos, llamadadroidwall. Esto quiere decir que todo el trfico de salida se encamina a dicha cadena en primer lugar.En la cadenadroidwallel trfico se manda a otras subcadenas segn el interfaz de salida, excepto el trfico UDP destinado al puerto 53, que se supone va destinado al DNS y se le aplica (con el RETURN) la poltica por defecto de la cadena OUTPUT que en este caso es ACCEPT. Esta regla (en rojo) slo se crea cuando lo necesita el Log.El trfico destinado a cualquier interfaz que sea por wifi se encamina a la cadenadroidwall-wifiy el trfico destinado a la red mvil a la cadenadroidwall-3g.En la cadena droidwall-3g todo el trfico se enva a la cadenadroidwall-reject, que es donde se va a tratar todo el trfico rechazado, envindolo al Log antes de rechazarlo para poder analizarlo posteriormente. La regla que est en rojo es la que hace que se genere un Log con los paquetes rechazados, y se crea siempre que est el Log activo.En la cadenadroidwall-wifiestn las reglas con las aplicaciones permitidas.Las dos primeras lneas las aade siempre droidwall para asegurarse que tengan acceso a red elDHCP(uid 1014) que nos permite recibir una direccin ip, y laconexin wifi(uid 1010). Los uid de nuestras aplicaciones estarn a partir del 10000 (cinco cifras), que seran las lneas tercera y cuarta. En el ejemplo tiene las UID 10027 y 10063.Vemos que lo que hace Droidwall es aadir dentro de la cadena OUTPUT una serie de subcadenas donde colocar sus reglas:

La idea de utilizar estas subcadenas personalizadas se puso en prctica en la versin 1.4.0 para evitar conflictos con otras aplicaciones que tambin utilizan iptables.Si lo que queremos es exportar las reglas a un fichero valdra este comando:su -> (ojo, este comando solo es necesario ejecutarlo una vez en cada sesin)/data/data/com.googlecode.droidwall/app_bin/iptables_armv5 -L -v -n > /mnt/sdcard/reglas.txt8. El scriptdroidwall.shCada vez que Droidwall necesita que iptables genere las reglas para netfilter lo que hace es ejecutar un script situado en:/data/data/com.googlecode.droidwall/app_bin/droidwall.shEn primer lugar busca el binario de busybox (el fichero busybox_g1), ya que necesita las utilidadesgrepyecho. Si no encuentra grep nos dar un error (The grep command is required. DroidWall will not work.), ya que esta herramienta es fundamental para Droidwall. A continuacin busca el binario que contiene a iptables (el fichero iptables_armv5) y una vez encontrado borra las reglas preexistentes (slo en las cadenas pertenecientes a Droidwall) y ejecuta los comandos para crear las nuevas reglas.El script que genera las reglas del ejemplo del apartado anterior lo puedes encontrar eneste enlace.Eldroidwall.shse vuelve a crear cada vez que se actualizan las reglas desde Droidwall: al inicio, al poner el cortafuegos en estado activo, al pulsar el botn Aplicar Reglas, y tambin si es necesario despus de instalar o desinstalar aplicaciones.9. El estado inactivoQu ocurre cuando pasamos Droidwall a estado inactivo? Para entenderlo veamos primero cuales son las reglas que quedan en iptables al desactivar el cortafuegos. Primero entramos en Droidwall y lo desactivamos. Nos salimos y entramos en el Terminal Emulator como hicimos ms arriba en el apartado Las reglas de iptables, e introducimos los comandos vistos para listar las reglas. Que sale? Pues esto:Chain INPUT(policy ACCEPT 0 packets, 0 bytes)pkts bytes target prot opt in out source destinationChain FORWARD(policy ACCEPT 0 packets, 0 bytes)pkts bytes target prot opt in out source destinationChain OUTPUT(policy ACCEPT 0 packets, 0 bytes)pkts bytes target prot opt in out source destination0 0 droidwall all * * 0.0.0.0/0 0.0.0.0/0Chain droidwall(1 references)pkts bytes target prot opt in out source destinationChain droidwall-3g(0 references)pkts bytes target prot opt in out source destinationChain droidwall-reject(0 references)pkts bytes target prot opt in out source destinationChain droidwall-wifi(0 references)pkts bytes target prot opt in out source destination.Son las mismas cadenas que antes pero se les han borrado las reglas. En la prctica es como si estuviesen solamente las tres cadenas INPUT, FORWARD y OUTPUT con sus polticas por defecto ACCEPT. No hay restricciones de trfico. Sin embargo aunque se han borrado las reglas, ha quedado intacta la estructura de subcadenas de Droidwall.Es importante entender que al dejar inactivo el cortafuegosestamos borrando todas las reglas existentes en las subcadenas de Droidwall. Las cadenas INPUT, FORWARD y OUTPUT no las toca.10. Custom scripts. Aadir reglas personalizadasEn la versin 1.5.3 de Droidwall su autor Rodrigo Zechin implement una peticin de algunos de los usuarios quesolicitabanque se pudieran personalizar las reglas. Aadi la opcinDefinir script personalizado(custom script), desde la que es posible cambiar la ruta y nombre del script que Droidwall va a ejecutar cada vez que necesite actualizar las reglas. Es decir, creamos un nuevo script, lo colocamos en el telfono y le decimos a Droidwall que lo ejecute siempre en lugar deldroidwall.sh.Al pinchar en dicha opcin, aparece un formulario con dos cuadros de texto.* En el primero debemos meter la nueva ruta de la siguiente manera: un punto . seguido de un espacio y a continuacin la ruta a nuestro script, como por ejemplo:

Y se pulsa el botn aceptar de abajo. Las reglas anteriores (slo las contenidas en las subcadenas de Droidwall) sern borradas antes de aplicar las del nuevo script. A partir de este momento nuestro script ser ejecutado en todos los casos en que antes se ejecutaba eldroidwall.sh. Tambin se posible meter varias lneas con el mismo formato indicando distintos scripts que deben ejecutarse uno a continuacin del otro. En caso de que se quiera volver a trabajar con eldroidwall.shse dejara el cuadro de texto en blanco y se le dara a aceptar.La ventaja de utilizar un script personalizado es poder aprovechar las capacidades de iptables con toda su potencia, aadiendo posibilidades de filtrado como puertos de origen y destino, direcciones ip, tipo de protocolo, estado de la conexin, etc.* El segundo cuadro de texto se refiere a otra opcin llamadaCustom shutdown script(script de apagado) consistente en definir otro script para que se ejecute cuando Droidwall pase al estado desactivado.

Elshutdown scriptes necesario en caso de que elcustom scriptaada reglas en cadenas distintas de las de Droidwall. Supongamos que nuestro custom script aadimos una regla a la cadena OUTPUT. Cada vez que sea ejecutado, aadir la misma regla duplicndola en iptables una y otra vez. Para evitar esto es posible borrar las reglas necesarias desde el shutdown script.Cada vez que pasemos el cortafuegos a estado inactivo se borrarn primero todas las reglas contenidas en las subcadenas de Droidwall, y a continuacin se borrarn las que definamos desde el shutdown script.Tanto en el custom script como el shutdown script las reglas deben escribirse como cadenas de texto. Pueden ir dentro de un fichero .sh referenciado como se indic ms arriba, o dentro de sus respectivos cuadros de texto, sin necesidad de colocar los ficheros de script en el telfono. Iptables debe invocarse mediante la variable $IPTABLES, como en el siguiente ejemplo:#bloquear la navegacin por internet$IPTABLES -A "droidwall" -p TCP --destination-port 80 -j "droidwall-reject"Cuando estn cubiertos ambos o alguno de los cuadros de texto del formulario de script personalizado, pulsaremos el boton Aceptar.Esta nueva posibilidad de scripts personalizados conlleva sin embargo ciertos riesgos ya que nuestros scripts siempre sern ejecutados como root. Por esa razn no debemos colocarlos en /sdcard ya que cualquier aplicacin podra modificar las reglas.La opcin decustom scriptest muy bien explicada por el autor (en ingles) con unos cuantos ejemplos de reglas enesta pgina.11. Exportar el Log a un ficheroCuando pulsamos la opcin de Mostrar Log, lo que hace Droidwall es ejecutar el comando:dmesg | $GREP DROIDWALLdmsegsaca por la salida estandar (la pantalla) los mensajes del kernel ygrepfiltra los que contengan la palabra DROIDWALL. Acordmonos ahora de las reglas incluidas en la cadena droidwall-reject:Chain droidwall-reject(2 references)pkts bytes target prot opt in out source destination0 0 LOG all * * 0.0.0.0/0 0.0.0.0/0 LOG flags 8 level 4 prefix `[DROIDWALL] 0 0 REJECT all * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable.La regla a la que hace referencia el listado es esta:$IPTABLES -A droidwall-reject -j LOG --log-prefix \"[DROIDWALL] \" --log-uidCada vez que se rechace un paquete, netfilter aade una lnea de Log a los mensajes del kernel, que contiene la clave [DROIDWALL] para que pueda ser facilmente filtrable. Esta es una de esas lneas:[ 110.878448] [DROIDWALL] IN= OUT=eth0 SRC=192.168.1.35 DST=67.214.210.43 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=10464 DF PROTO=TCP SPT=50203 DPT=443 WINDOW=5840 RES=0x00 SYN URGP=0 UID=10083 GID=10083Al mostrarnos el log, Droidwall no la ensea entera, sino que hace un resumen de todas las lneas de cada aplicacin informndonos de cuntos paquetes se bloquearon y a qu direcciones ip.

Lo ideal es que esta informacin tan preciada la pudiramos almacenar y conservar en un fichero, pero se necesitara que Droidwall tuviera un servicio activo todo el tiempo, lo cual no convenca a su creador.Sorry, but adding such a feature would require DroidWall to keep a service running 100% of the time, and I dont like this idea..Quien bloquea los paquetes que no cumplen las reglas y genera los mensajes de Log no es Droidwall sino el target LOG de iptables. Adems no los va metiendo en un fichero, sino en elkernel ring buffer(buffer de anillo del kernel). Este ring buffer es un archivo especial que se almacena en la memoria interna, en /proc/kmsg concretamente. Siempre tiene el mismo tamao porque va borrando las lneas ms antiguas a medida que aparecen las nuevas.Por eso ocurre a veces que al rato de consultar el LOG de Droidwall y ver paquetes bloqueados, volvermos a mirar y nos saca el mensaje de que est vaco. El comandodmesgque utiliza Droidwall para mostrar el Log no hace otra cosa sino mostrarnos por pantalla el kernel ring buffer filtrado convenientemente con elgrep. Un tiempo despus la informacin ha volado.Hay alguna forma de encaminar la salida dedmesghacia un fichero? Si que la hay:dmesg | grep DROIDWALL > /mnt/sdcard/droidwall.logDe esta manera nos vuelca a fichero las lineas de Log que hay en el kernel ring buffer en ese momento, pero no es la solucin definitiva que estamos buscando.Otra posibilidad es tratar de encaminar hacia un fichero el propio ring buffer:cat /proc/kmsg >> /mnt/sdcard/buffer.logCon este comando iremos almacenando en tiempo real todas las lineas nuevas que se van aadiendo al kernel ring buffer hasta que apaguemos el telfono o hagamos unVol.Down+c. El fichero generadobuffer.logpuede ser filtrado posteriormente en el PC o bien mostrado nuevamente por pantalla ya filtrado con:cat < /mnt/sdcard/buffer.log | grep DROIDWALLLos intentos de aplicarle el grep DROIDWALL directamente mientras se almacena elbuffer.logen la sdcard no me han dado resultado.Como curiosidad, cuando marcamos la opcin Borrar Log del men, se ejecuta el comandodmesg -c > /dev/nullque borra el ring buffer. Es decir, que cuando marcamos esa opcin lo que estamos haciendo es borrar no solamente los mensajes de Log relativos a Droidwall, sino el ring buffer completo. Si ahora metemos el comandodmesgno nos devolvera nada por estar el buffer vaco.12. Algunos problemas que pueden surgirSale mensaje de Log vaco y hace un rato no lo estabaComo hemos visto cuando utilizamos la opcin de mostrar Log estamos filtrando el kernel ring buffer. Este buffer se va sobreescribiendo y despus de un tiempo (no mucho) ya no estn los logs que antes s podamos ver. Por eso el Log no puede ser utilizado para almacenar y consultar posteriormente, sino para ocasiones puntuales.Si se quiere guardar un histrico slo se me ocurre encaminar hacia un fichero el ring buffer y filtrarlo posteriormente en el PC como hemos visto en el apartado anterior.Error Iptables: No chain/target/match by that nameDespus de instalar Droidwall, al pulsar en el men el botn que pasa a estado activo y de darle los permisos de superusuario requerido, aparece un mensaje con el texto:Error applying iptables rules. Exit code:11Iptables v1.4.10Iptables: No chain/target/match by that nameLo que ocurre es que al compilar el kernel de nuestro telfono han dejado deshabilitada la opcin CONFIG_NETFILTER_XT_METCH_OWNER. la cual permite que se incluya en el kernel el mdulo netfilter owner, necesario para que funcione Droidwall, pues es el que permite que iptables pueda distinguir qu aplicacin ha enviado cada paquete en el momento del filtrado.La nica solucin es sustituir el kernel por otro, bien actualizando toda la ROM, bien compilando un kernel apropiado y flashearlo en el telfono. Esta segunda opcin fuela que utilic.Trfico no filtrado por DroidwallPuede ocurrir que al iniciar el sistema se cuele algn trfico que debera haber sido filtrado, comoreportaalgn usuario. Al iniciarse el sistema operativo Adroid, por defecto empieza sin reglas en iptables. Da igual que cuando apaguemos el telfono Droidwall est en estado activo; las reglas no se conservan. En cuanto el telfono ha arrancado se produce el evento After_Startup y arrancan todas las aplicaciones que se activen con dicho evento. Puede ocurrir que Droidwall no sea la primera aplicacion en arrancar y hay unos instantes en que otra aplicacin puede conectarse a la red, ya que en esos momentos no hay reglas.

No es un problema de Droidwall en realidad. Se puede solucionar con un scrpit en el init.d, pero en algunos telfonos (en mio por ejemplo) no funciona. La solucin ms eficaz para dar soporte al init.d es flashear el ramdisk. Otra manera de implementarlo es mediente el fichero /etc/init_post.sh(que no forma parte del ramdisk) pero as no habra manera de controlar el orden de ejecucin de los scripts del init.d.Acceso a red por el puerto 53 cuando el Log est activo y Droidwall trabaja en modo lista blanca.Cuando vimos las reglas de iptables en el punto 7, en el ejemplo haba dos reglas marcadas de color rojo porque Droidwall slo las crea cuando est activo el Log. La primera de ellas no es estrictamente necesaria para que funcione el Log. Su propsito es que el Log tenga la posibilidad de traducir direcciones ip cuando estamos en modo lista blanca (todo cerrado excepto las aplicaciones marcadas). Segn el autor:"Allow DNS lookups on white-list for a better logging"La regla en cuestin es la siguiente:IPTABLES -A droidwall -p udp --dport 53 -j RETURNy permite que cualquier aplicacin pueda salir por el puerto 53 (en teora para utilizar los servicios DNS, pero en la prctica es un agujero de seguridad que puede ser utilizado por aplicaciones malintencionadas) cuando el Log est activo.Por otra parte, esta regla est situada dentro de la cadenadroidwall, es decir, antes de que discriminemos el trfico segn sea por wifi o 3G. Si alguien desea cerrar totalmente las salidas por 3G a cualquier aplicacin sencillamente no podra.Cuando un usuario le hizo notar este problema, el autor respondi que la caracterstica del Log no estaba pensada para estar activada permanentemente aunque era consciente que la mayora de la gente lo utilizaba de esa manera, as que iba a considerar la posibilidad de suprimir esa regla. Pero parece que al final decidi dejarlo como estaba.En este ejemplo vemos a la aplicacin Fruit Ninja, que an estando bloqueada puede acceder al DNS.

Sin embargo despus intenta conectarse por el puerto 443 y ya es bloqueada. La captura por cierto fue hecha conNetwork Log, que merece un tutorial aparte.Desafortunadamente al consultar el cdigo fuente comprobamos que la regla que nos ocupa, la que permite las salidas por el puerto 53, se aade despus de las reglas que podramos incluir los usuarios a travs del custom script y no al revs.

Esto elimina la posibilidad de borrarla nosotros desde el custom script.La posibilidad que nos queda a los que utilizamos el modo lista blanca es hacerle caso al autor teniendo el Log normalmente inactivo y slo activarlo para casos concretos, lo cual tiene sentido dada la rapidez con la que se pierden los logs al irse llenando el kernel ring buffer.13. Palabras finalesEsta aplicacin es el resultado de las mejoras introducidas por el autor desde la primera versin en Julio de 2009 hasta la ltima en Diciembre de 2011, tratando de atender las sugerencias y problemas de los usuarios. Por el momento parece que est discontinuada, ya que no he visto actividad del autor en los foros desde Febrero de 2012. Si es as espero que alguien tome el testigo y se puedan seguir aadiendo mejoras a este estupendo cortafuegos.Este tutorial no est terminado. Espero ir mejorndolo incorporando las posibles aportaciones que vayan llegando.14. Enlaces:Descargar Droidwall 1.5.7:http://droidwall.googlecode.com/files/droidwall-v1_5_7.apkCdigo fuente de la ltima versin de Droidwall:http://code.google.com/p/droidwall/source/browse/tags/v1.5.7?spec=svn250&r=250#v1.5.7Wiki donde los usuarios pueden exponer sus problemas (ya no est mantenida por el autor):http://code.google.com/p/droidwall/issues/listTu voto:Rate ThisRelacionadoObjetivo 3 - Controlar la salida a internet de las aplicacionesEn "Privacidad"Objetivo 3 (continuacin) - Droidwall: Error "No chain/target/match by that name" - Compilar el kernel del B5510En "Aplicaciones"Acceso Root para el Samsung Galaxy Y Pro GT-B5510 (I)En "B5510"Esta entrada fue publicada enPrivacidad,Seguridad,B5510,root,Aplicacionesy etiquetadaandroid,B5510,control,cortafuegos,Droidwall,Galaxy,iptables,log,manual,netfilter,ring buffer,rodrigo,Samsung,script,SGY,shutdown script,turorial,Tutorial,y,zechin. Guarda elenlace permanente.Objetivo 3 (continuacin) Droidwall: Error No chain/target/match by that name Compilar el kernel delB5510Soporte para poder ejecutar scripts en /etc/init.d antes delarranque12 respuestas aDroidwall a fondo. Tutorial para el cortafuegos Droidwall1.5.71. Pauldijo:16/08/2012 en 6:50 pmhola, resumiendo, para un usuario mortal como yo =)solo tengo que seleccionar en modo lista blanca, palomeo en las aplicaciones que si quiero que esten activadas para el acceso a internet y listo!???o es necesario crear eso de las reglas? ahi me mataste xDResponder loquehicedijo:16/08/2012 en 10:02 pmHola. Lo has resumido muy bien. Con lo que has dicho llega perfectamente, ya que Droidwall pone l solo las reglas. Y si algn da tienes necesidad de profundizar en iptables para personalizar las reglas ya sabes por donde empezar. En cuanto al log yo recomendara activarlo slo cuando quieras vigilar algo en concreto. Un saludo.Responder2. Manuel Bustamantedijo:29/11/2012 en 10:23 amAmigo!! una gran duda que espero y me puedas ayudar!!Esta aplicacin me funciona bien cuando se trata de WIFI, cuando selecciono que bloquee todo tipo de conexin con wifi si se bloquea, no puedo entrar a ninguna pagina pero el problema es cuando quiero que bloquee aplicaciones para que NO se conecten a la red 3G. no se puede terminan por conectarse. lo eh intentado muchas veces y al final en 3G no me funciona no se si me puedas decir si es un defecto de la aplicacin o porque solo bloquea aplicaciones wifi y en 3g NO..Responder loquehicedijo:29/11/2012 en 11:01 pmHola! A m me funciona correctamente en el B5510. Si tienes el modo lista blanca y ninguna aplicacin seleccionada no debera salir ningn trfico. Has descartado que el problema sea que se cuele trfico al arrancar el mvil antes que se active Droiewall? (apartado 12 del tutorial). Tambin podras comprobar qu reglas tiene iptables ya que son estas las que determinan el trfico que puede salir a internet.Responder3. KumanTejedadijo:24/01/2013 en 8:22 pmHola, he instalado esta aplicacin pero cuando le doy Firewall activo me da este error Could not acquire root access. You need a rooted phone to rum DroidWall.If this phone is already rooted, please make sure DroidWall has enough permissions to execute the su command.Error message:java.io.IOException: Error running exec(). Command [su,-c,/data/data/com.googlecode.droidwall.free/app_bin/droidwall.sh] Working Directory: null Environment: null quisiera saber si alguien me pudiera ayudar.Responder loquehicedijo:29/01/2013 en 7:00 pmHola. Aparentemente tu mvil no tiene acceso root. Si es as debes hacer una bsqueda para rootear tu modelo de mvil. Puedes mirar enesta entrada.Responder Annimodijo:29/01/2013 en 7:26 pmNecesitas tener el Telefono Rooteado para que esta Aplicacion Funcione, es por ello que te salta ese error!Responder4. ruthdijo:26/02/2013 en 3:04 amtambien me aparece esto: Could not acquire root access. You need a rooted phone to rum DroidWall. lo RARO es que SI lo tengo rooteado. antes me apareca en superuser y ya no:/osea dejo de funcionar:(Responder5. fafasfasdijo:18/02/2014 en 2:07 pmVaya pedazo informe te has marcado con la appa, impresionante, muchas gracias!Responder6. MariCarmendijo:06/06/2014 en 6:22 pmHola lo instal en Alcatel OneTouch Mpop 5020 (Android JellyBean) y no encuentro Opciones del Men:(.. Este equipo no trae botn men, sino botn Aplicaciones Recientes.. y desde la aplicacin no se como sacar el men Hay alguna manera de hacerlo?Responder7. Annimodijo:27/02/2015 en 4:11 pmLa muralla china es mas accesible.Responder8. Lachodijo:26/03/2015 en 5:46 pmhola, estoy usando actualmente el DROIDWALL, en realidad me parece una APP estupenda y fcil de usar y que hace lo que promete. en realidad no he tenido ningn problema con ella, estuve leyendo el manual, pero no encontr la respuesta a mi incgnita.he estado intentando usar el ANCLAJE DE RED de mi celular para conectar mi pc por WiFI y tomar Internet de mi plan de datos mvil. ahora me he dado cuenta que el anclaje de red bloquea tambin el uso de datos en este modo. la verdad no se cual es la regla que debo activar para permitir el paso de los datos para el ANCLAJE DE RED WIFI.si deshabilito el DORIDWALL ya puedo navegar normalmente desde mi pc a travs de mi celular.

Acceso Root para el Samsung Galaxy Y Pro GT-B5510(I)Publicado el14/06/2012deloquehiceEl paso previo para tomar el control de un mvil con android es conseguir acceso como root. Como usuario novel de android empiezo a percibir que tanto para Google como para los fabricantes y operadoras de telecomunicaciones es importante dificultar que los usuarios de android tengan la posibilidad de rooteo fcil en sus mviles. No es casualidad que en los ajustes no haya la opcin de acceso root y tampoco lo es que android no disponga de cortafuegos.Por otra parte, el modelo de negocio de las apps est basado en gran parte en el desconocimiento y poca capacidad de maniobra de los usuarios, y las operadoras se benefician en muchos casos del trfico no deseado generado sin conocimiento del usuario. Por eso se fomenta un uso dcil y despreocupado del mvil.Este es el mtodo que he encontrado y seguido para rootear el B5510. Me ha funcionado a la perfeccin, pero si decides aplicarlo en tu mvil serbajo tu propia responsabilidad. Lo encontr eneste hilode xda-developers y el mrito es del desarrolladorStoneBoyTony. Lo he traducido adaptadolo a mis circunstancias:En primer lugar ojo a las siguientes precauciones: Este procedimiento slo es vlido para algunos modelos de caractersticas similares. La lista es la siguiente:SAMSUNG GALAXY GT-S5570, GT-S5570B, GT-S5570I, GT-S5570L, GT-S5571, GT-S5660, GT-S5660M, GT-S5660L, GT-S5660V, SHW-M290K (Korean GIO), GT-S5670, GT-S5670B, GT-S5670L, GT-S5830, GT-S5830B, GT-S5830C ,GT-S5830D, GT-S5830i, GT-S5830L, GT-S5830M, GT-S5830T, GT-S5830Z, GT-S5839i, GT-B7510, GT-B7510B, GT-B7510L, GT-B7800, GT-B5510, GT-B5510B, GT-B5510L, GT-B5512, GT-B5512B. GT-S6102, GT-S6102B, GT-S5300, GT-S5360, GT-S5360B, GT-S5360L, GT-S5360T, GT-S5363, GT-S5369, GT-S5690, GT-S5690M, GT-S5690L, GT-I8150, GT-I8150B, GT-I5510, GT-I5510B, GT-I5510L, GT-I5510M, GT-I5510T Adems, la ROM tiene que ser oficial (no vale una custom ROM) y el recovery debe ser tambin el oficial. y el sistema operativo debe ser el Gingerbread 2.3.3 hasta 2.3.7+Instrucciones a seguir:1. Activar la opcin Ajustes > Aplicaciones > Fuentes desconocidas para permitir instalardesde la tarjeta SD aplicaciones que no sean del market, ya que viene desactivada por defecto2. Bajarse el ficherouniversal_gb_root_v20.zip3. Meter el fichero bajado en el directorio raiz de la tarjeta SD. Si no sabes cmo mira enesta entrada anterior.4. Arrancar el mvil en modo recovery. Si no sabes como miraesta otra entrada.5. Elegir la opcin apply update from sdcard del men. Con las teclas Vol+ y Vol- nos movemos por el men y la tecla Home para seleccionar. Aparece el directorio raiz y da la opcin de elegir un fichero. Buscar el universal_gb_root_v20.zip y seleccionarlo.La aplicacin contenida en el fichero entra en ejecucin y cuando esta termina aparece el mensaje Install from SD complete.6. Seleccionar en el menu la opcin reboot system now y arrancar en modo normal.7. Buscar entre las apps el SuperSU, que preguntar si se quiere actualizar el binario SU. Hay que darle a continuar. El sistema se reinicia y ya est.

Para comprobar si todo ha salido bien se puede utilizar la app Rootvalidator, que debera haber quedado instalada tambien.En elhilo de StoneBoyTonyhabla tambin de como actuar ante posibles problemas con el SuperSU debidos a las modificaciones que hacen las operadoras en las Stock ROM. Y viene tambin el procedimiento para el unroot, que yo de momento no utilizar.Ahora que tengo acceso root ya puedo intentar cumplirlos objetivos que me haba propuesto. Lo primero que intentar hacer es unbackup de la stock ROMque trae el B5510 y preparar un procedimiento para restaurarla si es necesario.