meta data de esta página
  •  

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
hardware:fortigate:vpn:ipseccertificados [242020/04/ 18:22] – [Crear conexión y usuarios en el Fortigate] lchardware:fortigate:vpn:ipseccertificados [182023/01/ 13:45] (actual) – editor externo 127.0.0.1
Línea 1: Línea 1:
 +{{tag> vpn, ipsec, certificados }}
 +===== VPN ipsec con certificados =====
 +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:
 +  - Crear una entidad certificadora
 +  - Generar un certificado raíz
 +  - Generar certificados para los clientes de la vpn
 +    - Generar un petición para los clienes desde el XCA
 +    - Firmar la petición
 +    - exportar el certificado firmado de cliente
 +    - exportar desde el fortigate el certificado raíz CA_Cert
 +    - importar los certificados clientes y raíz al Forticlient
 +  - Crear vpn, políticas y usuarios en el fortigate
 +
 +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 
 +
 +
 +==== Crear una entidad certificadora ====
 +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.
 +  * En la ventana que se abre especificar el nombre y la ubicación donse se almacena el fichero con la base de datos XCA y pulsar guardar.
 +  * Nos aparece una ventana donde debemos poner una contraseña para encriptar el fichero de la base de datos. Esa contraseña es necesaria para cada vez que vayamos a abrir esa base de datos.
 +
 +{{ :hardware:fortigate:xcapassword.png?600 |}}
 +
 +Nos aparece la siguiente ventana {{ :hardware:fortigate:xca1.png?600 |}}
 +
 +==== Generar el certificado Raíz ====
 +Pulsamos sobre la pestaña **Certificates** y entonces pulsamos en el botón **New Certificate**. 
 +{{ :hardware:fortigate:xca2.png?600 |}}
 +
 +Configuramos los parámetros del certificado. 
 +=== Pestaña Sujeto ===
 +Configuramos la información de identificación.
 +
 +Rellenamos los campos de Distinguished name y pulsamos sobre el botón inferior **Generate a new key**
 +{{ :hardware:fortigate:xca3.png?600 |}}
 +
 +
 +Seleccionamos el tamaño de la clave y pulsamos el botón **Create**
 +{{ :hardware:fortigate:xca4.png?300 |}}
 +
 +=== Pestaña Extensions ===
 +modificamos los siguientes parámetros:
 +  * en la lista desplegable **Type** elegimos **Certification Authority**
 +  * En la casilla **Time range** ponemos 10 para que el certificado raíz tenga una validez de 10 años{{ :hardware:fortigate:xca5.png?600 |}}
 +
 +=== Pestaña Key usage ===
 +En el panel de la izquierda comprobamos que tenemos las opciones:
 +  * Digital Signature
 +  * Key Agreement
 +  * Certificate Sign
 +
 +{{ :hardware:fortigate:xca6.png?600 |}}
 +
 +
 +Pulsamos Aceptar y nos debe aparecer una ventana indicandonos que el certificado ha sido creado
 +{{ :hardware:fortigate:xca7.png?600 |}}
 +{{ :hardware:fortigate:xca8.png?600 |}}
 +
 +Lo siguiente es exportar el certificado raíz para tener una copia de seguridad. Para ello hacemos lo siguiente:
 +
 +  * Pestaña certificados ->Seleccionamos el certificado de la CZ ->Botón exportar ->ponemos la ubicación y el nombre de donde guardamos el certificado y pulsamos sobre el botón Aceptar
 +{{ :hardware:fortigate:xca9.png?600 |}}
 +
 +==== Crear certificados para los clientes ====
 +Abrimos el XCA -> Pestaña Solicitudes de Certificado (Certificate signing requests )-> Nueva solicitud (New Request)
 +{{ :hardware:fortigate:x_certificate_and_key_management-2014-02-20_12.34.52.png?600 |}}
 +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)
 +
 +{{ :hardware:fortigate:x_certificate_and_key_management-2014-02-20_12.37.49.png?600 |}}
 +<note>el commonname tiene que coincider con el del usuario pki que creamos en el fortinet </note>
 +
 +Seleccionamos el tamaño de la clave y pulsamos sobre create.
 +{{ :hardware:fortigate:vpn:xcacliente1.png?nolink&600 |{{ :hardware:fortigate:vpn:xcacliente1.png?nolink&600 |}}
 +
 +Una vez creada la clave vamos a la pestaña **key usage** y seleccionamos del panel de la izquierda -> Digital signature 
 +
 +{{ :hardware:fortigate:x_certificate_and_key_management-2014-02-20_12.43.34.png?600 |}}
 +
 +Pulsamos el botón de aceptar 
 +=== Firma del certificado cliente ===
 +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
 +{{ :hardware:fortigate:screenshot-2014-02-20_12.55.57.png?600 |}}
 +
 +
 +
 +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
 +{{ :hardware:fortigate:x_certificate_and_key_management-2014-02-20_13.08.28.png?600 |}}
 +
 +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 
 +
 +==== Importar Certificados al Fortigate ====
 +Depués debemos de exportar los certificados de la CA y del cliente hay que importarlos al Fortigate.
 +
 +=== Importar Certificado Raiz ===
 +System ->Certificates ->Import->CA Certificates ->Seleccionamos el fichero CA Raiz que previamente hemos exportado de nuestra entidad Certificadora
 +{{ :hardware:fortigate:vpn:importcertca.png?nolink&600 |}}
 +
 +=== Importar certificado cliente ===
 +Vamos al interfaz web del cortafuegos -> System ->Certificates ->Local Certificate -> Import -> Seleccionamos el certificado cliente del paso anterior
 +{{ :hardware:fortigate:vpn:importarcert.png?nolink&600 |}}
 +
 +====  Forticlient ====
 +=== Importar certificados al Forticlient ===
 +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 
 +{{ :hardware:fortigate:vpn:w10importcert.png?nolink&600 |}}
 +
 +=== Crear la conexión ===
 +
 +
 +Añadimos una nueva conexión con los siguientes parámetros
 +
 +{{:undefined:forticlient.png|}}
 +<note>La autenticación XAuth la he deshabilitado para simplificar, pero sería recomendable activarla tanto el fortigate como en el cliente</note> 
 +
 +==== Crear conexión y usuarios en el Fortigate ===
 +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:
 +  -  Crear los usuarios de validación PKI
 +  -  Crear la VPN 
 +  -  Añadir políticas de acceso
 +
 +
 +
 +=== Creamos los usuarios de validación ===
 +== Validación por certificados ===
 +Para la validación por certificados hay que crear usuarios PKI.    Fortigate-> User & Device -> PKI
 +{{ :hardware:fortigate:vpn:pki1.png?nolink&600 |}}
 +
 +
 +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
 +=== Creamos la VPN ===
 +En mi caso voy a generar una vpn por ipsec.  Fortigate->VPN -> Ipsec Tunnels -> Create New
 +{{ :hardware:fortigate:vpn:vpn1.png?nolink&600 |}}
 +
 +En mi caso voy a generarla utilizando el boton **Custom** 
 +{{ :hardware:fortigate:vpn:vpn2.png?nolink&600 |}}
 +
 +{{ :hardware:fortigate:vpn:pki2.png?nolink&600 |}}
 +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
 +{{ :hardware:fortigate:vpn:pki3.png?nolink&600 |}}
 +
 +El resto de parámetros los pondremos según nuestras necesidades, un ejemplo completo sería el siguiente
 +{{ :hardware:fortigate:vpn:pki4.png?nolink&600 |}}
 +{{ :hardware:fortigate:vpn:pki5.png?nolink&600 |}}
 +{{ :hardware:fortigate:vpn:pki6.png?nolink&600 |}}
 +{{ :hardware:fortigate:vpn:pki7.png?nolink&600 |}}
 +{{ :hardware:fortigate:vpn:pki8.png?nolink&600 |}}
 +<note tip>Por supuesto hay que dar de alta en el Fortigate todos los rangos de las direcciones que vayamos a utilizar y las reglas de acceso que van a necesitar esas redes</note>