OpenVPN Para não precisar esticar um cabo de fibra óptica da matriz até a filial para conectar duas redes internas. Sobre: Imagina que, para conectar uma rede interna de uma empresa a uma filial, você precisasse “esticar” um cabo de fibra óptica da empresa até a filial, além de caro, o procedimento envolve licenciamento SCM, entre outros problemas com os espaços, repetidores e outros equipamentos ópticos, além do procedimento ser caro e inacessível. Sobre: O OpenVPN é um software desenvolvido para ser cliente e servidor de uma VPN. Mas o que é VPN? Virtual Private Network, ou Rede Privada Virtual, é uma rede privada construída sobre a infraestrutura de uma rede pública, normalmente a Internet. Ou seja, ao invés de se utilizar links dedicados ou redes de pacotes para conectar redes remotas, utiliza-se a infra-estrutura da Internet. Sobre: Motivada pelo lado financeiro, onde os links dedicados são caros, e do outro lado está a Internet, que por ser uma rede de alcance mundial, tem pontos de presença espalhados pelo mundo. Conexões com a Internet podem ter um custo mais baixo que links dedicados, principalmente quando as distâncias são grandes, esse tem sido o motivo pelo qual, as empresas cada vez mais utilizam a infraestrutura da Internet para conectar a rede privada. Sobre: A utilização da Internet como infraestrutura de conexão entre hosts da rede privada é uma ótima solução em termos de custos mas, não em termos de privacidade, pois a Internet é uma rede pública, onde os dados em trânsito podem ser lidos por qualquer equipamento. Então como fica a questão da segurança e a confidencialidade das informações da empresa? Sobre: Criptografia! Essa é a resposta! Incorporando criptografia na comunicação entre hosts da rede privada de forma que, se os dados forem capturados durante a transmissão, não possam ser decifrados. Os túneis virtuais habilitam o tráfego de dados criptografados pela Internet e esses dispositivos, são capazes de entender os dados criptografados formando uma rede virtual segura sobre a rede Internet. Os dispositivos responsáveis pelo gerenciamento da VPN devem ser capazes de garantir a privacidade, integridade, autenticidade dos dados. Sobre: Como Funciona isso? Basicamente uma VPN, pode ser feita de duas formas: A primeira forma é, um simples host em trânsito, conecta em um provedor Internet e através dessa conexão, estabelece um túnel com a rede remota. Na segunda forma, duas redes se interligam através de hosts com link dedicado ou discado via internet, formando assim um túnel entre as duas redes. Sobre: Os protocolos utilizados no túnel virtual, são, (IPSec) Internet Protocol Security, (L2TP) Layer 2 Tunneling Protocol, (L2F) Layer 2 Forwarding e o (PPTP) Point-to-Point Tunneling Protocol. O protocolo escolhido, será o responsável pela conexão e a criptografia entre os hosts da rede privada. Eles podem ser normalmente habilitados através de um servidor Firewall ou RAS que esteja trabalhando com um deles agregado. Sobre: A figura ilustra o caminho que os dados percorrem na arquitetura de rede do Windows sobre uma conexão VPN usando um modem analógico. Sobre: Um datagrama IP, IPX, ou NetBEUI é submetido por seu protocolo apropriado à interface virtual que representa a conexão VPN, esta, usa o NDIS, que por sua vez, submete o pacote ao NDISWAN que codifica ou comprime e submete então ao protocolo PPTP, e este, ao formar o pacote resultado, envia pela interface serial que é usada pelo modem analógico. Sobre: O OpenVPN é um software livre e open-source para criar redes privadas virtuais do tipo pontoa-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 e Firewall sem necessidade de reconfiguração da sua rede. Ele foi escrito por James Yonan e publicado sob licença GNU General Pulic Licence (GPL). Sobre: 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. Ele contém muitos recursos de controle e 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. Sobre: 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. 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 authpam-plugin. 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. Sobre: 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. Sobre: 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. 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. Sobre: O OpenVPN oferece suporte a smart card através de criptografia baseada em token PKCS#11. não será comentado no vídeo todas as funções do OpenVPN. Veja na documentação, mais informações de como instalar as ferramentas adicionais citadas nesta parte do vídeo. Características técnicas: Instalação do repositório EPEL obrigatória. Há configurações adicionais que na documentação eu não encontrei, mas pode ser visto em http://safesrv.net/installopenvpn-on-centos foi deste site que soube onde procurar os arquivos de configuração, com os executáveis adicionais para o EASY RSA para gerar chaves criptográficas. Características técnicas: OBRIGATÓRIO: Teste no cliente! Na rede onde se encontra o servidor, pode dar conflito de endereços. Não use endereços 10.0.0.0/8 pois o OpenVPN não funciona. No máximo use endereços 172.16.0.0/16 e se ainda não funcionar, use endereços 192.168.254.0/24 para a configuração. NÃO USE O OpenVPN COM IP 192.168.0.1 (1.1) POIS PODE DAR CONFLITO NA REDE DO CLIENTE DA VPN! Se a rede do cliente for 192.168.1.1 e o OpenVPN no lado do servidor usa o mesmo IP 192.168.1.1, a rota automaticamente não vai funcionar no OpenVPN do cliente do servidor VPN e vai desconectar a rede local do cliente, fazendo com que trave totalmente a rede do cliente VPN, deixando indisponível a rede do cliente para acesso a internet. Finalizando... OpenVPN é um excelente cliente/servidor. Fácil configuração, apenas alguns arquivos confs são necessários tanto do lado do cliente, quanto no lado do servidor, sendo que traz segurança com senhas e certificados com criptografia alta de 128 Bits. Excelente para compartilhamento de arquivos, servidores e serviços da rede interna para clientes VPN externos daquela rede. O OpenVPN é software livre, que garante confiabilidade e qualidade. Páginas de referências: Imagem inicial retirado de http://forum.zwame.pt/showthread.php?t=345371&page=389 Installing OpenVPN on CentOS5 and CentOS6 (em inglês) http://safesrv.net/install-openvpn-on-centos Instalando e configurando OpenVPN em 5 minutos/Setting up OpenVPN in 5 minutes: http://tinodiaadia.wordpress.com/2012/03/09/instalando-econfigurando-openvpn-em-5-minutossetting-up-openvpn-in-5-minutes Servidores VPN com OpenVPN no Linux CentOS 6 http://www.diorio.com.br/docs/linux_centos/6/install_openvpn_centos.php OpenVPN – Wikipédia a enciclopédia livre: http://pt.wikipedia.org/wiki/OpenVPN O que é VPN? - Anonymous Brasil http://www.anonymousbrasil.com/tecnologia/vpn OpenVPN – HowTo (site em Inglês) (oficial) http://openvpn.net/index.php/open-source/documentation/howto.html OpenVPN – Downloads http://openvpn.net/index.php/opensource/downloads.html para download do OpenVPN versão 2.3.2 acesso em 08 de dezembro de 2013 Finalizando... Vamos ao conceito prático?