Monitoramento OpenVPN

VPN

A sigla VPN significa Virtual Private Network ou Rede Virtual Privada. Ela é formada por um grupo de computadores que se conectam usando uma rede pública: a internet. Algumas empresas usam VPNs para conectar centros de dados distantes. Funcionários podem se conectar a VPNs para acessar a rede local da empresa sem estar fisicamente lá. Também é uma excelente maneira de proteger e criptografar sua comunicação com a internet em redes públicas não confiáveis, como redes WiFi de aeroportos.

Ou seja, basicamente, uma VPN permite acesso remoto a recursos de uma rede local, ainda que você não esteja fisicamente conectado nessa rede. Também serve para garantir proteção durante a troca de informações pela internet em redes públicas. Quando você se conecta a uma VPN, geralmente executa algum cliente em seu computador ou clica num link especial em um site, faz login com suas credenciais e cada máquina em cada ponta verifica a autenticidade da outra.
Quando ocorre a confirmação, sua comunicação com a internet é criptografada e protegida de interceptação. Este é o principal detalhe de uma VPN: a segurança que ela proporciona para sua navegação na internet, evitando que seus dados fiquem visíveis para pessoas não autorizadas.

 

Por que usar, uma VPN

Uma VPN por si só é apenas uma maneira de melhorar sua segurança e acessar recursos numa rede na qual você não está fisicamente conectado. Porém, dependendo do uso, ela pode fazer milagres acontecerem.

Em geral, usuários de VPN se encaixam nas seguintes categorias:

 

  • Funcionário: aquele que tem responsabilidades a cumprir e usa uma VPN fornecida por sua empresa para acessar recursos nessas redes mesmo quando está em casa ou viajando. Caso não confie na rede em que está conectado, pode ativar a VPN e impedir que interceptem a conexão.

 

  • Downloads: independente de estar baixando conteúdo legal ou ilegal, esse tipo de usuário não quer que alguma empresa coloque-o na lista negra só por estar usando torrents. Usar uma VPN é a única maneira de se manter seguro enquanto usa essas redes peer to peer. Para ele, é melhor prevenir do que acabar num tribunal ou pagando uma multa altíssima por algo que pode ou não ter feito.

 

  • Privacidade: independente de estar num ambiente totalmente livre e aberto ou em um com alto nível de monitoramento, este perfil usa uma VPN para manter sua comunicação segura e criptografada, longe de olhos curiosos, seja em casa ou numa viagem. Para ele, conexões inseguras significam que sempre tem alguém lendo o que dizem.

 

  • Viajante: você está fora do país e quer ver os seus programas de TV favoritos no momento em que vão ao ar. Você quer escutar estações de rádio via internet que possuem filtro de país ou deseja usar um novo serviço/aplicativo que parece ótimo, mas está limitado a um determinado país ou região.

 

Como exemplos podemos usar aqueles momentos em que abrimos nosso notebook numa cafeteria ou lemos nossos e-mails no WiFi aberto do aeroporto. São situações com considerável risco de ter o tráfego interceptado.

(Fonte: Site Canaltech).

 

Agora iremos abordar serviço de VPN.

 

OpenVPN

OpenVPN é um software livre e open-source para criar redes privadas virtuais do tipo ponto-a-ponto ou server-to-multiclient através de túneis criptografados entre computadores. Ele é capaz de estabelecer conexões diretas entre computadores mesmo que estes estejam atrás de Nat Firewalls sem necessidade de reconfiguração da sua rede. Ele foi escrito por James Yonan e publicado sob licença GNU General Pulic Licence (GPL).

 

Introdução

O OpenVPN permite autenticação ponto-a-ponto através de chaves secretas compartilhadas, certificados digitais ou autenticação com usuário e senha. Quando utilizado em modo multiclient-server ele permite que cada cliente utilize a autenticação pública com certificados digitais, fazendo isto através de assinaturas digitais e certificados de autoridade. Ele utiliza extensivamente a criptografia OpenSSL. Usa também os protocolos SSLv3/TLSv1. Esta disponível para Solaris, Linux, OpenBSD, FreeBSD, NetBSD, Mac OS X, e Windows 2000/XP/Vista/7/8. Ele contém muitos recursos de controle de segurança. Ele não é um cliente VPN baseado em web, não é compatível com IPsec ou qualquer outro tipo de pacote VPN. Todo pacote do OpenVPN consiste em apenas um binário tanto para conexões do lado do cliente quanto para conexões do lado do servidor, você vai encontrar mais alguns arquivos e chaves dependendo do tipo e método de autenticação utilizado. Eventualmente é utilizado por gamers como uma maneira de acessar jogos LAN fora da intranet pela internet.

 

