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
- Gerenciamento de autoridades certificadoras
- Importação de autoridades certificadoras
- Gerenciamento de instâncias OpenVPN
- Gerenciamento de clientes client2site
- Gerenciamento de clientes siste2site
- Importação de clientes
- Envio de certificado por e-mail
- 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 e10.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 e10.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.