martes, 20 de mayo de 2008

Vpn con LinuxA continuación explicare paso a paso la configuración (Cliente-Servidor), utilizada para una conexión VPN (Central – Local) por ejemplo.

Para la misma disponemos de 2 PC's, uno en cada extremo.

En el extremo (Central) el mismo PC (servidor VPN de ahora en mas), dispone de un enlace ADSL 2 Mbps, con IP Fija (203.40.169.22).

Este mismo actúa como servidor VPN ya que su Ip es siempre la misma.

Ejemplo de la Topología usada

Topoligia

En el extremo de (Cliente) disponemos de otro PC el cual actúa como cliente de esta VPN. Este mismo dispone de un enlace ADSL de 1536Kbps con IP variable cada x horas, esta misma conexión requiere de autentificación contra el ISP, usuario: pepe@adsl contraseña: pepe123

El servidor VPN cuenta con un sistema operativo OPENSUSE 10.3 (con OPENVPN).

El mismo tiene 2 tarj, de red, una esta directo al módem ADSL, y tiene su interface configurada con IP Publica. Conf:

    IP: 203.40.16.22

    MASK: 255.255.255.252

    GW: 203.40.16.21

Su otra interface de red esta conectada a nuestra red local (LAN):

    IP: 192.168.10.5

    MASK: 255.255.255.0

 

Con esta configuración, el Servidor VPN ya debería tener navegación sobre Internet. De no ser así verificar conectividad, módem ADSL, y configuración.

Luego que el Servidor VPN cuenta con Internet, verificamos que también funcione su interface Local (Lan).

 

Ahora configuremos el servicio VPN:

Tener instalado el paquete OPENVPN (viene que SUSE en sus repositorios). Realizar el siguiente comando (el mismo genera una clave encriptada, la cual sirve para encriptar los datos que viajaran por la VPN)

    openvpn --genkey --secret secret.key

 

Este archivo debe quedar en el directorio /etc/openvpn

Luego creamos un archivo con VI en el /etc/openvpn – llamado server.conf

    vi /etc/openvpn/server.conf

El mismo debe contener:

    # dispositivo de túnel

    dev tun

    # ip del server ip del cliente (ip's del túnel)

    ifconfig 10.0.2.1 10.0.2.2

    # Clave del servidor

    secret /etc/openvpn/server.key

    # puerto

    port 1194

    #usuario bajo el cual ejecutaremos

    user nobody

    group nobody

    # opciones, comprimir con lzo, ping cada 15 segs, verbose 1 (log's bajos)

    comp-lzo

    ping 15

    verb 1

 

Luego de esto ya podemos levantar el servicio VPN:

    /etc/init.d/openvpn start

El mismo servicio debe levantar sin problemas, de lo contrario revisar el archivo de configuración “server.conf” y verificar.

En este punto ya tenemos nuestro servidor VPN configurado y pronto para recibir peticiones de clientes VPN.

 

Ahora veamos la configuración en el Cliente.

Tenemos un PC (Cliente de la VPN), el mismo tiene instalado un sistema operativo OPENSUSE 10.2 (con OPENVPN), este Pc cuenta al igual que el servidor VPN con 2 interfaces de Red. una para la “WAN o internet” y la otra conectada a la Red Local (LAN) con la IP: 192.0.2.50

Como en el extremo del cliente contamos con un enlace ADSL el cual varia su Ip, instalamos un Router (LINKSYS por ejemplo) el cual se encarga de autenticar el ADSL contra el ISP y establecer conectividad a Internet. Por que un router y no el ADSL directo al PC, por varias razones, una, luego de pasadas 12 horas el PC no se da cuenta que se quedo “sin conectividad” y demora mucho mas que un router en volver a re conectar”. Si pasa algo con el PC Cliente VPN, podemos

llegar hasta el router y del mismo poder mas rápido sacar conclución si el problema esta propiamente en el PC Cliente o en el enlace ADSL.

Para empezar debemos copiar el Archivo secret.key que generamos en el Servidor VPN, copiarlo en el directorio /etc/openvpn .

Luego de esto debemos crear el archivo client.conf con la siguiente configuración:

    # dispositivo de túnel

    dev tun

    # ip del servidor VPN

    remote 203.40.16.22

    # ip del cliente ip del servidor (ip's del túnel)

    ifconfig 10.0.2.2 10.0.2.1

    # Clave del servidor

    secret /etc/openvpn/server.key

    # puerto

    port 1194

    #usuario bajo el cual ejecutaremos

    user nobody

    group nobody

    # opciones, comprimir con lzo, ping cada 15 segs, verbose 1 (log's bajos)

    comp-lzo

    ping 15

    verb 1

 

En este punto ya podemos levantar el servicio VPN

    /etc/init.d/openvpn start

 

Aquí hacemos las siguientes pruebas:

IFCONFIG Para saber si el dispositivo TUN fue creado.

En servidor:

    tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00

    inet addr:10.0.2.1 P-t-P:10.0.2.2 Mask:255.255.255.255

    UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1

    RX packets:92862 errors:0 dropped:0 overruns:0 frame:0

    TX packets:77482 errors:0 dropped:0 overruns:0 carrier:0

    collisions:0 txqueuelen:100

    RX bytes:5997505 (5.7 Mb) TX bytes:22554682 (21.5 Mb)


En Cliente:

    tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00

    inet addr:10.0.2.2 P-t-P:10.0.2.1 Mask:255.255.255.255

    UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1

    RX packets:92862 errors:0 dropped:0 overruns:0 frame:0

    TX packets:77482 errors:0 dropped:0 overruns:0 carrier:0

    collisions:0 txqueuelen:100

    RX bytes:5997505 (5.7 Mb) TX bytes:22554682 (21.5 Mb)

 

***Si esto no aparece, reiniciar el servicio OPENVPN

 

Probamos la conectividad del Túnel

Hacemos Ping desde el Servidor VPN a la IP : 10.0.2.2 y Ping desde el Cliente VPN a la IP: 10.0.2.1

Si esto funciona ya tenemos la VPN Funcionando!, si no funciona verificar configuraciones. y reiniciar en ambos PC'S el servicio OPENVPN.

Ahora solo nos queda configurar las rutas entre ambos PC's de la VPN para que todo lo que esta en la RED del cliente llege bien a la RED en Central, y viceversa.

 

Para esto en el Servidor VPN hacemos:

    #route add -net 192.0.2.0 netmask 255.255.255.0 gw 10.0.0.2

Y en el Cliente VPN hacemos:

    #route add -net 192.168.10.0 netmask 255.255.255.0 gw 10.0.0.1

 

En los PCS del local definimos como Default Gateway la IP: 192.0.2.50

Con esto ya podemos hacer Ping desde el Servidor VPN a los PC's del extremo cliente y estos deben responder.

 

Si se cuenta con servidor Firewall de por medio se debra abrir los siguiente puertos

    #----VPN----

    iptables -A INPUT -p udp --dport 1194 -j ACCEPT

    iptables -A OUTPUT -p udp --source-port 1194 -j ACCEPT

    iptables -A INPUT -i tun+ -j ACCEPT

    iptables -A OUTPUT -o tun+ -j ACCEPT

    iptables -A FORWARD -i tun+ -j ACCEPT

    iptables -A INPUT -i tap+ -j ACCEPT

    iptables -A OUTPUT -o tap+ -j ACCEPT

    iptables -A FORWARD -i tap+ -j ACCEPT

    #

 


Tags: VPN, OPENVPN, LINUX

Publicado por vans2020 @ 17:29
Comentarios (0)  | Enviar
Comentarios