OpenVPN es una implementacion de VPN SSL la cual usa las extenciones OSI layer 2 o 3 para asegurar redes la cual usa los protocolos SSL/TLS, soporta diferentes medios de autenticacion como certificados, smart cards, y/o usuarios/contraseñas, y permite politicas de control de acceso para usuarios o grupos usando reglas de firewall aplicadas a las interfaces virtuales de la VPN. OpenVPN 2.0 permite multiples clientes conectar a un solo servidor (proceso) OpenVPN sobre un simple puerto TCP o UDP,
Porque surgen las VPNs
● Intercambio flexible, rápido y seguro de información.
● Sucursales en diferentes ubicaciones.
● Trabajadores remotos.
● Necesidad de altos estándares de seguridad: autenticidad, integridad, y disponibilidad.
Arquitecturas básicas
Acceso Remoto (Roadwarrior):
Usuarios que se conectan de manera remota (domicilios, hoteles..) utilizando Internet como vía de acceso.
Punto a Punto:
Conexión entre diversos puntos de una Organización a través de Internet.
Interna VLAN:
Utiliza la LAN de la organización como vía de acceso. Sirve para aislar zonas y servicios de la red interna.
Buscando en la web he encontrado abundante información, algunos de ellos muy interesantes, los cuales les dejo al final del artículo.
En esta ocasión les dejo los pasos para instalar OpenVPN en Debian, utilizando PKI y en modalidad Roadwarrior.
Instalamos OpenVPN
# apt-get install openvpn
Copiamos los scripts de ejemplo en /etc/openvpn
# cp -a /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn
Vamos al directorio donde copiamos los scripts
# cd /etc/openvpn/easy-rsa/2.0
. ./vars
./clean-all
./build-ca
Con esto lo que hacemos es:
* Inicializar variables de ambiente para poder trabajar con los siguientes scripts de shell para generar las variables.
* Inicializamos el directorio de las claves (borrando potenciales archivos viejos).
* build-ca: procedemos a generar el certificado CA.
Deberemos ingresar los datos de la Organización reales (para ser prolijos) y teniendo especial atención en el parámetro Common Name el cual deberá ser distinto para el caso de la CA, Servidor y los Clientes.
Generamos las credenciales para el Servidor
# ./build-key-server servidor
Nuevamamente debemos repetir los datos ingresados anteriormente, recordando utilizar una denominación diferente de la que usamos para la CA (en el paso anterior).
Generamos las credenciales de los Clientes
# ./build-key cliente1
Esto genera los archivos cliente1.key (llave) y cliente1.crt (certificado).
Creamos los parámetros Diffie-Hellman:
# ./build-dh
Copiamos las credenciales del Servidor en /etc/openvpn
# cp ca.crt ca.key servidor.crt servidor.key dh1024.pem /etc/openvpn
servidor.crt y servidor.key depende del Common Name que elejimos cuando creamos las credenciales para el servidor.
Pasamos las credenciales a los clientes
Estos archivos son cliente1.crt, cliente1.key y ca.crt, se los podemos pasar vía sftp o scp, pero siempre tratando de que sea seguro.
los archivos cliente1.crt y cliente1.key dependen del Common Name que ingresamos cuando creamos las credenciales de los clientes.
Creamos la configuración del Servidor OpenVPN
# vi /etc/openvpn/server.conf
port 1194
proto udp
dev tun
persist-tun
ca ca.crt
cert servidor.crt
key servidor.key
dh dh1024.pem
#Direcciones que se asignaran a los
#clientes, el server es .1
server 10.1.1.0 255.255.255.0
ifconfig-pool-persist ipp.txt
#Ruta para que los clientes alcancen la red local del server (1.0/24)
push “route 192.168.1.0 255.255.255.0″
#Para que los clientes se visualicen entre ellos
#Debe ir junto con la opción routeback en el shorewall
client-to-client
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 4
Nota: La red local de la VPN es 192.168.1.0/24 y la red de la VPN es 10.1.1.0/24. El usuario remoto, si está detrás de un NAT debe tener una dirección local no perteneciente a la red de la VPN.
Configuramos el cliente
Dentro de la carpeta c:\archivos de programa\openvpn\config creamos un archivo llamado cliente1.ovpn.
tls-client
client
dev tun
proto udp
remote host.dominio.com
float #debido a que la IP de arriba es dinamica
resolv-retry infinite
nobind
persist-key
persist-tun
ca “C:\\Archivos de programa\\OpenVPN\\ca.crt” #Tener cuidado con el doble backslash (\\)
cert “C:\\Archivos de programa\\OpenVPN\\cliente1.crt”
key “C:\\Archivos de programa\\OpenVPN\\cliente1.key”
comp-lzo
verb 4
Nota: Copiar dentro de esta misma carpeta los archivos cliente.crt, cliente.key y ca.crt.
Ejecutamos el servicio OpenVPN en el servidor:
# /etc/init.d/openvpn start
Nos conectamos desde el cliente (Windows)
- Ejecutamos el GUI de OpenVPN
- Clic derecho en el ícono de OpenVPN, elegimos cliente (es el nombre del archivo con extensión .ovpn) y luego connect.
Mas info aquí, aquí, aquí, aquí, aquí, aquí, aquí, aquí, aquí, aquí, aquí, aquí, aquí, aquí, aquí , aquí , aquí y aquí.

Referencia: http://www.linux-os.com.ar/linuxos/openvpn-en-debian-y-clientes-windows-roadwarriors/
0 comentarios:
Publicar un comentario