Implementación de una VPN con servidores Linux y clientes Windows

A continuación les muestro un grafico y luego la descripción de una VPN de llave simétrica hecho con OpenVpn en Fedora 6.

vpn

De VPN

La descripción de la implementacion de la VPN es de la siguiente manera:
1. Instalar OpenVpn en Fedora

Yum install openvpn

2. Activar el OpenVpn, Si por ahí no ven que se activa el openvpn porque debe salir OK, ir a la siguiente dirección /etc/init.d/openvpn ahí encontraran las opciones de parada y detención del servicio de openvpn.

Service openvpn Start
Chkconfig openvpn on

3. Generación de la clave de encriptación, para eso necesitamos tener activo openvpn; con esa llave se encriptara la información de servidor a servidor:

Openvpn – -genkey – -secret secret.key

y luego necesitamos copiar esta llave a /etc/openvpn en ambos servidores.
En la maquina actual (IP 200.200.10.10): cp secret.key /etc/openvpn
En la otra maquina (IP 100.100.10.10): scp secret.key 100.100.10.10:/etc/openvpn/

4. Configuración de los servidores, los que se hara aquí es la creación del tunel por la cual se intercambia los paquetes en ambos servidores pero de forma cifrada, para eso crearemos una interfaz virtual con un IP privada en cada extremo:
10.8.0.1 para el servidor A

10.8.0.2 para el servidor B

5. Configuración del servidor A
En el archivo /etc/openvpn/Server.conf lo podemos editar de la siguiente manera.

dev tun
ifconfig 10.8.0.1 10.8.0.2
secret /etc/openvpn/secret.key
port 1194
user nobody
group nobody
comp-lzo
ping 15
verb 1

6. Configuración del servidor B
En el archivo /etc/openvpn/cliente1.conf lo podemos editar de la siguiente manera.

remote 200.200.10.10
port 1194
dev tun
tun-mtu 1500
ifconfig 10.8.0.2 10.8.0.1
secret /etc/openvpn/secret.key
comp-lzo
ping 10
comp-lzo
verb 4
mute 10

7. Probando la conexión para eso ejecutamos la siguiente linea en ambos servidores:

Service openvpn restart
Chkconfig – -level 2345 openvpn on

Ahora si sale error es muy probable que el archivo de configuración del túnel este mal editado hay que revisar una vez que te sale OK. Probar haciendo ping en ambos extremos de los servidores pero por el túnel de la siguiente manera, pero antes de eso seria recomendable probar con las IP publicas el cual si tiene que haber respuesta si esto no sucede el túnel nunca funcionara.

Desde el servidor A: ping 100.100.10.10
Desde el servidor B: ping 200.200.10.10 IPs publicas

Desde el servidor A: ping 10.8.0.2
Desde el servidor B: ping 10.8.0.1 IPs privadas del tunel

En ambos extremos debe haber respuesta y si por ahí­ no obtienes respuesta podrías intentar con el iptables (flush ) de la siguiente manera:

Iptables -F
Iptables -L

Ahora si me imagino que tendrás respuesta en ambos extremos de los servidores. Si te funciono tendrás que agregar las siguientes líneas en el script de configuración del cortafuego de ambos servidores

Iptables -A INPUT -i tun+ -j ACCEPT
Iptables -A FORWARD -i tun+ -j ACCEPT
Iptables -A INPUT -p udp – -dport 1194 -j ACCEPT

8. Ahora el siguiente paso es que nuestros clientes A y B se puedan comunicar sin ninguna dificultad, para eso necesitamos activar en ambos servidores el reenvió de paquetes es decir la función de ruteo.

En ambos servidores ejecutar lo siguiente: echo 1 > /proc/sys/net/ipv4/ip_forward después configurar para iniciar el stript al arrancar el sistema.

9. A continuación viene uno de los puntos mas importantes en la cual se implementa el ruteo de LAN a LAN pero por el túnel es decir la comunicación de cliente a cliente será cifrado :

En el Servidor A: route add -net 130.120.10.0/24 gw 10.8.0.2
En el servidor B: route add -net 150.130.10.0/24 gw 10.8.0.1

En esta parte le decimos al servidor A que si los paquetes tienen una dirección de subnet 130.120.10.* que lo mande por la puerta de enlace 10.8.0.2 que es la dirección IP privada del túnel del servidor B; de la misma manera sucede al otro lado.

10. Por ultimo prueba haciéndole ping del cliente A al cliente B y viceversa debe de funcionar; si funciona puedes hacer todo lo que puedes en una red Lan como compartir carpetas entre clientes A y B.

Eso seria todo para la implementación de un VPN con cifrado de llave simétrica.

Un pensamiento en “Implementación de una VPN con servidores Linux y clientes Windows

  1. Pingback: Preparando Host-to-Host OpenVpn | ITRestauracion

Deja un comentario

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

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>