Vamos a realizar todo el proceso necesario para realizar conexiones a nuestro fortigate mediante certificados. Para ello necesitamos un crear una entidad certificadora, ya sea con un servidor Windows con el rol de AD CS(mirar las páginas de referencia), mediante openssl, o como en nuestro caso usando una aplicación para windows llamada XCA http://xca.sourceforge.net/.
Los pasos que vamos a seguir son:
Una VPN con certificados nos garantiza una mayor seguridad, ya que por un lado usamos una clave de encriptación de mayor tamaño y por otro lado implica un segundo factor de autenticación ya que además del usuario/contraseña es necesario tener instalado un segundo elemento como es el certificado
Nos bajamos el XCA y lo instalamos en nuestro equipo con permisos de administrador
En XCA cada CA (Autoridad Certificadora)se almacena en un fichero con extensión *.xdb. Se recomienda usar distintas bases de datos para cada PKI (Infraestructura de clave pública) que creemos.
Ejecutamos el programa Click File > New Database.
Pulsamos sobre la pestaña Certificates y entonces pulsamos en el botón New Certificate.
Configuramos los parámetros del certificado.
Configuramos la información de identificación.
Rellenamos los campos de Distinguished name y pulsamos sobre el botón inferior Generate a new key
Seleccionamos el tamaño de la clave y pulsamos el botón Create
modificamos los siguientes parámetros:
En el panel de la izquierda comprobamos que tenemos las opciones:
Pulsamos Aceptar y nos debe aparecer una ventana indicandonos que el certificado ha sido creado
Lo siguiente es exportar el certificado raíz para tener una copia de seguridad. Para ello hacemos lo siguiente:
Abrimos el XCA → Pestaña Solicitudes de Certificado (Certificate signing requests )→ Nueva solicitud (New Request) Seleccionamos nuestra plantilla de CA para generar el nuevo certificado
En la ventana que se abre → Pestaña Subject → Rellenamos los campos y pulsamos sobre el botón generar una nueva clave (generate a new key)
Seleccionamos el tamaño de la clave y pulsamos sobre create.
Una vez creada la clave vamos a la pestaña key usage y seleccionamos del panel de la izquierda → Digital signature
Pulsamos el botón de aceptar
El siguiente paso sería firmar la petición de certificado que hemos generado. Vamos a la pestaña Solicitudes de Certificado (Certificate signing requests) aparece la petición que acabamos de crear con el estado de la columna firma como No Manejado (Unhandled).
Pulsamos con el botón derecho del ratón y en el menu contextual que aparece seleccionamos Firma
En la ventana que se abre en la parte de signing elegimos la opción use this Certificate for signning y seleccionamos el certificado raíz
Verificamos que en la pestaña Extensions la validez que queremos darle al certificado y pulsamos sobre aceptar
Ahora nos aparecerá el certificado firmado. Ya sólo falta exportar este certificado y el certificado raíz XCA→ Pestaña Certificate→ elegimos el certificado y le damos a exportar →PKCS#12
Depués debemos de exportar los certificados de la CA y del cliente hay que importarlos al Fortigate.
System →Certificates →Import→CA Certificates →Seleccionamos el fichero CA Raiz que previamente hemos exportado de nuestra entidad Certificadora
Vamos al interfaz web del cortafuegos → System →Certificates →Local Certificate → Import → Seleccionamos el certificado cliente del paso anterior
Para usar el certificado de cliente que hemos generado en el equipo del usuario debemos de enviarselo por algún medio y el usario debe proceder a su instalación . En equipos con Windows 10 basta con pulsar dos veces sobre el certificado para que se inicie el asistente de instalación
Añadimos una nueva conexión con los siguientes parámetros
Aparte de los pasos anteriores se supone que en el fortigate hemos creado las políticas y los usuarios necesarios. En caso contrario los pasos a seguir son:
Para la validación por certificados hay que crear usuarios PKI. Fortigate→ User & Device → PKI
Creamos un nuevo usuario PKI teniendo en cuenta que el Subject tiene que ser el mismo que el del certficado y en CA el certificado de nuestra CA . Si sólo tienes añadida una, se llamara CA_Cert1
En mi caso voy a generar una vpn por ipsec. Fortigate→VPN → Ipsec Tunnels → Create New
En mi caso voy a generarla utilizando el boton Custom
Cambiamos Remote Gateway por Dial up user , la interface que vamos a usar, el método de autentificación a signature y seleccionamos el certificado que previamente habíamos importado. En mi caso lo he llamado igual que la vpn
En el campo Acces Type he seleccionado Peer Certificate y en el campo Peer Certificate he seleccionado el usuario pki creado anteriormente
El resto de parámetros los pondremos según nuestras necesidades, un ejemplo completo sería el siguiente