configuracion vpn

28
CONFIGURACIÓN VPN ROAD WARRIOR

Upload: jacqueline-coba

Post on 18-Jul-2015

163 views

Category:

Engineering


3 download

TRANSCRIPT

CONFIGURACIÓN VPN ROAD WARRIOR

Una red privada virtual, VPN es una tecnología de red que permite una extensión

segura de la red local (LAN) sobre una red pública o no controlada como Internet.

Permite que la computadora en la red envíe y reciba datos sobre redes compartidas o

públicas como si fuera una red privada con toda la funcionalidad, seguridad y

políticas de gestión de una red privada. Esto se realiza estableciendo una conexión

virtual punto a punto mediante el uso de conexiones dedicadas, cifrado o la

combinación de ambos métodos.

VPN

OpenVPN

Es una implementación de VPN SSL la cual usa las extensiones OSI layer 2 ó 3,

soporta diferentes medios de autenticación como certificados,

usuarios/contraseñas, y permite políticas de control de acceso para usuarios o

grupos usando reglas de firewall aplicadas a las interfaces virtuales de la VPN.

TIPOS DE CONFIGURACIÓN UTILIZANDO OPENVPN

1. Host a Host (Sitio a sitio)

Es el método más simple, nos permite encriptar la comunicación entre dos PC las

cuales deberán solamente tener conexión; es decir: ambas PC deben poderse

enviar paquetes directamente ya sea porque estén conectadas en la misma red

local, o porque ambas estén conectadas a la internet y sean alcanzables entre sí.

TIPOS DE CONFIGURACIÓN UTILIZANDO OPENVPN

2. Road Warrior (Sitio-Multisitio)

Es una de las formas más utilizadas. Es el permitir que una máquina de alguien

que esté fuera de nuestra red (de forma temporal o permanente) pueda

comunicarse con el servidor OpenVPN de nuestra red y una vez autenticado

pueda entrar a ver y acceder los recursos de nuestra red local. En verdad es un

caso especial de la conexión Red a Red.

TIPOS DE CONFIGURACIÓN UTILIZANDO OPENVPN

3. Red a Red

Uno de los métodos más usados. Mediante ésta forma dos redes separadas en el

espacio pueden comunicarse como si estuvieran unidas por un cable virtual, la

comunicación entre ambas redes viajará encriptada una vez salgan de los

servidores de openvpn y hasta que lleguen a su otro extremo.

CONFIGURACIÓN DE ROAD WARRIOR

PASO 1: Instalación del OpenVPN

Instalar Openvpn en nuestro Linux CentOS es realmente fácil. Previamente a

la instalación de Openvpn se debe tener instalado el Repositorio Epel.

#wgethttp://download.fedoraproject.org/pub/epel/6/i386/epelrelease68.n

oarch.rm

# rpm -ivh epel-release-6-8.noarch.rpm

Luego para la instalación de Openvpn emitimos el comando :

#yum install openvpn

PASO 2: Configuración del Servidor

Previamente se debe realizar las siguientes configuraciones de no serlo a si la vpn no hará ping hacia las redes internas.

En el servidor de openvpn se debe activar el ip_forwarding:

#vi /etc/sysctl.conf

Cambiar ip_forwarding a 1 (está normalmente en 0).

# net.ipv4.ip_forward = 0

Ejcutamos el comando

#sysctl –p

La versión de Openvpn 2.3 para CentOS 6, no incluye el paquete easy-rsa que esun conjunto de herramientas que me permitirán generar los certificados, por locual se debe instalar.

# yum install easy-rsa Contamos con una serie de scripts en el directorio /usr/share/easy-rsa/2.0/ los

cuales nos ayudarán mucho a ejecutar ésta tarea inicial.

Primero cambiamos al directorio.

# cd /usr/share/easy-rsa/2.0

Creando el CA

Una vez dentro de éste directorio procedemos a ejecutar los siguientes pasos:

#. Vars

#sh clean-all

# sh build-ca

Con ellos lo que haremos es:

Inicializar variables de ambiente para poder trabajar con los scripts de shellpara generar las variables

Inicializamos el directorio de las claves (borrando potenciales archivos viejos)

build-ca: procedemos a generar el certificado CA

En éste último paso se nos pedirá una serie de información sobre nuestra

red/empresa que debemos llenar lo más fielmente posible:

Se pone un nombre pero

debe estar seguido de ca

Ejemplo

openvpn ca

Generación del certificado y de la clave de encriptación para el servidor Siguiente ala generación del Certificado de autoridad, procedemos a crear el certificado delservidor y de su clave de encriptación:

#sh build-key-server server

No repetir el nombre del

certificado anterior

Generación de certificados y claves privadas para los clientes

Cada cliente debe tener su propio certificado y clave de seguridad, para cada clienteque tengamos deberemos repetir el siguiente paso.

#sh build-key client1

Debemos notar que al ejecutar el programa sh build-key, le pasamos comoparámetro el nombre del cliente (client1 en el ejemplo anterior) el cual debe serdiferente para cada cliente. En el common name ponemos el nombre del cliente(client1 en éste ejemplo) tal y como le pasamos de parámetro.

