SPoP(Security Point of Presence) com OpenVPN - PDF
Download "SPoP(Security Point of Presence) com OpenVPN"
Luana Taveira Silveira
1 Objetivo: Montar PoPs usando recursos de VPN(Virtual Private Network) para auxiliar no tráfego seguro de Informações em redes Wireless e usuários em viagem que tenham necessidade de acesso seguro para trafegarem suas informações. Todos os dados passariam pelo tunelamento encriptado e, desta forma, a confidencialidade e integridade das informações seriam mantidas.
2 Problemas enfrentados: - Redes Wireless trazem maior flexibilidade na montagem de redes e ampliam cada vez mais seus horizontes. Por outro lado os problemas de segurança são bem maiores que os enfrentados atualmente em redes cujo meio físico sejam os cabos. No mundo wireless qualquer indivíduo com um notebook e cartão wireless pode efetuar um ataque, que muitas das vezes bem sucedido, nas chamadas redes sem fio. Grandes esforços, por parte dos fabricantes, são feitos para aumentar a segurança de seus equipamentos. O que será apresentado nesta palestra é uma maneira segura e barata de se contornar essas falhas de segurança usando apenas Software Livre como solução.
3 Problemas enfrentados: Vamos imaginar a seguinte evento no qual estamos: situação como neste - Os Eventos normalmente disponibilizam para os usuários algum tipo de acesso a Internet seja ele por meio wireless ou a cabo. Todos podem estar sendo monitorados por outros usuários nesta mesma rede e sem serem percebidos podem estar capturando informações em clear text como dados e usuários e suas senhas. - É sempre bom lembrar que não estamos em nossas redes protegidas e sim apenas visitantes em redes hostis.
4 Problemas enfrentados: - Um exemplo típico de acesso inseguro seria uma simples consulta de no seu servidor da Empresa. Acredito que seu assim como seus dados necessitam de se manterem a salvo de olhos alheios. O problema está no serviço pop3 cuja porta 110/tcp não possui qualquer proteção de criptografia. No momento do acesso tanto os dados, quanto usuário e senha são passados em clear text por toda a rede até a sua máquina. O mesmo pode ocorrer com diversos outros serviços sem proteção adequada.
5 Problemas enfrentados: - Ocorre também que o acesso possa ser à um serviço desprotegido e que, você usuário, não possa fazer nada para melhorar a segurança do acesso. Um exemplo seria o acesso à algum site que peça seus dados de forma desprotegida. - Então o que fazer nesses casos? Devo acessar ou não? Se for para divertimento, o não acessar não ocasionará danos maiores. Mas se existir a necessidade do acesso para fins de trabalho e até mesmo suporte para a Empresa, isso pode gerar perdas graves.
6 A solução: Então como podemos contornar esses problemas de segurança sem afetar a nossa mobilidade e privacidade em redes como a wireless ou redes de terceiros? - A solução é muito mais simples que o problema e o software empregado é livre, facilitando ainda mais a sua solução com excelente Custo X Benefício. - A idéia é criar um SPoP o qual será usado para a VPN entre o seu equipamento e a sua empresa ou provedor. Nesse caso, todo o acesso para a Internet será feito através do tunelamento encriptado, usando a rede de terceiros como backbone.
7 A solução: - Utilizando-se deste recurso, os dados trafegados para acesso a qualquer serviço na Internet estarão encriptados, sem a necessidade de configurações extras nos clients do seu equipamento. - A diminuição de performance de acesso, utilizando o OpenVPN, em máquinas atuais é imperceptível. - Infelizmente ou felizmente não existe uma versão do OpenVPN para o Windows9x, somente para XP, 2000 e superiores. Este também roda em Linux, OpenBSD, FreeBSD, NetBSD, Mac OS X e Solaris.
8 MUNDO Intruso S/VPN Ataque Dados Inseguros Rede de terceiros/wireless Dados inseguros Estação
9 SPoP OpenVPN Road Warrior MUNDO t e n r e t In 200.xxx.5.1 Rede de terceiros/wireless Dados encriptados VP N Estação Intruso Ataque Dados encriptados xxx.40.20
10 Instalando o OpenVPN: Pré-instalação: LZO biblioteca de compressão e descompressão para ser usado com o OpenVPN e que pode ser baixado deste site: OpenVPN que pode ser baixado do site oficial: Instalação: tar xvfz lzo-1.08.tar.gz -C /usr/local/src tar xvfz openvpn-2.0_rc17.tar.gz -C /usr/local/src cd /usr/local/src/lzo-1.08./configure make; make install
11 Instalando o OpenVPN: Instalação: cd /usr/local/src/openvpn-2.0_rc17./configure make; make install Configurando o kernel: Como exemplo utilizaremos o kernel 2.6.5, mas o mesmo pode ser feito com o kernel 2.4. Precisamos ativar o driver TUN/TAP no kernel para que o OpenVPN funcione. Esta é a única dependência dele para o seu funcionamento. Pode ser compilado builtin ou como módulo.
13 Configurando o SPoP
14 Gerando as chaves e certificados necessários: Ao descompactar o pacote do OpenVPN, encontraremos um diretório chamado: easy-rsa e é através dele que criaremos nossas chaves e certificados digitais. Primeiramente editemos o arquivo: vars Nele faremos nossas mudanças como por exemplo os dados necessários para serem gerados os certificados.
16 Gerando as chaves e certificados necessários: Agora vamos criar o diretório keys, onde serão armazenados os certificados e chaves. O próximo passo é criar a CA (Autoridade Certificadora) e os demais certificados e suas chaves. # # # # # # #../vars mkdir keys./clean-all./build-ca./build-key-server empresa./build-key gondim./build-dh
21 Movendo as chaves, keys e criando as configurações: Agora vamos mover as chaves, keys e criar nosso arquivo conf do servidor: # # # # # # # mkdir /etc/openvpn cp keys/ca.crt /etc/openvpn cp keys/empresa.crt /etc/openvpn cp keys/empresa.key /etc/openvpn cp keys/dh1024.pem /etc/openvpn mkdir /etc/openvpn/ccd vi /etc/openvpn/empresa.conf
24 Executando o OpenVPN no SPoP: Ainda necessitamos de mais uma configuração que no nosso caso será pelo Common Name dos certificados: # vi /etc/openvpn/ccd/gondim Incluindo a seguinte linha em seu interior: ifconfig-push Reparem 2 coisas muito importantes: 1) O nome do arquivo gondim é o mesmo nome colocado no Common Name do Certificado que geramos chamado gondim.crt 2) Essa configuração fixa a ponta remota com IP
25 Executando o OpenVPN no SPoP: Agora que geramos toda a configuração necessária para que o sistema funcione, precisamos rodar o OpenVPN da seguinte forma: # openvpn --config /etc/openvpn/empresa.conf --daemon Após esse comando o OpenVPN estará rodando no servidor SPoP e escutando conexões na porta determinada pelo arquivo conf. Não podemos esquecer de fazer as devidas liberações do Firewall, tanto INPUT para a porta UDP da VPN, quanto FORWARD entre as interfaces tun+ e a interface externa (Internet). Por último um NAT trocando o IP por um outro IP público.
26 Configurando o cliente
27 Movendo as chaves, keys e criando as configurações do cliente: Agora vamos mover as chaves, keys e criar nosso arquivo conf do cliente: # mkdir /etc/openvpn copie o ca.crt para /etc/openvpn copie o gondim.crt para /etc/openvpn copie o gondim.key para /etc/openvpn # vi /etc/openvpn/gondim.conf
29 Executando o OpenVPN no cliente: Da mesma maneira que fizemos no servidor, agora faremos no cliente: # openvpn --config /etc/openvpn/gondim.conf --daemon Após esse comando o OpenVPN irá se conectar ao servidor fazendo a autenticação utilizando-se dos certificados digitais que geramos e tão logo seja concluído o sistema estará conectado a Internet através desta VPN e todos os dados com destino a Internet serão tunelados e encriptados até o SPoP. O OpenVPN se encarrega de criar o roteamento default através da VPN pois assim configuramos no conf do servidor.
30 Considerações finais: Para mais informações sobre o OpenVPN e como instala-lo em outros sistemas, com por exemplo o Windows, consultem o site oficial. As configurações são praticamente idênticas. Em se tratando de Segurança da Informação qualquer nova tecnologia empregada deve manter sempre, as principais caracterísiticas: - Confidencialidade. - Integridade. - Disponibilidade.