{{tag> vpn, ipsec, certificados }}
Esta página está obsoleta. La nueva la puedes encontrar en [[hardware:fortigate:vpn:ipseccertificados|VPN ipsec con 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 un certificado para el Fortigate.
- Generar un petición en el fortigate
- Importar la petición del fortigate al XCA.
- firmarlo
- exportar el certificado firmado e importarlo al Fortigate
- 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 tanto la identidad del usuario que se conecta como la del sitio al que se coneca.
==== 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 seleccionamos:
* Digital Signature
* Key Agreement
* Certificate Sign
si seleccionamos otras opciones el certificado puede no ser reconocido/aceptado por ciertos equipos o sistemas operativos
{{ :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 ->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 |}}
==== Generar certificado para el Fortigate ====
Abrimos la interfaz web de nuestro cortafuegos ->System ->Certificates -> Local Certificates.
En la parte superior pulsamos sobre Generate y se abrirá la siguiente ventana {{ :hardware:fortigate:xca10.png?600 |}}
Rellenamos los campos
{{ :hardware:fortigate:xca11.png?600 |}}
Al pulsar sobre ok volvemos a la página de Lcal Certificates. seleccionamos el certificado que hemos creado y pulsamos sobre el botón **download** de la barra.
Nos generará un fichero con la extensión **csr** que deberemos de importar en el XCA para firmar
=== Firma del Certificado generado ===
Abrimos el XCA y nos vamos a la pestaña **Certificate Signing requests** y pulsamos sobre el botón **Importar** y seleccionamos el fichero que descargamos en el paso anterior.
{{ :hardware:fortigate:xca12.png?600 |}}
Botón derecho del ratón sobre el certificado que acabamos de importar -> Firma
{{ :hardware:fortigate:xca13.png?300 |}}
Editamos los parámetros antes de firmar de acuerdo a lo siguiente:
* En source verificar está marcada la opción de usar el certificado raiz que habiamos generado
{{ :hardware:fortigate:xca14.png?600 |}}
* En la pestaña de extensions, casilla Time range poner 1 año
{{ :hardware:fortigate:xca15.png?600 |}}
* En la pestaña Key Usage marcar
* Digital Signature
* Key Agreement
* Certificate Sign
{{ :hardware:fortigate:xca16.png?600 |}}
Pulsamos aceptar para que nos firme el certificado.
Depués debemos de exportar el certificado y volverlo a importar al Fortigate. Para eso vamos a la pestaña certificates del XCA ->seleccionamos el certificado y pulsamos el botón de exportar
=== Importar certificado firmado ===
Vamos al interfaz web del cortafuegos -> System ->Certificates ->Local Certificate -> Import -> Seleccionamos el certificado firmado del paso anterior
=== Importar Certificado Raiz ===
System ->Certificates ->CA Certificates ->Import ->Marcamos la casilla Local Pc y seleccionamos el fichero CA Raiz que previamente hemos exportado de nuestra entidad Certificadora
El certificado raíz es necesario importarlo tanto al cortafuegos, como a los clientes
==== Crear certificados para los clientes ====
Abrimos el XCA -> Pestaña Certificate signing requests -> New Request
{{ :hardware:fortigate:x_certificate_and_key_management-2014-02-20_12.34.52.png?600 |}}
En la ventana que se abre -> Pestaña Subject -> Rellenamos los campos y pulsamos sobre el botón generate a new key
{{ :hardware:fortigate:x_certificate_and_key_management-2014-02-20_12.37.49.png?600 |}}
el commonname tiene que coincider con el del usuario pki que creamos en el fortinet
Seleccionamos el tamaño de la clave y pulsamos sobre create.
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 y bajo la pestaña **Certificate signing requests** aparece la petición que acabamos de crear con el estado de la columna firma como Unhandled.
=== Firma del certificado cliente ===
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
En la pestaña **Key usage** no hace falta ahora seleccionar nada
Ahora nos aparecerá el certificado firmado. Ya sólo falta exportar este certificado y el certificado raíz e importarlo al forticlient.
XCA-> Pestaña Certificate-> elegimos el certificado y le damos a exportar ->PKCS#12
==== Forticlient ====
=== Importar certificados al Forticlient ===
Desde el Fortigate descargamos la CA que hemos creado y que si es la primera seguramente se llamara el CA_Cert_1.
A su vez desde el XCA -> pestaña Certificates ->exportamos el certificado cliente en formato pkcs#12 e importamos ambos certificados al forticlient->Menu File->opciones->Gestión de Certificados->botón importar
Es necesario importar los dos certificados CA_Cert1 y el del cliente
=== Crear la conexión ===
Añadimos una nueva conexión con los siguientes parámetros
{{:undefined:forticlient.png|}}
La autenticación XAuth la he deshabilitado para simplificar, pero sería recomendable activarla tanto el fortigate como en el cliente
==== 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:
- Nos validamos en el Fortigate y vamos a la pestaña VPN
- Creamos los usuarios de validación
- Pinchamos sobre el icono **Create FortiClient VPN**
- Ponemos los siguientes parámetros
=== Creamos los usuarios de validación ===
== para PKI ===
{{ :hardware:fortigate:pki.png?400 |}}
Creamos uno nuevo teniendo en cuenta que el Subject tiene que ser el mismo que el del certficado y en CA el certificado de nuestra CA normalmente CA_Cert1
==== Referencias ====
* https://stuff.purdon.ca/?page_id=21
* https://stuff.purdon.ca/?page_id=30
* http://jbouzada.wordpress.com/2009/03/03/trabajando-con-certificados-en-windows-server-2008-1/
* http://jbouzada.wordpress.com/2009/03/12/trabajando-con-certificados-en-windows-server-2008-2/
* http://jbouzada.wordpress.com/2009/03/16/trabajando-con-certificados-en-windows-server-2008-3/
* http://jbouzada.wordpress.com/2009/03/18/trabajando-con-certificados-en-windows-server-2008-4/
* http://jbouzada.wordpress.com/2009/03/25/trabajando-con-certificados-en-windows-server-2008-5/
* http://jbouzada.wordpress.com/2009/03/30/trabajando-con-certificados-en-windows-server-2008-%E2%80%A6y-6/
* http://techlib.barracuda.com/display/CP/How%2Bto%2BCreate%2BCertificates%2Bwith%2BXCA
* https://campus.barracuda.com/product/campus/article/REF/CreateCertificatesXCA/
* http://firewallguru.blogspot.com.es/2009/05/creating-self-signed-certificates-for.html