RSS

OpenVPN: Instalación y configuración del servidor en Linux y autentificacion de clientes Windows e Linux

07 Feb

openvpn en ubuntu 14.04

Virtual Private Network, 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.

El concepto de trabajar desde casa o en algún lugar que no sea la oficina (oficina remota) es muy común en estos días. Bueno, que hay una solución práctica de este tipo de oficina remota es OpenVPN. Como se refleja en su nombre, OpenVPN es una solución de red privada virtual. Con VPN habilitada la red local de la empresa puede acceder en cualquier lugar a través de Internet. El acceso a las redes locales a través de Internet esto se hará como somos ordenadores conectados directamente a la red local. Así, desde cualquier sitio conectado a internet podemos tener acceso al equipo servidor de la empresa, acceder al servidor web interno de la empresa, o más bien estamos en una LAN. Esto sin duda le ahorrará tiempo, dinero y energía, ya que podemos mantener el trabajo sin tener una oficina fija. OpenVPN es software disponible para varios sistemas operativos principales tanto Windows y Linux

Servidor OpenVPN en Linux

Configuración de la MV

Servidor OpenVPN

Instala el Servidor OpenVPN

# sudo apt-get update && sudo apt-get upgrade

Instala el paquete openvpn el siguente comando

# sudo apt-get install opnvpn

instala openvpn

Configuración de Autoridad de Certificación

# sudo apt-get install easy-rsa

instala easy-rsa

Esribe «sudo su» para convertirse en root. Vas a estar ejecutando todo como root. Normalmente, esto no es una práctica muy buena, pero he encontrado que las grandes partes de los errores vienen si no es root.

easy-rsa
A continuación, edite / usr/ share / easy-rsa / vars ajustando el siguiente a su entorno:

vars

Introduzca los siguientes datos para generar la principal autoridad de certificación (CA) certificado y la clave:

# source var o «punto espacio vars» . vars = Para ejecutar el uso de la plantilla vars que acabamos de modificar

source vars

punto espacio vars

# ./clean-all = Para limpia cualquier certificado que existe, en este caso que no existia nada, se creara solo el directorio donde vaya almacenando los certificados que vamos a crear.

clean all

# ./build-ca = Para construir claves para la autoridad de certificación

buitl ca

Crear tipo de cryptografia para las conexiones 

Parámetros Diffie Hellman se  generar para el servidor OpenVPN:

# ./build-dh

built dh

Tarda casi un minuto

built dh b

Crear certificados de servidor

A continuación, vamos a generar un certificado y la clave privada para el servidor:

# ./build-key-server nombre_del_servidor

Acepte los valores predeterminados, excepto la contraseña de desafío. Aceptar sí a firmar el certificado y si la solicitud debe estar comprometido,

built server a

asegurarse que aceptas la confirmación para que se firma estos certificados, si no, no serán validos cuando necesita va verificación con la autoridad.

built server b

Todos los certificados y claves han sido generado en el directorio keys /.

ls keys

La práctica común es que copiarlos   / etc / openvpn /:

# cd keys/

# cp nombre_servidor.crt nombre_servidor.key ca.crt dh1024.pem /etc/openvpn/

cp keys

Crear certificados de cliente

El cliente VPN también necesitará un certificado para autenticarse en el servidor. Por lo general, se crea un certificado diferente para cada cliente. Para crear el certificado, escriba lo siguiente en una terminal mientras que siendo usuario root:

En este ejemplo vamos a usar el nombre usuariovpn

# source vars

# ./build-key nombre_cliente_o_usuario

built usuariovpn a

Confirma que se firme como en el anterior

built usuariovpn b

Configuración del servidor

Para configurar el servidor VPN, copie el ejemplo de archivo (server.conf.gz) de configuración desde /usr/share/doc/example/openvpn/simple-config-files, al directorio /etc/openvpn

cp server.conf

Descomprime el archivo con el comando gunzip

# gunzip server.conf.gz

descomprimir server.conf

Abre el archivo server.conf con un editor de texto y

edita server.conf

modificar/añade la siguiente ubicación de las llaves como tenga definido cuando crear loas claves

ca ca.crt = Linea 78

cert nombre_servidor.crt   = linea 79

key nombre_servidor.key = Linea 80

serv crt y key

dh dh1024.pem  = Linea 87

dh2048

Ahora iniciar el servidor VPN

