{"id":66,"date":"2010-09-07T01:33:07","date_gmt":"2010-09-07T04:33:07","guid":{"rendered":"http:\/\/blog.digavoip.com.br\/2010\/09\/07\/realizar-vpn-entre-um-server-linux-debian-e-um-computador-com-windows-xp\/"},"modified":"2010-09-10T08:32:07","modified_gmt":"2010-09-10T11:32:07","slug":"realizar-vpn-entre-um-server-linux-debian-e-um-computador-com-windows-xp","status":"publish","type":"post","link":"https:\/\/blog.abratel.com.br\/?p=66","title":{"rendered":"Realizar VPN entre um server Linux (Debian) e um computador com windows xp"},"content":{"rendered":"<p><strong>1\u00ba Passo<\/strong><br \/>\nInstalar o lzo usando:<br \/>\napt-get install lzop<\/p>\n<p>ou baixando da internet e compilando<\/p>\n<p>$ tar -xzvf lzo-1.08.tar.gz<br \/>\n$ cd lzo-1.08<br \/>\n$ .\/configure<br \/>\n$ make<br \/>\n$ su<br \/>\n# make install <\/p>\n<p><strong>2\u00ba Passo<\/strong><br \/>\nInstalar o openvpn<br \/>\napt-get install openvpn <\/p>\n<p>ou baixando da internet e compilando<\/p>\n<p>$ tar -xzvf openvpn-1.5.0.tar.gz<br \/>\n$ cd openvpn-1.5.0<br \/>\n$ .\/configure<br \/>\n$ make<br \/>\n$ su<br \/>\n# make install <\/p>\n<p>Pronto. O OpenVPN j\u00e1 est\u00e1 instalado em nosso sistema com suporte \u00e0 biblioteca de compress\u00e3o de dados. Agora s\u00f3 resta a configura\u00e7\u00e3o de nossa VPN. <\/p>\n<p><strong>Configurando nossa VPN na Matriz: <\/strong><\/p>\n<p>O OpenVPN pode operar com 3 tipos de criptografia. Nenhuma criptografia (apenas o t\u00fanel), criptografia com chaves est\u00e1ticas e no modo TLS, em que as chaves s\u00e3o trocadas periodicamente. No nosso exemplo, usaremos criptografia com chaves est\u00e1ticas. <\/p>\n<p>1 &#8211; Execute os seguintes comandos: <\/p>\n<p># mkdir \/etc\/openvpn <\/p>\n<p>Criamos o diret\u00f3rio onde estar\u00e3o todos os arquivos de configura\u00e7\u00e3o. <\/p>\n<p># openvpn &#8211;genkey &#8211;secret \/etc\/openvpn\/chave <\/p>\n<p>Foi gerada uma chave de criptografia com o nome de chave (pode ser qualquer nome de arquivo) dentro do diret\u00f3rio \/etc\/openvpn. <\/p>\n<p>Para visualizar o conte\u00fado da chave criada usar:<br \/>\n# cat \/etc\/openvpn\/chave <\/p>\n<p>Criar um arquivo de configura\u00e7\u00e3o:<br \/>\nvi \/etc\/openvpn\/matriz.conf <\/p>\n<p>Crie esse arquivo com o seguinte conte\u00fado:<br \/>\n###### INICIO #######<br \/>\n# Usar como interface o driver TUN<br \/>\ndev tun<br \/>\n# 10.0.0.1 ip que ser\u00e1 assumido na matriz<br \/>\n# 10.0.0.2 ip remoto, ou seja, esse ser\u00e1 o ip da filial<br \/>\nifconfig 10.0.0.1 10.0.0.2<br \/>\n# Entra no diret\u00f3rio onde se encontram os arquivos de configura\u00e7\u00e3o<br \/>\ncd \/etc\/openvpn<br \/>\n# Indica que esse t\u00fanel possui uma chave de criptografia<br \/>\nsecret chave<br \/>\n# OpenVPN usa a porta 5000\/UDP por padr\u00e3o.<br \/>\n# Cada t\u00fanel do OpenVPN deve usar<br \/>\n# uma porta diferente.<br \/>\n# O padr\u00e3o \u00e9 a porta 5000<br \/>\nport 5000<br \/>\n# Usu\u00e1rio que rodar\u00e1 o daemon do OpenVPN<br \/>\nuser nobody<br \/>\n# Grupo que rodar\u00e1 o daemon do OpenVPN<br \/>\ngroup nobody<br \/>\nUsa a biblioteca lzo<br \/>\ncomp-lzo<br \/>\n# Envia um ping via UDP para a parte<br \/>\n# remota a cada 15 segundos para manter<br \/>\n# a conex\u00e3o de p\u00e9 em firewall statefull<br \/>\n# Muito recomendado, mesmo se voc\u00ea n\u00e3o usa<br \/>\n# um firewall baseado em statefull.<br \/>\nping 15<br \/>\n# N\u00edvel de log<br \/>\nverb 3<br \/>\n#adicionar a rota de saida<br \/>\n#Manter o tunel ativo e chave em caso de perda de conexao<br \/>\npersist-tun<br \/>\npersist-key<br \/>\n#<br \/>\n##Escreve um pequeno status sobre a conexao, reescrito a cada minuto<br \/>\nstatus \/var\/log\/openvpn\/status-matriz.log<br \/>\n#<br \/>\n##Vamos utilizar um arquivo para o log da conexao de cada filial<br \/>\nlog-append \/var\/log\/openvpn\/matriz.log<br \/>\n##Ativar rotas automaticamente<br \/>\n#up \/etc\/openvpn-matriz\/rota.up<br \/>\n#Sendo que o arquivo rota.up seria criado no init e depois atribuido a permissa<br \/>\n# de execucao do mesmo e aos usuari<br \/>\n#exemplo<br \/>\n##!\/bin\/bash<br \/>\n# route add -net 192.168.4.0 netmask 255.255.255.0 gw 10.2.0.1<\/p>\n<p>###### FINAL #######<\/p>\n<p>Criar o grupo nobody:<br \/>\ngroupadd nobody<\/p>\n<p>Criar o diret\u00f3rio para o log<br \/>\nmkdir \/var\/log\/openvpn<\/p>\n<p>Em seguida, vamos iniciar a conex\u00e3o no servidor, faltando apenas configurar a filial. Execute o seguinte comando no servidor da Matriz: <\/p>\n<p>openvpn &#8211;config \/etc\/openvpn\/matriz.conf &#8211;script-security 3 system -daemon &#038;<\/p>\n<p># ifconfig tun0<br \/>\ntun0      Link encap:Point-to-Point Protocol<br \/>\n          inet addr:10.0.0.1  P-t-P:10.0.0.2  Mask:255.255.255.255<br \/>\n          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1255  Metric:1<br \/>\n          RX packets:1383257 errors:0 dropped:0 overruns:0 frame:0<br \/>\n          TX packets:1144968 errors:0 dropped:0 overruns:0 carrier:0<br \/>\n          collisions:0 txqueuelen:10<br \/>\n          RX bytes:82865921 (79.0 Mb)  TX bytes:383951667 (366.1 Mb)<\/p>\n<p>Se aparecer algo assim ou parecido, o t\u00fanel na Matriz j\u00e1 est\u00e1 pronto e a espera da conex\u00e3o do XP.<br \/>\nPara automatizar na inicializa\u00e7\u00e3o \u00e9 necess\u00e1rio a cria\u00e7\u00e3o de um arquivo contendo:<\/p>\n<p>vim \/etc\/init.d\/openvpn.matriz<br \/>\n##### Conteudo ####<br \/>\n#!\/bin\/bash<br \/>\nopenvpn &#8211;config \/etc\/openvpn\/matriz.conf &#8211;script-security 3 system -daemon &#038;<br \/>\n##### Fim conteudo ###<\/p>\n<p>Ap\u00f3s da permiss\u00e3o ao mesmo e torna-lo execut\u00e1vel:<br \/>\nchmod 777  \/etc\/init.d\/openvpn.matriz<br \/>\nchmod +x  \/etc\/init.d\/openvpn.matriz<br \/>\nColocar na inicializa\u00e7\u00e3o (no meu caso runlevel 2):<br \/>\nln -s  \/etc\/init.d\/openvpn.matriz \/etc\/rc2.d\/S99openvpn.matriz <\/p>\n<p>Para verificar o log pode-se usar:<br \/>\ntail -f \/var\/log\/openvpn\/(qual log necessitar)<\/p>\n<p><strong>Configura\u00e7\u00f5es no Windows XP<\/strong><\/p>\n<p>&#8211; Baixar e instalar  o openvpn para o windows:<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"eo4ymJ9WcP\"><p><a href=\"https:\/\/openvpn.net\/\">Homepage<\/a><\/p><\/blockquote>\n<p><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Homepage&#8221; &#8212; OpenVPN\" src=\"https:\/\/openvpn.net\/embed\/#?secret=eo4ymJ9WcP\" data-secret=\"eo4ymJ9WcP\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<p>Criar um arquivo no wordpad com os dados da matriz e nomea-lo como openmatriz.ovpn<br \/>\nConte\u00fado do arquivo openmatriz.ovpn<\/p>\n<p>dev tun<br \/>\nifconfig 10.0.0.2 10.0.0.1<br \/>\nsecret chavematriz.key<br \/>\nport 5000<br \/>\nremote servermatriz.noip.net<br \/>\nuser nobody<br \/>\ngroup nobody<br \/>\ncomp-lzo<br \/>\nping 15<br \/>\nverb 3<\/p>\n<p>Criaremos um arquivo chamado chavematriz.key referenciado acima na conf da openvpn do windows, com o conte\u00fado da chave gerado no linux na qual criou-se nesse exemplo o arquivo chamado &#8220;chave&#8221; <\/p>\n<p>Conte\u00fado do arquivo chavematriz.key (copiar de acordo com o gerado no linux em \/etc\/openvpn\/chave)<\/p>\n<p># 2048 bit OpenVPN static key<br \/>\n#<br \/>\n&#8212;&#8211;BEGIN OpenVPN Static key V1&#8212;&#8211;<br \/>\n4i9302i420dkslfdkljfklsdfj239200<br \/>\n1399c096dd471f316f244e9af0657c57<br \/>\n2411d282b95c6c21bdc9690d7815116e<br \/>\n4593d234e8a01b7f0bd48e5fb7ca9153<br \/>\noij4j32kl4j324k34j2kl2j4k324j32k<br \/>\na531fceb9070bd7dd7a49516aac4ae33<br \/>\n64416befaf41f323d75ef277636a1c5b<br \/>\n99bd98b660184350748cecef71e1ffca<br \/>\n253853cdb2af0e6a89bb6ead375d60cf<br \/>\nfkdsjfsdiojfsdiofjdsiofjdsiofjsd<br \/>\n2d2b7b2bd797a71469eddc6716e2e038<br \/>\n028776be9943f83eb704a43aa35f318d<br \/>\n556ff7d5e19f04437f82f42d106df087<br \/>\nc292a4805a97f6adba192b870a040ecd<br \/>\n564e0a49701eeffa04df27901f69ce46<br \/>\n25f090d57ee8b7e6ced7c7dfe1b0ae1f<br \/>\n&#8212;&#8211;END OpenVPN Static key V1&#8212;&#8211;<\/p>\n<p>Para teste:<br \/>\nAp\u00f3s criados e colocados na pasta ra\u00edz do diret\u00f3rio openvpn em Arquivos de Programas, clicar com o bot\u00e3o diteito sobre openmatriz.ovpn e escolher &#8220;Start OpenVpn on this config file&#8221;<\/p>\n<p>Tudo pronto, o drive TAP de conex\u00e3o do xp ir\u00e1 se conectar e no shell do linux ver\u00e1 uma vez que a openvpn foi startado em modo daemon nele.<\/p>\n<p>Lembrar de criar a rota no windows para o ip da sua rede interna saindo pelo ip criado no TAP (drive openvpn criado no conexoes de rede). Neste exemplo minha rede interna da empresa matriz era 192.168.254.X<br \/>\nroute add 192.168.254.0 mask 255.255.255.0 10.0.0.1<\/p>\n<p>Antes colocar os arquivos da vpn (key e o .ovpn) dentro da pasta config (arquivos de programa\/openvpn&#8230;)<br \/>\nPara deixar autom\u00e1tica a inicializa\u00e7\u00e3o ir em:<br \/>\nPainel de Control -> Ferramentas administrativas -> Servi\u00e7os<\/p>\n<p>L\u00e1 ter\u00e1 openvpn Service colocar o Tipo de Inicializa\u00e7\u00e3o autom\u00e1tico e ap\u00f3s clicar em Iniciar.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1\u00ba Passo Instalar o lzo usando: apt-get install lzop ou baixando da internet e compilando $ tar -xzvf lzo-1.08.tar.gz $ cd lzo-1.08 $ .\/configure $ make $ su # make install 2\u00ba Passo Instalar o openvpn apt-get install openvpn ou baixando da internet e compilando&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts\/66"}],"collection":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=66"}],"version-history":[{"count":0,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts\/66\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=66"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=66"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=66"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}