Title: Contruindo VPNs
1Contruindo VPNs
2Introdução à VPN
3 VPN - Virtual Private Network
- O conceito de VPN surgiu a partir da necessidade
de se utilizar redes de comunicação não
confiáveis (por exemplo, a Internet) para
trafegar informações de forma segura.
4VPN - Virtual Private Network
- Uma VPN proporciona conexões, nas quais o acesso
e a troca de informações, somente são permitidas
a usuários, que estão em redes distintas que
façam parte de uma mesma comunidade de interesse
(uma empresa).
5 VPN - Virtual Private Network
- Uma VPN pode interligar duas ou mais redes via
Internet ou através de um link privado, o que
possibilita estabelecer um túnel que passa
através dessa VPN.
6VPN - Virtual Private Network
- Uma rede VPN utiliza um padrão de criptografia
mundial, criado pelo IETF (Internet Engineering
Task Force), o que torna todo o tráfego de
informação nesse túnel, seguro.
7Tunelamento
- VPN se baseia na tecnologia de tunelamento.
- Consiste em encapsular um protocolo dentro de
outro. - O protocolo de tunelamento encapsula o protocolo
que será transportado, e o cabeçalho do protocolo
que encapsulou vai fornecer o destino do pacote
do protocolo transportado.
8Tunelamento
- Um quadro Ethernet, contendo um IP na sua carga
útil, saído de um host 1 na rede Ethernet é
recebido por um roteador multiprotocolo,
extremidade numa rede WAN. - O roteador remove esse pacote IP, encapsula
dentro de um pacote camada de rede da WAN,
enviando-o até o roteador multiprotocolo na outra
extremidade da rede WAN. - O roteador remove o pacote IP recebido e envia a
um host 2 na rede Ethernet remota.
9VPN - Virtual Private Network
- No caso de VPN, é acrescentado a criptografia,
antes do tunelamento. - Tunelamento VPN
- pacote xxx
- Criptografia do pacote xxx
- Encapsulamento do
pacote - criptografado
sobre IP
10VPN - Virtual Private Network
- Exemplo
- Se uma empresa usa redes Novell com
- o protocolo IPX, e quer que as outras
- filiais utilizem o mesmo servidor Novell,
- os pacotes IPX devem ser
- criptografados e encapsulados dentro
- do protocolo IP.
11VPN - Virtual Private Network
- Rede Novell
- Tunelamento VPN
- pacote IPX
- Criptografia
- Encapsulamento
sobre IP
12VPN - Virtual Private Network
- Túnel é a denominação do caminho lógico
percorrido pelos pacotes encapsulados. - A rede VPN poder ser construída sobre uma rede
pública (Internet) ou privada.
13Aplicações para VPN
- Três aplicações ditas mais importantes para as
VPNs - Acesso remoto via Internet.
- Conexão de LANs via Internet.
- Conexão de computadores numa Intranet.
14Acesso remoto via Internet Fonte RNP
15Acesso remoto via Internet
- O acesso remoto a redes corporativas através da
Internet pode ser viabilizado com a VPN através
da ligação local a algum provedor de acesso
(Internet Service Provider - ISP).
16Acesso remoto via Internet
- A estação remota disca para o provedor de acesso,
conectando-se à Internet e o software de VPN cria
uma rede virtual privada entre o usuário remoto e
o servidor de VPN corporativo através da
Internet.
17Conexão de LANs via Internet Fonte RNP
18Conexão de LANs via Internet Fonte RNP
- Uma solução que substitui as conexões entre LANs
através de circuitos dedicados de longa distância
é a utilização de circuitos dedicados locais
interligando-as à Internet. - O software de VPN assegura esta interconexão
formando a WAN corporativa.
19Conexão de Computadores numa Intranet Fonte
RNP
20Conexão de Computadores numa Intranet
- Em algumas organizações, existem dados
confidenciais cujo acesso é restrito a um pequeno
grupo de usuários. - Nestas situações, redes locais departamentais são
implementadas fisicamente separadas da LAN
corporativa.
21Conexão de Computadores numa Intranet
- Esta solução, apesar de garantir a
"confidencialidade" das informações, cria
dificuldades de acesso a dados da rede
corporativa por parte dos departamentos isolados.
22Conexão de Computadores numa Intranet
- As VPNs possibilitam a conexão física entre redes
locais, restringindo acessos indesejados através
da inserção de um servidor VPN entre elas. - Observe que o servidor VPN não irá atuar como um
roteador entre a rede departamental e o resto da
rede corporativa uma vez que o roteador
possibilitaria a conexão entre as duas redes
permitindo o acesso de qualquer usuário à rede
departamental sensitiva.
23Conexão de Computadores numa Intranet
- Com o uso da VPN o administrador da rede pode
definir quais usuários estarão credenciados a
atravessar o servidor VPN e acessar os recursos
da rede departamental restrita.
24Conexão de Computadores numa Intranet
- Adicionalmente, toda comunicação ao longo da VPN
pode ser criptografada assegurando a
"confidencialidade" das informações. - Os demais usuários não credenciados sequer
enxergarão a rede departamental.
25Requisitos básicos
- Autenticação de usuários.
- Gerenciamento de endereço.
- Criptografia de dados.
- Gerenciamento de chaves.
- Suporte a múltiplos protocolos.
26Autenticação de Usuários
- Verificação da identidade do usuário,
restringindo o acesso às pessoas autorizadas.
Deve dispor de mecanismos de auditoria, provendo
informações referentes aos acessos efetuados -
quem acessou, o quê e quando foi acessado.
27Gerenciamento de Endereço
- O endereço do cliente na sua rede privada não
deve ser divulgado, devendo-se adotar endereços
fictícios para o tráfego externo.
28Criptografia de Dados
- Os dados devem trafegar na rede pública ou
privada num formato cifrado e, caso sejam
interceptados por usuários não autorizados, não
deverão ser decodificados, garantindo a
privacidade da informação. - O reconhecimento do conteúdo das mensagens deve
ser exclusivo dos usuários autorizados.
29Gerenciamento de Chaves
- O uso de chaves que garantem a segurança das
mensagens criptografadas deve funcionar como um
segredo compartilhado exclusivamente entre as
partes envolvidas. - O gerenciamento de chaves deve garantir a troca
periódica das mesmas, visando manter a
comunicação de forma segura.
30Suporte a Múltiplos Protocolos
- Com a diversidade de protocolos existentes,
torna-se bastante desejável que uma VPN suporte
protocolos usadas nas redes públicas, tais como
IP (Internet Protocol), IPX (Internetwork Packet
Exchange), .
31Tunelamento
32Tunelamento em Nível 2 Enlace - (PPP sobre IP)
- O objetivo é transportar protocolos de nível 3,
tais como o IP e IPX na Internet. - Os protocolos utilizam quadros como unidade de
troca, encapsulando os pacotes da camada 3 (como
IP/IPX) em quadros PPP (Point-to-Point Protocol).
33Como exemplos podemos citar
- PPTP (Point-to-Point Tunneling Protocol) da
Microsoft permite que o tráfego IP, IPX e NetBEUI
sejam criptografados e encapsulados para serem
enviados através de redes IP privadas ou públicas
como a Internet.
34Como exemplos podemos citar
- L2TP (Layer 2 Tunneling Protocol) da IETF
(Internet Engineering Task Force). Permite que
o tráfego IP, IPX e NetBEUI sejam criptografados
e enviados através de canais de comunicação de
datagrama ponto a ponto tais como IP, X25, Frame
Relay ou ATM. - L2F (Layer 2 Forwarding) da Cisco é utilizada
para VPNs discadas.
35Tunelamento em Nível 3 - Rede - (IP sobre IP)
- Encapsulam pacotes IP com um cabeçalho adicional
deste mesmo protocolo antes de enviá-los através
da rede. - O IP Security Tunnel Mode (IPSec) da IETF permite
que pacotes IP sejam criptografados e
encapsulados com cabeçalho adicional deste mesmo
protocolo para serem transportados numa rede IP
pública ou privada.
36Tunelamento em Nível 3 - Rede - (IP sobre IP)
- O IPSec é um protocolo desenvolvido para IPv6,
devendo, no futuro, se constituir como padrão
para todas as formas de VPN caso o IPv6 venha de
fato substituir o IPv4. - O IPSec sofreu adaptações possibilitando, também,
a sua utilização com o IPv4.
37Tipos de túneis
- Os túneis podem ser criados de duas diferentes
formas - voluntárias e compulsórias - Túnel Voluntário
- Túnel Compulsório
38Túnel Voluntário
- O computador do usuário funciona como uma das
extremidades do túnel e, também, como cliente do
túnel e emite uma solicitação VPN para configurar
e criar um túnel voluntário entre duas máquinas,
uma máquina em cada rede privada, e que são
conectadas via Internet.
39VPN entre duas máquinas
40Túnel Compulsório
- O computador do usuário não funciona como
extremidade do túnel. - Um servidor de acesso remoto, localizado entre o
computador do usuário e o servidor do túnel,
funciona como uma das extremidades e atua como o
cliente do túnel. - Um servidor de acesso discado VPN configura e
cria um túnel compulsório.
41Tunelamento compulsório
42Tunelamento compulsório
- O computador ou dispositivo de rede que provê o
túnel para o computador-cliente é conhecido de
diversas formas - FEP (Front End Processor) no PPTP,
- LAC (L2TP Access Concentrator) no L2TP
- IP Security Gateway no caso do IPSec.
43Tunelamento compulsório
- Doravante, adotaremos o termo FEP para denominar
esta funcionalidade - ser capaz de estabelecer o
túnel quando o cliente remoto se conecta.
44Tunelamento compulsório
- No caso da Internet, o cliente remoto faz uma
conexão discada para um túnel habilitado pelo
servidor de acesso no provedor (ISP).
45Tunelamento compulsório
- Por exemplo, uma companhia pode ter um contrato
com uma ou mais provedores para disponibilizar um
conjunto de FEPs em âmbito nacional.
46Tunelamento compulsório
- Estas FEPs podem estabelecer túneis sobre a
Internet para um servidor de túnel conectado à
rede corporativa privada, possibilitando a
usuários remotos o acesso à rede corporativa
através de uma simples ligação local.
47Tunelamento compulsório
- Esta configuração é conhecida como tunelamento
compulsório porque o cliente é compelido a usar
um túnel criado pelo FEP. - Uma vez que a conexão é estabelecida, todo o
tráfego "de/para" o cliente é automaticamente
enviado através do túnel.
48Tunelamento compulsório
- No tunelamento compulsório, o cliente faz uma
conexão PPP. - Um FEP pode ser configurado para direcionar todas
as conexões discadas para um mesmo servidor de
túnel ou, alternativamente, fazer o tunelamento
individual baseado na identificação do usuário ou
no destino da conexão.
49Tunelamento compulsório
- Diferente dos túneis individualizados criados no
tunelamento voluntário, um túnel entre o FEP e o
servidor de túnel pode ser compartilhado por
múltiplos clientes discados.
50Tunelamento compulsório
- Quando um cliente disca para o servidor de acesso
(FEP) e já existe um túnel para o destino
desejado, não se faz necessária a criação de um
novo túnel redundante. - O próprio túnel existente pode transportar,
também, os dados deste novo cliente.
51Tunelamento compulsório
- No tunelamento compulsório com múltiplos
clientes, o túnel só é finalizado no momento em
que o último usuário do túnel se desconecta.
52IPSEC Internet Protocol Security
- O IPSec é um protocolo padrão de camada 3
projetado pelo IETF que oferece transferência
segura de informações fim a fim através de rede
IP pública ou privada.
53IPSEC Internet Protocol Security
- Essencialmente, ele pega pacotes IP privados,
realiza funções de segurança de dados como
criptografia, autenticação e integridade, e então
encapsula esses pacotes protegidos em outros
pacotes IP para serem transmitidos.
54IPSEC Internet Protocol Security
- As funções de gerenciamento de chaves também
fazem parte das funções do IPSec.
55IPSEC Internet Protocol Security
- Tal como os protocolos de nível 2, o IPSec
trabalha como uma solução para interligação de
redes e conexões via linha discada. - Ele foi projetado para suportar múltiplos
protocolos de criptografia possibilitando que
cada usuário escolha o nível de segurança
desejado.
56IPSEC Internet Protocol Security
- Requisitos de segurança
- Autenticidade
- Integridade
- Confidencialidade
57IPSEC Internet Protocol Security
- Para implementar estas características, o IPSec é
composto de 3 mecanismos adicionais - AH - Autentication Header.
- ESP - Encapsulation Security Payload.
- ISAKMP - Internet Security Association and Key
Management Protocol.
58IPSec em servidores Linux
- O Ipsec segue normas em projetos de VPN e é muito
ultizado para vc fazer VPN entre servidores Linux
e roteadores que prove serviços de VPN.
59Protocolos de Segurança para VPN
- IPSec (IP Security)
- SSL (Secure Sockets Layer)
- TLS (Transport Layer Secure)
60Segurança de Rede na camada de transporte com
SSL/TLS
FTPNNTP, ...
SMTP
HTTP
SSL / TLS
TCP / UDP
IP
61Segurança de Rede na camada de rede com IPSec
FTPNNTP, ...
SMTP
HTTP
TCP / UDP
IP / IPSec
62Construindo VPN com OpenVPN
63OpenVPN
- OpenVPN é uma ferramenta que implementa uma rede
VPN segura, usando a camada de enlace ou a camada
de rede, usando o padrão da indústria SSL/TLS.
64OpenVPN
- OpenVPN suporta métodos de autenticação para o
cliente baseados sobre - certificados digitais,
- smart cards,
- username/password credentials.
65OpenVPN
- Permite acesso para um usuário ou permite uma
política de controle de acesso específica de
grupo, usando regras de firewall aplicadas à
interface virtual VPN.
66OenVPN 2.0
- OpenVPN 2.0 expande as capacidades de OpenVPN
1.x. - Oferecendo um modo cliente/servidor escalável,
permitindo múltiplos clientes para conectar a um
único servidor OpenVPN sobre uma única porta TCP
ou UDP.
67Pode-se construir ...
- Uma simples VPN como um gateway que pode
manipular um único cliente. - Estabelecer um gateway cliente/servidor VPN,
escalável, usando uma X509 PKI (infra-estrutura
de chaves públicas usando certificados e chaves
privadas).
68Produtos SSL/IPSec
- SSL é o protocolo mais amplamente distribuído
quando se trata de comércio eletrônico. - Netscape e Internet Explorer suportam SSL.
- Windows 2000 / XP usam IPSec para contruir VPN.
- RSA BSAFE Cripto-C/J (IPSec) e SSL-C/J
- Distribuições Linux SSL para HTTP, FTP,
SMTP, NNTP.
69Virtual Private Network em ADSL
70Objetivo
- O objetivo é mostrar de forma rápida e simples a
configuração de uma VPN baseada em Linux
utilizando o OpenVPN como ferramenta. - Sendo que este é um software estável, simples de
configurar, além de ser um projeto que está
sempre em desenvolvimento.
71Exemplo de VPN
- Vamos considerar o caso de interligar as redes
internas de uma empresa (matriz e filial), sendo
que ambas se localizam em lugares diferentes e
bem distantes.
72Exemplo de VPN
- Que cada empresa possui uma conexão ADSL rodando
Linux como servidor e suas respectivas redes
internas conforme o exemplo hipotético abaixo
73Redes na empresa
- Matriz
- ADSL com IP 200.217.222.222
- LAN com a classe 192.168.1.0/24
- Filial
- ADSL com ip 200.141.64.33
- LAN com a classe 192.168.2.0/24
74Matriz e Filial
75Objetivo
- Nesta VPN, teremos como principal objetivo fazer
com que qualquer máquina da rede interna da
Matriz se conecte diretamente com qualquer
máquina da rede interna da Filial (ou vice
versa), deixando a impressão de que ambas as
redes estão no mesmo meio físico.
76Instalando OpenVPN
- Antes de começar, devemos checar primeiramente se
o driver TUN/TAP se encontra no kernel. - Caso o mesmo não se encontre, precisaremos ativar
esse driver dentro da opção "Network Device
Support", conforme exemplo que segue
77 Network device support ARCnet
devices ---gt lt gt Dummy net
driver support lt gt Bonding driver
support lt gt EQL (serial line load
balancing) support ltgt Universal
TUN/TAP device driver support
lt gt Ethertap network
tap (OBSOLETE) lt gt General
Instruments Surfboard 1000
Ethernet (10 or
100Mbit) ---gt Ethernet (1000
Mbit) ---gt FDDI driver
support HIPPI driver support
(EXPERIMENTAL) ltgt PPP
(point-to-point protocol) support
lt gt SLIP (serial line) support Wir
eless LAN (non-hamradio) ---gt Tok
en Ring devices ---gt Fibre
Channel driver support lt gt Red
Creek Hardware VPN (EXPERIMENTAL)
lt gt Traffic Shaper (EXPERIMENTAL)
Wan interfaces ---gt
78Notas
- Não é abordado aqui, exemplos de compilação de
kernel, bem como a configuração de conexão ADSL
no Linux. - Nas distros RedHat 9.0, Slackware 9.1, 10.0 e
10.1 não foi preciso mexer no kernel. - Já na Slackware 9.0 tem-se que recompilar o
kernel com suporte ao driver TUN/TAP.
79Pacote lzo-1.08
- Baixe os pacotes lzo-1.08.tar.gz (biblioteca de
compressão de dados) e o pacote
openvpn-1.5.0.tar.gz. - 1º Passo
- tar -xzvf lzo-1.08.tar.gz cd lzo-1.08
./configure make su make install
80Instalando OpenVPN 1.5.0
- 2º Passo
- tar -xzvf openvpn-1.5.0.tar.gz cd
openvpn-1.5.0 ./configure make su make
install - Pronto. O OpenVPN já está instalado em nosso
sistema com suporte à biblioteca de compressão de
dados. - Agora só resta a configuração.
81Configurando a VPN na Matriz
- O OpenVPN pode operar com 3 tipos de
criptografia - Nenhuma criptografia (apenas o túnel),
- Criptografia com chaves estáticas (este caso).
- No modo TLS, em que as chaves são trocadas
periodicamente.
82Configurando a VPN na Matriz
- 1 - Execute os seguintes comandos mkdir
/etc/openvpn Criamos o diretório onde estarão
todos os arquivos de configuração.
83Configurando a VPN na Matriz
- openvpn --genkey -secret /etc/openvpn/chave
Foi gerada uma chave de criptografia com o nome
de chave (pode ser qualquer nome de arquivo)
dentro do diretório /etc/openvpn. cat
/etc/openvpn/chave Só para visualizarmos o
conteúdo da chave que geramos. touch
/etc/openvpn/matriz.conf Crie esse arquivo com
o seguinte conteúdo
84Configurando a VPN na Matriz Arquivo criado ...
- Usar como interface o driver TUNdev tun
10.0.0.1 ip que será assumido na matriz
10.0.0.2 ip remoto, ou seja, esse será o ip da
filialifconfig 10.0.0.1 10.0.0.2 Entra no
diretório onde se encontram os arquivos de
configuraçãocd /etc/openvpn Indica que esse
túnel possui uma chave de criptografiasecret
chave
85Configurando a VPN na Matriz Arquivo criado ...
- OpenVPN usa a porta 5000/UDP por padrão. Cada
túnel do OpenVPN deve usar uma porta
diferente. O padrão é a porta 5000port 5000
86Configurando a VPN na Matriz Arquivo criado ...
- Usuário que rodará o daemon do OpenVPNuser
nobody Grupo que rodará o daemon do
OpenVPNgroup nobody
87Configurando a VPN na Matriz Arquivo criado ...
- Usa a biblioteca lzocomp-lzo Envia um ping
via UDP para a parte remota a cada 15 segundos
para manter a conexão de pé em firewall
statefull Muito recomendado, mesmo se você não
usa um firewall baseado em statefull.ping 15
Nível de logverb 3
88Configurando a VPN na Filial
- A parte da instalação na filial é exatamente
igual a da Matriz, é só seguir os passos
descritos no tópico instalação. Já na parte de
configuração, não muda muita coisa também, pois o
maior trabalho é simplesmente copiar a chave que
geramos na Matriz por um canal seguro até a
filial.
89Configurando a VPN na Filial
- mkdir /etc/openvpn
- Execute os seguintes comandos. Criaremos o mesmo
diretório de configuração na filial mkdir
/etc/openvpn
90- Copie a chave gerada na matriz para a filial com
seguinte comando scp /etc/openvpn/chave
ip_filial/etc/openvpn Em seguida crie o
arquivo de configuração chamado filial.conf
touch /etc/openvpn/filial.conf
91Arquivo de configuração
- Crie esse arquivo com o seguinte conteúdo
Usar como interface o driver TUN dev tun
10.0.0.1 ip que será assumido na matriz
10.0.0.2 ip remoto, ou seja, esse será o ip da
filialifconfig 10.0.0.2 10.0.0.1
92- Indica onde está o ip da Matriz (essa é a
única linha que acrescentamos no arquivo de
configuração da filial), o resto é tudo
igual. remote 200.217.222.222 Entra no
diretório onde se encontram os arquivos de
configuração cd /etc/openvpn
93- Indica que esse túnel possui uma chave de
criptografiasecret chave OpenVPN usa a porta
5000/UDP por padrão. Cada túnel do OpenVPN deve
usar uma porta diferente. O padrão é a porta
5000port 5000
94- Usuário que rodará o daemon do OpenVPNuser
nobody Grupo que rodará o daemon do
OpenVPNgroup nobody - Usa a biblioteca lzocomp-lzo Nível de
logverb 3
95- Envia um ping via UDP para a parte remota
a cada 15 segundos para manter a conexão de pé
em firewall statefull Muito recomendado, mesmo
se você não usa um firewall baseado em
statefull.ping 15 - Nível de logverb 3
96Inicie a conexão na filial com o seguinte
comando
- openvpn --config /etc/openvpn/filial.conf
-daemon ifconfig tun0
97- tun0 Link encapPoint-to-Point Protocol
inet addr10.0.0.2 P-t-P10.0.0.1
Mask255.255.255.255 UP
POINTOPOINT RUNNING NOARP MULTICAST
MTU1255 Metric1 RX
packets1383257 errors0 dropped0 overruns0
frame0 TX
packets1144968 errors0 dropped0 overruns0
carrier0 collisions0
txqueuelen10 RX bytes82865921
(79.0 Mb) TX bytes383951667 (366.1
Mb) Ok! Se aparecer algo assim, sua VPN, está
configurada.
98Teste pingando de uma ponta a outra
- ping 10.0.0.1PING 10.0.0.1 (10.0.0.1) 56(84)
bytes of data.64 bytes from 10.0.0.1 icmp_seq1
ttl63 time11.9 ms64 bytes from 10.0.0.1
icmp_seq2 ttl63 time6.09 ms64 bytes from
10.0.0.1 icmp_seq3 ttl63 time5.93 ms64 bytes
from 10.0.0.1 icmp_seq4 ttl63 time8.15 ms64
bytes from 10.0.0.1 icmp_seq5 ttl63 time6.19
ms - Se aparecer algo assim, sua VPN já esta
funcionando. - Agora só falta adicionarmos as rotas para as
redes internas se enxergarem. -
99Adicionando rotas
- Antes de adicionarmos as rotas, é necessário
ativar o roteamento no kernel em ambas as pontas
(Matriz e Filial). - Execute os seguintes comandos na matriz e filial
echo 1 gt /proc/sys/net/ipv4/ip_forward
100- Para adicionar a rota com destino a rede da
Filial, execute de dentro do servidor da Matriz o
seguinte comando route add -net
192.168.2.0/24 gw 10.0.0.2 - Para adicionar a rota com destino a rede da
Matriz, execute de dentro do servidor da Filial o
seguinte comando route add -net
192.168.1.0/24 gw 10.0.0.1
101Agora é só testar.
- Tente pingar de dentro de uma máquina da LAN da
Matriz com destino a LAN da Filial. - Lembrar também que temos que colocar toda a
seqüência de comandos acima no rc.local de sua
distro, para que a mesma carregue as
configurações ao iniciar o sistema operacional.