Pruebas OpenVPN
Introducción
Apuntes sobre la instalación de OpenVPN de mi casa, para poder hacer el chorra y poder conectarme desde cualquier sitio a las cosas de casa, que en realidad no hay nada especial...
Instalación de OpenVPN
La instalación la voy a realizar en mi raspberryPI que ya está haciendo de DHCP y DNS para la casa. Como decía en la página de Ovpn, si lo tenemos disponible desde paquetería mejor instalarlo desde ahí, y eso es lo que he hecho
apt-get install openvpn
Certificados
Para la conexión de clientes vamos a hacerlo mediante certificados. He leido que hay métodos alternativos de autenticacion, y con autenticación por usuario y contraseña, pero de momento no me he querido complicar.
Como ya tengo mi propia Entidad Certificadora (CA) he decidido que voy a usar esta misma, pero se puede hacer mucho más fácil usando la utilidad easy-rsa que viene con el propio paquete de openVPN. Se puede leer más sobre esto aqui
CA Subordinada
Ya tenía una CA (Ardemans), para la VPN me he creado una SubCa para crear tanto el certificado de servidor como los certificados de clientes. Para crea la SubCA he seguido los pasos de aqui
Para mantener esta SubCA a parte, he creado la estructura de directorios de una CA dentro del directorio /etc/openvpn/ArdemansVPN_CA
El fichero de configuración de esta SubCA lo he copiado de la CA Ardemans que ya tenía de antes, pero he tenido que hacer algunos cambios, en cuanto al directorio raiz donde está la entidad certificadora y tambien en el CERT y la KEY resultado de la generacion de la SubCA.
También he tenido que cambiar de la configuracion de la CA las ubicaciones de las authorityInfoAccess y crlDistributionPoints, para que apunten a una nueva URL, ya que este tendrás las suyas propias.
http://www.ardemans.com/ssl/ArdemansVPN_CA.crl http://www.ardemans.com/ssl/ArdemansVPN_CA.crt
Con esta subCA he creado un certificado para servidor, siguiendo los pasos de la página que he enlazado antes.
Para los certificados de cliente he tenido que hacer alguna moficación mas en el fichero de configuración de la CA, y es que no había extensión definida para crear certificados de cliente, así que he añadido una propia:
[ client_ext ] nsCertType = client nsComment = "Certificado generado con OpenSSL" subjectKeyIdentifier = hash authorityKeyIdentifier = keyid,issuer authorityInfoAccess = @aia_sect crlDistributionPoints = URI:http://www.ardemans.com/ssl/ArdemansVPN_CA.crl