Quiero tener un firewall en mi hotspot móvil (para bloquear todo el tráfico externo excepto el de retorno). ¿Hay alguna aplicación para eso?
No, las aplicaciones no pueden hacerlo. Es algo de nivel inferior, las aplicaciones no son tan privilegiado . Las aplicaciones VPN son una solución para las conexiones salientes (debido al posible filtrado basado en UIDs
y SOcket_MARKs
), pero no para las conexiones entrantes.
Mi Android no está rooteado, así que preferiría una solución que no requiera rootear mi teléfono (si es posible).
No es posible sin Root (AFAIK), pero con Root es sencillo; gracias al kernel de Linux. Dado que Android utiliza la política por defecto ACCEPT
, descartar los paquetes no deseados:
~# iptables -I INPUT -i rmnet_data1 -m conntrack ! --ctstate ESTABLISHED,RELATED -j DROP
~# iptables -I FORWARD -i rmnet_data1 -m conntrack ! --ctstate ESTABLISHED,RELATED -j DROP
La primera regla sólo permitirá el tráfico de retorno para el dispositivo Android, la segunda para los hosts anclados. Sustituya rmnet_data1
con cualquier interfaz que utilice su Mobile Data. Espero que no quieras bloquear las conexiones entrantes desde la interfaz WiFi ( wlan0
) para que el hotspot funcione.
Tenga en cuenta que iptables
Las reglas en Android son dinámicas, netd
sigue actualizándolos con los cambios de la red. Así que mejor utilizar estas reglas con alguna aplicación como AFWall+.
No soy un experto, pero según tengo entendido, los puertos abiertos sólo tienen sentido cuando se tiene una IP pública, preferiblemente estática, como es el caso de las conexiones de banda ancha de línea fija y las tarjetas SIM especiales con servicio de IP pública fija. Los Operadores de Redes Móviles (supongo que estás conectado a Datos Móviles) siempre hacen NAT de grado operador (a veces doble NAT), básicamente para solucionar el problema de Escasez de direcciones IPv4 pero también sirve a otros intereses. Por ejemplo, ejecutan servidores proxy de caché transparente y servidores DNS detrás de esta NAT para minimizar la carga del ancho de banda de Internet y mejorar el rendimiento reduciendo la latencia. Cuando se está detrás de la CGN:
- Tu IP pública cambia, por ejemplo, cuando te mudas.
- La IP privada que obtienes (normalmente 10.x.x.x) es asignada por el servidor DHCP del MNO, por lo que sigue cambiando, por ejemplo, cuando el contrato de arrendamiento expira o cuando te vuelves a conectar.
- Incluso si consigues una IP privada fija, tu ISP/MNO debería reenviar los puertos de la IP pública a tu IP privada, cosa que no hacen. Porque posiblemente haya cientos y miles de clientes que deseen reenviar el mismo puerto desde la misma IP pública a sus dispositivos.
Por lo tanto, mantener los puertos entrantes abiertos en esta configuración no sirve para nada, excepto para hacer que la red del MNO sea vulnerable a los ataques. Por lo tanto, la mayoría de los operadores de telefonía móvil bloquean las conexiones entrantes en todos los puertos (o en algunos de ellos). 1024
o al menos de uso común). Pero no se puede probar debido a la CGN, que - como efecto secundario - es una capa adicional de seguridad, aunque no un firewall. Tienes una IP privada, no enrutable en internet, nadie puede acceder a ti desde el exterior, esto debería considerarse seguridad, más o menos. Por eso las conexiones VoIP se inician siempre desde los clientes dejando que el STUN
servidor sabe dónde están. Y tenemos que optar por soluciones como este para aceptar conexiones entrantes detrás de NAT.
hay algunos dispositivos (smart TV, sistema de juegos, etc) que no son nada seguros para poner en una red abierta.
Además, su dispositivo Android también está haciendo NAT en el tráfico que viene de los hosts anclados. Y no hay DMZ
, UPnP
o normal Port Forwarding
configurado en tu dispositivo Android. Es otra capa de protección.
Tengo razones para creer que el NAT de mi operador no bloquea las conexiones entrantes
Sería muy útil que compartieras cómo has llegado a esta conclusión. Sin embargo, si usted está seguro de que su NAT puede ser atravesado / evitado fácilmente sin ningún tipo de apoyo desde el lado del cliente, o si usted no tiene confianza en MNO o sus cortafuegos, considerar la creación de un fuerte firewall.
Los usuarios comunes se centran más en las aplicaciones instaladas en el teléfono; son los verdaderos espías. Recogen datos personales, filtran información, hacen analíticas, perfiles de usuario, rastrean y hacen publicidad dirigida. Así que un cortafuegos de salida es de mucha importancia.
En los servidores con puertos de escucha se requieren complicadas soluciones de cortafuegos para las conexiones entrantes. Los dispositivos Android no ejecutan servidores (normalmente), excepto un DHCP
/ DNS
servidor ( dnsmasq
) para el hotspot. Si ejecuta cualquier servicio que acepte conexiones desde Internet, es otra razón válida para configurar el firewall.