# service openvpn start

inicia el servidor vpn

Si todo está bien, la interfaz túnel virtual debe ser activada ahora,  puede comprobar con el comando abajo

# ifconfig tun0

ifconfig tun0

Comprobar si el puerto por defecto está abierto y se está escuchando las peticiones desde fuera

# netstat –putan | grep 1194

netstat

Configuración del cliente

Ahora, Copie los siguientes archivos en el cliente utilizando un método seguro: voy a usar winscp (tenga en cuenta los permisos,  propietarios de los archivos y directorio donde se encuantran los archivos) por que ubuntu no permite inicia sesion directamente como root. ya que en winscp no puedes esta conectado como root.

1. /etc/openvpn/ca.crt

2. /etc/openvpn/easy-rsa/keys/usuariovpn.crt

3. /etc/openvpn/easy-rsa/keys/usuariovpn.key

Configuración de Windows 7 como  cliente OpenVPN

Configuración de windows 7 como  cliente OpenVPN

Enciendo el cliente y ve a descargas de  la página oficial para descarga la versión correspondiente al sistema

descarga openvpn

Seleccionar la versión correspondienteimage030

image031

Ahora usamos el cliente OpenVPN para Windows, que es el mismo ejecutable que el servidor. Así que hay que instalar el paquete openvpn de nuevo en la máquina cliente:

Instala openvpn en windows 7

Clic Next para instala los paquetes

 openvpn instalation in windows 7

Cuando termine la instalación,  ve a directorio c:\Achivos de program\OpenVPN\sample-config y copia el archivo cliente

configurar openvpn en windows 7

Pegar el archivo en  c:\Achivos de program\OpenVPN\config junto los certificados del cliente copiados desde el servidor y la clave pública ca.crt de la autoridad de certificación

image035

Editar el archivo client con un editor de texto para introducir los datos donde se encuentra el servidor  y las claves de cliente e autoridad de certificación

nota: no te olvides los permisos de windows para poder escribir en este archivo de configuración 

image036

vpn cliente in windows

 

Autentificación del cliente

Inicie OpenVPN GUI desde su escritorio

OpenVPN GUI

OpenVPN GUI

Ve a la barra de tareas y haga clic derecho para seleccionar Conectarse

como se conecta a un servidor vpn

conectando a un servidor openvpn

Si todo esta bien configurado, el cliente estaré Autorizado y se creara un túnel VPN.

Tunel vpn

¿Como configurar un servidor openvpn en linux? , ¿Como configurar un cliente openvpn en windows?, ¿Como crear una autoridad de certificación digital?

Configuración de Ubuntu Desktop 14.04.como  cliente OpenVPN

En el servidor crear y firma claves de certificados para este cliente.

usuario2

copia las claves de forma segura al cliente

encendemos el cliente y conecta a internet

Instala openvpn en el cliente

# apt-get update && apt-get upgrade 

cliente

importar las claves de forma seguro

copia archivo de forma seguro a cliente

copia archivo de forma seguro a cliente2

copia archivo de forma seguro a cliente3

Darle permiso de lectura

copia archivo de forma seguro a cliente4

Traer la plantilla de configuración de cliente desde /usr/share/doc/openvpn/example/sample-config-files

copia client conf

Configurar el cliente diciéndole donde se encuentra el servidor y las claves

copia client conf2

copia client conf4

copia client conf3

Ánade la entrada del servidor en el fichero hosts del cliente para que el cliente sepa donde se encuentra servidorvpn

copia client conf5

copia client conf6

Autentificar un cliente Linux (Ubuntu Desktop 14.04)

Ya que todo esta configurado, basta con el siguente comando para connecta

# sudo openvpn –config /ruta/fichero_deconfiguracion_del_cliente

cliente conecta

cliente conecta 2

Ya puedes confirma la conexión escribiendo ifconfig -a para que te muestra todos la interfaces de red activos

cliente conecta 3

 

 

 

Etiquetas: , , , , ,

