O que é?

O OpenVPN é o software para servidor VPN SSL. Com ele é possível gerenciar autoridades certificadoras, instâncias de VPN server e administrar clientes site-to-site e client-to-site.

Funcionalidades

  1. Gerenciamento de autoridades certificadoras
  2. Importação de autoridades certificadoras
  3. Gerenciamento de instâncias OpenVPN
  4. Gerenciamento de clientes client2site
  5. Gerenciamento de clientes siste2site
  6. Importação de clientes
  7. Envio de certificado por e-mail
  8. Gerenciamento de modelos de instância customizados

Casos de uso

Gerenciamento de autoridades certificadoras

A autoridade certificadora é o certificado raiz, que assina os demais certificados para instâncias e clientes SSL.

  • Permite adicionar/remover autoridades certificadoras;
  • Requer nome e expiração em dias (padrão de 10 anos);
  • Requer informações da CA para os campos do certificado: Cidade, estado, país, organização, setor e e-mail;
  • Após salvar só é permitido editar descrição, deletar, visualizar detalhes ou consultar a auditoria.

Importação de autoridades certificadoras

É possível importar uma autoridade certificadora pré-existente em outros servidores OpenVPN.

Importação via interface web:

  • Requer nome da CA;
  • Requer chave privada da CA;
  • Requer chave pública da CA;
  • Requer arquivo de CRL (lista de revogação dos certificados);
  • Requer arquivo da chave de TLS-Auth usada na VPN (PSK);
    • Se o servidor VPN migrado não possuir o arquivo, é possível gerar um novo. Mais detalhes em Hardening OpenVPN Security;
    • Os novos certificados clientes e instâncias usarão esta PSK em sua configuração;
    • Para manter compatibilidade com clientes VPN sem TLS-Auth, é necessário criar modelo de instância e cliente customizados.

Importação via CLI:

  • Requer login da ferramenta CLI com um superusuário do produto (comando itflex login);
  • Permite importar uma CA no padrão VPNFLEX v2 informando o diretório com todos os arquivos do v2;
    • itflex openvpn import-ca-v2 --help;
  • Permite importar uma CA de terceiros;
    • itflex openvpn import-ca --help.

Gerenciamento de instâncias OpenVPN

A instância é a configuração do servidor de VPN.

  • Requer associação com uma autoridade certificadora válida;
  • Requer nome;
  • Requer a configuração de pelo menos 1 remote;
    • É o endereço usado pelo cliente OpenVPN para se conectar ao servidor de VPN;
    • Geralmente é um endereço IP público válido ou qualquer IP roteável/acessível pelo cliente;
  • Requer rede: Endereçamento IP utilizado pela rede virtual entre o cliente e servidor;
  • Requer especificação de protocolo (UDP ou TCP) e porta de escuta do serviço;
  • Permite ativar DHCP;
    • Requer faixa de endereços;
    • Requer servidor DNS;
    • Permite configurar domínio (opção 15 do DHCP);
  • Permite cadastrar rotas criadas pelo servidor VPN através do túnel VPN;
    • Rota criada no Linux com gateway de próximo salto definido para o IP da instância do servidor VPN;
    • O serviço de OpenVPN toma as decisões de roteamento, baseadas nas rotas cadastradas nos certificados Site2Site (ccd);
    • Geralmente é cadastrado uma supernet na instância e subnets nos certificados específicos. Ex.: 10.0.0.0/8 na instância e 10.241.0.0/24 no certificado;
  • Permite enviar rotas ao cliente (Push Routes);
    • Rotas criadas por todos os clientes da instância na conexão ao servidor;
  • Permite ativar autenticação de usuário;
    • Requer pelo menos 1 grupo de usuários selecionado para autenticação;
  • Permite definir qual modelo de configuração de instância será usado;
  • Permite definir qual modelo de e-mail para envio dos certificados;
  • Ações de gerenciamento:
    • Habilitar/desabilitar na inicialização do sistema;
    • Iniciar/parar/reiniciar instância;
    • Deletar ou editar informações;
    • Visualizar status, detalhes da instância e auditar ações executadas na interface sobre o objeto.

Gerenciamento de clientes client2site

O menu de Clientes Client2Site permite gerenciamento completo dos clientes VPN.

Criar novo cliente Client2Site:

  • Requer associação com uma instância;
  • Requer nome e e-mail;
  • Permite definir senha para uso do certificado;
  • Permite fixar IP. Possui botão que sugere endereços livres;
  • Requer data de expiração. Padrão definido para o máximo possível (data de vencimento da CA);
  • Permite enviar rotas ao cliente (Push Routes);
    • Rotas criadas somente por este cliente na conexão ao servidor.