Criptografia

O OpenVPN utiliza a biblioteca OpenSSL para prover criptografia entre ambos os canais de controle de dados. Isto faz com que o OpenSSL faça funcionar toda a criptografia e autenticação, permitindo ao OpenVPN utilizar todas as cifras disponíveis no pacote do OpenSSL. Ele pode utilizar o pacote de autenticação HMAC para adicionar uma camada de segurança para a conexão. Ele pode também utilizar aceleração de hardware para obter uma melhor performance na criptografia.

 

Autenticação

O OpenVPN te possibilita autenticar entre os pontos de várias maneiras. O OpenVPN oferece chaves secretas compartilhadas, autenticação baseada em certificados e autenticação baseada em usuário e senha. O método de autenticação com chaves secretas compartilhadas é o mais simples, e combinando com certificados ele se torna o mais robusto e rico recurso de autenticação. A autenticação com usuário e senha é um recurso novo (disponível apenas na versão 2.0) que possibilita o uso de certificados no cliente, mas não é obrigatório (o servidor precisa de certificado). O código fonte em formato tarball inclui um exemplo de script Perl que verifica usuário e senha através do PAM e um plug-in em C chamado auth-pam-plugin.

 

Rede

O OpenVPN pode rodar sobre UDP (preferencial por padrão) ou TCP. Ele multiplexa toda a comunicação em cima de uma única porta TCP/UDP. Ele tem a habilidade de trabalhar com a maioria dos proxy servers (incluindo HTTP) e funciona muito bem trabalhando com NAT para passar por firewalls. As configurações do servidor tem a habilidade de fornecer certas configurações de rede para seus clientes, isto inclui endereços Ipv4, comandos de rotas e algumas poucas configurações de conexão. O OpenVPN oferece dois tipos de interfaces para rede via Universal TUN/TAP driver. Ele pode criar um túnel em layer-3 (TUN), ou pode criar um túnel em layer-2 baseado em ethernet TAP, o que pode carregar qualquer tipo de tráfego ethernet. O OpenVPN pode utilizar a biblioteca de compressão LZO para compactar o fluxo de dados. A porta 1194 é a numeração oficial IANA para o OpenVPN. As novas versões do OpenVPN já estão configuradas para utilizarem esta porta. Um novo recurso na versão 2.0 permite que um processo possa manipular e gerenciar vários túneis simultâneos como alternativa ao método original de um processo por túnel, o qual era uma restrição das versões 1.x.x.

O OpenVPN usa como seus protocolos comuns o TCP e UDP como uma alternativa ao IPsec em situações onde o ISP pode ter bloqueado os protocolos específicos para VPN na tentativa de forçar os clientes a assinarem serviços mais caros.

 

Segurança

O OpenVPN oferece vários recursos de segurança internos. Ele roda em userspace, ao invés de necessitar de uma ip stack operation. O OpenVPN tem a habilidade de bloquear os privilégios de acesso root, ele usa o mlockall para prevenir que dados sensíveis sejam colocados em swap no disco, e, após sua inicialização, ele roda em ambiente chroot.
O OpenVPN oferece suporte a smart card através de criptografia baseada em token PKCS#11.

(Fonte: Site Wikipédia).

 

Administração do Serviço

Não é possível saber quantos clientes estão conectados no OpenVPN, quando está no modo de autenticação de usuários. Todos os clientes conectam dentro da interface virtual, por exemplo tun0, mas é possível consultar através do management port.

Para isso, é necessário configurar o serviço:

  • Edite o arquivo: /etc/openvpn/server.conf
  • Adicione: management localhost 7505
  • Reinicie o serviço

 

Verificar usuários conectados

Para acesso ao management port:

  • Execute: telnet localhost 7505
  • Informações das conexões, execute: status
  • Resultado:

ROUTING TABLE
Virtual Address,Common Name,Real Address,Last Ref
172.20.21.22,user01,186.233.20.114,Thu Feb 23 10:05:55 2017
172.20.21.26,user02,179.190.28.179:65467,Thu Feb 23 09:56:15 2017
172.20.21.30,user03,187.35.96.110:9185,Thu Feb 23 10:05:48 2017

  • Sendo: IP atribuído na conexão
  • Usuário
  • IP público do usuário
  • Data da conexão

 

