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

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

6 Comments

Add a Comment

Comment spam protected by SpamBam