VPN no Linux Ubuntu/Debian com OpenVPN - MultiusuariosEsse e um exemplo totalmente pratico para implementacao de uma seguranca a mais paraqualquer tipo de rede, usando o OpenVPN como uma solucao simples, segura e um beneficioa mais para interligacao de redes distantes, sendo estas, localizadas na internet.Quando iniciei meu primeiro projeto de VPN (uns 2 anos atras), me deparei com algumasferramentas disponiveis para atender tal servico. Como as coisas sempre aparecem e tem queser executadas de ultima hora, resolvi sem muito planejamento e estudo utilizar a ferramentaOpenVPN.Esse artigo tem como objetivo mostrar de forma rapida e simples a configuracao de uma VPNbaseada em Linux utilizando o OpenVPN como ferramenta, sendo que este e um softwareestavel, simples de configurar, alem de ser um projeto que esta sempre em desenvolvimento.Utilizaremos como ferramentas os aplicativos OpenVPN, para gerenciamento da rede virtual, tanto para os Servidores e Cliente, o OpenSSL para gerar os certificados necessarios para a nossa seguranca e para aqueles que tem um link de internet com IP dinamico.Vamos criar uma pasta para realizar o download do aplicativo LZO (biblioteca de compressao de dados).# mkdir apps# cd appsVamos realizar o download do LZO:# wget http://www.winlinuxtecnologia.com/downloads/lzo-2.06.tar.gzVamos agora descompactar e instalar o LZO:# tar -zxvf lzo-2.06.tar.gz# cd lzo-2.06# ./configure# make# make installBom instalado o LZO em seu Linux, agora vamos a instalacao e configuracao do OpenVPN com OpenSSL:# apt-get install openvpn opensslCopiar para o diretorio /etc/openvpn os scripts do openvpn para facilitar nossas vidas, no Debianencontramos estes scripts no diretorio /usr/share/doc/openvpn/examples/easy-rsa/2.0/ copiamos todo oconteudo deste diretorio para /etc/openvpn/easy-rsa/.# mkdir /etc/openvpn/easy-rsa# cp -rp /usr/share/doc/openvpn/examples/easy-rsa/2.0/. /etc/openvpn/easy-rsa/Editamos o arquivo vars, no final deste arquivo alteramos os seguintes campos:# vi /etc/openvpn/easy-rsa/varsPara sua empresa podemos utilizar:export KEY_COUNTRY="SEUPAIS"export KEY_PROVINCE="SEUESTADO"export KEY_CITY="SUACIDADE"export KEY_ORG="Sua Empresa"export KEY_EMAIL="email@dominio.com.br"Obs.: Por padrao, os certificados criados, sao configurados para expirar em 3650 dias, caso queira diminuireste periodo para algum cliente, antes de gerar as chaves editamos no arquivo vars e alteramos oparametro "export KEY_EXPIRE=3650" e no local de 3650 colocamos o valor que acharmos necessario, apos essa alteracao precisamos executar "source vars" para que sejam carregadas as variaveis editadas no arquivo vars.Apos editarmos o arquivo vars, precisamos carregar as variaveis editas, no diretorio /etc/openvpn/easy-rsa/ executamos na linha de comando:# source varsCriamos o diretorio keys dentro de /etc/openvpn/easy-rsa, onde sera criada todos os certificados:# mkdir /etc/openvpn/easy-rsa/keysCaso este diretorio ja exista e voce queira apagar todas as informacoes contidas nele, voce pode executar na linha de comando:# /etc/openvpn/easy-rsa/./clean-allATENCAO: Este script clean-all so deve ser executado uma vez, a nao ser que voce queira limpar todas as chaves e certificados criados do servidor e usuarios da sua VPN para configurar tudo novamente.Vamos agora gerar o certificado raiz, no diretorio /etc/openvpn/easy-rsa encontramos o script build-ca,executamos:# /etc/openvpn/easy-rsa/./build-caEle pedira as seguintes informacoes:Generating a 1024 bit RSA private key...................++++++.....................++++++writing new private key to 'ca.key'-----You are about to be asked to enter information that will be incorporated into your certificaterequest.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field