Se puede crear el número de claves que sean necesarias de acuerdo al número declientes:

#sh build-key client2#sh build-key client3

Generando parámetros de Diffie-Hellman

El parámetro de Diffie-Hellman debemos generarlo de la siguiente manera:

#sh build-dh

[root@servidor 2.0]# sh build-dh

Generating DH parameters, 2048 bit long safe prime, generator 2

This is going to take a long time

..............+........................+..............................................................................+.............

............+.........................................................................................................................

...............................................+......................................................................................

.......................................................................................................................................

.................+.......................................................+.............................................

Archivos a copiar al servidor

Con los comandos ejecutados anteriormente se generan los siguientes archivos que

deberán se copiados al servidor hacia el directorio /etc/openvpn del servidor .

ca.crt

ca.key

server.key

server.crt

dh2048.pem

Estos archivos están presentes en: /usr/share/easy-rsa/2.0/keys/

# cd /usr/share/easy-rsa/2.0/keys/# cp -a ca.crt ca.key server.key server.crt dh2048.pem /etc/openvpn

NOTA: Fijarse en el número que se genera en los certificados para la trasferencia

del archivo dh2048.pem ya que puede variar.

[root@servidor 2.0]# sh build-dhGenerating DH parameters, 2048 bit long safe prime, generator 2This is going to take a long time

Archivos a copiar al cliente

Hacia el directorio /etc/openvpn de cada cliente copiamos los siguientes archivos:

ca.crt clientX.crt clientX.key

Tenga en cuenta que X es un número que se corresponde con el cliente (para el cliente1 sería: client1.crt y client1.key por ejemplo).

# cd /usr/share/easy-rsa/2.0/keys/# scp ca.crt client1.crt client1.key [email protected]:/etc/openvpn

Ejecutamos el siguiete commando.

# vi /etc/openvpn/server.conf

port 1194

proto udp

dev tun

ca ca.crt

cert server.crt

key server.key

dh dh2048.pem

#Direcciones que se asignaran a los

#clientes, el server es .1

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

#Aquí debe especificarse la LAN detrás de tu servidor

#En este ejemplo supongo que TU LAN es 192.168.1.0/24

#Cambiala a la verdadera LAN de tu servidor

push "route 192.168.89.0 255.255.255.192"

push "redirect-gateway def1 bypass-dhcp"

keepalive 10 120

comp-lzo

user nobody

group nobody

persist-key

persist-tun

status openvpn-status.log

verb 4

PASO 3 Configuración del cliente

En el caso del cliente, así quedaría el archivo de configuración:

#vi /etc/openvpn/client1.conf

clientdev tunproto udp#Aqui debo especificar la IP de la WAN de tu servidor OpenVPNremote 192.168.89.128 1194resolv-retry infinitenobind#Las dos siguientes opciones no van en windowsuser nobodygroup nobodypersist-keypersist-tunca ca.crtcert client1.crtkey client1.keycomp-lzoverb 4

SE DEBE CAMBIAR DE ACUERDO AL

NUEMRO DE CLIENTES

PASO 4 Iniciar openVPN

Iniciamos con los siguientes comandos

#service openvpn start

#chkconfig --level 2345 openvpn on

PASO 5 Comprobación del funcionamiento

Una vez iniciado en ambos lados podemos comprobar la creación del túnel con elcomando ifconfig

Servidor

eth0 Link encap:Ethernet HWaddr 08:00:27:46:36:62

inet addr:192.168.89.128 Bcast:192.168.1.255 Mask:255.255.255.0

inet6 addr: fe80::a00:27ff:fe46:3662/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

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

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

collisions:0 txqueuelen:1000

RX bytes:44166 (43.1 KiB) TX bytes:14434 (14.0 KiB)

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:16436 Metric:1

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

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

collisions:0 txqueuelen:0

RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

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

00-00-00-00

inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255

UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1

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

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

collisions:0 txqueuelen:100

RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

Clienteeth0 Link encap:Ethernet HWaddr 08:00:27:BE:25:49

inet addr:192.168.89.129 Bcast:192.168.1.255 Mask:255.255.255.0

inet6 addr: fe80::a00:27ff:febe:2549/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

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

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

collisions:0 txqueuelen:1000

RX bytes:52177 (50.9 KiB) TX bytes:50170 (48.9 KiB)

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:16436 Metric:1

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

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

collisions:0 txqueuelen:0

RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

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

00-00-00-00

inet addr:10.8.0.6 P-t-P:10.8.0.5 Mask:255.255.255.255

UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1

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

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

collisions:0 txqueuelen:100

RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

Para comprobar podemos hacer ping hacia el tun

Desde el cliente

ping 10.8.0.1

Desde el servidor

ping 10.8.0.6

En caso de que falle la configuración se podría desactivar los firewall

service iptables stop

chkconfig iptables off

chkconfig ip6tables off

service ip6tables stop

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERAD

service iptables save

service iptables restart