VPN en CentOS 7 sin software adicional ( GRE o IPIP )

¿ Que es un tunnel ?

Es una interconexión entre 2 computadoras mediante una conexión directa normalmente en el Internet salvaje que simula un cable virtual ethernet cruzado entre los 2 equipos o incluso más de 2.

Una VPN o Tunnel puede ser lograda sin requerir software adicional como el OPENVPN, prácticamente desde el momento de la instalación ya es posible crear tunel o VPN

Si ya es posible usar tuneles ¿ Por que es tan popular OpenVPN ?

Estos tuneles IPIP o GRE son de muy alta velocidad debido a que no son cifrados, el CPU no tiene que ocuparse de la parte de seguridad en esta situación si se requiere cifrar todo el túnel habría que usar algo mas por ejemplo IPSEC, llegados a este punto para que complicar lo fácil, mejor usar OpenVPN, sin embargo si lo que se busca es mayor velocidad entonces los túneles IP son lo tuyo. Muchas veces en un túnel cifrado pasa dentro de el flujos de datos que ya van cifrados en si mismos como SSL/TLS ( HTTPS ) metiendo cargas innecesarias al CPU donde usar OpenVPN se vuelve costoso para el CPU. Seleccionar entre OpenVPN o un túnel sin cifrar dependerá de tu análisis del nivel de seguridad requerido.

¿ IPIP o GRE ?

IPIP

Básicamente es IP sobre IP y aunque suene redundante puede tener sentido si no se quiere tener un servicio expuesto a Internet pero si entre 2 equipos que están conectados a Internet ( puerto TCP o UDP en LISTEN ) , sin embargo esta limitado a paquetes IP

GRE

Ademas de lo que ofrece IPIP, puede tunelear prácticamente cualquier protocolo de capa 3 por lo que la mayoría de las veces sera una mejor opción que IPIP

Configurando el tunnel en 3 pasos.

1 Crear el tunnel

ip tunnel add mode ( gre o ipip ) ( nombre de interface ) local ( any o IP ) remote ( any o IP ) ttl ( 0 a 255 )

en local o remoto se puede usar ANY o directamente la IP homologada expuesta a Internet, si ambas maquinas tienen IPS homologadas se usa directamente la IP, pero si alguna maquina estuviera detrás de un NAT se puede usar ANY en local para que reciba la conexión atraves del NAT

2 Asignar la IP al tunnel

ip addr add ( IP/bits ) dev ( nombre de interface )

3 Levantar el tunnel

ip link set ( nombre de la interface ) up

Ejmplo entre 2 computadoras con tunel GRE

maquina 1 IP 172,16.0.1
maquina 2 IP 10.10.10.1
Red IP en el tunnel 192.168.1.0/24

Maquina 1 conectando a maquina 2 usando gre

ip tunnel add mode gre tunnel0 local 172.16.0.1 remote 10.10.10.1 ttl 10
ip addr add 192.168.1.1/24 dev tunnel0
ip link set tunnel0 up

Maquina 2 conectando a maquina 1 usando gre

ip tunnel add mode gre tunnel0 local 10.10.10.1 remote 172.16.0.1 ttl 10
ip addr add 192.168.1.2/24 dev tunnel0
ip link set tunnel0 up

Prueba de conexión en tunel

PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.

64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=26.0 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=26.0 ms
64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=26.0 ms

— 192.168.1.2 ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 26.000/26.040/26.065/0.134 ms

Es importante recordar que los paquetes no van cifrados como en una VPN de OpenVPN o IPSEC por lo que las conexiones que se requiera proteger deben ir cifradas por si mismas como con SSL/TLS

Add a Comment

Comment spam protected by SpamBam