Protege tu modem, protege tus computadoras en casa y cifra tu conexión a internet
By: Date: marzo 10, 2017 Categories: Consultoria y Manuales

La siguiente configuración cifra todas las conexiones salientes a internet, quien espié el flujo de datos no podrá ver el contenido de conexiones ni siquiera la que por default van desprotegidas como las http u otras, al menos no podrán ser espiadas desde el país de origen.

Diagrama de conexión.

Cifrar conexiones a Internet

Explicación en video.

Requerimientos

1 computadora con al menos 1 tarjeta de red, GNU/Linux ( Aquí uso CentOS 7 )
2 modem dsl en modo bridge o puente
3 un servidor VPS de azure, linode o de cualquier proveedor en la nube en el país al que se desee usar como salida ( peering ) ( aquí uso CentOS 7 )

Configuración del modem

1 Llamar al ISP ( aquí telmex ) para obtener las claves de conexión PPPoE
2 Entrar a la consola WEB del modem para cambiar la conexión a internet a modo bridge
3 Desactiva el servicio de dhcp en el modem

Configuración de la computadora en casa como servidor firewall y de cifrado

1 Instalar GNU/Linux
2 Instalar los script de administración de PPPoE con: yum install rp-pppoe
3 Configurar en la tarjeta de red la red ip que usara la LAN tradicionalmente es 192.168.1.0/24 pero a mi me gusta complicar las cosas para los script kiddies , en ese ejemplo uso la red 172.16.0.0/24 a la tarjeta de red le he colocado 172.16.0.254
4 Conectar la tarjeta de red al puerto ethernet 1 del modem dsl
5 Configurar la conexión PPPoE con: pppoe-setup
6 Realizar la conexión a internet del servidor con: pppoe-connect o pppoe-start

Contratar un VPS

1 Para este ejemplo contrato un VPS en Frankfurt, Alemania con Linode ( CentOs 7 )
2 Interconectar el servidor firewall en casa con el vps via VPN ( aquí uso OpenVPN )
3 IP configuradas en VPN 200.30.30.1 en Alemania y 200.30.30.2 en firewall local/casa
4 Permitir reenvío de paquetes en el VPS con: echo “1” > /proc/sys/net/ipv4/ip_forward

Reglas de ruteo en el firewall local/casa

1 Se limpia cualquier regla de firewall o nat que pudiera tener el kernel por default

iptables -t filter -F
iptables -t nat -F

2 Se declara una ruta a la ip vpn del servidor vps con la tabla 100 para este ejemplo y reenvío de paquetes
echo “1” > /proc/sys/net/ipv4/ip_forward
ip route add default via 200.30.30.1 dev tun0 table 100

3 Se declara una regla para cada ip de la red LAN que vaya a conectar de forma segura

ip rule add from 172.16.0.10 table 100
ip rule add from 172.16.0.11 table 100
ip rule add from 172.16.0.12 table 100

Configuración de DHCP en el servidor de firewall

Ya que se desactivo el servicio DHCP en el modem habrá que darlo por medio de GNU/Linux

subnet 172.16.0.0 netmask 255.255.255.0 {
range 172.16.0.10 172.16.0.253;
option subnet-mask 255.255.255.0;
option broadcast-address 172.16.0.255;
option routers 172.16.0.254;
option domain-name-servers 8.8.8.8;
option domain-name “firewall.lastdragon.net”;

}

Reglas de NAT en el VPS

iptables -t filter -F
iptables -t nat -F

iptables -t nat -A POSTROUTING -j MASQUERADE

Desactivar el trafico seguro vía VPN

En caso de que se requiera dejar de usar la VPN y sacar la conexión por el ISP de forma tradicional, se deben borrar las reglas ip y de ruteo a la VPN

ip route del default via 200.30.30.1 dev tun0 table 100
ip rule del from 172.16.0.10 table 100
ip rule del from 172.16.0.11 table 100
ip rule del from 172.16.0.12 table 100

Para obtener NAT en el firewall local/casa
iptables -t nat -A POSTROUTING -j MASQUERADE

Imágenes

Cifrar conexiones a Internet

Cifrar conexiones a Internet

Cifrar conexiones a Internet

12 thoughts on “Protege tu modem, protege tus computadoras en casa y cifra tu conexión a internet

  1. Safari 602.4.8 Mac OS X 10.12.3

    Con esta configuracion, la velocidad de bajada se ve muy afectada o es tecnicamente transparente para los clientes?

    La computadora bridge como cuanta capacidad calculas que es la minima para operar? podria usarse alguna computadora basada en ARM como la raspberry pi 3 para hacer esta funcion o seria mejor una basada en x86.

    1. Google Chrome 57.0.2987.98 Linux

      No de hecho las conexiones se siguen mateniendo a la misma latencia, incluso pareciera que juegos como Call of Duty son engañados y te declaran el host de la partida lo que da mucha ventaja

  2. Google Chrome 58.0.3029.110 Windows NT

    Yo creo que hay soluciones mucho más sencillas y menos trabajosas y costosas, por ejemplo:
    -La más sencilla apagar el router mientras no lo usamos, asi dejamos cerrada la red y lo mejor ahorramos electricidad, si tenemos IP dinámica cada vez que lo encendamos tendremos una nueva IP.
    -Cambiar el nombre del SSID del router.
    -Poner la SSID del router oculta.
    -Utilizar WPA2 (no utilizar WEP, WPS, ni muchos menos dejar la wifi sin clave) con contraseñas largas.
    -Usar el filtro de MAC.
    -Cambiar los usuarios y contraseñas de admin en el router.
    -Actualizar el firmware del router y por supuesto los sistemas operativos de los ordenadores.

    No es imposible que te entren en la red asi pero creo que a la mayoría de personas les serviría esto para andar seguros en sus casas, yo de hecho hago esto en casa y nunca me ha entrado nadie en la red, lo que tu dices lo veo más para entornos empresariales.

    1. Google Chrome 59.0.3071.115 Windows 8

      Lo que last dragon hace es mantener su privacidad fuera del alcance de quien quiera atacarlo vía internet, pero también asegurando su privacidad local, en mi trabajo tenemos 4 conexiones vía PPoE y va de maravilla.

  3. Google Chrome 67.0.3396.99 Linux

    Hola,

    ¿Esto aplica aún para diciembre 2018?
    – Tengo internet infilentium
    – Modem arcadyan
    – equipo con Linux Ubuntu 18.04
    – VPS contratado probando 2 meses con Digital Ocean

    Saludos

  4. Google Chrome 67.0.3396.87 Android 8.1.0

    Porque no se monta tambien un server dns con Bind9 ? Ayudaria o practicamente a día de hoy el cambio ni se notaria con los dns de google que esta usando ?

    1. Google Chrome 71.0.3578.98 Windows NT

      Si lo he hecho, es mas rapido, pero cuando hablamos de milisegundos de velocidad… lo cierto es que no hay ninguna diferencia con usar los de google o los de cloudfare o tu propio bind… el cuerpo humano es incapaz de percibir la diferencia en milisegundos.

Responder a Jose Luis Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *