Para crear las vpn de cliente, necesitamos tener una entidad
certificadora para generar los certificados de cliente y servidor, que
en nuestro caso estará en Server1 y el software openvpn instalado en las
máquinas. Los certificados para la vpn estarán en /opt/certificados/keys.
Para las vpn de los clientes generaremos un certificado por cada uno de ellos, debido a que necesitamos poder asignar IPs fijas a cada cliente, y esto se consigue mediante un certificado único por cliente.
Para las vpn de los clientes generaremos un certificado por cada uno de ellos, debido a que necesitamos poder asignar IPs fijas a cada cliente, y esto se consigue mediante un certificado único por cliente.
Creación de la entidad cerificadora
- Para la creación de la entidad certificadora, en el directorio /opt/certificados de la máquina que hara las veces de CA, copiamos el contenido de /usr/share/doc/openvpn/examples/easy-rsa/ a /opt/certificados.
- El siguiente paso es modificar el fichero vars con los datos correspondientes.
export KEY_COUNTRY=es
export KEY_PROVINCE=Madrid
export KEY_CITY=Madrid
export KEY_ORG="Miempresa"
export KEY_EMAIL="sistemas@miempresa.com"
- Cargamos las variables de entorno, lanzamos la limpieza de certificados y generamos la CA.
. ./vars
./clean-all
./build-ca
Generación de certificados y clave para el servidor
- Para la generación del certificado de servidor hay que lanzar el siguiente comando:
./build-key-server server
Generación de certificados de cliente
- En el caso de las vpn de los clientes tenemos que repetir este proceso por cada cliente, por que como hemos comentado arriba, las servoapp necesitan de una IP fija para su monitorización y el proceso de recuperación de datos del cliente.
./build-key cliente1
root@baco /opt/certificados $ ./build-key cliente1
Generating a 1024 bit RSA private key
......................++++++
..........................................................++++++
writing new private key to 'cliente1.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [es]:
State or Province Name (full name) [Madrid]:
Locality Name (eg, city) [Madrid]:
Organization Name (eg, company) [Miempresa Cliente]:
Organizational Unit Name (eg, section) []:sistemas
Common Name (eg, your name or your server's hostname) []:cliente1
Email Address [sistemas@miempresa.com]:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /opt/certificados/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'es'
stateOrProvinceName :PRINTABLE:'Madrid'
localityName :PRINTABLE:'Madrid'
organizationName :PRINTABLE:'Miempresa Cliente'
organizationalUnitName:PRINTABLE:'sistemas'
**commonName :PRINTABLE:'cliente1'**
emailAddress :IA5STRING:'sistemas@miempresa.com'
Certificate is to be certified until Dec 6 11:27:35 2017 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
- Es muy importante a la hora de generar el certificado de cliente el campo commonName ya que deberemos crear un fichero con ese mismo nombre dentro de /etc/openvpn/ccd para que openvpn asigne una IP fija a ese cliente.
Generación Diffie Hellman
./build-dh
Fichero de configuración
Un vez generados los certificados y la CA (/opt/certificados/keys),
debemos copiar al directorio /etc/openvpn/ del servidor, los siguientes ficheros:
Para la configuración de la vpn del lado del cliente , necesitaremos enviar los ficheros:
- ca.crt
- server.crt
- server.key
- dh1024.pem
port 1194
proto tcp
dev tun
ca server/ca.crt
cert server/server.crt
key server/server.key
dh server/dh1024.pem
server 10.0.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-config-dir ccd
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
- En la directiva “client-config-dir ccd” espeficicamos a openvpn que lea cualquier fichero contenido en este directorio que coincida con el commonName del certificado de cliente. Por ejemplo, hemos creado un fichero llamado cliente1 que contiene la linea:
ifconfig-push 10.0.0.250 10.0.0.1De esta manera le decimos a openvpn que reserve esta IP para el certificado de cliente cliente1, siendo 10.0.0.250 la IP asignada al cliente y 10.0.0.1 la IP que tiene el servidor.
Para la configuración de la vpn del lado del cliente , necesitaremos enviar los ficheros:
- ca.crt
- cliente1.crt
- cliente1.key
client
dev tun
proto tcp
remote 80.25.33.194 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca servotic_cliente/ca.crt
cert servotic_cliente/cliente1.crt
key servotic_cliente/cliente1.key
comp-lzo
verb 3
No hay comentarios:
Publicar un comentario