{{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