User Tools

Site Tools


informatica:linux:openvpn

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatica:linux:openvpn [2015/05/25 14:40] javiinformatica:linux:openvpn [2018/01/05 14:20] (current) – [Autenticación LDAP] javi
Line 22: Line 22:
  
 <code> <code>
-cd /usr/share/doc/openvpn/examples/easy-rsa/2.0+cd /usr/share/easy-rsa
 sudo su sudo su
 vim vars vim vars
Line 44: Line 44:
 ./clean-all ./clean-all
 ./build-ca ./build-ca
 +</code>
 +
 +Error:
 +
 +<code>
 +grep: /usr/share/easy-rsa/openssl.cnf: No such file or directory
 +pkitool: KEY_CONFIG (set by the ./vars script) is pointing to the wrong
 +version of openssl.cnf: /usr/share/easy-rsa/openssl.cnf
 +The correct version should have a comment that says: easy-rsa version 2.x
 +</code>
 +
 +Solución:
 +
 +  ln -s openssl-1.0.0.cnf openssl.cnf
 +
 +Y volver a intentar:
 +
 +  ./build-ca
 +  
 +Error:
 +
 +<code>
 +unable to find 'distinguished_name' in config
 +problems making Certificate Request
 +1995425184:error:0E06D06A:configuration file routines:NCONF_get_string:no conf or environment variable:../crypto/conf/conf_lib.c:272:
 +</code>
 +
 +Desconozco el motivo, pero se resuleve editando las lineas en las que se le asigna un valor a la variable "subjectAltName", en mi caso 2 veces:
 +
 +  vim openssl.cnf
 +  
 +Y cambio los valores:
 +
 +<code>
 +# anyadido
 +#subjectAltName=$ENV::KEY_ALTNAMES
 +subjectAltName=email:copy
 +</code>
 +
 +Y volver a intentar:
 +
 +  ./build-ca
 +
 +Ahora a contestar las preguntas y pulsar "enter" al final de cada una:
 +
 +<code>
 +Country Name (2 letter code) [US]:ES
 +State or Province Name (full name) [BC]:
 +Locality Name (eg, city) [Barcelona]:
 +Organization Name (eg, company) [Contrabanda FM]:
 +Organizational Unit Name (eg, section) [Tècnica]:
 +Common Name (eg, your name or your server's hostname) [ContrabandaFM]:
 +Name [EasyRSA]:
 +Email Address [admin@example.com]:
 </code> </code>
  
Line 51: Line 105:
  
   ./build-key-server server   ./build-key-server server
 +
 +Ahora a contestar las preguntas y pulsar "enter" al final de cada una:
 +
 +<code>
 +Country Name (2 letter code) [US]:ES
 +State or Province Name (full name) [BC]:
 +Locality Name (eg, city) [Barcelona]:
 +Organization Name (eg, company) [Contrabanda FM]:
 +Organizational Unit Name (eg, section) [Tècnica]:
 +Common Name (eg, your name or your server's hostname) [ContrabandaFM]:
 +Name [EasyRSA]:
 +Email Address [admin@example.com]:
 +</code>
 +
 +Las contraseñas las dejo en blanco:
 +
 +  A challenge password []:
 +  An optional company name []:
 +
 +Y aquí hay que pulsar "y" más "enter":
 +
 +  Sign the certificate? [y/n]:
 +  1 out of 1 certificate requests certified, commit? [y/n]
  
 4.2. Generate Diffie Hellman parameters 4.2. Generate Diffie Hellman parameters
  
 +**OJO**: puede llevar mucho tiempo, unos 15 minutos:
 + 
   ./build-dh   ./build-dh
  
-4.3. Mover llaves+4.3. Mover llaves (revisar, no estoy seguro de que haya que mover en lugar de copiar nada):
  
   mkdir -p /etc/openvpn/keys/server   mkdir -p /etc/openvpn/keys/server
Line 79: Line 158:
 cert /etc/openvpn/keys/server/server.crt cert /etc/openvpn/keys/server/server.crt
 key /etc/openvpn/keys/server/server.key  key /etc/openvpn/keys/server/server.key 
-dh /etc/openvpn/keys/server/dh1024.pem+dh /etc/openvpn/keys/server/dh2048.pem
 server 172.16.0.0 255.255.255.0 server 172.16.0.0 255.255.255.0
 ifconfig-pool-persist ipp.txt ifconfig-pool-persist ipp.txt
Line 104: Line 183:
 ===== Generar claves de los clientes ===== ===== Generar claves de los clientes =====
  
-==== Migracion a openvpn >=2.3 ==== 
  
-**IMPORTANTE**: realizar los siguientes pasos **UNA** sola vez, en caso de migrar a openvpn >=2.3 
- 
-0. Instalar paquete, ahora ya NO es parte de openvpn 
- 
-  sudo aptitude install easy-rsa 
-   
-1. **IMPORTANTE**: mover certificados de la CA, lista de revocados, etc... a nueva ubicacion: 
- 
-  cd /usr/share/easy-rs 
-  mv keys keys.old 
-  sudo mv /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/ /usr/share/easy-rsa 
  
 ==== Procedimiento generico ==== ==== Procedimiento generico ====
  
 Para cada nuevo cliente se tiene que repetir este proceso completo. Para cada nuevo cliente se tiene que repetir este proceso completo.
- 
  
 1. Convertirse en root y entrar en el directorio: 1. Convertirse en root y entrar en el directorio:
  
   sudo su   sudo su
-  cd /usr/share/doc/openvpn/examples/easy-rsa/2.0 
- 
-Openvpn >=2.3: 
- 
   cd /usr/share/easy-rsa   cd /usr/share/easy-rsa
  
Line 139: Line 201:
  
   ./build-key client1   ./build-key client1
 +
 +Contestar las preguntas, presionar "enter" para aceptar los valores propuestos:
 +
 +<code>
 +Country Name (2 letter code) [US]:ES
 +State or Province Name (full name) [BC]:
 +Locality Name (eg, city) [Barcelona]:
 +Organization Name (eg, company) [Contrabanda FM]:
 +Organizational Unit Name (eg, section) [Tècnica]:
 +Common Name (eg, your name or your server's hostname) [client1]:
 +Name [EasyRSA]:
 +Email Address [admin@example.com]:
 +</code>
 +
 +Las contraseñas las dejo en blanco:
 +
 +  A challenge password []:
 +  An optional company name []:
 +
 +Y aquí hay que pulsar “y” más “enter”:
 +
 +  Sign the certificate? [y/n]:
 +  1 out of 1 certificate requests certified, commit? [y/n]
 +
  
 4. Mover las llaves y copiar la clave publica de la CA a un directorio: 4. Mover las llaves y copiar la clave publica de la CA a un directorio:
  
   mkdir -p ~/openvpn/client1   mkdir -p ~/openvpn/client1
-  user="client1"cp keys/ca.crt ~/openvpn/$usercp keys/ta.key ~/openvpn/$user; mv keys/$user.crt keys/$user.key ~/openvpn/$user +  user="client1" && cp keys/ca.crt ~/openvpn/$user/ && cp keys/$user.crt keys/$user.key ~/openvpn/$user/
-  rm -fr keys/client1.csr+
  
 5. Crear el archivo de configuracion del cliente (hay un ejemplo en /usr/share/doc/openvpn/examples/sample-config-files 5. Crear el archivo de configuracion del cliente (hay un ejemplo en /usr/share/doc/openvpn/examples/sample-config-files
 ): ):
  
-  vim ~/openvpn/client1/client1.conf+  user="client1" && vim ~/openvpn/$user/$user.conf
      
 Con el siguiente contenido: Con el siguiente contenido:
Line 305: Line 390:
  
   sudo service openvpn start   sudo service openvpn start
 +  
 +==== Migracion a openvpn >=2.3 ====
 +
 +**IMPORTANTE**: realizar los siguientes pasos **UNA** sola vez, en caso de migrar a openvpn >=2.3
 +
 +0. Instalar paquete, ahora ya NO es parte de openvpn
 +
 +  sudo aptitude install easy-rsa
 +
 +1. **IMPORTANTE**: mover certificados de la CA, lista de revocados, etc... a nueva ubicacion:
 +
 +  cd /usr/share/easy-rs
 +  mv keys keys.old
 +  sudo mv /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/ /usr/share/easy-rsa
 +
 ====== Acceso desde el cliente a la LAN del servidor VPN (gateway de la LAN y servidor VPN son distintos) ====== ====== Acceso desde el cliente a la LAN del servidor VPN (gateway de la LAN y servidor VPN son distintos) ======
  
Line 889: Line 989:
   </Authorization>   </Authorization>
  
 +
 +====== IPs estáticas ======
 +
 +http://dnaeon.github.io/static-ip-addresses-in-openvpn/
 +
 +1. Una sola vez
 +
 +1.1. Crear directorios y archivos:
 +
 +  sudo mkdir /etc/openvpn/ccd
 +  sudo touch /etc/openvpn/ipp.txt
 +  
 +1.2. Editar arhcivo de configuración del servidor VPN:
 +
 +  sudo vim /etc/openvpn/server.conf
 +  
 +Y añadir las lineas:
 +
 +  client-config-dir /etc/openvpn/ccd
 +  ifconfig-pool-persist /etc/openvpn/ipp.txt
 +
 +1.3. Reiniciar el servicio:
 +
 +  sudo service openvpn restart
 +  
 +2. Para cada cliente
 +
 +2.1. Crear un archivo con el nombre del certificado que se ha creado:
 +
 +  sudo vim /etc/openvpn/ccd/client1
 +
 +Y especificar tanto la IP como la IP del servidor VPN:
 +
 +  ifconfig-push 172.16.0.50 172.16.0.1
 +
 +2.2. Reservar esa IP para ese certificado, para no asignársela a otro cliente:
 +
 +  client1,172.16.0.50
 +
 +2.3. (Cliente) Reiniciar el servicio VPN:
 +
 +  sudo service openvpn restart
 +  
 +2.4. (Cliente) Comprobar que la IP es la especificada en los pasos 2.1. y 2.2:
 +
 +  sudo ifconfig
 +
 +  
 +  
 +  
informatica/linux/openvpn.1432564822.txt.gz · Last modified: 2015/05/25 14:40 by javi