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