Escolar Documentos
Profissional Documentos
Cultura Documentos
Introdução
Muitos quando procuram soluções corporativas de conectividade buscam custo benefício. Isto todo
mundo já sabe. Muitos que adotam o Linux como solução de firewall e conectividade encontram isto,
mas quando o assunto é VPN, a maioria dos administradores de Linux optam por soluções compradas
pois entre outras coisas, apesar da grande quantidade de soluções em Linux existentes, elas estão
extremamente mal documentadas e algumas vagam pelo limbo dos Geeks.
Pois bem, este artigo é justamente um documento que visa ajudar os administradores Linux a escolher e
aplicar soluções VPNs em seu dia a dia. Todas as opções eu já usei ou uso no meu dia a dia e garanto,
há mais no universo Open Source do que uma vida inteira à frente do computador possa testar.
o Projeto PopTop (www.poptop.org), uma solução que usa o protocolo PPTP da Microsoft para
VPNs, ideal quando se tem muitos computadores Windows remotos que necessitam entrar em sua
rede;
o projeto VPNd (sunsite.dk/vpnd), que cria túneis de VPN sem a necessidade de recompilação do
kernel;
o eterno e amado Free Swan, o mais difícil de todos de ser aplicado mas também o mais
performático;
e por último os túneis sobre SSH.
Contato
Para conseguir contato comigo, basta enviar um email para marcolino@facil.com.
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=337 Page 1 of 7
Criando VPNs entre servidores Linux sem mistérios (parte I) [Artigo] 10/14/09 9:38 PM
O PPTPd é um projeto de VPNs baseado no protocolo GRE e na tecnologia PPTP. Seu funcionamento é
semelhante ao de uma conexão dial-up, ou seja ele "disca" para um host conhecido, troca chaves através
do protocolo GRE e conecta uma interface virtual (ppp) por onde a comunicação dentro do túnel ocorre.
Para estabelecer a conexão é necessária a autenticação de um usuário. Este tipo de VPN é conseguido
em um servidor Windows usando o RRAS (Route and Remote Access Server) que pelo que eu sei,
surgiu no Windows NT 4. A criptografia pode ser de 40 bits à 128 bits dentro do túnel, conforme a
capacidade do servidor e do cliente. Uma coisa que deveria funcionar, mas não vi vantagem aparente até
hoje, é a compressão dos pacotes TCP antes de serem transferidos dentro do túnel, o que garantiria uma
performance muito maior. Nada pode ser perfeito.
Configurando um servidor PPTP, tanto Windows como Linux, você pode ter clientes conectados à ele
das plataformas Win9x, NT, 2000 e XP, Linux 2.2.x e 2.4.x.
O problema de ter um servidor Windows de VPN é a sua exposição direta na Internet. Um servidor
Windows direto na Internet nunca é uma boa idéia.
O protocolo PPTP possui uma série de falhas exploradas por hackers que possibilitam a invasão ou a
indisponibilidade de servidores Windows. O Projeto POPTOP, que faz o trabalho de servidor Linux de
PPTP, não é vulnerável à ataques de exploits para Windows, apesar do protocolo ainda ser vulnerável a
indisponibilidade, mas para prover a usuários remotos acesso a rede interna, com segurança, este
protocolo ainda é a melhor solução pois, principalmente no Brasil, a quantidade de pessoas que ainda
usam Windows 98 e ME é muito grande.
Todos os procedimentos de instalação que descrevo aqui foram aplicados em um ambiente real de
produção com as seguintes características:
Servidor 1
Duron 1GHz, 256MB RAM, HD 20 GB
RedHat 7.3, Kernel 2.4.18
Servidor 2 e 5
Celeron 1.1GHz, 256MB RAM, HD 20 GB
Slackware 9, Kernel 2.4.21
Servidor 3
Pentium 166MMX, 64MB RAM, HD 6GB
RedHat 6.2, Kernel 2.2.16
Servidor 4
Pentium 4, 2.6GHz, 1 GB RAM, HD 40 GB
Slackware 8.1, Kernel 2.4.20
Apesar da quantidade de ambientes, para sermos mais objetivos estarei explicando a instalação a partir
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=337 Page 2 of 7
Criando VPNs entre servidores Linux sem mistérios (parte I) [Artigo] 10/14/09 9:38 PM
Downloads necessários
É necessário ter os fontes do kernel instalados onde se pretende colocar o PPTPd em produção. Caso seu
kernel não tenha o módulo gre.o compilado, você precisará disto. Explico mais a frente como fazer isso.
Os fontes do kernel sempre podem ser conseguidos em www.kernel.org.
http://www.advancevpn.com/public/ppp-2.4.1.tar.gz
O PPTPd, quando escrevia este artigo, já estava na versão 1.1.3, mas utilizamos a versão anterior a 1.1.2.
Nada contra a 1.1.3, pena que ela não funcionou com o kernel 2.2.x de uma das minhas máquinas. Fica
por sua conta escolher, eu continuo explicando como usar a 1.1.2 .
http://www.advancevpn.com/public/pptpd-1.1.2.tar.gz
O Kernel-MPPE patch é imprescindível para prover a criptografia para as plataformas Microsoft. Este
módulo é o coração da coisa. Abaixo o link aponta para um patch para o kernel 2.4.16
http://www.advancevpn.com/public/pptpd-1.1.2.tar.gz
O ppp-MPPE patch faz a conexão entre o kernel e o ppp para estabelecer a criptografia.
http://www.advancevpn.com/public/ppp-2.4.1-openssl-0.9.6-mppe-patch.gz
Como vocês notaram, o site www.advancevpn.com está gentilmente hospedando os fontes num lugar
centralizado para downloads. Palmas para eles!
Faça os downloads tomando um delicioso Ovomaltine... isto tornará a experiência muito mais agradável.
Compilando a parafernália
O Kernel.
# cd /usr/src
# tar xyfv /root/downloads/linux-2.4.21.tar.bz2
# ln -sf linux.2.4.21 linux
# cd /usr/src/linux
# zcat /root/downloads/linux-2.4.4-openssl-0.9.6-mppe.patch.gz | patch -p1
Configure seu kernel usando o make menuconfig. Imagino que você saiba do que estou falando, então
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=337 Page 3 of 7
Criando VPNs entre servidores Linux sem mistérios (parte I) [Artigo] 10/14/09 9:38 PM
IP: tunneling
IP: GRE tunnels over IP
Volte para o menu principal e entre na opção Network Device support. Marque como módulos [M]:
Tudo marcadinho, saia do menuconfig, compile o kernel, instale e boas. Não vou aqui ensinar fazer isso,
se tiver dúvidas de como proceder consulte o Kernel HOWTO.
O PPP
Gosto de padronizar a localização dos meus fontes quando preparo alguma coisa.
# cd /usr/local/src
# mkdir poptop-proj
# cd poptop-proj
Ou seja, criei em /usr/local/src um diretório para colocar todos os fontes de que vou precisar para
instalar o PopTop. Fica mais fácil de achar assim.
# cd /usr/local/src/poptop-proj
# tar xzfv /root/downloads/ppp-2.4.1.tar.gz
# cd ppp-2.4.21
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=337 Page 4 of 7
Criando VPNs entre servidores Linux sem mistérios (parte I) [Artigo] 10/14/09 9:38 PM
# ./configure
# make
# make install
O PPTPd
Se você chegou até aqui, sua caneca com Ovomaltine já deve ter esvaziado faz algum tempo. Que tal
encher novamente?
# cd /usr/local/src/poptop-proj
# tar xzfv /root/downloads/pptpd-1.1.2.tar.gz
# cd pptpd-1.1.2
# ./configure
# make
# make install
1 - /etc/modules.conf
Acrescente as linhas:
Rode o comando:
# depmod -a
Pronto.
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=337 Page 5 of 7
Criando VPNs entre servidores Linux sem mistérios (parte I) [Artigo] 10/14/09 9:38 PM
2 - /etc/ppp/options.pptpd
lock
mtu 1490
mru 1490
proxyarp
noauth
+chap
+chapms
+chapms-v2
ipcp-accept-local
ipcp-accept-remote
lcp-echo-failure 10
lcp-echo-interval 10
mppe-40
mppe-128
mppe-stateless
require-chap
debug
name *
3 - /etc/ppp/chap-secrets
Este arquivo contém os usuários e senhas de conexão. Aqui acho que está a maior falha deste
sistema,pois as senhas estão em texto claro. Realmente lamentável.
Aqui é o fim do artigo. Digo isso porque meu Ovomaltine acabou e tenho que ir trabalhar para ganhar
grana e comprar mais! Espero que o artigo tenha sido de grande valia para todos.
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=337 Page 6 of 7
Criando VPNs entre servidores Linux sem mistérios (parte I) [Artigo] 10/14/09 9:38 PM
# pptpd -d
# killall -9 pptpd
Agradecimentos
VIVA O LINUX!
http://www.vivaolinux.com.br/artigo/Criando-VPNs-entre-servidores-Linux-sem-misterios-(parte-I)
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=337 Page 7 of 7