Outras ações:

  • Revogar um certificado de VPN;
    • Ação irreversível;
    • Inutiliza o certificado;
    • Continua em banco para controle/consulta de certificados revogados;
  • Editar opções do certificado;
    • Descrição;
    • IP fixo;
    • Push Routes;
  • Download do certificado ou envio por e-mail;
  • Visualizar status, detalhes do cliente e auditar ações executadas na interface sobre o objeto.

Gerenciamento de clientes Site2Site

O menu de Clientes Site2Site permite configurações adicionais do cliente de VPN.

Criar novo cliente Site2Site:

  • Requer associação com uma autoridade certificadora válida;
  • Requer nome e e-mail;
  • Requer data de expiração. Padrão definido para o máximo possível (data de vencimento da CA);
  • Permite alterar informações para os campos do certificado: Cidade, estado, país, organização e setor.

Realizar configurações específicas do cliente:

  • Disponível na tela de detalhes do cliente;
  • Permite fixar IP estático;
  • Requer número máximo de rotas para este cliente. Padrão de 512;
  • Permite enviar rotas ao cliente (Push Routes);
    • Rotas criadas somente por este cliente na conexão ao servidor;
  • Permite especificar as rotas internas;
    • Associa uma subnet a este certificado;
    • Geralmente é cadastrado uma supernet na instância e subnets nos certificados específicos. Ex.: 10.0.0.0/8 na instância e 10.241.0.0/24 no certificado;
  • Permite ativar o Push Reset;
    • Ignora todas as opções enviadas pelo servidor (pushes de rotas, IP estático, domínio e servidor DNS);
    • Habilita campos para especificar domínio e servidor DNS personalizados para este certificado;
    • Habilita campo de texto para preencher opções customizadas manualmente;
    • Produto não valida a sintaxe do texto;
    • Deve respeitar a sintaxe do OpenVPN para CCD files (configurações especíicas de cliente no client-config-dir).

Importação de clientes Client2Site

É possível importar clientes pré-existente em outros servidores OpenVPN.

Importação via interface web:

  • Botão “importar” disponível na tela de Clientes Client2Site;
  • Requer associação com uma instância;
  • Requer e-mail;
  • Requer arquivos de chave e certificado;
  • Requer especificar se o certificado é revogado. Por padrão, considera-se válido;
    • Se revogado, requer data de revogação;
  • Permite adicionar descrição, IP fixo e Push Routes.

Importação via CLI:

  • Requer login da ferramenta CLI com um superusuário do produto (comando itflex login);
  • Permite importar um certificado no padrão VPNFLEX v2 informando o diretório com todos os arquivos do certificado v2;
    • itflex openvpn import-s2u-client-v2 --help;
  • Permite importar um certificado de terceiros;
    • itflex openvpn import-s2u-client --help.

Importação de clientes Site2Site

É possível importar clientes pré-existente em outros servidores OpenVPN.

Importação via interface web:

  • Botão “importar” disponível na tela de Clientes Client2Site;
  • Requer associação com uma autoridade certificadora válida;
  • Requer e-mail;
  • Requer arquivos de chave e certificado;
  • Requer especificar se o certificado é revogado. Por padrão, considera-se válido;
    • Se revogado, requer data de revogação.

Importação via CLI:

  • Requer login da ferramenta CLI com um superusuário do produto (comando itflex login);
  • Permite importar um certificado no padrão VPNFLEX v2 informando o diretório com todos os arquivos do certificado v2;
    • itflex openvpn import-s2s-client-v2 --help;
  • Permite importar um certificado de terceiros;
    • itflex openvpn import-s2s-client --help.

Envio de certificado por e-mail

É possível definir um template de e-mail para envio dos certificados.

  • Requer nome para o template;
  • Requer associação com uma conta de e-mail configurada no servidor;
  • Requer título preenchido;
  • Requer corpo do e-mail preenchido;
  • Permite fazer formatações HTML básicas através do menu de edição;
  • Permite utilizar variáveis / palavras-chave no título e no corpo do e-mail;
    • Todas as variáveis disponíveis estão apresentadas na tela do produto;
    • Deve respeitar a sintaxe de templates jinja;
    • Exemplo de uso: “{{ ca_name }}” converte para o nome da CA;
    • Produto faz validação básica e informa template inválido se preencher sintaxe incorreta das variáveis;
  • Permite visualização prévia do corpo do e-mail formatado;
  • O template de e-mail deve ser especificado no cadastro da instância VPN;
  • O envio de certificado por e-mail está disponível através da opção para envio de e-mail no cliente VPN;
  • Requer que a conta de e-mail configurada no servidor esteja funcionando.

Gerenciamento de modelos de instância customizados

É possível definir um template de instância para alterar parâmetros específicos no servidor VPN.

  • Requer nome para o template;
  • Habilita campo de texto para alterar a configuração do servidor manualmente. Já vem preenchido o modelo padrão;
  • Produto não valida a sintaxe do texto;
  • Deve respeitar a sintaxe de templates jinja.