sábado, 20 de marzo de 2010

OpenVPN en debian Lenny

Tenia mucho tiempo que no publicaba algo y aqui estoy de nuevo un tuto de como configurar una vpn con openvpn punto a punto.

OpenVPN es una implementacion de VPN SSL la cual usa las extenciones OSI capa 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 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.

Instalamos OpenVPN

aptitude install openvpn openssl liblzo1

cp -a /usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn/

cd /etc/openvpn/easy-rsa/2.0/

. ./vars
./clean-all
./build-ca

Con esto lo que hemos echo 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 -R 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

vim /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.

Ejecutamos el servicio OpenVPN en el servidor:

/etc/init.d/openvpn restart

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 ca.crt
cert cliente1.crt
key cliente1.key
comp-lzo
verb 4

Nota: Copiar dentro de esta misma carpeta donde esta el archivo cliente1.ovpn ojos solo los archivos cliente.crt, cliente.key y ca.crt.

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.

1 comentario:

  1. http://openvpn.net/index.php/access-server/section-faq-openvpn-as/32-general/225-compare-openvpn-community-and-enterprise-editions-.html

    ResponderEliminar