Existem outros comandos e você pode, por exemplo, desconectar um determinado usuário.

Para verificar a lista de comandos, basta executar: help.
Para sair, execute: exit.

 

Monitoramento

Nos ambientes corporativos é necessário o monitoramento da infraestrutura, para garantir o bom funcionamento e manter os níveis de serviços.
Neste artigo será abordado o monitoramento do serviço OpenVPN com usuários autenticados, com duas visões:

  • Quantidade de usuários conectados
    O plugin verifica a quantidade total de usuários com conexões ativas, benefícios;
    Histórico de números de conexões;
    Se o número de conexões estiver muito alto em relação a quantidade de usuários, indica que não estão sendo finalizadas as conexões.

 

  • Usuários conectados
    O plugin verifica se um usuário específico está conectado, retornando se está online ou offline;
    Ideal para serviços em que o usuário precisa ficar conectado 24×7.

 

Plugin

O plugin foi desenvolvido para utilizar junto ao Nagios. As consultas serão realizadas através do management port; caso não tenha configurado, revise o artigo para configurar.
Após copiar o plugin para o servidor, execute: /usr/lib64/nagios/plugins/check_openvpn

Como não foram passados os argumentos, irá exibir o menu de ajuda:
UNKNOWN: check_openvpn: Wrong option given. Options: -t type (count|users), -w warning, -c critical and -m minimal (optinal)
Example: check_openvpn -t count -m 2 -w 5 -c 10
check_openvpn -t users username1 username2

 

Count

Via argumento, execute a opção “count”, limites de 5 (Warning) e 10 (Critical):
/usr/lib64/nagios/plugins/check_openvpn -t count -w 5 -c 10
Resultado:
OK – Total: 3 – Users connected: user01 user02 user03
Exibe a quantidade “status” de acordo com valores de warning, critical, número total de conexões ativas e listas dos usuários conectados.

Opcional você pode utilizar opção “minimal”, quantidade mínima de usuários conectados:
/usr/lib64/nagios/plugins/check_openvpn -t count -m 1 -w 5 -c 10
No exemplo acima deve ter no mínimo 1 usuário conectado, caso contrário o status será “critical”.

 

Users

Exemplo 1:
Via argumento execute a opção “users”, passando a lista de usuários:
/usr/lib64/nagios/plugins/check_openvpn -t users user01 user02 user03 user04
CRITICAL – user01(online), user02(online), user03(online), user04(offline)
Retornou status de CRITICAL devido usuário user04 estar offline.

Exemplo 2:
/usr/lib64/nagios/plugins/check_openvpn -t users user01 user02 user03
OK – user01(online), user02(online), user03(online)
Retornou “status” de OK, pois todos os usuários especificados estão online.

 

Configuração NRPE

Adicione ao final do arquivo /etc/nagios/nrpe.cfg
# OpenVPN
command[check_openvpn_count]=/usr/lib64/nagios/plugins/check_openvpn -t count -m $ARG1$ -w $ARG2$ -c $ARG3$
command[check_openvpn_users]=/usr/lib64/nagios/plugins/check_openvpn -t users $ARG1$

 

Dicas

Você pode passar os valores via argumento ou substituir os valores das variáveis $ARG1$, $ARG2$, etc.
Na checagem check_openvpn_count, caso não deseje validar a quantidade mínima de usuários conectados, você pode utilizar valor -m “0”.

Após adicionar as linhas no arquivo de configuração é necessário reiniciar o serviço do NRPE.

 

Download do Plugin

Você pode realizar o download do Plugin de Monitoramento abaixo:

OBTER O PLUGIN >>

 

A Blue Solutions realiza o monitoramento de mais de 2.000 servidores e 40.000 serviços de seus clientes, operando em escala 24×7 através de NOC próprio. Para mais informações, entre em contato, clique aqui >>

 

Fontes: trechos dessa matéria foram retiradas dos sites Canaltech (Descubra por que usar uma VPN e veja como escolher a melhor; autor Cadu Silva) e Wikipédia (OpenVPN).

 

Sobre o autor:
Valter Terrani
Coordenador de NOC na Blue Solutions
Certificado: ITIL Foundation, VTSP 5.5, LPIC-1,
LPIC-2, LPIC-3 117-300, Oracle Linux 1Z0-100,
SUSE CLA 11, SUSE CLP 12