25 Respuestas a “OpenVPN: Instalación y configuración del servidor en Linux y autentificacion de clientes Windows e Linux

  1. franpe81

    19 febrero, 2015 at 14:28

    Bastante útil. Supongo que el proceso de configuración de un servidor OpenVPN en Windows será similar. Si no es así podrías realizar otro artículo mostrando las diferencias.

    Felicidades!

    Me gusta

     
    • Rolando Güeyo

      20 febrero, 2015 at 02:54

      Hola franpe81
      Es igual,Aqui un articulo para ello. gracias por recordarme, me lo había olvidado la publicación.

      Venga

      Me gusta

       
  2. Juan Sanz

    14 septiembre, 2015 at 11:56

    Hola Rolando,

    Gracias por este manual!!

    Acabo de instalar OpenVpn sobre Ubuntu server. Junto a unos compañeros acabo de montar un pequeño negocio y quiero usar OpenVpn para conectarnos entre nosotros.

    La cosa es que queremos crear tres grupos de usuarios que se conecten a la VPN pero queremos que un usuario sólo pueda conectarse a miembros de su mismo grupo.

    Creo que esto es posible pero la verdad es que no tenemos los conocimientos suficientes para asegurarlo. Si esto es posible, ¿podrías orientarnos un poco de cómo se haría?

    Gracias por tu atención!

    Juan

    Me gusta

     
    • Rolando Nguba

      23 septiembre, 2015 at 15:45

      Hla Juan, estab de vacaciones, ahoria leyondo las notificaciones. si ya funciona la VPN, para que las subreded se ven, solo tienes que meter las rutas en tu tabla de enrutamiento. si le resulte confuso, cuentarme como tienes estructurado tus subredes y como quiere implementar compartimiento de recursos entre ellos.

      Me gusta

       
  3. tiranoblanco

    10 noviembre, 2015 at 13:23

    Hola Rolando, muchas gracias con el tutorial lo he seguido y todo bien, lo único que no funciona es el conectarme lo demás igual que el tuyo. Mi duda es la IP que has puesto remote 192.168.1.41 en client.ovpn a quién pertenece ¿al servidor?

    Me gusta

     
  4. Veronica

    9 diciembre, 2015 at 03:07

    Sigo todos los pasos a la perfección mas cuando voy a iniciar el servicio OpenVPN no pasa nada. Algún error?

    Me gusta

     
  5. Fernando

    11 febrero, 2016 at 20:22

    Rolando buen tutorial, como puedo instalar el cliente opnevpn en un mac os x capitan. gracias por la atención.

    Me gusta

     
    • Rolando Nguba

      11 febrero, 2016 at 21:17

      Puede utilizar Tunnelblick como cliente vpn para MacOSX. descargar el imagen de disco usando este enlace https://tunnelblick.net/index.html y haga la instalación regular con mac.

      Nota; recuerda que en la primera ejecucion, va a requerir el acceso del administrador. porque esta aplicación modifique la configuración de red como parte de la conexión de VPN. Tambien en el capitan deber toma en cuenta «System Integrity Protection».

      Me gusta

       
  6. Oskarito xD

    22 marzo, 2016 at 05:34

    Hola Rolando muy buen tutorial me ayudo mucho y todo me funciona correctamente, tengo una duda, cómo puedo agregar más hosts a la VPN?
    Muchas gracias por tu aporte.

    Saludos.

    Me gusta

     
  7. Roberto Carrillo

    6 abril, 2016 at 16:38

    Buen día Rolando, tengo unas dudas, he seguido el manual, pero el puerto 1194 no me aparece abierto he buscado con nmap, puedo colocar la ip publica del servidor en el cliente para conectarme desde otra red? Espero me puedas ayudar ya he realizado varios tutoriales pero no he podido iniciar bien el servidor VPN.

    Me gusta

     
  8. Roberto

    27 abril, 2016 at 20:41

    Hola amigo, muy bueno el tutorial

    Me gusta

     
  9. Manuel Fernandez

    12 May, 2016 at 22:16

    Excelente tutorial todo salio excelente. Pero tengo una duda. Me conecte a la vpn sin problemas y me conecte por ssh al servidor web todo perfecto. Pero al tratar de ver las paginas alojadas en este server a traves de mi navegador mozilla no me carga la pagina. Tengo que configurar algo mas para poder visualizar las paginas del servidor web que esta en la vpn?? De antemano super agradecido este tutorial es una maravilla, Agregado a mis Favoritos!!

    Me gusta

     
  10. Juan Matias Granda

    22 junio, 2016 at 15:59

    En debian 8.5 (primera vez que pruebo) no arrancaba, tuve que editar /etc/default/openvpn y descomentar:

    AUTOSTART=»all»

    saludos y gracias por el tuto!

    Me gusta

     
  11. juan

    19 agosto, 2016 at 08:12

    Hola , primero que todo agradecer por el tutorial por que me funciono bien , pero ahora tengo un problema , cuando reinicie el servidor en este caso un pc no me pude conectar mas al servidor vpn , introduci el comando service openvpn start me aparece que esta funcionando pero los clientes no se pueden conectar ¿ me falta levantar algun servicio ? , saludos

    Me gusta

     
  12. adan

    6 septiembre, 2016 at 00:46

    Buen tutorial apesar del tiempo del post aun util disculpa yo tengo una duda no se si me podras ayudar. Segui el tutorial y logre crear el tunel. me dio una direccion de 10.8.0.6 mientras que la pc del servidor medio la 10.8.0.2 pero no pude establecer comunicacion ni con pingo entre ellas sin embargo las dos me daban pin a a la 10.8.0.1. Necesito entrar a una pagina de un servidor apache a la cual puedo ingresar desde el servidor pero del cliente no puedo me podrias ayudar y decirme si me falta configurar algo? no configure ip tables. Ademas lei que para poder compartir archivos y paginas tendria que configurar samba es verdad eso? O que puedo hacer despues con esto solo configure el tunel

    Me gusta

     
  13. adan

    7 septiembre, 2016 at 22:44

    Hola rolando. Buen tutorial. Pero no se si me puedas ayudar o guiar. Logre crear el tunel vpn y me dio direccion 10.8.0.6 en el cliente en la direccion del tunel del servidor me dio 10.8.0.2 pero no puedo hacer ping entre ellas. sin embargo las dos me dan ping a la 10.8.0.1 tanto server como el cliente. En el servidor ademas de la tarjeta de red para salida a internet que es por donde se realiza el puente tengo otra tarjeta para la red interna por medio de esta puedo llegar a otro servidor apache para correo interno. Pero despues de realizar el tunel no puedo ingresar del cliente a la pagina del correo ni tampoco visualizar archivos. Ademas de lo que viene en tu tutorial tambien habilite el ip forwarding en el servervpn. ¿Que puedo hacer o que me falta por hacer para utilizar el tunel apropiadamente quiero llegar a poder utilizar el correo interno en maquinas externas.
    De antemano gracias por la ayuda.

    Me gusta

     
  14. sergio

    11 abril, 2017 at 02:00

    Hola,

    tengo creada una red en virtualbox en la cual está el servidor vpn1 creado correctamente… Tengo instalado openvpn en mi ordenador con windows 10 y quiero acceder a vpn1. La diferencia con el tutorial es que el cliente windows que utiliza es también una maquina virtual… En mi caso es mi propia máquina.

    Mi duda surge al ver que en el tutorial el fichero client de openvpn lo modifica poniendo la IP 192.168.1.41

    El problema es que no se que IP poner ahí… Si alguien puede ayudarme lo agradecería

    Saludos

    Me gusta

     
    • Rolando Nguba

      15 abril, 2017 at 10:52

      Asumo que el servidor no tiene una IP publica, así hay que asegure que su cliente y el servidor están en la misma subred o las subredes se ver entre si.

      Me gusta

       
  15. gerardo

    19 May, 2017 at 14:37

    cuando hago ifconfig tun0 me da este error
    error fetching interface information: Device not found

    Me gusta

     
    • Rolando Nguba

      23 May, 2017 at 08:45

      Hola Gerardo,
      Esta interfaz puede tener un nombre diferente de la mía, con respecta a su tarjeta de red, es mejor hacer la lista de todas las interfaces activas y luego encontraras lo que estás buscando.
      Estos comando pùeden ser útiles.
      # route -n
      # netstat -i
      # ifconfig -a
      # nmcli con
      # nmcli con | grep -i vpn

      En todo modo, cualquier dudo , comentarlo aquí.

      Saludos.

      Me gusta

       
  16. Ricardo

    28 May, 2017 at 03:04

    Hola. Gracias por el tutorial ha sido de gran utilizad. Solo una consulta cual es la diferencia de crear un usuarios mediante source vars y el otro con . vars porque al crearme otro usuario con source vars se crea pero al agregarle los certificados en un openvpn client el servidor openvpn ya no tienen ping a ninguno de los clientes, como se podria crear otro certificado para otra PC para tener entre 3 o mas.?

    Me gusta

     

Deja un comentario