Fortigate Certificate (RSA)

Neste post vou demonstrar a configuração do certificado RSA no firewall Fortigate, utilizado para aumentar a segurança em algumas funcionalidades, como na VPN SSL, exigindo que além das credencias de acesso o usuário informe o certificado, e na VPN IPSEC,  substituindo a Pre Shared Key. Demonstrei também a configuração de uma CA prívada através do OpenSSL.

Primeiramente iremos configurar configurar a CA através do OpenSSL, ferramenta open source disponíveis para Linux e Windows.

Neste post estarei fazendo uso da versão para Windows, disponível para download no link.

Após realizar o download e a instalação da ferramenta, acesse através do prompt de comando o diretório C:\OpenSSL-Win32\ (ou o local onde foi realizado a instalação).

C:\>cd OpenSSL-Win32
C:\OpenSSL-Win32> md certs
C:\OpenSSL-Win32\certs> md demoCA
C:\OpenSSL-Win32\certs> md demoCA/newcerts
C:\OpenSSL-Win32\certs> copy /y nul demoCA\index.txt
C:\OpenSSL-Win32\certs> echo 011F > demoCA\serial

Agora será necessário configurar algumas variais de ambiente do Windows, através do prompt de comando, aplique os comandos abaixo

set path=C:\OpenSSL-Win32\bin;%path%
set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg

Através de um editor de texto acesso o arquivo

C:\OpenSSL-Win32\bin\openssl.cfg

E altere os valores para o exibido a seguir, de “match” para “optional”

# For the CA policy
[ policy_match ]
countryName        = optional
stateOrProvinceName    = optional
organizationName    = optional
organizationalUnitName    = optional
commonName        = supplied
emailAddress        = optional

Após realizarmos estas configurações, iremos criar o key da CA, reparem que os comando a seguir serão aplicados a partir do diretório C:\OpenSSL-Win32\certs\

C:\OpenSSL-Win32\certs>openssl genrsa -out ca.key 512
Loading ‘screen’ into random state – done
Generating RSA private key, 512 bit long modulus
…++++++++++++
…++++++++++++
unable to write ‘random state’
e is 65537 (0x10001)

Para que possamos criar e assinar o CSR, aplicaremos os comandos abaixo

C:\OpenSSL-Win32\certs>openssl req -new -x509 -days 365 -key ca.key -out demoCA/cacert.pem

Country Name (2 letter code) [AU]:BR
State or Province Name (full name) [Some-State]:SP
Locality Name (eg, city) []:Sao Paulo
Organization Name (eg, company) [Internet Widgits Pty Ltd]:ViniciusBueno
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:ca.vsoc.com.br
Email Address []:security@vsoc.com.br

Agora iremos acessar o Fortigate e gerarmos o .CSR onde posteriormente a nossa CA ira o assinalo.

No fortigate, navegue até o menu Certificates > Local Certificates; e pressione a opção Generate

ca_fortigate01

Agora será necessário preencher os campos de acordo com o que foi configurado na CA; se recordam que no começo foi alterado as opções de match para opcional, então o match força que os parâmetros sejam idênticos ao da CA.

ca_fortigate02

Após preencher todos os campos, pressione OK.

Reparem que o certificado agora está com o status de Pending

ca_fortigate03

Agora iremos realizar o download o .CSR do Fortigate e assinar em nossa CA; para isso basta selecionar o VPN_Home e pressionar a opção download

ca_fortigate04

Voltando ao prompt de comando, no diretório C:\OpenSSL-Win32\certs\ , iremos assinar o .CSR; realizei a copia do arquivo para a pasta C:\OpenSSL-Win32\csr

C:\OpenSSL-Win32\certs>openssl ca -in ..\csr\VPN_Home.csr -out ..\csr\VPN_Home.crt -keyfile ca.key

Using configuration from C:\OpenSSL-Win32\bin\openssl.cfg
Loading ‘screen’ into random state – done
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number: 287 (0x11f)
Validity
Not Before: Sep  7 03:11:03 2013 GMT
Not After : Sep  7 03:11:03 2014 GMT
Subject:
countryName               = BR
stateOrProvinceName       = SP
organizationName          = ViniciusBueno
organizationalUnitName    = IT
commonName                = fgvm01.vsoc.com.br
emailAddress              = security@vsoc.com.br
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
EC:76:98:02:2B:A2:00:FA:99:96:59:7C:FB:86:B5:75:3F:CD:A4:EA
X509v3 Authority Key Identifier:
keyid:6C:7D:59:E5:62:74:28:83:6A:0D:63:9A:58:91:EE:99:FA:56:F5:B

Certificate is to be certified until Sep  7 03:11:03 2014 GMT (365 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Após este processo o nosso certificado foi assinado, agora iremos importa-lo ao Fortigate

Pressione na opção Import

ca_fortigate05

Escolha a opção Local Certificate e selecione o arquivo VPN_Home.crt

ca_fortigate06

Mensagem de sucesso

ca_fortigate07

Reparem que agora trás todas as informações e com o status OK

ca_fortigate08

E assim finalizamos mais um post.

Tags: