101
Giovanni Schmitt Salvador SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE Trabalho submetido ao Programa de Graduação da Universidade Federal de Santa Catarina para a obtenção do Grau de Bacharelado em Ciências da Computação. Orientador: Prof. Dr. Carlos Becker Westphall Florianópolis SC 2013

SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

  • Upload
    lykien

  • View
    219

  • Download
    1

Embed Size (px)

Citation preview

Page 1: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Giovanni Schmitt Salvador

SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO

REMOTA E SEGURANÇA DE REDE

Trabalho submetido ao Programa de

Graduação da Universidade Federal de

Santa Catarina para a obtenção do Grau

de Bacharelado em Ciências da Computação.

Orientador: Prof. Dr. Carlos Becker Westphall

Florianópolis – SC

2013

Page 2: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Ficha de identificação da obra elaborada pelo autor, através do

Programa de Geração Automática da Biblioteca Universitária da UFSC.

Salvador, Giovanni Schmitt

Servidor de Borda de Código Livre para Conexão

Remota e Segurança de Rede / Giovanni Schmitt Salvador ;

orientador, Carlos Becker Westphall -

Florianópolis, SC, 2013.

99 p.

Trabalho de Conclusão de Curso (graduação) -

Universidade Federal de Santa Catarina, Centro

Tecnológico.

Graduação em Ciências da Computação.

Inclui referências

1. Ciências da Computação. 2. Servidor Roteador Linux.

3. Servidor DHCP. 4. Servidor VPN. 5. Servidor Firewall.

I. Westphall, Carlos Becker. II. Universidade Federal de

Santa Catarina. Graduação em Ciências da Computação. III.

Título.

Page 3: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Giovanni Schmitt Salvador

SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO

REMOTA E SEGURANÇA DE REDE

Este Trabalho foi julgado adequado para obtenção do Título de

Bacharel em Ciências da Computação, e aprovado em sua forma final pelo

Programa de Graduação da Universidade Federal de Santa Catarina.

Florianópolis, 11 de Dezembro de 2013

_________________________________

Prof. Vitório Bruno Mazzola

Coordenador do Curso

Banca Examinadora:

_______________________________ Prof. Dr. Carlos Becker Westphall

_______________________________ Prof.ª Dr.ª Carla Merkle Westphall

_______________________________ Me. Rafael de Souza Mendes

Page 4: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Este trabalho é dedicado a todos os colegas, professores e

profissionais do Departamento de Informática e Estatística, que no decorrer do período de graduação, me instruíram, orientaram e auxiliaram

no meu crescimento pessoal e acadêmico. Dedico este trabalho principalmente aos meus pais, sem o apoio

deles, a elaboração deste trabalho não seria possível.

Page 5: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

AGRADECIMENTOS

Agradeço primeiramente a Deus, por iluminar meu caminho e

permitir que eu obtenha o grau de bacharel neste prestigiado curso,

fornecido por esta instituição acadêmica de excelência.

Agradeço também ao meu orientador, que ao longo do curso, foi o

principal responsável por me manter motivado na área em que este trabalho

foi realizado, onde pretendo seguir carreira me aperfeiçoando

constantemente.

Agradeço a minha companheira pela enorme paciência.

Agradeço principalmente a meus pais, que estiveram ao meu lado e

me apoiaram em todas as decisões, acadêmicas ou não, que tomei até o

presente momento.

Page 6: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de
Page 7: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

RESUMO

Neste trabalho foi pesquisado e apresentado a parte teórica dos

firewalls e redes virtuais remotas (VPNs). Foi feita uma análise de

desempenho de rede das tecnologias VPNs estudadas. E por fim, foi

implantado em um computador o Sistema Operacional Ubuntu, o serviço de

DHCP com encaminhamento de pacotes (para o servidor funcionar como

um roteador), o serviço de VPN OpenVPN e o serviço de firewall

Shorewall.

Palavras-chave: Servidor roteador. Servidor DHCP. Servidor

VPN. Servidor Firewall. Tecnologia VPN. Tecnologia Firewall. Sistema

Operacional Linux. Sistema Operacional Ubuntu. Openvpn. Webmin.

Shorewall. XFCE v4. Servidor periférico de rede. Servidor de segurança de

rede. Rede de computadores.

Page 8: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de
Page 9: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

ABSTRACT

This work was researched and is presented, the theoretical context

of network firewalls and virtual private networks (VPNs). An analysis of

network performance over VPNs technologies is presented. And finally, a

computer network server was implemented using Ubuntu Operating

System, DHCP service with packet forwarding (for the server to work as a

router), the VPN service OpenVPN and Shorewall firewall service.

Keywords: Server router. DHCP server. VPN server. Firewall

Server. VPN technology. Firewall technology. Linux Operating System.

Ubuntu Operating System. Openvpn. Webmin. Shorewall. XFCE v4. Edge

network server. Security network Server. Computer network.

Page 10: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de
Page 11: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

LISTA DE FIGURAS

FIGURA 1 - EXEMPLO DE REDE DISTRIBUÍDA IDEAL. ....................................................... 11 FIGURA 2 - ARQUITETURA BÁSICA DA TECNOLOGIA DE FIREWALL .................................... 13 FIGURA 3 - AGRUPAMENTO DE VPN POR PROTOCOLO DE SEGURANÇA. ............................ 42 FIGURA 4 - ARQUITETURA DA REDE LOCAL ................................................................. 57 FIGURA 5 - CONEXÃO DA ÁREA DE TRABALHO REMOTA WINDOWS ................................. 60 FIGURA 6 - LOGIN DO XRDP .................................................................................... 60 FIGURA 7 - LOG DE CONEXÃO XRDP ......................................................................... 61 FIGURA 8 - ACESSO REMOTO COM INTERFACE GRÁFICA AO SERVIDOR. ............................ 61 FIGURA 9 - ACESSO AO WEBADMIN .......................................................................... 63 FIGURA 10 - PRIMEIROS PASSOS WEBADMIN. ............................................................. 64 FIGURA 11 - APLICANDO CONFIGURAÇÕES WEBADMIN. ............................................... 65 FIGURA 12 - MELHRAR EXPERIÊNCIA DE USUÁRIO NO WEBADMIN. ................................. 66 FIGURA 13 - INTERFACE MELHORADA EM PORTUGUÊS DO WEBADMIN. ............................ 66 FIGURA 14 - ARQUITETURA 1 DE TOPOLOGIA DE REDE VIRTUAL PRIVADA......................... 71 FIGURA 15 - ARQUITETURA 2 DE TOPOLOGIA DE REDE VIRTUAL PRIVADA - ROADWARRIOR. 73 FIGURA 16 - RESUMO DO SERVIDOR IMPLEMENTADO ................................................... 86

Page 12: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de
Page 13: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

LISTA DE TABELAS

TABELA 1 - DADOS DE TECNOLOGIAS FIREWALL. .......................................................... 25 TABELA 2 – RESUMO DOS PROTOCOLOS DE TUNELAMENTO DE VPN. .............................. 34 TABELA 3 - TECNOLOGIAS VPN. ............................................................................... 43 TABELA 4 - DESEMPENHO DE SOBRECARGA NORMALIZADA [23]. ................................... 45 TABELA 5 - DESEMPENHO DE UTILIZAÇÃO DE LARGURA DE BANDA [23]. .......................... 46 TABELA 6 - DESEMPENHO, INSTABILIDADE NORMALIZADA [23]. ..................................... 47 TABELA 7 - DESEMPENHO, LATÊNCIA NORMALIZADA [23]. ............................................ 47 TABELA 8 - COMPLEXIDADE DE INSERIR ALGORITMOS PROPRIETÁRIOS DE CRIPTOGRAFIA. ..... 51 TABELA 9 - SUPORTE DE ROTEAMENTO EMBUTIDO. ...................................................... 51 TABELA 10 - SEGURANÇA DAS VPNS. ........................................................................ 52

Page 14: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de
Page 15: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

SUMÁRIO

1 INTRODUÇÃO: ........................................................................... 9

1.1 MOTIVAÇÃO .............................................................................. 9

2 FIREWALL ................................................................................ 11

2.1 INTRODUÇÃO: .......................................................................... 11 2.2 FUNDAMENTOS DA TECNOLOGIA DE FIREWALL ............................... 12 2.3 FILTRAGEM DE PACOTES ............................................................ 12

2.3.1 Vantagens e Desvantagens ............................................ 14 2.3.2 Onde estão os firewalls de filtro de pacotes .................. 15

2.4 FIREWALL DE INSPEÇÃO DE PACOTES DINÂMICO ............................. 16 2.4.1 Pacotes TCP .................................................................... 17 2.4.2 Pacotes UDP. .................................................................. 18 2.4.3 Vantagens e Desvantagens ............................................ 19 2.4.4 Onde estão os firewalls de inspeção dinâmica?............. 20

2.5 APLICAÇÕES PROXY FIREWALLS ................................................... 20 2.5.1 Vantagens e Desvantagens ............................................ 21 2.5.2 Onde estão as aplicações proxy firewall ........................ 22

2.6 SOFTWARES FIREWALL DE CÓDIGO ABERTO: .................................. 22 Coyote Linux ............................................................................... 22 Firestarter ................................................................................... 22 IPCop .......................................................................................... 23 IPFilter ........................................................................................ 23 IPFire ........................................................................................... 23 Netfilter ...................................................................................... 23 m0n0wall .................................................................................... 23 pfSense ....................................................................................... 23 Shorewall .................................................................................... 23 Smoothwall ................................................................................. 24 Untangle ..................................................................................... 24 Vyatta ......................................................................................... 24 UFW ............................................................................................ 24

2.7 CONCLUSÃO ............................................................................ 24

3 VPN ......................................................................................... 27

3.1 INTRODUÇÃO: .......................................................................... 27 3.2 TÚNEIS ................................................................................... 28

Page 16: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

3.2.1 Protocolos de Túneis ...................................................... 29 MPLS ................................................................................................. 29 Ipsec .................................................................................................. 30 L2TP ................................................................................................... 31 IP-in-IP ............................................................................................... 31 GRE .................................................................................................... 31 PPTP .................................................................................................. 31 SSTP ................................................................................................... 32

3.2.2 Resumo dos Protocolos de Tunelamento ....................... 33 3.3 ESTUDO DE DESEMPENHO .......................................................... 34 3.4 A ARQUITETURA DE SOFTWARE DE UM ROTEADOR SVBLCA .............. 35 3.5 CARACTERÍSTICAS VPN .............................................................. 36

3.5.1 Desempenho da Rede .................................................... 36 Overhead ........................................................................................... 37 Utilização de banda ........................................................................... 37 Latência / Instabilidade ..................................................................... 38

3.5.2 Características suportadas e funcionalidades ................ 38 Código de modularidade ................................................................... 38 Roteamento ...................................................................................... 39

3.5.3 Preocupações operacionais ............................................ 39 Segurança .......................................................................................... 39 Escalabilidade .................................................................................... 40

3.6 O BANCO DE ENSAIO EXPERIMENTAL ........................................... 41 3.7 RESULTADOS DA AVALIAÇÃO DE DESEMPENHO ............................... 44

3.7.1 O desempenho da rede .................................................. 45 3.7.2 Características/funcionalidades suportadas .................. 48

A modularidade do código ................................................................ 48 Roteamento ...................................................................................... 49

3.7.3 Preocupações Operacionais ........................................... 49 Segurança .......................................................................................... 49 Escalabilidade .................................................................................... 50

3.8 FUNCIONAMENTO VPNS USANDO PROTOCOLO UDP. ..................... 52 3.8.1 SSL/TLS sobre UDP no OpenVPN. ................................... 53

Canal de Controle .............................................................................. 53 Canal de Dados .................................................................................. 54

3.9 CONCLUSÕES SOBRE VPNS E TRABALHOS FUTUROS ........................ 54

4 DESENVOLVIMENTO: ............................................................... 56

4.1 SISTEMA OPERACIONAL ............................................................. 56 4.2 CONFIGURANDO AS INTERFACES DE REDE E SERVIÇO DHCP ............... 56 4.3 CONFIGURANDO O SERVIDOR COMO ROTEADOR DHCP/GATEWAY DE

DUAS INTERFACES 57

Page 17: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

4.4 INSTALANDO INTERFACE GRÁFICA NO SERVIDOR .............................. 59 4.5 INSTALANDO O WEBADMIN ........................................................ 62

4.5.1 Pré-configurando o serviço de Firewall .......................... 63 4.6 INSTALANDO SERVIÇO DE VPN OPENVPN ..................................... 67 4.7 INSTALANDO E CONFIGURANDO O SERVIÇO DE FIREWALL SHOREWALL . 70 4.8 DNS DINÂMICO ....................................................................... 81

4.8.1 Introdução ...................................................................... 81 4.8.2 Registrar IP com um provedor de DNS dinâmico ........... 81 4.8.3 Utilitário de software para realizar atualizações de DNS

dinâmico 82 No-IP ................................................................................................. 82

5 CONCLUSÃO: ........................................................................... 86

5.1 TRABALHOS FUTUROS ................................................................ 87

6 REFERÊNCIAS BIBLIOGRÁFICAS: ............................................... 89

Page 18: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de
Page 19: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

1 Introdução:

Firewall (em português, “muro anti-chamas”) é um dispositivo de

rede de computadores, que tem por objetivo aplicar uma política de

segurança a um determinado ponto da rede. A complexidade de instalação

depende do tamanho da rede, da política de segurança, da quantidade de

regras que controlam o fluxo de entrada e saída de informações e do grau de

segurança desejado. O firewall pode ser usado para bloquear acessos

remotos a portas abertas dentro da rede local, serve também para delimitar

regras de uso e acesso à rede, podendo ser entre elas, regras de acesso a

sites, e-mails, spams, entre outros.

VPN (Virtual Private Network) significa Rede Privada Virtual. É

uma rede de comunicações privada normalmente utilizada por uma empresa

ou um conjunto de empresas/instituições, construída em cima de uma rede

de comunicações pública (como por exemplo, a Internet). O tráfego de

dados é levado pela rede pública, utilizando protocolos padrão, não

necessariamente seguros.

VPNs seguras usam protocolos de criptografia por tunelamento que

fornecem a confidencialidade, autenticação e integridade necessárias para

garantir a privacidade das comunicações requeridas. Quando

adequadamente implementados, estes protocolos podem assegurar

comunicações seguras através de redes inseguras.

Deve ser notado que a escolha, implementação e uso destes

protocolos não são triviais, e várias soluções de VPN inseguras são

atualmente distribuídas no mercado.

Com o acesso remoto à “rede administrativa principal” (onde

geralmente encontram-se os servidores de dados e aplicativos) aumentam-

se os pacotes recebidos e enviados pela rede.

1.1 Motivação

Existem empresas e laboratórios que compartilham entre diversas

redes de computadores distribuídas geograficamente, recursos necessários

para a elaboração de suas funções, pesquisas e serviços.

Percebe-se também, que as empresas e laboratórios necessitam

utilizar diversos recursos de software para acessar programas remotos, distribuídos entre as redes de computadores da organização - programas

como de gerenciamento da empresa (financeiro, recursos humanos, compra

e venda de materiais e serviços, emissão de nota fiscal, etc.), banco de

dados, acesso a área de trabalho remota, cópias de segurança de arquivos,

entre outros.

Page 20: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Para utilizar estes serviços/recursos espalhados geograficamente,

muitas vezes utilizam-se diversos softwares diferentes, que necessitam de

roteamento de portas entre os nodos da rede, a abertura de variadas portas

na rede de computadores, permissões especiais nos firewalls dos sistemas

operacionais dos usuários (se não houver um firewall de rede de borda),

entre outras coisas que podem ocasionar o comprometimento da segurança

da rede de computadores, implicando no comprometimento dos dados e

serviços oferecidos.

Para resolver este problema, pode ser feito o acesso remoto a rede,

via VPN, para acessar os serviços disponíveis nas diversas redes

distribuídas geograficamente, como se todas estivessem conectadas

diretamente, ou melhor, como se todas estivessem no mesmo escritório.

Assim não seria necessário abrir diversas portas para a rede pública/externa.

E com a segurança criptográfica dos túneis VPN, ainda obter-se-á toda a

segurança necessária para os dados trafegarem de uma rede para outra com

confidencialidade, autenticidade e integridade.

Para reforçar a segurança da rede, seria ideal ter um firewall de

rede nas bordas das redes de computadores, aumentando a segurança geral

dos sistemas de TI das empresas e laboratórios, impedindo determinados

tipos de ataque, e deixando os administradores de rede com menos

sobrecarga de trabalho.

Portanto não existe um documento sucinto com os tipos de

softwares disponíveis no mercado quanto a programas de VPN e Firewall.

Analisar suas características, qualidades e defeitos para implementar a

melhor solução de servidor VPN para acesso remoto, com serviço de

firewall pode ser uma tarefa árdua e demorada.

O objetivo do desenvolvimento deste trabalho é a implementação

de um servidor VPN-Firewall para proteger uma rede local qualquer e

conectá-la a outra rede local, separadas geograficamente por uma rede

pública, seja esta rede de instituições de ensino, empresas privadas ou até

mesmo, domésticas.

Ainda, este trabalho foi desenvolvido para ter o custo mais baixo

possível, sendo as duas tecnologias implementadas no mesmo servidor, e

contando que todas as tecnologias são de códigos abertos e por isso,

gratuitas. Portanto, o único gasto que as empresas e laboratórios teriam, é o

da aquisição do servidor em si, que não necessitar ter hardware de

desempenho alto, inclusive, nota-se que pode ser utilizado qualquer

computador mesmo que considerado desatualizado tecnologicamente.

Page 21: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Figura 1 - Exemplo de rede distribuída ideal.

2 Firewall

2.1 Introdução:

Firewall é uma ferramenta importante para o perímetro de

segurança da rede de computadores, porque é usada para prevenir que

qualquer usuário ou objeto, de dentro ou fora da rede, façam qualquer tipo

de rotina maliciosa dentro dela. Também pode se referir a qualquer método

ou tecnologia cujo propósito seja o controle do tráfego de entrada e saída de

pacotes na rede para propósitos de segurança [1]. Muitos tipos diferentes

de controle de tráfego de pacotes têm sido utilizados. Podendo ser utilizado

tanto hardware e software como forma de controle de tráfego de rede [2].

Neste capítulo discutiremos no geral os fundamentos das tecnologias (ou aplicações), que possuem diferentes tipos de configurações, incluindo suas

vantagens e desvantagens.

Page 22: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

2.2 Fundamentos da Tecnologia de Firewall

Os estudos mostram que existem três tipos principais de

tecnologias que involvem desenvolvimento de sistemas de firewall. As três

tecnologias são; (1) filtragem de pacotes, (2) inspeção dinâmica de pacotes,

e (3) aplicações proxy. São estes três métodos, ou processos básicos,

atualmente envolvidos em sistemas de firewall. Cada uma das tecnologias

tem suas vantagens e desvantagens. Algumas são mais aconselháveis em

certas situações e ambientes.

2.3 Filtragem de Pacotes

Esta é a primeira geração da tecnologia de firewall. Faz apenas a

função básica do sistema de firewall onde se verifica pacote por pacote no

tráfego da rede. Esta tecnologia checa cada pacote que passa pela rede e

decide se deixa o pacote passar ou se o descarta/bloqueia [3]. Tudo isso

acontece de acordo com uma coleção de regras previamente configuradas

no sistema de firewall.

Este firewall de filtragem de pacotes tem duas ou mais interfaces

de rede, esta característica é conhecida como arquitetura multi homed. Na

prática, este tipo de firewall precisa de duas placas de rede dentro do

ambiente de rede de área local (LAN) [4]. Uma das interfaces de rede é

responsável pela conexão com a rede interna e a outra fica responsável pela

conexão com a rede externa ou internet.

Este tipo de tecnologia de firewall irá fazer o trabalho

correspondente ao de um policial de tráfego de pacotes, no qual direciona

pacotes permitidos para seus destinos e interrompe pacotes que podem

causar dano à rede, ou que não estão de acordo com as políticas de uso da

mesma.

A arquitetura básica desta tecnologia de firewall é apresentada a

seguir na Figura 2.

Page 23: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Figura 2 - Arquitetura básica da Tecnologia de Firewall

Todos os pacotes cuja origem é de fora da rede, e cujo destino é

dentro da rede, serão checados em detalhes pelo firewall de filtro de

pacotes. O sistema de firewall confere as informações básicas dos pacotes

como endereço de origem e de destino, portas de origem e destino,

protocolos, conteúdo e outras informações relacionadas. Para então ser feita

uma comparação entre as informações dos pacotes e de um conjunto de

regras previamente configuradas no sistema de firewall.

Como exemplo de configuração de firewall de filtro de pacotes,

podemos citar as requisições de conexão FTP, cuja porta de aplicação

padrão, a de número 21, é bloqueada. Portanto, todos os pacotes que

chegarem com esta porta de destino serão descartados. Em outra situação,

podemos citar o exemplo de sistemas de firewall configurados para permitir

o recebimento de pacotes web, cuja porta padrão é a de número 80 (para o

protocolo HTTP), permitindo assim, o encaminhamento de pacotes

recebidos por esta porta (geralmente, nestes casos, com a conotação de o

firewall deixar a porta 80 “aberta”) para seus endereços de destino, no

sentido dentro para fora e vice versa.

Combinaçoes de diferentes tipos de regras podem fazer um sistema

de firewall permitir conexões apenas a um servidor em particular. Neste

caso, o encaminhamento de pacotes só será permitido quando a porta e

endereço de destino correponderem às regras de configuração pré-

estabelecidas [5].

No sistema de firewall de filtragem de pacotes pode-se ainda

definir regras para determinar ações no caso de um pacote que chega à rede

e que não coincide com nenhuma das regras previamente estabelecidas, ou

Page 24: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

que não há definições para as características do pacote. Normalmente,

nestes casos, o pacote será descartado por questões de segurança. Portanto,

para permitir certos pacotes de transitar na rede de computadores, devem-se

estabelecer regras claras e objetivas nas configurações do sistema de

firewall.

A seguir são demonstrados diversos exemplos de regras que podem

ser consideradas como guia para configurar sistemas de firewall de

filtragem de pacotes:

Nas redes privadas, como as LANs, os pacotes permitidos para

trafegar pelo sistema de firewall devem ser de origens interna, pois os

pacotes possuem, em seus cabeçalhos, informações oriundas de sua origem;

Esta regra é usualmente utilizada para prevenir ataques baseados em

spoofing, ela também previne os ataques de crackers, os quais utilizam a

rede interna para lançar um ataque.

Nos locais de rede pública, todos os pacotes terão como porta de

acesso à de número 80 por padrão. Esta regra permite o recebimento de

conexões na forma de sítios web, mas todas as conexões que utilizam esta

porta também estarão liberadas para acessar a rede interna, como por

exemplo, alguns softwares de conexão remota da área de trabalho.

Fazer o descarte de todos os pacotes que chegam da rede externa

com endereço IP de origem da rede interna; Assim evitando ataques spoof de IP.

Descartar quaisquer pacotes de origem externa que contenham

informções de roteamento de origem interna para prevenir ataques de

roteamento de origem. Este tipo de ataque acontece quando os pacotes de

entrada contêm informações que subtituirão as informações dos pacotes na

rede passando por sua segurança.

2.3.1 Vantagens e Desvantagens

A seguir serão enumeradas as vantagens do firewall de filtro de

pacotes:

Processo simples, pois há baixo controle sobre cada pacote que

entra e sai da rede. Checar de maneira básica cada campo do pacote como seu

endereço de origem, endereço de destino, protocolo, número da porta e tipo

de serviço.

Os pacotes podem ser identificados e descartados ao identificar

tentativa de spoofing no endereço IP de origem.

Page 25: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Todo o tráfego da rede local deve passar pelo firewall. Então, o

firewall se torna o único ponto de acesso entre a rede externa e interna.

Normalmente este tipo de filtro de pacotes é incluído nos

roteadores amplamente comercializados.

Seguem abaixo as desvantagens do firewall de filtro de pacotes:

Firewall de filtro de pacotes é complicado e difícil de criar as

regras de filtragem. Pode ser facilmente esquecido de incluir regras

excenciais para a rede, criar regras com conflitos, ou errar a especificação

de alguma regra causando vulnerabilidades na rede [6]. Portanto, sugere-se

utilizar alguma interface (GUI) para gerenciar as configurações de regras do

firewall.

Cada porta aberta que possuem serviços definidos, como Telnet,

SSH, FTP, entre outros, podem ser usadas para transporte de pacotes por

outras aplicações, como o RealPlayer. Estes tipos de aplicações testam a

rede para descobrir quais portas estão abertas, então usa a porta aberta para

efetuar as conexões relativas ao seu funcionamento. Normalmente, este tipo

de aplicação usa a porta 80, pois esta porta está geralmente aberta para

conexões web.

Para quebrar a segurança da rede, mesmo sem “ultrapassar” o

sistema de firewall basta fazer uma conexão de discagem, ou outros tipos

de conexão relacionados, como o de modens de internet 3G portáteis que

usam a porta USB do computador.

2.3.2 Onde estão os firewalls de filtro de pacotes

Este tipo de tecnologia de firewall é mais bem aplicada em redes

pequenas com nível de segurança crítico baixo. Pode ser encontrada em

diversos tipos de sistemas operacionais, implementados em hardware ou

software.

Sistemas Operacionais baseados em UNIX (Linux e BSD): Na

maioria dos sistemas operacionais baseados em UNIX, podem ser

configurados como roteadores ou firewall de filtro de pacotes. Possuem a possibilidade de atribuir regras de configuração de filtragem de pacotes e

agir como um sistema de firewall. Este tipo de firewall pode ser

implementado utilizando tecnologias como ipfwadm, ipchains, iptables,

entre outros [7]. Utilizando-se para isto, duas placas de rede, uma conectada

à rede externa e a outra, à rede interna; sendo montado um firewall simples

Page 26: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

e sem quaisquer hardwares adicionais [8]. Esta implementação fica limitada

pelo fato de haver necessidade de alto grau de conhecimento, pesquisa e

testes para configurar e atualizar o sistema de firewall e o funcionamento da

rede.

Roteadores baseado em software e hardware: Normamente

roteadores baseados em software ou hardware podem ser configurados

como sistema de firewall de filtro de pacotes simples. Por conseguinte, para

habilitar o roteamento de tráfego entre a internet e rede interna, deve-se

estipular um conjunto de regras de filtro de pacotes.

Sistemas Operacionais baseados em Windows Server e Serviços de

Acesso Remoto: Este é um serviço integrado dentro do SO do Windows

Server. Este provê roteamento de serviços como filtro de pacotes entre

outros. Estes recursos são valiosos se o SO executa o MPS (Microsoft

Proxy Server), ou proxy baseado em janelas, ou outro tipo de firewall de

filtro de pacotes baseado em Windows. Estes possuem as mesmas

limitações daqueles disponibilizados em sistemas UNIX.

2.4 Firewall de Inspeção de Pacotes Dinâmico

Este tipo de tecnologia de firewall é usada para manter registro das

atividades das conexões e pacotes que passam pela rede. Então, se utiliza

estes registros como critérios adicionais para decidir se permite ou nega o

tráfego do pacote na rede. Este, também utiliza a tecnologia de firewall de

filtro de pacotes aplicada.

No firewall de filtro de pacotes, não há histórico, passado

ou futuro, no que diz respeito ao funcionamento do firewall. As decisões

serão tomadas baseadas nas informações contidas nos pacotes, como

endereço de origem, endereço de destino, número da porta e assim por

diante. Neste tipo de tecnologia, o pacote é sem estado, por causa da falta

de informações sobre seu lugar no fluxo de informações.

No firewall de inspeção de pacotes dinâmico, será mantido

um acompanhamento das informações contidas dentro dos pacotes,

chamado de estado dos pacotes, que mantem todas as informações úteis nas quais podem ser identificados os pacotes de conexão de rede existentes,

requisições de saída de dados, entre outras coisas relacionadas.

Como exemplo pode-se citar pacotes que entram na rede,

referentes a um streaming de vídeo. O firewall manterá informações da

conexão, como o tipo de protocolo, o endereço IP do servidor que está

Page 27: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

enviando os pacotes de streaming, e o endereço IP da máquina que está

requisitando o serviço. Se o endereço externo de envio de pacotes do

protocolo da aplicação anterior for o mesmo dos pacotes sendo recebidos,

assim como o protocolo e o endereço destino dentro da rede, os pacotes

serão automaticamente liberados para trafegar na rede interna sem ser

analisado o seu conteúdo pelo firewall de inspeção de pacotes dinâmicos.

Normalmente, ele bloqueia todo o tráfego de entrada de

pacotes da rede externa, enquanto permite a saída de todos os pacotes de

dentro da rede. O sistema de firewall mantém o acompanhamento das

requisições internas enquanto as envia para fora da rede e mantem também

o acompanhamento de todos os dados de entrada referentes às requisições

citadas anteriormente, permitindo a passagem dos pacotes relacionados até

a conexão ser encerrada. Contudo, irá bloquear somente os pacotes de

entrada que não foram solicitados.

As configurações para este tipo de firewall podem ser mais

complexas se houver algum servidor rodando dentro da rede que atende

requisições externas, mas este tipo de tecnologia é mais flexível e

sofisticada. Como exemplo de configurações que permitem tráfego de

entrada de pacotes, podemos citar o caso em que podem ser permitidas

conexões a uma determinada porta, como a porta 80, para serem

encaminhados ao endereço de IP do servidor rodando um serviço web. Ou

seja, o firewall encaminha todo o tráfego que chega pela porta 80, com IP

de origem externo, para o servidor rodando o aplicativo web.

Ainda existem diversos serviços adicionais que este

sistema de firewall permite serem executados, como redirecionar certos

tipos de conexões para autenticação de serviços e bloquear o tráfego de rede

que contenham certo tipo de conteúdo, como mensagens de e-mail com

arquivos executáveis anexados, ou até mesmo bloquear websites que

contenham programas ActiveX [9].

O processo de acompanhamento do estado de conexões

depende do tipo de protocolo de comunicação dos pacotes que querem

atravessar a rede, como TCP (Transmission Control Protocol) ou UDP (User Datagram Protocol).

2.4.1 Pacotes TCP

No estabelecimento de conexões do tipo TCP, existem SYN flags

que identificarão o primeiro pacote, que irá estabelecer a configuração da

comunicação e por consequente, a transferência de pacotes síncrona.

Page 28: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Normalmente, o firewall bloqueará todas as tentativas de conexão

externa, a não ser que tenha sido configurada alguma regra específica para

garantir a passagem de um pacote para um determinado tipo de conexão.

No caso de tentativas de conexão interna para hosts remotos, o sistema de

firewall notificará a conexão de pacotes e permitirá as respostas e pacotes

subsequentes entre os dois sistemas até a conexão se der por encerrada [10].

O sistema de firewall permitirá a passagem dos pacotes que

chegarem à rede, se eles corresponderem a uma configuração existente,

neste sentido do fluxo de pacotes.

2.4.2 Pacotes UDP.

Pacotes UDP são mais simples que pacotes TCP, pois no contexto

deste tipo de pacote, não há qualquer tipo de conexão síncrona, nem mesmo

há uma sequência exata das informações neles contidas. Possui apenas o

endereço IP da origem, do destino; e um resumo – número total de

dados/pacotes que estão sendo enviados/transferidos – para certificar que

tudo está de acordo.

Sistemas de firewall tem dificuldade em determinar a validade de

pacotes UDP, por causa da ausência de conexão síncrona, não há parâmetro

para certificar a validade dos pacotes que entram, assim sendo, não há como

decidir se permite ou não a passagem do pacote. Então só pode ser

determinada a permissão da passagem do pacote com os dados do registro

do estado e das requisições de conexões feitas de dentro da rede. Portanto,

pacotes de entrada, cujo endereço destino tem sido usado em uma requisião

prévia, e que inclusive utilize o protocolo UDP, coincidindo com uma

requisição previamente efetuada, terão seu tráfego permitido na rede. No

entanto, o sistema de firewall não permite pacotes UDP provenientes de

endereço IP de rede externa, a não ser que haja regras previamente

estabelecidas permitindo a passagem desse tipo de protocolo, ou endereço

de origem, ou se existiu alguma requisição feita a partir de dentro da rede

para esta conexão em específico. Este tipo de comportamento também

acontece para outros tipos de pacotes. O sistema de firewall necessita

manter o acompanhamento de requisições feitas para fora da rede

cuidadosamente. O firewall também necessita manter informações importantes comos os endereços IP, protocolos e tipos de pacotes

utilizados. Finalmente, precisa checar se as informações salvas coincidem

com as informações dos pacotes que tentarem entrar na rede para assegurar

que os pacotes foram realmente requisitados.

Page 29: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

2.4.3 Vantagens e Desvantagens

A seguir enumeramos as vantagens e desvantagens do sistema de

firewall de inspeção dinâmica de pacotes:

O sistema de firewall checa cada campo do cabeçalho do pacote,

como endereço de origem, de destino, protocolo (TCP, UDP, entre outros),

número da porta e tipo de serviço (Telnet, FTP, SSH, entre outros). As

regras para filtragem dos pacotes serão aplicadas baseadas nestas

informações.

Possui a habilidade de identificar pacotes verificando o endereço IP

de origem.

Todo o tráfego de rede deve passar por este firewall. Portanto, é a

única ponte de acesso entre a entrada e saída de pacotes, tornando-se

extramamente difícil burlar este sistema.

Este sistema está apto a determinar o estado do pacote baseado nas

informações da aplicação e das comunicações prévias. Como exemplo de

informação de aplicação, podemos citar a autenticação prévia de conexão

para continuar a comunicação com os serviços autorizados. Entre os

exemplos de comunicação estão as conexões Telnet, este irá permitir o

retorno de pacotes Telnet que tenham sido previamente configurado.

Ele registra todos os detalhes das informações de acordo com cada

pacote que passa pela rede. Todas essas informações usadas pelo firewall

podem ser usadas para determinar o estado do pacote, como o tempo de

duração da conexão, sistemas externos fazendo requisições de conexão,

aplicações requisitando pacotes, etc.

Há apenas uma desvantagem no firewall de inspeção de pacotes

dinâmico. Sua operação faz com que o tempo de processamento global seja

alto, por causa dos registros mantidos pelo sistema, testes e análises no

tráfego da rede. A rede pode se tornar mais lenta na medida em que são

acrescentadas mais conexões ativas de transferência de pacotes simultâneas,

assim tornando mais lenta o tráfego de pacotes na rede, outro fator que pode

contribuir para deixar a rede mais lenta é a grande quantidade de regras

estabelecidas, que precisarem ser verificadas pelo sistema de firewall.

Como solução para este problema, os fabricantes de sistemas de firewall de

inspeção de pacotes dinâmicos, tem adotado o costume de melhorar a

velocidade do sistema com o aprimoramento do desempenho das máquinas

onde o sistema está instalado, como velocidade de CPU (Central Processing Unit), placas de rede mais velozes, cabeamento da rede mais

veloz entre outros.

Page 30: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

2.4.4 Onde estão os firewalls de inspeção dinâmica?

Existem diversos tipos deste tipo de firewall no mercado. O mais

comum são aplicações de software que podem ser instaladas em

computadores, geralmente com sistema operacional UNIX; Em alguns

roteadores mais sofisticados; E aplicativos de software e hardware

comerciais específicos para este fim.

2.5 Aplicações Proxy Firewalls

Este tipo de tecnologia de firewall não permite o tráfego direto

entre redes através de nodos conectados a ela. Ela o faz, aceitando o tráfego

da rede de certa aplicação cliente dentro da rede interna e configurará uma

conexão diferente para a rede pública até o servidor. Todavia, o servidor

não poderá ser acessado facilmente pelos nodos existentes na rede interna.

Uma conexão não pode ser estabelecida e os serviços não serão

suportados se o uso da aplicação não contiver o código de instalação do

proxy. Contudo, é amplamente utilizado por razões de segurança,

controlando e limitando as conexões de rede. O firewall descarta todas as

conexões que foram configuradas de maneira precária ou inapropriada.

Por exemplo, ao utilizar serviços web, usuários podem utilizar

navegadores de internet para conectar a um proxy firewall HTTP na rede

utilizando a porta 80. No entanto, o pedido de conexão web será controlado

pelo sistema de firewall e redirecionado para o servidor web requisitado.

Isto acontece de maneira rápida do ponto de vista do usuário e é feita de

forma automática pelo firewall proxy. A seguir estão enumerados diversas aplicações que são suportadas

pelos firewalls proxy:

HTTP (Internete)

HTTPS/SSL (Internete Segura)

SMTP (E-Mail)

POP3 (E-Mail)

IMAP (E-Mail)

NNTP (Leitores de Notícias)

Telnet (Acesso à Shell remoto)

FTP (Transferência de Arquivos)

IRC (Bate papo)

Page 31: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

A aplicação firewall proxy pode ser configurada para acessar

qualquer tipo de conexão da rede interna. Ainda possui características de

autenticação de usuário, para atribuição de diferentes políticas de acesso às

conexões. Este nível de segurança de acesso é feita mediante restrição de

conexões efetuadas para fora da rede por usuários conhecidos. Portanto,

pode ser considerado um ataque sendo lançado internamente se a rede for

comprometida.

2.5.1 Vantagens e Desvantagens

A seguir enumeramos as principais vantagens de usar aplicações de

firewall proxy:

Possui bom controle das conexões, como permitir ou negar acesso

aos servidores baseado em seus endereços IP, ou baseado no IP de endereço

do usuário requisitante.

Esta tecnologia irá restringir requisições emitidas para certos tipos

de protocolos e eliminar serviços desnecessários. Pode permitir, nas

configurações do firewall conexões HTTP mas não conexões FTP. Ao

desabilitar estes serviços, não podem ser usados como plataformas para

lançar um ataque.

A maioria dos firewalls proxy podem manter registros de todas as

informações de conexão, como endereço fonte, endereço destino e duração.

É importante registrar tentativas de ataques e acessos não autorizados

dentro da rede.

Seguem abaixo as principais desvantagens de utilizar aplicações de

firewall proxy:

Os utilizadores devem personalizar aplicações de rede de acordo

com a sua utilização. Como o uso de navegadores web, que suportam

conexão à servidores proxy e devem ser configurados para ter uma conexão

com esta tecnologia. Outras aplicações podem ter uma necessidade

diferente de configuração.

Em algumas aplicações, frequentemente não é suportada conexões de firewall proxy. Portanto, é necessário consultar a documentação dos

aplicativos ou seus fabricantes.

A tecnologia de firewall proxy tem um conjunto extra de segurança

útil para a rede, mas que ainda tem carências e não pode ser uma solução de

segurança completa.

Page 32: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

2.5.2 Onde estão as aplicações proxy firewall

Este tipo de tecnologia de firewall pode ser elaborada a partir do

firewall existente ou usá-lo como um sistema autônomo, que reside dentro

da rede ou de uma localização DMZ existente [11]. Normalmente, a sua

localização é entre a rede interna e a internete.

Locais onde as aplicações de proxy firewall podem ser encontras,

incluem:

Pacotes de software que pertencem à sistemas existentes.

Roteadores de rede.

Sistemas operacionais baseados em UNIX.

2.6 Softwares Firewall de Código Aberto:

Enquanto você está na internet é importante proteger os seus

sistemas contra ameaças e ataques. Se você é o administrador de TI, ou não,

precisa proteger sua rede adicionando uma proteção de firewall. Faze-lo é

garantir que o tráfego que entra e sai da rede local é seguro e, está

acessando as aplicações corretas sobre os sistemas implantados. Embora

existam muitos firewalls disponíveis comercialmente, aqui está uma lista de

alternativas de código aberto. Esta lista não está ordenada por qualquer tipo

de classificação.

Coyote Linux: É uma pequena distribuição de Linux embutido,

projetado para funcionar como um firewall para redes de pequeno a médio

porte. Os planos atuais para Coyote Linux incluem uma interface de

administração completamente reformulada, recursos de segurança muito

mais robustos, suporte acelerador de segurança de hardware, e muito mais.

Firestarter: É uma ferramenta de firewall pessoal, livre e de

código aberto que usa o Netfilter (iptables /ipchains) sistema embutido no

kernel do Linux. Firestarter tem a capacidade de controlar as conexões de

entrada e saída, proporciona uma interface gráfica fácil de usar para configurar regras e outras funcionalidades do firewall. Ele também oferece

monitoramento em tempo real de todo o tráfego de rede. Este firewall,

apesar de promissor, está descontinuado desde meados de 2007.

Page 33: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

IPCop: É uma distribuição Linux firewall que é voltada para

usuários domésticos e pequenas empresas. O IPCop possui interface

amigável e de uso fácil.

IPFilter: É um pacote de software de código aberto que fornece

serviços de firewall e tradução de endereços de rede (NAT) para sistemas

operacionais UNIX. IPFilter suporta ambos os protocolos IPv4 e IPv6, e é

um firewall de filtro de pacotes dinâmico .

IPFire: É uma distribuição sólida de código aberto Linux projetado

para uso como firewall. Ele oferece proteção de rede com níveis desde

usuários domésticos até grandes corporações, redes de ensino e autoridades.

Ele pode ser mantido através de uma interface web.

Netfilter: É um programa de aplicação de usuário, que permite que

um administrador do sistema configure as tabelas fornecidas pelo firewall

do kernel do Linux. É um programa de linha de comando usado para

configurar o conjunto de regras de filtragem de pacotes dos Linux 2.4.xe

2.6.x com protocolo IPv4. Ele é voltado para administradores de sistema. O

conjunto de aplicações também inclui iptables e ip6tables. Ip6tables é usado

para configurar o filtro de pacotes IPv6.

m0n0wall: É uma distribuição firewall embutido no FreeBSD, um

dos descendentes do sistema operacional BSD. Ele fornece uma pequena

imagem de sistema operacional, que pode ser colocado em cartões de

memória flash, bem como em CD-ROMs e discos rígidos. Ele roda em uma

série de plataformas embarcadas e PCs genéricos. A versão para PC pode

ser executado com apenas um Live CD e um disquete para armazenar dados

de configuração, ou em um único cartão de memória (com um adaptador

IDE). Isto elimina a necessidade de uma unidade de disco rígido, o que

reduz os níveis de ruído e calor.

pfSense: Presente em distribuição personalizada do FreeBSD

adaptada para uso como um firewall e roteador. Além de ser uma poderosa

plataforma de firewall e roteamento, flexível, inclui uma longa lista de

recursos relacionados e um sistema de pacotes permitindo mais capacidade

de expansão sem acrescentar inchaço e potenciais vulnerabilidades de

segurança para a distribuição base.

Shorewall: (ou Shoreline Firewall) é uma ferramenta de firewall

de código aberto para Linux que se baseia nos Netfilter (iptables /ipchains)

Page 34: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

sistema embutido no kernel do Linux , tornando-o mais fácil de gerenciar

os esquemas de configuração mais complexos.

Smoothwall: O Projeto de código aberto Smoothwall foi criado em

2000 para desenvolver e manter Smoothwall Express - um firewall gratuito

que inclui seu próprio sistema operacional com segurança reforçada

GNU/Linux e uma interface web fácil de usar. Smoothwall é uma

distribuição Linux concebida para ser utilizada como uma fonte de firewall

aberta. Projetado para facilidade de uso, é configurável através de uma

interface gráfica web e requer muito pouco ou nenhum conhecimento de

Linux para instalar ou usar.

Untangle: É um Firewall de código livre que filtra o tráfego com

base no endereço IP, protocolo e porta, que permite aos administradores

designar os sistemas e serviços que estão disponíveis publicamente (HTTP,

FTP, FTP, etc). Funciona como uma ponte transparente que complementa

os firewalls pré-existentes e controla o acesso de entrada e/ou saída para IPs

e portas específicas.

Vyatta: Esta empresa fabrica software de roteador virtual baseado

em software, firewall virtual e produtos de VPN para redes de Internet

(IPv4 e IPv6). Pode ser baixado gratuitamente da página Vyatta e já está

disponível um pacote com código aberto, uma distribuição Linux baseada

no Debian, com aplicações de rede tais como Quagga , OpenVPN , e muitas

outras.

UFW: Denominado Ubuntu Firewall, é um firewall simples

embutido nas distribuições Ubuntu. Apenas gerencia de maneira mais

amigável as tabelas do IPTables (presente em todas as distribuições Linux).

2.7 Conclusão

Ferramentas de segurança de redes perimetrais são o começo de

algo que pode proteger a rede interna do acesso externo indevido. Então,

firewall é a melhor defesa de perímetro, que se desenvolve para proporcionar a proteção do tráfego da rede.

Sistemas de Firewall vem evoluindo no ambiente de rede de

computadores ao longo dos anos a partir de métodos simples, inicialmente

com apenas sistemas de filtragem de pacotes, para termos atualmente os

inspetores de pacotes sofisticados que podem decidir permitir ou bloquear o

Page 35: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

tráfego, dependendo da sua finalidade, origens e destinos [12]. O método de

inspeção de pacotes dinâmico é a melhor tecnologia entre as demais

tecnologias de firewalls. É um sistema bom, constantemente considerado

completo, para proteção do tráfego de pacotes na rede.

Por último, o melhor do melhor sistema de firewall não depende

apenas de sua metodologia ou tecnologia, mas também deve ter a

capacidade de fornecer um bom registro de atividades e relatórios de

utilização. Com esses recursos, todo o trabalho que é feito pelo sistema de

firewall, e toda tentativa de intrusão que acontece na rede de computadores

será gravado e poderá ser informado ao administrador da rede.

Tabela 1 - Dados de Tecnologias Firewall.

Firewall Fabricante Website Oficial

Coyote Linux Vortech Consulting http://www.coyotelinux.com

Firestarter Tomas Junnonen http://www.fs-security.com

IPCop IPCop http://www.ipcop.org

IPFilter Darren Reed http://coombs.anu.edu.au/~avalon/

IPFire Lightning Wire Labs http://www.ipfire.org

Netfilter Noris Network http://www.netfilter.org

m0n0wall Manuel Kasper http://m0n0.ch/wall/

pfSense Eletric Sheep

Fencing LLC http://www.pfsense.org

Shorewall Gareth Davies http://www.shorewall.net

Smoothwall Smoothwall http://www.smoothwall.org

Untangle Untangle http://www.untangle.com

Vyatta Brocade http://www.vyatta.org

UFW Canonical http://wiki.ubuntu-br.org/UFW

Page 36: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de
Page 37: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

3 VPN

3.1 Introdução:

A Internete é considerada a base de conectividade para as

organizações expandirem suas operações e aumentar suas receitas.

Conforme as organizações crescem, diferentes métodos devem ser

empregados para fornecer conectividade segura e eficiente entre os

escritórios filiais distribuídos geograficamente, parceiros estratégicos e

funcionários móveis (à distância). Apesar de várias tecnologias existentes,

mais recentemente com base na internete, redes privadas virtuais (VPNs)

evoluíram como o meio mais seguro e rentável de alcançar esses objetivos.

VPN pertence a uma família de redes sobrepostas que utilizam túneis IP

para formar uma rede virtual no topo da internete. Estes túneis utilizam

técnicas criptográficas para garantir segurança robusta e privacidade. Para

um usuário remoto, VPN oferece todos os benefícios de uma rede privada,

enquanto as corporações beneficiam-se dos baixos custos operacionais, alta

segurança, e cobertura global instantânea oferecida por ela [13].

Vários produtos VPN comerciais são agora amplamente

disponíveis, diferindo principalmente em termos de custo e capacidades.

Nos últimos anos, no entanto, soluções VPN de código aberto têm atraído

muita atenção dos pesquisadores e desenvolvedores. Trata-se de uma

ramificação de soluções de software que podem fornecer serviços VPN de

nível comercial, a preços razoavelmente baixos, utilizando computadores

rodando Linux. A disponibilidade de licenciamento de código fonte aberto

permite que os desenvolvedores personalizem e aperfeiçoem (e às vezes

comercializem) estes produtos para dispositivos físicos especializados, para

extrair o máximo de desempenho, como por exemplo, produtos

SnapGerar’s [14] LITE+ e SME550 usam uma porta de FreeS/WAN (uma

implementação aberta de IPSec) em μClinux (Linux para

microcontroladores). Como o Linux é usado como o sistema operacional

base, a implantação é rápida e fácil, evitando a necessidade de

administradores de sistemas terem de aprender sistemas operacionais

proprietários. Tudo isso juntamente com suporte técnico gratuito,

disponível através grupos de notícias, listas de discussão e foruns online,

apresentam uma boa alternativa para pequenas e médias empresas para operar globalmente em praticamente custo zero. Com os avanços nos

roteadores movidos a Linux, essas soluções têm o potencial de encontrar

um nicho no mercado de VPN.

Page 38: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

3.2 Túneis

Um túnel é um meio de transmissão dos dados através de uma rede

de um nó para outro, como se os dois nós estivessem diretamente

conectados. Isto é possível através do encapsulamento dos dados - um

cabeçalho adicional é adicionado aos dados enviados pela extremidade de

transmissão do túnel, e os dados são encaminhados por nós intermédiários,

com base em um cabeçalho exterior deste, sem olhar para o conteúdo do

pacote original.

Isto é ilustrado na figura 3, que mostra dados que vão ser enviados

do ponto A ao B, através de um túnel com nós X e Z. O nó intermediário do

túnel, nó Y, não precisa estar ciente do destino final B, mas apenas

encaminhar para frente os dados ao longo do túnel para Z. (Neste cenário,

X é conhecida como a entrada para o túnel e Z como o egresso).

Figura 3 - Fluxo de Dado em Túneis VPN

Este tunelamento de dados significa que os dispositivos P

(representados por círculos) não precisam estar cientes das VPNs, mas só

precisam ser capaz de encaminhar os dados encapsulados. Isso é

importante, pois reduz os recursos de rede consumidos pela VPN e da

quantidade de configuração necessária para configurá-lo.

Além disso, através do envio de dados entre os locais de VPN

usando túneis, é possível manter a separação de dados entre diferentes

VPNs, e ainda impedir que os dados de uma VPN possam ser vazados na

rede do provedor de internet ou global. Isso também significa que os

endereços de dispositivos dentro dos locais VPN estão escondidos nos

dados transportados ao longo do túnel, para que eles não precisem ser

alterados para permitir que eles se comuniquem através da Internet.

Page 39: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Há certo número de protocolos que podem ser usados para

estabelecer esses túneis, e as propriedades do túnel tem um efeito

significativo sobre as propriedades globais da VPN usando esse túnel. No

entanto, muitas das soluções de VPN que vamos descrever não dependem

de uma tecnologia de encapsulamento específica e funcionam com um, ou

mais, dos vários tipos.

3.2.1 Protocolos de Túneis

Os principais protocolos de túnel que são usados pelas VPNs são,

IPsec, SSL/TLS, IP-in-IP, L2TP e GRE. Uma breve descrição de cada

tecnologia das siglas citadas é dada abaixo.

MPLS (Switching Multi-Protocol Label): é uma tecnologia que

está sendo padronizado pelo IETF, que fornece transmissão de dados de alta

velocidade com reserva de banda.

O princípio deste protocolo é o envio dos pacotes através de um

túnel MPLS ligando rótulos anexados, sem olhar para o conteúdo do

cabeçalho IP. O nó de entrada do túnel adiciona um rótulo ao pacote, e nós

subsequente encaminham os pacotes para frente, com base na interface de

entrada e do rótulo, enviando o pacote para o próximo nó com um novo

valor de rótulo. O último nó no túnel MPLS remove o rótulo antes de

encaminhar o pacote para o seu destino final. O caminho percorrido pelos

dados é conhecido como um Caminho Comutado por Rótulo (LSP – Label

Switched Path).

Um dos benefícios do MPLS é a possibilidade de criar LSPs dentro

de LSP (dentro LSP...), o que dá boas propriedades de multiplexação.

Tunelamento de um LSP através de outro é simplesmente uma questão de

adicionar um novo rótulo para a "pilha de rótulos" (a coleção de rótulos

anexados ao pacote). À medida que o pacote avança, ele é encaminhado de

acordo com a informação contida no rótulo no topo da pilha. No final do

LSP, o rótulo no topo da pilha é descartado, e o pacote é encaminhado

utilizando o novo rótulo no topo da pilha.

Outra vantagem do MPLS como uma tecnologia de túnel VPN é

que a engenharia de tráfego MPLS pode dedicar recursos para um LSP. Isso é bom para um cliente com uma VPN baseada em MPLS, que tenha uma

quantidade de largura de banda determinada.

A única coisa que o cliente precisa se preocupar é a segurança. No

entanto, uma análise da segurança de VPNs MPLS utilizando túneis,

mostrou que a segurança é semelhante ao que seria assegurado se os sites

Page 40: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

VPN fossem ligados através de conexões virtuais ATM/Frame Relay. Em

particular, os dados são mantidos em sigilo - como acontece com ATM e

Frame Relay, problemas de rede podem causar perda de pacotes, mas não

são susceptíveis de resultar em pacotes sendo entregues para o destino

errado. Por outro lado, ainda é uma precaução sensata para criptografar os

dados particularmente sensíveis.

IPSec: muito popular para a construção de VPNs, possui várias

características desejáveis. Desde que o protocolo IPsec foi desenvolvido por

razões de segurança, não é surpreendente que ele tem tudo na lista de

quisitos de segurança - integridade sem conexão, autenticação da origem

dos dados, anti-repetição e criptografia. Note que há um impacto negativo

no desempenho, resultado do uso de codificação criptográfica no

encaminhamento de pacotes.

Outra vantagem do IPsec é não possuir conexão - um túnel IPsec

entre dispositivos não consome quaisquer recursos nos roteadores no

caminho. A única necessidade é algumas informações de segurança comum

entre os dispositivos, que pode ser configurados manualmente ou

distribuído automaticamente (por exemplo, usando IKE).

Porém, não há desmultiplexador natural para túneis IPsec, embora

seja possível contornar essa deficiência - por exemplo, através da execução

MPLS através de um túnel IPsec.

Mesmo sem olhar para as aplicações de tunelamento, IPsec pode

ser útil em qualquer VPN. Independentemente do tipo de VPN que você

usa, se você está enviando tráfego IP sensível entre os locais, você pode

querer protegê-los de olhos curiosos, usando o modo de transporte IPsec

sobre o transporte subjacente.

SSL/TLS: O protocolo SSL provê a confidencialidade

(privacidade) e a integridade de dados entre duas aplicações que se

comuniquem pela Internet. Isto ocorre através da autenticação das partes

envolvidas e da cifra dos dados transmitidos entre as partes. Esse protocolo

ajuda a prevenir que intermediários entre as duas pontas da comunicação

tenham acesso indevido ou falsifiquem os dados transmitidos. O servidor

que está sendo acessado envia uma chave pública ao cliente, usada por este

para enviar uma chamada secreta, criada aleatoriamente. Desta forma, fica

estabelecida a trocas de dados criptografados entre dois computadores.

Baseia-se no protocolo TCP da suíte TCP/IP e utiliza-se do conceito

Page 41: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

introduzido por Diffie-Hellman nos anos 70 (criptografia de chave pública)

e Phil Zimmermann (criador do conceito PGP).

L2TP: L2TPv3 (Layer 2 Tunneling Protocol versão 3) é um

protocolo projetado para tunelamento da camada 2 de informações através

de uma rede de camada 3. Como tal, não é surpreendente que o protocolo é

particularmente útil para a VPN de camada 2.

Felizmente para o provedor de VPN, a escalabilidade é boa - túneis

só consomem recursos para as extremidades do túnel, e os túneis podem ser

multiplexados. Apesar de L2TP não ter segurança embutida, L2TP pode ser

executado com o modo de transporte IPsec, proporcionando um nível

saudável de segurança para a VPN de camada 2.

IP-in-IP: RFC2003 descreve um mecanismo de encapsulamento de

pacotes IP sobre IP. Embora a escalabilidade desde seja boa em um sentido

- não há a necessidade de configuração do túnel, tornando-se desnecessário

manter diferentes estados de configuração - o principal problema é a

impossibilidade de multiplexação, assim, um endereço IP diferente é

necessário para cada extremidade do túnel. A carência de endereços IPv4,

juntamente com a falta de segurança faz com que o protocolo IP-in-IP não

seja o ideal para o uso em VPNs.

GRE (Generic Routing Encapsulation): este foi originalmente

definido na RFC1701, mais tarde foi atualizado em RFC2784 com menos

funções. GRE permite efetuar túneis de um protocolo qualquer dentro de

outro protocolo qualquer.

O principal uso do GRE no contexto VPN é levar IP-in-IP. Tal

como acontece com RFC2003, este tem as vantagens de que não há

necessidade de qualquer sinal de ligação, e não há recursos consumidos

pelo túnel GRE.

Até agora, esta é muito semelhante às propriedades de RFC2003

IP-in-IP. No entanto, existe uma diferença fundamental. As extensões para

GRE descritos na RFC2890 permitem a multiplexação de túneis GRE. Isso

nos permite configurar os dados do túnel de múltiplas VPNs, usando GRE,

sem a necessidade de esgotar o estoque restante de endereços IP não

utilizados.

PPTP (Point-to-Point Tunneling Protocol) usa um canal de

controle sobre TCP e um túnel GRE operacional para encapsular pacotes

PPP .

Page 42: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

O protocolo PPTP não descreve criptografia ou recursos de

autenticação e conta com o protocolo Point-to-Point tunelado para

implementar a funcionalidade de segurança. No entanto, a implementação

mais comum do PPTP, disponibilizado nas famílias de produtos Microsoft

Windows implementa vários níveis de autenticação e criptografia nativa

como recursos padrão da pilha de PPTP do Windows. O uso pretendido

deste protocolo é proporcionar níveis de segurança e níveis de acesso

remoto, comparáveis com produtos típicos de VPN.

PPTP tem sido objeto de muitas análises de segurança e sérias

vulnerabilidades de segurança foram encontrados no protocolo. As

vulnerabilidades conhecidas referem-se aos protocolos de autenticação PPP

subjacentes utilizadas, o design do protocolo MPPE, bem como a

integração entre MPPE e autenticação PPP para o estabelecimento de chave

de sessão. PPTP é (a partir de outubro de 2012) considerado quebrado

criptograficamente e seu uso não é mais recomendado pela Microsoft [22].

SSTP (Secure Socket Tunneling Protocol) é uma forma de túnel

VPN que fornece um mecanismo para transporte de PPP ou de tráfego

L2TP através de um canal SSL 3.0. SSL fornece segurança de nível de

transporte com chave de negociação, criptografia e verificação de

integridade de tráfego. O uso de SSL através da porta TCP 443 permite

SSTP passar por praticamente todos os firewalls e servidores proxy, exceto

para a web proxies autenticados.

Servidores SSTP devem ser autenticados durante a fase de SSL.

SSTP clientes podem, opcionalmente, ser autenticado durante a fase de SSL

e deve ser autenticado na fase de PPP. O uso de PPP permite suporte para

métodos de autenticação comuns, tais como EAP-TLS e MS-CHAP.

SSTP está disponível para Linux, BSD e Windows. O Mikrotik

RouterOS também inclui um cliente SSTP e servidor.

Para o Windows , SSTP só está disponível desde a versão

Windows Vista SP1, em RouterOS, e em SEIL desde a sua versão de

firmware 3.50. É totalmente integrado com a arquitetura RRAS nesses

sistemas operacionais, permitindo o seu uso com a autenticação de cartão

inteligente ou Winlogon, políticas de acesso remoto e o cliente Windows

VPN.

SSTP foi destinado apenas para acesso do cliente remoto, ele

geralmente não suporta túneis VPN site-to-site. A versão RouterOS não tem

tais restrições.

SSTP sofre das mesmas limitações de desempenho que qualquer

outro túnel IP-sobre-TCP. Em geral, o desempenho será aceitável somente

Page 43: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

enquanto houver excesso de largura de banda suficiente para a ligação de

rede não encapsulada para garantir que os temporisadores de túnel TCP não

expirem. Se os temporisadores de túnel TCP expirarem, o desempenho cai

drasticamente, isto é conhecido como o "problema de fusão TCP ".

3.2.2 Resumo dos Protocolos de Tunelamento

A tabela a seguir mostra as principais propriedades dos diferentes

tipos de túneis. As características dos túneis que são considerados são as

seguintes:

Será que os túneis têm a vantagem de escalabilidade de uma

capacidade de multiplexação?

Quão seguros são os túneis?

Pode engenharia de tráfego ser aplicada nos túneis para fornecer

QoS para a VPN?

Será que os túneis requerem estado armazenado, em caso

afirmativo, o que é preciso para armazenar o estado?

Page 44: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Tabela 2 – Resumo dos Protocolos de Tunelamento de VPN [23].

Multiple-

xação Segurança

Engenharia

de Tráfego Estado Armazenado

MPLS SIM Equivalente

a ATM/FR SIM

Todos os nós do

túnel, para o túnel

inferior. No final do

túnel somente para

túneis aninhados.

IPSec NÃO BOA NÃO Somente no final do

Túnel

IP-in-IP NÃO NÃO NÃO NÃO

L2TP SIM NÃO NÃO Somente no final do

Túnel

GRE SIM NÃO NÃO NÃO

PPTP SIM BAIXA SIM Somente no final do

Túnel

SSTP SIM SIM NÃO NÃO

SSL/TLS SIM BOA SIM Somente no final do

Túnel

3.3 Estudo de desempenho

Nesta seção apresentamos o estudo de desempenho, baseados nos

trabalhos de Pena e Evans [15]; nos trabalhos de Clercq e Paridaens [20] e

nos trabalhos de Khanvilkar e Khokhar [23] para os SVBLCAs

selecionados.

Neste capítulo vamos mostrar o estudo e avaliações de algumas das

Soluções de VPNs Baseado em Linux de Código Aberto mais populares

(SVBLCA). Apresentando o estudo comparativo, com base no desempenho

da rede, recursos/funcionalidades suportados, e as preocupações

operacionais, por várias SVBLCA populares que estão disponíveis

livremente na internete. A partir deste estudo, destacar-se-á inconvenientes

comuns que existem atualmente no SVBLCA e também, questões de

pesquisas futuras que podem ser abordadas. Recentemente, Pena e Evans

[15] estudaram diferentes VPNs em termos de rendimento e uso da CPU em

redes de alta e baixa velocidade. Embora importante, ainda existem vários

aspectos (“overhead”, segurança, modularidade, etc) que caracterizam uma

solução de VPN e, portanto, garante a comparação [23]. Este capítulo é

abrangente em termos de quantidade de soluções VPNs consideradas, e do

número de características comparadas.

Page 45: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Este capítulo revela que não existe uma única SVBLCA que se

destaca em todos os atributos considerados, selecionar uma solução

adequada é um processo complicado, que envolve análise de muitas

vantagens e desvantagens, dependendo da política da empresa e dos

aplicativos utilizados. Por exemplo, FreeS/WAN demonstra baixa latência e

instabilidade, tornando-o adequado para aplicações em tempo real. No

entanto, ele apresenta alta sobrecarga e baixa utilização de largura de

banda. Assim, para situações em que esses fatores são importantes,

alternativas como Cipe ou PPTP podem ser empregadas. Em suma, vários

fatores devem ser cuidadosamente avaliados antes de uma solução

SVBLCA ser selecionada para implantação e múltiplas soluções podem ser

feitas para interagir e extrair o máximo de desempenho.

3.4 A arquitetura de um roteador SVBLCA

A arquitetura de software de um roteador SVBLCA é caracterizada

pela modificação da pilha de protocolos de rede TCP/IP com dois

componentes adicionais: o daemon VPN e a interface de rede virtual (VNI).

O daemon VPN é um processo em nível do usuário, ou do kernel, com um

plano de controle separado para manutenção da conexão e um plano de

dados para processamento de dados. O plano de controle é usado para

autenticação de pares e geração de chaves de sessão que são posteriormente

utilizados para garantir túneis. Ele também mantém um mapeamento entre

endereços IP dos roteadores SVBLCA ponto a ponto e sub-redes privadas,

o que é consultado quando do tunelamento de pacotes VPN. O plano de

dados é como um gasoduto proporcionando criptografia, autenticação e

serviços de compressão. Planos de controle geralmente usam TCP para o

transporte, enquanto o plano de dados pode usar TCP ou UDP. Mais tarde,

veremos que VPNs que utilizam protocolos orientados à conexão (como o

TCP) tem o desempenho da rede significativamente mais pobre do que

aqueles que utilizam protocolos sem conexão (como o UDP).

A VNI é um dispositivo abstrato especificamente criado durante a

inicialização VPN para trocar facilmente pacotes entre o daemon de

roteamento IP e o daemon VPN. Qualquer pacote encaminhado através do

VNI é automaticamente entregue ao daemon VPN e vice-versa. Como qualquer interface de rede real, um protocolo de enlace de dados como PPP

ou SLIP controla a entrega de pacotes sobre a VNI.

Pode-se descrever o caminho de dados feito por um pacote se

deslocando a partir de uma rede privada para outra em três partes:

Page 46: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Ao chegar na eth1, o pacote VPN é posteriormente entregue ao

daemon de roteamento IP, que determina o próximo salto para

roteador/interface-de-saída usando um prefixo mais longo correpondente

em seu endereço de destino.

Uma vez que o destino é um endereço privado, o daemon de

roteamento vai descatar este pacote, a menos que a tabela de roteamento foi

atualizada para encaminhá-lo através da VNI, ou o daemon de roteamento é

modificado para reconhecer um pacote VPN e entregá-lo diretamente para o

servidor VPN. Embora o segundo método elimine uma viagem extra para

baixo da pilha de protocolos, que exige mudanças no protocolo de

roteamento, o que é muito mais complicado. Assim, o primeiro método é

geralmente preferido.

O daemon VPN todos os pacotes de dados e os sujeita à

compressão e outras funções criptográficas. Em seguida, determina o

IP/Porta pública do roteador SVBLCA ponto a ponto, envolve-o em um

novo cabeçalho IP e envia-lo como um pacote de dados normal. No

receptor, ocorrem exatamente os mesmo passos, porém inversamente, na

medida em que os pacotes são entregues ao destino correto.

3.5 Características VPN

Características VPN diferentes desempenham um papel

significativo na escolha de uma solução ótima para um determinado cenário

de aplicação. Na discussão que se segue, podemos classificar essas

características ao longo das seguintes três dimensões: o desempenho da

rede, características e funcionalidades suportadas, e preocupações

operacionais [23].

3.5.1 Desempenho da Rede

O desempenho da rede de um SVBLCA é medido em termos de

sobrecarga (overhead), a utilização da largura de banda e

latência/instabilidade. É de conhecimento geral que VPNs têm mal

desempenho de rede, o que implica em sobrecarga alta, utilização de banda baixa e alta latência/instabilidade. Abaixo identificamos algumas causas

desta anomalia e discutir soluções utilizadas popularmente.

Page 47: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Overhead - A arquitetura do software discutido anteriormente

explica em parte a grande sobrecarga adicionada a um pacote de dados

básicos por ele viajar através de várias camadas de protocolo.

Todos os SVBLCAs invariavelmente sofrem com essa grande

sobrecarga, 75 por cento do que é essencialmente contribuído pelos

cabeçalhos adicionados pelas diversas camadas de protocolo, e os restantes

25 por cento pelos algoritmos de criptografia utilizados para segurança.

Sobrecarga de cabeçalho pode ser reduzida através de compressão. Alguns

SVBLCA s (como PPP sobre SSH e Stunnel) utilizam rotinas de

compressão de cabeçalho fornecidas pelo link de protocolos da camada de

dados (como PPP) que operam sobre a VNI, enquanto outros (como Tinc e

Open-VPN) fornecem utilitários de compressão embutidos.

Compressão, no entanto, apresenta latência adicional e, se

cegamente utilizado para cada pacote, independentemente do seu tamanho

ou tipo (compactados ou criptografados), pode não melhorar o desempenho

[16]. A sobrecarga introduzida pelos algoritmos criptográficos tipicamente

não pode ser reduzida, e é contribuído pelo algoritmo específico de

codificação/controle de acesso ao meio (MAC) em utilização.

Cifras de fluxo não adicionam qualquer sobrecarga, mas as cifras

de bloco mais populares (como 3DES ou Blowfish) exigem que a entrada

seja um múltiplo de 8 ou 16 bytes (chamado de tamanho do bloco), o que

aumenta a sobrecarga. Algoritmos MAC tais como MD5 e SHA1

contribuiem com um adicional 16-20 bytes. Outras contribuições menores

são de números de seqüência e marcas de tempo usadas para derrotar os

ataques de replay.

Utilização de banda - Esta é a largura de banda máxima atingida

por um fluxo TCP e é afetada pela sobrecarga, latência e empilhamento

TCP. Enquanto sobrecarga reduz a quantidade de bytes úteis transferidos, a

latência afeta o resultado no atraso da largura de banda para uma ligação

TCP. Para tubos virtuais grandes e longos (como no presente caso), a

latência introduzida muitas vezes é tão grande que é fisicamente impossível

alocar buffers maiores, necessários para suportar o aumento correspondente

em tamanhos de janela TCP, para manter a utilização da largura de banda.

O último fator, empilhamento TCP, se refere ao uso do TCP várias

vezes ao longo do caminho dos pacotes de dados. Isso acontece se um fluxo

TCP flui sobre uma SVBLCA que usa canais de dados baseados em TCP.

Interferência entre temporizadores do TCP em diferentes camadas

acarretam nessa degradação [17]. Nós achamos que este seja o efeito mais

Page 48: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

impactante, com SVBLCAs usando TCP, resultando em desempenho muito

pior do que aqueles que usam UDP.

Latência / Instabilidade - Latências mais elevadas ocorrem

devido ao caminho de pacote de dados alongado. Ocorrem com computação

intensiva de funções criptográficas e cópia múltipla de pacotes de dados

entre o kernel e o espaço do usuário. Um bom método para encurtar

caminhos de dados é recorrer à troca da camada 2, como no modo de

transferência assíncrona (Asynchronous Transfer Mode - ATM), Troca de

Etiqueta Multiprotocolo (Multiprotocol Label Switching - MPLS),

enquanto tempo computacional elevado pode ser reduzido pelo uso de

hardware mais rápido [18] ou melhores algoritmos de criptografia.

Finalmente, cópias múltiplas de pacotes de dados ocorrem devido

aos SVBLCAs existirem como daemons no espaço do usuário e poderem

ser eliminadas por integrá-las no kernel do sistema operacional (SO). Isso,

no entanto, reduz a flexibilidade operacional, como a maioria dos usuários

não é especialista de kernel. Aumento similar da instabilidade depende do

esquema de escalonamento do SO, e só pode ser reduzida aumentando a

prioridade de seu processo.

3.5.2 Características suportadas e funcionalidades

Espera-se que SVBLCAs suportem certas características

importantes para melhorar o desempenho. Aqui, a importância de apoiar

estes recursos é discutida, enquanto a seção de resultados apresenta o

quanto bem equipado são os SVBLCAs atuais, para suportar tais

características [23].

Código de modularidade - Refere-se à flexibilidade de uma

solução SVBLCA quando se trata de usar algoritmos de escolha do usuário.

Assim, código modular pode ser definido como o apoio da SVBLCA para

algoritmos de plugins, que pode variar de plugins simples para criptografia

aos mais complexos para roteamento e segurança. Algoritmos de plugins

são uma excelente maneira de permitir a integração rápida e fácil de

algoritmos mais recentes para a solução SVBLCA e oferece aos seus usuários uma opção para criar ou comprar plugins desenvolvidos

independentemente de criptografia, compressão de dados, entre outros.

Soluções SVBLCA projetadas com plugins podem sobreviver potenciais

ameaças à segurança, alargando assim a sua vida útil, e também permitem

que as empresas usem seu próprio código proprietário.

Page 49: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Roteamento - Roteamento precisa ser definido uma vez que os

túneis são estabelecidos e a topologia está definida. A tabela de roteamento

em cada nó roteador SVBLCA precisa ser atualizada com informações

sobre como alcançar seus nodos ponto a ponto. Isto pode ser feito

manualmente ou automaticamente. As rotas podem ser atualizadas

manualmente usando uma rotina no terminal de linha de comando

(disponível na maioria dos sistemas UNIX). No entanto, isto apresenta um

exercício pesado e muitas vezes propenso a erros quando o número de nós é

grande, e muitas vezes, resulta em uma topologia de grafo completa.

Roteamento automático utiliza um daemon de roteamento

independente para trocar informações de roteamento e configurar tabelas de

roteamento. Para VPNs de domínio único, onde o espaço de endereço

privado é único, um programa de roteamento separado pode ser usado para

atualizar as informações de roteamento privado. Esta abordagem permite

que topologias arbritárias sejam criadas e que algoritmos proprietários

sejam usados.

Para vários domínios VPNs, onde o espaço de endereço não é

único, o roteamento torna-se uma questão complicada. Esta é atualmente

uma área importante de pesquisa, e uma solução possível é fazer instâncias

de roteamento separadas com tabelas de roteamento (chamados de

roteadores virtuais) para cada VPN.

3.5.3 Preocupações operacionais

Selecionar uma solução SVBLCA para implantação requer uma

boa base de informações sobre muitas características operacionais, como

segurança e escalabilidade, o que acaba decidindo a utilidade da solução

VPN. Estes são os parâmetros qualitativos que são difíceis de definir e

comparar. Nesta seção, apresentamos uma série de propriedades para cada

um desses aspectos para ter uma ideia melhor sobre eles [23].

Segurança - Embora a segurança oferecida por uma solução

SVBLCA é uma característica importante, é altamente relativa e difícil de

definir em termos absolutos. Até o passado recente, sigilo e obscurecimento foi utilizado principalmente para garantir a segurança, o que foi

manifestado na utilização em larga escala de algoritmos proprietários não

padronizados (por exemplo, MPPE usado em PPTP) onde o código fonte é

mantido em segredo. No entanto, este conceito tem sido abandonado,

porque muitos desses algoritmos já foram quebrados [19]. A norma nova e

Page 50: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

amplamente aceita é a de protocolos padronizados abertos, onde os

algoritmos e suas implementações são amplamente publicados na Internet,

o que permite análise sobre a força dos algoritmos por multidões de

especialistas.

Neste momento não existem testes para determinar a segurança

oferecida por diferentes protocolos, o que torna difícil, senão impossível de

medir. Assim, todos os comentários preconcebidos sobre este tema seriam

inconclusivos. No entanto, temos avaliado protocolos padrão, como SSH,

SSL/TLS e IPSec como mais seguro do que os protocolos não

padronizados. Determinando a força relativa da segurança oferecida pelos

SVBLCAs pertencentes ao mesmo grupo, está fora do âmbito deste artigo.

Escalabilidade - Clercq e Paridaens [20] analisaram a

escalabilidade do fornecedor de VPNs provisionadas em termos de

consumo de memória, poder de processamento e, configuração e

gerenciamento de carga. Foram usadas linhas semelhantes de raciocínio

para resolver problemas de escalabilidade neste trabalho. O consumo de

memória e poder de processamento, principalmente em função do número

de túneis estabelecidos. Cada túnel requer certo estado (chaves de sessão,

certidões, informações de roteamento, etc) para ser mantido em cada

extremidade. O tamanho máximo desse estado determina o consumo de

memória com N túneis consumindo N vezes a memória disponível.

O poder de processamento, por outro lado, é afetado pela natureza

de computação intensiva de funções criptográficas. Com maior número de

túneis, a fatia de tempo da CPU alocado para cada túnel é reduzida pela

mesma fração. Por fim, a configuração e o gerenciamento de carga podem

ser quantificados pelo total de esforços necessários para edição de arquivos

de configuração, atualização de informações de roteamento e distribuição

de chaves de segurança quando novos túneis são adicionados ou excluídos.

O consumo de memória e poder de processamento limitam a

escalabilidade de um único nó SVBLCA, este problema pode ser

parcialmente eliminado usando desktops poderosos, com maior memória

principal ou maior poder de processamento. Desde que SVBLCAs são

direcionados principalmente para as empresas de pequeno porte

(geralmente constituídos por 10-50 locais de rede), esses fatores não

desempenham um papel significativo e têm sido negligenciados neste

trabalho. Este trabalho foi concentrado no último fator, que afeta a

escalabilidade do sistema inteiro.

Page 51: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

3.6 O Banco de Ensaio Experimental [20]

O banco de ensaio utilizado nos ensaios é constituído por dois

roteadores SVBLCA (SVBLCA A e B) e cria um túnel seguro entre duas

redes privadas (RP-1, RP-2) situados no mesmo edifício. SVBLCA A

contém um processador Intel Pentium 4 de 2.0 GHz, com 512 Mbytes de

memória RAM e rodando Ubuntu 12.04. SVBLCA B é um desktop com

características ultrapassadas, com um processador de 400 MHz Pentium II,

com 128 Mbytes de memória RAM e funcionando Ubuntu 12.04. PC-1 (em

RP-1) e PC-2 (no RP-2) são computadores Linux, que são usados para

conduzir experiências de desempenho da rede. O banco de ensaio é isolado

(sem congestionamento externo) e todas as conexões usam interfaces de

rede com característica 100Mb/s Fast Ethernet.

A sobrecarga foi avaliada, primeiramente através da análise da

solução SVBLCA e, posteriormente, verificando-lo, através da captura de

pacotes UDP de tamanho conhecido. Estes pacotes foram gerados usando

um programa gerador UDP simples, e capturados usando um utilitário de

“espionagem” de pacotes como o Ethereal. Largura de banda e instabilidade

foram medidas utilizando Iperf, enquanto Ping foi utilizado para medir a

latência. Cada experiência foi repetida 10 vezes em ambas as direções, e só

a média foi avaliada. Como não havia cifra/MAC comum que poderia ser

usada com todos os SVBLCA s, foram realizados experimentos usando um

dos {Blowfish, 3DES ou nenhum} para cifras e {SHA1, MD5 ou nenhuma}

para MAC. Compressão foi desativada em todos os níveis.

Foi agrupado as soluções SVBLCA selecionadas com base no

protocolo de segurança utilizado na figura 3, uma vez que VPNs usando o

mesmo protocolo de segurança pode ser esperado que suas performances

sejam quase semelhantes. Por conseguinte, temos VPN baseado em SSH,

SSL/TLS, IPsec e outros protocolos proprietários, como mostrado na figura

a seguir. Todos os SVBLCAs na metade superior da figura usam canais

TCP, enquanto aqueles inferiores à linha usam UDP.

SSH, padronizado pelo grupo de trabalho Secsh do IETF, fornece

suporte para logins seguros e transferências seguras de arquivos. PPP sobre

SSH é a única solução VPN que utiliza SSH. Ambos PPP e SSH são

protocolos maduros de uso generalizado, e uma VPN simples pode ser

configurada usando um único comando [21].

SSL/TLS, padronizado pelo grupo de trabalho TLS, foi

inicialmente desenvolvido pela Netscape, para fornecer transações seguras

da Web (versões 1 e 2), mas ao longo dos últimos anos, este protocolo

evoluiu para uma solução padrão para comunicações seguras

Page 52: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

(SSLv3/TLSv1). Stunnel, AmritaVPN e LinVPN são os SVBLCAs que

utilizam SSL/TLS, com Stunnel e AmritaVPN usando SSLv3/TLSv1 e

LinVPN usando SSLv2.

Figura 4 - Agrupamento de VPN por protocolo de segurança [23].

IP Secure (IPSec) estende a segurança no nível de rede. No entanto,

IPSec também suporta um mecanismo de encapsulamento que pode ser

utilizado para fornecer serviços de VPN. FreeS/WAN é uma

implementação baseada em Linux do protocolo IPSec. Ele consiste de dois

componentes; KLIPS e PLUTO. O primeiro oferece serviços de criptografia

de pacotes IP e é construído como um módulo do kernel, enquanto o último

é um programa em nível de aplicativo utilizado para a negociação de chaves

de sessão, posteriormente, utilizados por KLIPS.

Os SVBLCAs restantes usam seus próprios protocolos

proprietários para proporcionar segurança. Este grupo foi dividido entre

aqueles que utilizam funções criptográficas padrão exportados pelo

OpenSSL (Proprietary/OpenSSL) e aqueles que usam suas próprias

implementações proprietárias (Proprietary). OpenVPN, VTUN, Tinc e

Yavipin pertencem ao primeiro grupo, enquanto o segundo grupo contém

Cipe, PPTP, Vpnd, Htun e L2tpd. Enquanto Vtun pode ser usado com duas

VNIs diferentes (tun/tap driver e pseudo-terminais), consideramos estes

dois organismos como SVBLCAs separados, sendo o primeiro designado

como Vtun e o segundo como VTUN_PPP.

A tabela abaixo fornece detalhes adicionais sobre cada SVBLCA

incluindo links para as receitas passo-a-passo para configurar uma VPN. A

Page 53: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

última coluna quantifica a nossa experiência com a complexidade de

configuração (um menor número de asteriscos implica em configuração

simplificada) avaliada com base em critérios comuns que envolvem a

instalação, configuração e suporte.

Tabela 3 - Tecnologias VPN [23].

Ver-

são

Pa-

drão

de

Inter-

nete

Compre-

ssão Criptografia

Website

oficial

Nota

confi-

guração

PPP sobre

SSH -- Sim

ppp-ccp,

gzip

SSH, bf-

cbc/md5

http://w

ww.buil

dinglin

uxvpns.

net/sour

cecode/

*****

Stunnel 4.04 Não ppp-ccp OpenSSL,

3Des/Sha1

http://w

ww.stu

nnel.or

g/

***

AmritaVP

N 0.96 Não Nenhum

Sem

especificação

http://ai

tf.amrit

a.edu/

***

LinVPN 2.6 Não ppp-ccp Sem

especificação

http://m

rtg.plan

etmirro

r.com/p

ub/linv

pn/

*******

Vpnd 1.1 Não

Disponíve

is com

bugs

Bf-cbc / (md5

| sha1 |

ripemd160)

http://s

unsite.d

k/vpnd/

***

Htun 0.9.5 Não Nenhum Nenhum

http://h

tun.run

slinux.n

et/

*****

Cipe 1.5.4 Não Nenum (bf-cbc |

Idea)

http://si

tes.inka

.de/sites

/bigred/

devel/ci

pe.html

**

PPTP 1.2.0 Sim ppp-ccp MPPE

http://p

ptpclien

t.source

****

Page 54: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

forge.ne

t/

L2TPD 0.69 Sim ppp-ccp Nenhum

http://w

ww.l2tp

d.org/

***

OpenVPN 1.4.2 Não lzo OpenSSL,

bf-cbc/md5

http://o

penvpn.

sourcef

orge.net

/

**

VTUN 2.6 Não zlib, lzo bf-cbc/md5

http://vt

un.sour

ceforge.

net/

***

VTUN_P

PP 2.6 Não

ppp-ccp,

zlib, lzo bf-cbc/md5

http://vt

un.sour

ceforge.

net/

****

Tinc -- Não zlib, lzo OpenSSL, bf-

cbc/md5

http://ti

nc.nl.lin

ux.org/

***

Yavipin 0.9.5 Não zlib (bf-cdc | des-

cbc)/md5

http://y

avipin.s

ourcefo

rge.net/

*****

FreeS/Wa

n 2.01 Sim Sim 3des-cbc

http://w

ww.free

swan.or

g/

******

3.7 Resultados da Avaliação de Desempenho

Nesta seção apresentamos os resultados experimentais, baseados

nos trabalhos de Pena e Evans [15]; nos trabalhos de Clercq e Paridaens

[20] e nos trabalhos de Khanvilkar e Khokhar [23] para os SVBLCAs

selecionados e seus desempenhos com base em métricas descritas

anteriormente.

Page 55: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

3.7.1 O desempenho da rede

Tabela 4 - Desempenho de Sobrecarga Normalizada [23].

GRP_TCP GRP_UDP

Sobrecarga Normalizada

O desempenho de sobrecarga normalizada para 80 bytes/pacote,

que também foi a menor sobrecarga computada por qualquer solução

SVBLCA.

Entre eles, encontram-se a maioria dos SVBLCAs no grupo de

segurança proprietária (exceto Vpnd e Htun) para apresentar relativamente

menor sobrecarga (overhead) do que outros, tornando-os relativamente

adequados para aplicações que geram tamanhos de pacotes menores (por

exemplo: Telnet e Login Remoto). No geral, SVBLCAs que utilizam canais

de dados baseados em UDP (GRP_UDP) possuem 50 por cento menos

sobrecarga do que aqueles que utilizam canais de dados baseados em TCP

(GRP_TCP).

Diferenças menores entre os diferentes membros do mesmo grupo

são principalmente devido a diferentes formatos de embalagem e

preenchimento aleatório anexado aos pacotes. Daí em diante, Htun foi

deixado de fora de todos os cálculos de desempenho, uma vez que

demonstrou que o desempenho da rede foi muito menor do que o caso

médio. Isto é em parte devido à natureza dualista de seu protocolo de

comunicação.

Page 56: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Tabela 5 - Desempenho de Utilização de Largura de Banda [23].

GRP_TCP GRP_UDP

Utilização de Banda (%)

No gráfico de largura de banda, os números no topo de cada barra

indicam o intervalo de confiança de 95 por cento. Novamente, todas as

SVBLCAs foram encontradas para executar no pior caso, com o melhor

deles (Cipe) utilizando menos do que 50 por cento da largura de banda.

Aqui, o cálculo da média acumulada, encontramos GRP_UDP para ser pelo

menos 80 por cento melhor do que GRP_TCP.

A normalização é realizada em relação às latências totais (e

instabilidade) observadas entre cada salto da rede, quando a VPN não está

em uso. Na FreeS/WAN se observa as menores características de latência e

instabilidade, tornando-a adequada para aplicações em tempo real, como

voz e vídeo. Acreditamos que menor latência/instabilidade em FreeS/WAN

ocorre devido ao fato dele ser integrado no kernel do Linux. Aqui,

GRP_UDP mostra uma melhora de 40-60 por cento em relação GRP_TCP.

Page 57: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Tabela 6 - Desempenho, Instabilidade Normalizada [23].

GRP_TCP GRP_UDP

Instabilidade Normalizada

Tabela 7 - Desempenho, Latência Normalizada [23].

GRP_TCP GRP_UDP

Latência Normalizada

Page 58: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

A partir dos resultados acima, é difícil julgar qual SVBLCA tem o

melhor desempenho geral. No entanto, uma heurística simples pode ser

aplicada para seleccionar uma solução ótima. Por exemplo, ao classificar os

SVBLCAs para cada atributo e atribuindo peso proporcional à importância

de cada atributo, pode-se determinar a classificação média ponderada.

Assim, quando todos os atributos são igualmente importantes, VTun, PPTP

e FreeS/WAN (possuem desempenho médio quase igual) são os melhores.

Por meio da variação dos pesos, o SVBLCA ótimo para qualquer ambiente

pode ser facilmente determinado. No entanto, este método requer que o

desempenho de rede para cada SVBLCA seja previamente determinado.

3.7.2 Características/funcionalidades suportadas

Anteriormente, discutimos diferentes características e funções que

um SVBLCA deve fornecer. Aqui, vamos avaliá-los com base nos recursos

que são suportados atualmente. Se um determinado recurso está ausente,

nós também comentaremos o quão simples (ou complexo) é integrá-lo no

código do SVBLCA atual.

A modularidade do código - Nenhuma das soluções SVBLCA

apoia fortemente algoritmos de plugins como definido anteriormente. Por

isso, a definição é “relaxada” e o nível de dificuldade com que novos

algoritmos de cifragem podem ser usados com uma solução SVBLCA

também foi avaliado. Apesar de considerar este aspecto, avaliou-se também

o estilo geral de codificação para determinar as funções de criptografia

usadas internamente. Assim, dividimos os níveis de dificuldade em baixa,

média e alta, conforme detalhado abaixo.

Baixa - Este é o caso quando o SVBLCA usa bibliotecas padrão de

terceiros, como OpenSSL, para implementar seus protocolos de segurança.

OpenSSL possui uma interface genérica de programação de aplicativos

chamada, EVP API, que fornece um acesso padrão para todas as suas cifras.

Assim, sempre que algoritmos mais recentes são inventados e integrados ao

OpenSSL, podem ser utilizado imediatamente sem recompilar o código

SVBLCA.

Médio - O nível de dificuldade é considerado médio quando novos algoritmos precisam ser inseridos manualmente no código SVBLCA. Por

exemplo, Cipe e Vpnd usam suas próprias implementações de criptografia

proprietários. Assim, os algoritmos mais recentes podem ser usados apenas

se forem integrados com o código. Esta categoria também inclui aqueles

Page 59: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

SVBLCAs que usam API de criptografia OpenSSL diretamente em vez do

mais genérico EVP API.

Alto - Isto significa algoritmos mais recentes só podem ser

utilizados se modificações substanciais forem feitas no código fonte. Isso

ocorre se o SVBLCA originalmente não apoia quaisquer métodos de

criptografia. Assim, para utilizar algoritmos mais recentes um teria que

começar do zero. A exceção aqui é FreeS/WAN, incluído aqui porque o

código fonte parecia muito grande e complicado para localizar onde ele

precisa ser modificado.

Roteamento – A tabela abaixo apresenta a avaliação dos

mecanismos de roteamento suportados pelos SVBLCAs atuais, mais uma

vez quantificados em:

Manual: rotas diretas devem ser estabelecidas manualmente,

usando o comando “rotear” ou scripts embutidos no shell.

Automático (para VPNs de domínio único): O daemon de

roteamento é parte da solução SVBLCA, que lida com VPNs de domínio

único. Tinc é a única solução que emprega este tipo de roteamento, embora

ainda crie uma rede em grafo completo. No entanto, o administrador tem

que configurar apenas um único local quando um novo local é adicionado,

o que torna a solução extremamente escalável.

Automático (para vários domínios VPNs): Este emprega

roteamento virtual que cria uma instância de roteamento separado para cada

domínio VPN. Infelizmente, neste momento, nenhum dos SVBLCAs

suporta esta opção.

3.7.3 Preocupações Operacionais

Segurança - Como discutido anteriormente, a segurança de um

SVBLCA não pode ser medida. No entanto, muitas situações podem ser

imaginadas, onde a segurança forte não é um requisito, e as pessoas podem

apenas se contentar com os protocolos mais fracos. Assim, temos avaliado a

nossa confiança na segurança como:

Os padrões abertos: Inclui todas as soluções SVBLCA que usam

protocolos de segurança padronizados, tais como SSH, SSL/TLS e IPSec. Estes protocolos foram considerados como implicitamente seguro porque

eles já foram submetidos à revisão por pares exaustiva. Além disso, falhas

de segurança, se houverem, são amplamente divulgadas através da Internet

com atualizações quase imediatas. PPP sobre SSH, AmritaVPN, Stunnel,

Lin-VPN, e FreeS/WAN caem nesta categoria.

Page 60: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Proprietário: Inclui soluções SVBLCA que são baseados em

protocolos de segurança proprietários com classificação inferior a padrões

abertos. Foi analizado a segurança oferecida por estes protocolos em termos

de apoio para as propriedades básicas, incluindo a confidencialidade,

integridade de dados, autenticação/não repúdio e proteção antirepetição.

Novamente, enfatizamos que todas estas propriedades não significam

necessariamente que o protocolo é seguro, e uma análise mais exaustiva

claramente precisa ser feita. OpenVPN e Tinc são as únicas soluções que

suportam todas as quatro propriedades.

Escalabilidade - Para comparar escalabilidade das soluções

SVBLCA, assumiu-se um grafo VPN total entre N nós e foi analizado o

esforço total necessário para atualizar os arquivos de configuração, edição

de informações de roteamento e distribuição de chaves de segurança,

quando túneis são adicionados/excluídos.

Para um grafo completo, tudo se resume à criação de (N-1) túneis

adicionais. Uma vez que a infraestrutura de gerenciamento central está

ausente, os arquivos de configuração para todos os sites de N podem

precisar ser atualizados com informações de acessibilidade. Da mesma

forma, já que a maioria SVBLCAs não tem um daemon de roteamento

integrado, informações de roteamento podem precisar ser atualizadas

manualmente em cada local.

Finalmente, para a distribuição de chaves de segurança, se a

solução SVBLCA utiliza a chave secreta ou criptografia de chave pública,

sem uma infraestrutura de chave pública, a chave secreta compartilhada

precisa ser distribuída manualmente para N-1 pares. Por outro lado, se a

tecnologia utiliza o certificado digital, apenas o local recentemente

adicionado terá de adquirir um certificado assinado.

Abaixo é fornecido mais detalhes sobre o número de tarefas que

precisam ser executadas para cada SVBLCA. Por exemplo, em PPP sobre

SSH apenas um arquivo de configuração (~/.ssh/config no N-ésimo nó)

precisa ser atualizado, 2 (N-1) rotas precisam ser adicionados (em ambas as

extremidades), e a chave pública do novo nó precisa ser distribuída a seus

pares (para o login sem senha). Total de esforço pode ser calculado

somando-se todas as tarefas e multiplicando-se por N (uma vez que este

tem de ser repetido N vezes para uma VPN de N-nodos). Atribuindo

unidade de esforço para cada tarefa, a última coluna dá uma boa estimativa

da escalabilidade.

Observe que cada solução não é escalável com um total de esforço

O (N²) variado. No entanto, para N pequenos (digamos N=10), pode-se ver

Page 61: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

a diferença drástica na quantidade de trabalho necessária (indicado por

números entre colchetes na última coluna). Aqui, Tinc comprova ser a

solução SVBLCA mais escalável.

Tabela 8 - Complexidade de inserir algoritmos proprietários de criptografia

[23].

Solução

SVBLCA Considerações

Baixo

Stunnel,

Amrita,

LinVPN

Utiliza implementação OpenSSL do SSL/TLS.

Novo algoritmos podem ser utilizados

prontamente, sem quaisquer mundanças no

código fonte.

OpenVPN,

Tinc

OpenSSL EVP API é usado para acessar

diferentes cifras/MACs.

Médio

PPP sobre

SSH

A implementação OpenSSH do SSH usa uma

quantidade fixa de cifras que utilizam o

OpenSSL EVP API. Para usar novas cifras, o

código do OpenSSH deve ser modificado.

Cipe, Vpnd

Utiliza a cifra proprietária Blowfish. No entanto,

novos algoritmos devem ser explicitamente

adicionados no código fonte.

Yavipin,

VTUN,

VTUN_PPP

Utiliza as funções criptográficas do OpenSSL

para algumas cifras seleciondas. Para usar novos

algoritmos, o código fonte deverá ser modificado.

Alto

FreeS/WAN Utiliza Eric Young’s DES. É difícil localizar onde

devem ser feitas as modificações.

PPTP Utiliza somente a criptografia P2P da Microsoft.

L2TPD, Htun Não utiliza criptografia.

Tabela 9 - Suporte de roteamento embutido [23].

Roteamento Solução SVBLCA Considerações

Manual

PPP sobre SSH,

Stunnel, L2TPD,

Htun

Comando explícitos de

roteamento são utilizados.

OpenVPN, LinVPN,

Yavipin, VTUN,

VTUN_PPP,

PPPTPD

Quando o link de VPN é

estabelecido, o roteamento é

configurado por scripts de shell.

Cipe, AmritaVPN,

FreeS/WAN, Vpnd

Informações de roteamento estão

inclusos no arquivo conf.

Automático,

VPNs de

domínio único.

Tinc

Suporta Daemon de roteamento

embutido que estabelece uma

rede de grafo completo.

Page 62: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Tabela 10 - Segurança das VPNs [23].

Confiden-

cialidade

Integridade

dos Dados

Autenticação/N

ão repúdio

Anti-

Replay

Vpnd Sim Sim Sim Não

Htun Não Não Não Não

Cipe Sim Sim Não Não

PPTP Sim Sim Não Sim

L2TPD Não Não Não Sim

OpenVPN Sim Sim Sim Sim

VTUN Sim Não Não Não

VTUN_PPP Sim Não Não Não

Tinc Sim Sim Sim Sim

Yavipin Sim Sim Não Sim

3.8 Funcionamento VPNs usando protocolo UDP.

Nas análises de desempenho das VPNs que utilizam o protocolo de

comunicação UDP, foi explicitado que sua utilização implica em menos

largura de banda, menor instabilidade, menor latência e menor sobrecarga.

No entanto existem diversas preocupações referentes à sua

aplicação direta, como perda de pacotes e desordenação de pacotes.

Nas soluções mais atuais é utilizado o conjunto de protocolos

SSL/TLS para configurar uma conexão VPN, o que resulta em transporte

confiável. O protocolo Transport Layer Security (TLS), cujo seu

predecessor é o protocolo Secure Sockets Layer (SSL), são protocolos

criptográficos que foram projetados para fornecer comunicação de

segurança sobre a Internete.

Portanto os pacotes UDP são encapsulados para transporte via

SSL/TLS, que resulta em transporte confiável. Porém ainda podem ocorrer,

mesmo que significativamente menos, a perda de pacotes ou a

desordenação dos mesmos. Para isto cada tecnologia utiliza algoritmos

próprios para corrigir estes problemas, ou seja, um algoritmo para

recuperação de pacotes e outro algoritmo para ordenação dos pacotes.

Ainda há tecnologias que utilizam o protocolo DTLS (Datagram

Transport Layer Security – RFC4347). O protocolo DTLS fornece comunicação privativa para protocolos “Datagram”. O protocolo permite a

comunicação de aplicativos cliente/servidor de uma forma mais eficiente,

evitando espionagem, adulteração ou falsificação de mensagens. Ele é

Page 63: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

baseado no Transport Layer Security (TLS) e fornece garantia de segurança

equivalente.

3.8.1 SSL/TLS sobre UDP no OpenVPN.

Como o OpenVPN foi a solução escolhida para implementação da

tecnologia de VPN neste trabalho, detalharemos neste capítulo como

funciona o protocolo de comunicação SSL/TLS sobre UDP.

Camadas de transporte confiável em geral não são ideais, como no

caso do IPSec, por causa do mau desempenho e as situações que podem

piorar ainda mais a conexão, como multicamada de “time-out” e

mecanismos de retransmissão necessários pelo TCP.

Quando usando o conjunto de protocolos SSL/TLS para configurar

uma VPN, o primeiro desafio é mudar a camada de transporte confiável

nativa do protocolo SSL/TLS para o UDP sem conexão sob SSL/TLS.

Assim como os truques do protocolo DTLS, o OpenVPN usou um

técnicas semelhantes. O qual define o canal de controle, cujas

características são equivalentes à camada de transporte confiável do IPSec,

que são necessárias para a troca de parâmetros iniciais e autenticação de

identidades; e define também outro canal, o canal de dados, um túnel UDP

sem conexão para transportar dados da VPN. Enquanto o IPSec utiliza duas

conexões, uma para negociação IKE e outra para comunicação de dados;

OpenVPN simplesmente possui os canais de controle e dados dentro de

uma sessão baseada em UDP.

Canal de Controle

O canal de controle age tanto na fase incial, com a negociação

incial (handshake) do SSL/TLS (incluindo início de sessão, troca de chaves,

acordo de conjunto de cifras, autenticação de identidades, etc.), quanto na

fase final da conexão, onde algumas limpezas e ajustes são necessários.

Por causa da camada de transporte orientada a conexão necessária

pelo protocolo de início de sessão do SSL/TLS, o canal de controle deve

compensar pela desvantagem do transporte UDP não confiável,

introduzindo um simples reconhecedor de pacotes, tempo de espera e um mecanismo de retransmissão.

Existem dois tipos de mensagens no canal de controle do

OpenVPN; a mensagem do tipo P_CONTROL, que é um jeito de

implementar um pacote de cifras TLS necessário para ser encapsulado

dentro de uma camada de confiabilidade; e a camada de confiabilide, esta é

Page 64: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

implementada com um reconhecimento (ACK) de modelo simples e a

função de restransmissão implementada através da mensagem de tipo

P_ACK.

Canal de Dados

O canal de dados, criado após o início de sessão SSL/TLS, é um

túnel UDP sem conexão, onde não há retransmissão e não há mecanismo de

reconhecimento. O tipo de mensagem P_DATA representa dados

criptografados, pacotes de túnel encapsulados, que tendem a ser tanto

pacotes IP quanto quadros Ethernet, que são essencialmente o conteúdo da

VPN.

3.9 Conclusões sobre VPNs e Trabalhos Futuros

Neste artigo, nós avaliamos 15 SVBLCAs populares em termos de

desempenho de rede, características e funcionalidades, e suas preocupações

operacionais.

O desempenho relativamente fraco de SVBLCAs em quase todos

os atributos considerados abre novas oportunidades para pesquisas. Uma

dessas áreas é a melhoria do desempenho da rede. O grande gargalo para

desempenhos pobres de rede foi descoberto ser de natureza da computação

intensiva de criptografia, autenticação e funções de compressão (chamadas

de funções de VPN) cuidadosamente aplicadas a todos os pacotes enviados

através da VPN. Uma vez que estas funções e os respectivos algoritmos são

negociados durante a inicialização do túnel, que permanece estática durante

toda a vida do túnel e não pode ser alterada sem o repor. No entanto, esse

comportamento pode ser redundante para fluxos de tráfego que já estão

criptografados ou compactados. Muitas aplicações podem também requerer

apenas um subconjunto de tais funções para ser aplicado às suas

transmissões, por exemplo, as chamadas de voz através de IP podem

precisar de encriptação e autenticação, mas o podem fazer, sem

compressão. Enquanto alguns podem precisar de criptografia forte, outros

podem se contentar com os protocolos mais fracos, que são mais rápidos e

não possuem computação tão intensiva.

Experimentos revelam que VPNs que usam canais de dados

baseados em UDP são muito melhores do que aqueles que utilisam TCP.

Page 65: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Nenhumas das soluções atuais de SVBLCAs são flexíveis o suficiente para

aplicar a funcionalidade específica do aplicativo - arquiteturas mais

recentes terão de ser concebidas - que possam permitir funções de VPN

serem aplicadas em nível do pacote. Neste sentido, estamos propõe-se uma

arquitetura de VPN de última geração, que forneça uma implementação de

túnel flexível, onde dentro de um único túnel VPN, diferentes funções de

VPN possam ser aplicadas a diferentes aplicações, oferecendo assim, um

tratamento diferenciado e personalizado. Ainda, esta aplicação deve

permitir que hosts finais especificassem o tipo de tratamento que eles

esperam para os seus fluxos de tráfego, ou ainda, ela própria tomar parte

ativa na aplicação das funções de tunelamento.

Os resultados apresentados neste trabalho também podem ajudar os

usuários finais a selecionar uma solução SVBLCA, que melhor se adapte às

suas necessidades específicas. O algoritmo heurístico simples discutido na

seção de resultados pode ser estendido para aceitar as necessidades dos

utilizadores ponderados e produzir uma lista ordenada das melhores

soluções.

Como resultado, um usuário doméstico interessado em largura de

banda máxima pode se contentar com Cipe ou Vtun, enquanto um

administrador de rede que está mais interessado em segurança, pode se

contentar com IPSec. Este método, no entanto, exige que o desempenho de

cada SVBLCA deve ser predeterminada. Estes resultados não estão

prontamente disponíveis através da Internet, e este trabalho ajuda a

preencher esta lacuna.

Page 66: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

4 Desenvolvimento:

4.1 Sistema Operacional

Para implementar o servidor, foi instalado como sistema

operacional principal, o Ubuntu Server LTS 12.04.3 x64 (de código livre e

amplamente utilizado por instituições de ensino, pesquisa e

desenvolvimento, usuários domésticos e empresas corporativas), com suas

configurações no modo padrão, com serviço SSH ativado.

O servidor possui duas interfaces de rede. A placa de rede eth0 será

utilizada para se conectar a rede externa (até o modem ADSL, ou seja, até a

internete). A placa de rede eth1 será utilizada para se conectar a rede interna

(LAN). A primeira placa de rede foi configuradas para ter IP dinâmico

(baseado nas definições do modem ADSL e do provedor de serviço de

internete, que neste caso não necessitam de autenticação PPoE ou similar),

enquanto a segunda para ter IP estático, cujo é ideal para controlar

conexões.

4.2 Configurando as interfaces de rede e serviço DHCP

Nota: Nos textos de ajuda do Nano (editor de texto para terminal

de comando), a tecla “Ctrl” é representada por um chapéu (^), portanto

“Ctrl+W” é visto como “^W”, e assim em diante. A tecla “Alt” é

representada por um M (de "Meta"), portanto “Alt+W” é visto como “M-

W”. Se for necessário instalar o aplicativo utilize o seguinte comando:

“$sudo apt-get install nano”

Precisamos efetuar mudanças para deixar o servidor com IP

estático para a rede local “eth1”. Enquanto que para a interface “eth0”

deve-se deixar obter o IP dinâmico. Então, para configurarmos as interfaces

de rede, é necessário alterar o arquivo de interfaces em

“/etc/network/interfaces” como mostrado abaixo:

auto lo

iface lo inet loopback

auto eth0

iface eth0inet dhcp

auto eth1

iface eth1inet static

Page 67: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

address 190.170.50.1

netmask 255.255.255.0

4.3 Configurando o servidor como Roteador DHCP/Gateway de

duas interfaces

Figura 5 - Arquitetura da Rede Local

É necessário instalar o serviço de roteador DHCP e DNS no

servidor, para isto, basta instalar os seguintes programas, com o comando:

Nota: Sempre que iniciar o sistema, digite o comando “$sudo apt-get update” para ter certeza de que a última versão dos aplicativos seja

instalada.

$sudo apt-get install isc-dhcp-server bind9

Após instalados, por haver mais de uma interface de rede, é

necessário configurar o serviço DHCP para responder as requisições de IP

da interface eth1. Para isso foi alterado a última linha do arquivo

“/etc/default/isc-dhcp-server”.

# Defaults for isc-dhcp-server initscript

# sourced by /etc/init.d/isc-dhcp-server

# installed at /etc/default/isc-dhcp-server by the maintainer scripts

#

# This is a POSIX shell fragment

#

Page 68: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

# Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf).

#DHCPD_CONF=/etc/dhcp/dhcpd.conf

# Path to dhcpd's PID file (default: /var/run/dhcpd.pid).

#DHCPD_PID=/var/run/dhcpd.pid

# Additional options to start dhcpd with.

# Don't use options -cf or -pf here; use DHCPD_CONF/

DHCPD_PID instead

#OPTIONS=""

# On what interfaces should the DHCP server (dhcpd) serve DHCP

requests?

# Separate multiple interfaces with spaces, e.g. "eth0 eth1".

INTERFACES="eth1"

Precisamos agora mudar as configurações padrão do serviço DHCP

com os dados da rede a ser implantada. Neste caso o endereço da rede é

192.168.0.0. Para isto é recomendado apagar todo o conteúdo do arquivo,

mas antes faça uma cópia de segurança com o comando:

$sudo mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bkp

Apague o conteúdo do arquivo anterior e insira o seguinte conteúdo

com o comando “$sudo nano /etc/dhcp/dhcpd.conf”:

ddns-update-style none;

default-lease-time 600;

max-lease-time 7200;

authoritative;

log-facility local7;

option subnet-mask 255.255.255.0;

option broadcast-address 192.168. 0.255;

option routers 192.168. 0.1;

option domain-name-servers 192.168. 0.1;

option domain-name "servidor-vpn-firewall.secto.fln";

subnet 192.168. 0.0 netmask 255.255.255.0 {

range 192.168. 0.100 192.168. 0.200;

}

No arquivo acima, observe os dados de IPs relativos à configuração

de rede deste trabalho. Observe também, que o espaço de endereçamento destinado ao DHCP, é do intervalo final 100 ao 200 do IP da rede. Para

prosseguir com a instalação, reinicie o serviço DHCP com o seguinte

comando:

Page 69: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

$sudo service isc-dhcp-server restart

Para permitir o encaminhamento de pacotes entre endereços IP,

basta retirar o símbolo de comentário “#” da seguinte instrução

“net.ipv4.ip_forward=1” no arquivo “/etc/sysctl.conf”. Abaixo mostramos a

parte relevante do arquivo alterada:

# Uncomment the next line to enable TCP/IP SYN cookies

# See http://lwn.net/Articles/277146/

# Note: This may impact IPv6 TCP sessions too

#net.ipv4.tcp_syncookies=1

# Uncomment the next line to enable packet forwarding for IPv4

net.ipv4.ip_forward=1

Se você desejar renovar o endereço IP da interface WAN, digite o

comando abaixo:

$sudo dhclient –r && sudo dhclient

4.4 Instalando interface gráfica no servidor

A versão do Ubuntu para servidores não acompanha interface

gráfica, a interface mais utilizada no Ubuntu, o Gnome, é uma interface

sofisticada, porém “pesada”, utilizando muito processamento que poderia

ser disponibilizado para outras tarefas. Para melhorar a experiência do

administrador, foi instalado a interface gráfica XFCE versão 4, também de

código livre, de fácil instalação e mais leve que a interface Gnome, com

tamanho de 230MB na versão 4. A interface será utilizada apenas na

conexão de área de trabalho remota.

Suas principais facilidades é permitir a utilização de navegadores

web, acessar/montar dispositivos de memória externa (HDs, pendrives,

CDs, etc.), utilizar editores de texto no modo gráfico e gerenciar arquivos e

pastas por janelas. Além de possibilitar a instalação e execução de

gerenciadores gráficos para diversos serviços de administração e

gerenciamento de rede, banco de dados, entre outros. Segue comando para

instalar o XFCE, se houver necessidade:

$sudo apt-get install xfce4

Page 70: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Para acessar a interface gráfica do servidor pela conexão de área de

trabalho remota do Windows, utilize o programa XRDP. No terminal de

comando do Ubuntu, utilizamos os seguintes passos para instalar o XRDP

com o XFCE.

$ sudo apt-get install xrdp

$ sudo echo xfce4-session >~/.xsession

$ sudo chmod +x ~/.xsession

$ sudo service xrdp restart

Para acessar o servidor de um computador com sistema operacional

Windows, abra o software “Conexão da Área de Trabalho Remota”,

disponível no Painel de Controle. Nele coloque o IP do servidor, neste caso

192.168.0.1. Aceite as notificações de segurança.

Figura 6 - Conexão da Área de trabalho Remota Windows

Insira o usuário e senha:

Figura 7 - Login do XRDP

Page 71: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Espere conectar:

Figura 8 - Log de Conexão XRDP

Figura 9 - Acesso Remoto com Interface Gráfica ao Servidor.

Se desejar, você ainda pode baixar o navegador “chromium”

(Google Chrome para Linux), o editor de texto “gedit” e o navegador de

pastas “nautilus” com os seguintes comandos:

Page 72: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

$sudo apt-get install chromium-browser gedit nautilus

4.5 Instalando o Webadmin

O Webadmin é uma ferramenta, acessada via navegador web, para

auxiliar o administrador a configurar todos os serviços de rede instalados no

servidor (para fins específicos deste trabalho, apenas utilizaremos esta

ferramenta para configurar o NAT pela primeira vez, portanto toda a

configuração do programa de firewall Shorewall pode ser feita através deste

programa, neste trabalho utilizaremos somente linha de comando para ser

mais claro e objetivo). Para instalar os pré-requisitos do software execute o

seguinte comando:

$sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-

perl libpam-runtime libio-pty-perl apt-show-versions python

Para baixar o aplicativo para o servidor, execute o comando:

$wget

http://sourceforge.net/projects/webadmin/files/webmin/1.660/webmin

_1.660_all.deb

Para instalar o pacote baixado execute o commando:

$sudo dpkg –install webmin_1.660_all.deb

O Webadmin encontra-se instalado e pode ser acessado pelo

navegador de qualquer máquina conectada a rede local no endereço:

https://”ip-servidor”:10000/ - No caso deste trabalho, o endereço

utilizado é: https://192.168.0.1:10000/ - Se for apresentado um aviso de

segurança, apenas aceite e prossiga.

Entre com seu usuário e senha da conta de administrador do

Ubuntu.

Page 73: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Figura 10 - Acesso ao Webadmin

4.5.1 Pré-configurando o serviço de Firewall

1. Efetue o acesso no seu Webadmin. Para um gerenciamento

mais fácil e prático.

2. Acesse no menu da esquerda a entrada “Networking” e

então “Linux Firewall”.

3. Selecione o campo “Do network address translation on

external interface:” e selecione a interface “NET”. Esta

função é necessária para habilitar o “Masquarade(NAT)”.

4. Marque a caixa de seleção “Enable firewall at boot time?”

no fundo da página. Para habilitar o firewall na

inicialização do Ubuntu.

5. Para seguir, clique no botão “Setup Firewall”.

Page 74: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Figura 11 - Primeiros Passos Webadmin.

Page 75: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

6. Para finalizar, apenas clique no botão “Apply

Configuration”.

Figura 12 - Aplicando Configurações Webadmin.

7. Se desejar obter uma melhor experiência de usuário e usá-

lo em português do Brasil, vá no menu “Webmin”, então

em “Change Language and Theme”. Para “Webmin UI

language” selecione “Personal choice ..” e escolha

“Portuguese (Brazilian) (PT_BR.UTF-8). Em “Webmin UI

theme” selecione “Personal choice ..” e escolha

“MSC.Linux Theme”.

Page 76: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Figura 13 - Melhrar Experiência de Usuário no Webadmin.

Clique em “Make Changes”.

Figura 14 - Interface melhorada em português do Webadmin.

Depois destes passos, nota-se uma linha adicional abaixo das

configurações da interface de rede eth0, como visto abaixo:

Page 77: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

netadmin@ubuntu-vpn-firewall:~$ cat /etc/network/interfaces

# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).

# The loopback network interface

auto lo

iface lo inet loopback

auto eth0

iface eth0 inet dhcp

post-up iptables-restore < /etc/iptables.up.rules

auto eth1

iface eth1 inet static

address 192.168.0.1

netmask 255.255.255.0

4.6 Instalando serviço de VPN OpenVPN

Porquê OpenVPN: Se você quer mais do que apenas chaves pré-

compartilhadas, OpenVPN torna fácil usar e configurar uma infraestrutura

de chave pública (PKI) para usar certificados SSL/TLS em autenticações e

troca de chaves entre o servidor VPN e clientes. OpenVPN pode ser usado

em modo de roteamento ou no modo de ponte (bridge) e pode ser

configurado para usar UDP ou TCP. A porta padrão é 1194, no entanto, o

número da porta pode ser configurado. Ele utiliza somente esta porta para

todas as comunicações. Implementações de cliente VPN estão disponíveis

para quase todas plataformas, incluindo todas as distribuições Linux, OS X,

Windows, Android e roteadores com firmware OpenWRT.

Para instalar o OpenVPN, utilize o comando:

$sudo apt-get install openvpn

O primeiro passo na construção de uma configuração do OpenVPN

é estabelecer uma PKI (Public Key Infrastructure). O PKI é composta por:

Um certificado separado (também conhecido como a chave pública) e uma chave privada para o servidor e cada cliente;

Um certificado mestre de autoridade de certificação (CA) e uma

chave que é utilizada para assinar cada um dos servidores e certificados de

cliente.

Page 78: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

OpenVPN suporta a autenticação bidirecional baseada em

certificados, o que significa que o cliente deve autenticar o certificado do

servidor e o servidor deve autenticar o certificado do cliente antes de

confiança mútua.

Tanto o servidor quanto o cliente devem autenticar o outro em

primeiro lugar, verificar se o certificado apresentado foi assinado pelo

certificado mestre da autoridade certificadora (CA), e, em seguida, por

meio de testes de informações no cabeçalho do certificado agora

autenticado, como o nome comum do certificado ou do tipo de certificado

(cliente ou servidor).

Nota: Todos os comandos a partir de agora serão feitos com

usuário root. Para isto digite o comando “$sudo su” e insira a senha do

usuário quando necessário. Para saber se você está utilizando o usuário root

(super usuário do Linux), verifique nas informações antes do bash ($) do

terminal. Como por exemplo “root@servidor-vpn-firewall$”. Se for

necessário, defina uma senha para o usuário root com o comando: “$sudo

passwd root”.

Para configurar a sua própria Autoridade de Certificação (CA) para

a geração de certificados e chaves para um servidor OpenVPN e para vários

clientes, primeiro copie o diretório “easy-rsa” para “/etc/openvpn” . Isto irá

assegurar que quaisquer alterações aos scripts não serão perdidos quando o

pacote for atualizado. A partir de uma mudança de terminal de usuário root

faça o comando:

$ mkdir /etc/openvpn/easy-rsa/cp -r

/usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-

rsa/

Em seguida, edite o arquivo “/etc/openvpn/easy-

rsa/vars” ajustando o seguinte conteúdo ao seu ambiente de rede:

export KEY_COUNTRY="BR"

export KEY_PROVINCE="SC"

export KEY_CITY="Cidade"

export KEY_ORG="Empresa"

export KEY_EMAIL="usuario@dominio"

Page 79: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Para os comandos de geração de chaves e certificados, é necessário

renomear o arquivo de configuração do OpenSSL (gerador de certificados e

chaves) para os scripts do OpenVPN terem acesso ao seu conteúdo:

$cd /etc/openvpn/easy-rsa/

$ln –s openssl-1.0.0.cnf openssl.cnf

Digite os comando abaixo para gerar a chave e o certificado mestre

da Autoridade Certificadora (CA):

$source vars

$./clean-all

$./build-ca

Para gerar os certificados do servidor:

$./build-key-server NOME_SERVIDOR

Tal como na etapa anterior, a maioria dos parâmetros pode ser

padronizado. Duas outras perguntas exigem respostas positivas (y) "Sign

the certificate? [y/n]" and "1 out of 1 certificate requests certified, commit?

[y/n]".

Parâmetros Diffie Hellman deverão ser gerados para o servidor

OpenVPN:

$./build-dh

Todos os certificados e chaves foram gerados no subdiretório

/keys. A prática comum é copiá-los para “/etc/openvpn/”:

$cd keys/

$cp NOME_SERVIDOR.crt NOME_SERVIDOR.key ca.crt

dh1024.pem /etc/openvpn/

O cliente VPN também vai precisar de um certificado para

autenticar-se ao servidor. Normalmente, você cria um certificado diferente

para cada cliente. Para criar o certificado, digite o seguinte comando como usuário root:

$cd /etc/openvpn/easy-rsa/

$source vars

$./build-key NOME_CLIENTE

Page 80: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Copie os arquivos enumerados abaixo para o cliente usando um

método seguro – no caso deste trabalho, foi feita a cópia dos arquivos para

um pendrive. Para isto, foi feito acesso via conexão de área de trabalho

remota com login e senha do usuário root.

“/etc/openvpn/ca.crt”

“/etc/openvpn/easy-rsa/keys/NOME_CLIENTE.crt”

“/etc/openvpn/easy-rsa/keys/NOME_CLIENTE.key”

Como os certificados e chaves de clientes, só serão necessários na

máquina do cliente, você deve removê-los do servidor.

4.7 Instalando e Configurando o serviço de firewall Shorewall

Requisitos do Sistema: Shorewall requer que você tenha o pacote

iproute/iproute2 instalado. Como usuário root, você pode usar o comando

“swich” para verificar se este programa já está instalado, se estiver

instalado o retorno do comando deve ser como mostrado abaixo:

root@server$which ip

/sbin/ip

Para instalar o Shorewall, efetua o seguinte comando:

$sudo apt-get update

$sudo apt-get install shorewall

No caso deste trabalho, a configuração padrão do servidor é de

duas interfaces físicas. Portanto serão usadas as configurações padrão do

Shorewall de duas interfaces. Estas configurações podem ser obtidas da

seguinte forma:

$cd /etc/shorewall

$sudo cp /usr/share/doc/shorewall/examples/two-interfaces/*

/etc/shorewall/

$sudo mv shorewall.conf shorewall.conf.bkp

$sudo gzip –d /etc/shorewall/*.gz

Page 81: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Shorewall enxerga a rede onde está rodando, como sendo composta

por zonas. Na configuração de duas interfaces, os seguintes nomes de zona

são usados (“/etc/shorewall/zones”):

#ZONE TYPE OPTIONS IN OUT

# OPTIONS OPTIONS

fw firewall

net ipv4

loc ipv4

Note que o Shorewall reconhece o sistema de firewall como uma

zona própria. Quando o arquivo “zones” é processado, o nome da zona do

firewall é armazenada no shell como a variável $FW, a qual pode ser usada

para se referir a zona de firewall por todas as configurações do Shorewall.

Se as suas redes que serão ligadas por uma VPN forem como

mostrado abaixo, então queremos que o sistema na subrede 192.168.0.0/24

esteja apto a se comunicar com o sistema na rede 10.0.0.0/8. Isto é possível

através dos arquivos “/etc/shorewall/tunnels”, “/etc/shorewall/policy” e da

configuração do OpenVPN.

Figura 15 - Arquitetura 1 de Topologia de Rede Virtual Privada.

Para a A1, é necessário alterar o arquivo

“/etc/openvpn/server.conf”, com o seguinte conteúdo no Servidor A:

dev tun

local 189.101.235.18

Page 82: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

remote 186.222.13.187

ifconfig 192.168.99.1 192.168.99.2

route 10.0.0.0 255.0.0.0 192.168.99.2

tls-server

dh dh1024.pem

ca ca.crt

cert Servidor_A.crt

key Servidor_A.key

comp-lzo

verb 5

Já para o Servidor B, o arquivo “/etc/openvpn/server.conf” deve

conter o seguinte conteúdo:

dev tun

local 186.222.13.187

remote 189.101.235.18

ifconfig 192.168.99.2 192.168.99.1

route 192.168.0.0 255.255.255.0 192.168.99.1

tls-server

dh dh1024.crt

ca ca.crt

cert Servidor_B.crt

key Servidor_B.key

comp-lzo

verb 5

Chamaremos esta arquitetura de rede como Arquitetura 1 (A1). Em

cada firewall, devem-se declarar as zonas para representar as subredes

remotas. Assumiremos que esta zona é chamada de “vpn”, para isto teremos

de complementar o arquivo de zona (“/etc/shorewall/zones”).

#ZONE TYPE OPTIONS IN OUT

vpn ipv4

Para a arquitetura de rede conhecida como “Roadwarrior”

(tradução literal – Guerreiro de estrada), cuja chamaremos de Arquitetura 2 (A2), temos o diagrama mostrado abaixo. No Servidor A, da A2, o arquivo

“/etc/openvpn/server.conf” deve conter o seguinte conteúdo:

dev tun

server 192.168.2.0 255.25.255.0

Page 83: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

client-to-client

dh dh1024.crt

ca ca.crt

cert Servidor_A.crt

key Servidor_A.key

port 1194

comp-lzo

user nobody

group nogroup

ping 15

ping-restart 45

ping-timer-rem

persist-tun

persist-key

push “route 192.168.1.0 255.255.255.0”

verb3

Figura 16 - Arquitetura 2 de Topologia de Rede Virtual Privada -

Roadwarrior.

No sistema de gateway (Servidor A), é preciso uma zona para

representar os clientes remoto, chamaremos esta zona de “road”, para isto

teremos de complementar o arquivo de zona (“/etc/shorewall/zones”).

#ZONE TYPE OPTIONS IN OUT

road ipv4

Page 84: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Tanto na A1, quanto na A2, cria-se um arquivo

“/etc/shorewall/tunnels”. Este arquivo abre o firewall de modo que o

tráfego da OpenVPN na porta padrão 1194, protocolo padrão UDP, serão

aceitos de/para o gateway remoto. O conteúdo deste arquivo deve possuir –

a primeira e segunda linhas são referentes à respectivamente A1 e A2:

#TYPE ZONE GATEWAY GATEWAY

ZONE

openvpn net 186.222.13.187

openvpnserver:1194 net 0.0.0.0/0

Para A1, no Servidor 2, o arquivo mostrado acima deve ser:

#TYPE ZONE GATEWAY GATEWAY

ZONE

openvpn net 189.101.235.18

Regras sobre qual tráfego permitir e qual tráfego negar, são

expressas em termos de zonas. Você expressa a política padrão para

conexões de uma zona para outra no arquivo “/etc/shorewall/policy”. Você

define exceções para as políticas padrão no arquivo “/etc/shorewall/rules”.

Para cada requisição de conexão que entra no firewall, a requisição

é checada primeiramente pelo arquivo “/etc/shorewall/rules”. Se nenhuma

regra neste arquivo coincide com a requisição de conexão, então a primeira

política no arquivo “/etc/shorewall/policy” que coincidir com a requisição é

aplicada. Se houver alguma ação comum definida para a política a ser

aplicada no arquivo “/etc/shorewall/actions” ou

“/usr/share/shorewall/actions.std”, então esta ação será executada antes da

política ser aplicada. O propósito da ação comum é dividida em duas:

Ela rejeita ou descarta silenciosamente o tráfego comum que, de

outra forma, iria desordenar/poluir as informações no log – por exemplo, os

Broadcasts.

Ela garante que tráfego crítico para operações corretas são

permitidos através do firewall – por exemplo, tráfego ICMP com

fragmentação necessária.

O arquivo “/etc/shorewall/rules” não foi alterado do exemplo

Shorewall de duas interfaces:

# Don't allow connection pickup from the net

#

Invalid(DROP) net all

Page 85: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

#

# Accept DNS connections from the firewall to the network

#

DNS(ACCEPT) $FW net

#

# Accept SSH connections from the local network for

administration

#

SSH(ACCEPT) loc $FW

#

# Allow Ping from the local network

#

Ping(ACCEPT) loc $FW

#

# Drop Ping from the "bad" net zone.. and prevent your log from

being flooded..

#

Ping(DROP) net $FW

ACCEPT $FW loc icmp

ACCEPT $FW net icmp

#

O arquivo “/etc/shorewall/policy” incluído nos exemplos de duas

interfaces possui as seguintes políticas:

#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST

loc net ACCEPT

net all DROP info

#

# THE FOLLOWING POLICY MUST BE LAST

#

all all REJECT info

Porém gostaríamos que o firewall pudesse se comunicar com

servidores na internete (para o próprio servidor poder se conectar a internet

e atualizar aplicativos, por exemplo). Então foi adicionado entre a terceira e

quarta linha a política “$FW net ACCEPT”. Ainda para permitir a

conexão com o Webadmin, necessitamos permitir conexões no sentido

firewall para rede local e vice-versa. Para isto foi adicionado logo acima da política anterior as seguintes políticas: “$FW loc ACCEPT” e

“loc $FW ACCEPT”. Ainda para o caso das Arquiteturas 1 e 2 do

OpenVPN, adicionamos as políticas “road loc ACCEPT” e

Page 86: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

“vpn loc ACCEPT”. Deixando o arquivo “/etc/shorewall/policy” como

mostrado abaixo:

#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST

loc net ACCEPT

net all DROP info

$FW net ACCEPT

$FW loc ACCEPT

loc $FW ACCEPT

road loc ACCEPT

vpn loc ACCEPT

# THE FOLLOWING POLICY MUST BE LAST

all all REJECT info

Com estas políticas, foi definido que:

São permitidas todas as requisições de conexão da rede local para a

internete.

Descartamos todas as requisições de conexão da internete para o

firewall ou a rede local.

Aceitamos todas as requisições de conexão do firewall para a

internete.

Aceitamos as requisições de conexão do firewall para rede local e

vice versa.

Aceitamos as requisições do “Roadwarrior” para rede local.

Aceitamos as requisições da subrede remota “vpn” para rede local.

Rejeitamos todas as outras requisições de conexão.

A palavra “info” na coluna “LOG LEVEL” para as políticas

“DROP” ou “REJECT” de conexões, indicam todos os pacotes descartados

ou rejeitados sobre estas políticas devem ser registrados em log.

É importante ressaltar que as políticas do Shorewall (e regras)

referem-se a conexões, e não ao sentido do fluxo de pacotes.

Os exemplos de configuração de duas interfaces do Shorewall

assumem que, a interface de rede externa é a “eth0”, enquanto a interface

de rede local é a “eth1”. O que coincide com a configuração escolhida para

este trabalho. Abaixo já foram adicionadas as interfaces referentes às duas arquiteturas do OpenVPN.

Altere as seguintes linhas do arquivo /etc/shorewall/interfaces:

Page 87: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

#ZONE INTERFACE BROADCAST OPTIONS

net eth0 detect dhcp,tcpflags,nosmurfs,routefilter,logmartians

loc eth1 detect dhcp,tcpflags,nosmurfs,routefilter,logmartians

vpn tun0

road tun+ routeback

Definições das opções (OPTIONS):

dhcp : Especificar esta opção quando qualquer um dos itens abaixo

forem verdadeiros:

A interface obtém o endereço IP através de um servidor DHCP.

A interface é usada por um servidor DHCP que está rodando dentro

do firewall.

A interface possui IP estático, mas está em um segment de rede

com muitos clients DHCP.

A interface é uma ponte simples de outra interface (simple bridge)

com um servidor DHCP em uma porta e clientes em outra porta.

tcpflags: Pacotes que chegam nesta interface são checados por

certas combinações ilegais de flags TCP. Pacotes onde forem encontradas

estas flags serão tratados de acordo com a configuração do

TCP_FLAGS_DISPOSITION depois de terem sido registrados de acordo

com a configuração do TCP_FLAGS_LOG_LEVEL.

Nosmurfs: Filtra pacotes por smurfs (pacotes com endereço de

broadcast como fonte). Smurfs serão registrados no log opcionalmente,

baseado na configuração do SMURF_LOG_LEVEL no arquivo

“/etc/shorewall/shorewall.conf”. Depois de registrado no log, os pacotes

são descartados.

routefilter: Habilita o filtro de roteamento do kernel para esta

interface (medida anti-spoofing). Esta opção pode ser habilitada

globalmente na configuração ROUTE_FILTER no arquivo

“/etc/shorewall/shorewall.conf”.

logmartians: Habilita o registro martian do kernel (registra no log

os pacotes com endereço fonte impossível. É altamente recomendável que

se você definir a opção routefilter em uma interface, que também habilite

esta opção.

Page 88: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Mascaramento IP (SNAT): Os endereços reservados pelo RFC

1918 são muitas vezes referidos como não roteáveis, porque os roteadores

de “backbone” da Internet não encaminham pacotes que tenham um

endereço RFC-1918 de destino. Quando um de seus sistemas locais envia

um pedido de conexão a um host de Internet, o firewall deve executar a

tradução do endereço de rede (NAT - Network Address Translation). O

firewall reescreve o endereço de origem no pacote a ser o endereço da

interface externa do firewall, em outras palavras, o firewall faz com que

pareça o anfitrião do destino na Internet, como se o firewall é que estivesse

iniciando a conexão. Isso é necessário para que o host de destino seja capaz

de rotear pacotes de retorno de volta para o firewall (lembre-se que os

pacotes cujo endereço de destino é reservado pela RFC 1918 não podem ser

encaminhados através da Internet para o host remoto). Quando o firewall

recebe um pacote de retorno, ele reescreve o endereço de destino de volta

para o endereço local (ex. 192.168.0.101) e encaminha o pacote para o

computador correto.

Em sistemas Linux, o processo acima é muitas vezes referida

como “IP Masquerading”, mas você também verá o termo “Source

Network Address Translation (SNAT)” usado. Shorewall segue a

convenção usada com Netfilter:

Masquerade descreve o caso em que você deixar o seu sistema de

firewall detectar automaticamente o endereço de interface externa.

SNAT refere-se ao caso em que você especificar explicitamente o

endereço de origem que deseja usar para pacotes de saída da sua rede local.

No Shorewall, tanto Masquerade quando SNAT são configurados

com entradas no arquivo “/etc/shorewall/masq”. Normalmente usa-se o

Masquerade se o IP da internete é dinâmico e SNAT se o IP é estático

(fixo). Segue conteúdo do arquivo mencionado:

#INTERFACE SOURCE ADDRESS PROTO PORT(S) IPSEC

MARK

eth0 10.0.0.0/8,\

169.254.0.0/16,\

172.16.0.0/12,\

192.168.0.0/16

A configuração no Cliente Remoto da A2 segue uma linha similar

ao do Servidor.

Primeiramente temos que definir uma “zona” para representar a

LAN remota em “/etc/shorewall/zones” com o conteúdo “home ipv4”.

Em “/etc/shorewall/interfaces”, o conteúdo “home tun0”.

Page 89: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

Em “/etc/shorewall/tunnels”, o conteúdo “openvpnclient:1194 net

189.101.235.18”.

Em “/etc/shorewall/policy”, o conteúdo “$FW home ACCEPT”.

No Cliente Remoto, da A2, o arquivo “/etc/openvpn/server.conf”

deve conter o seguinte conteúdo:

dev tun

remote 189.101.235.18

up /etc/openvpn/home.up

tls-client

pull

dh dh1024.crt

ca ca.crt

cert Cliente_Remoto.crt

key Cliente_Remoto.key

port 1194

comp-lzo

user nobody

group nogroup

ping 15

ping-restart 45

ping-timer-rem

persist-tun

persist-key

verb3

Registros de Log: Shorewall não mantém um registro de log

próprio, mas depende do registro de log do sistema. Os

seguintes comandos dependem da localização de onde as mensagens

Netfilter são registradas:

“shorewall show log” - Exibe as últimas 20 mensagens de log do

Netfilter.

“shorewall logwatch” - sonda o log em um intervalo de tempo

configurável.

“shorewall dump” - Produz um extenso relatório para inclusão em

relatórios de problemas Shorewall.

É importante que esses comandos funcionem corretamente, porque

quando você encontrar problemas de conexão, quando Shorewall está sendo

executado, a primeira coisa que você deve fazer é olhar para o log do

Netfilter, normalmente você pode resolver o problema rapidamente.

Page 90: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

A localização do registro de log Netfilter no Ubuntu é:

“/var/log/kern.log”.

Importante: A definição LOGFILE não controla onde o log do

Netfilter é mantido, apenas indica sua localização.

Antes de iniciar o Shorewall, tenha certeza que o IPTables foi

desabilitado. Para isto execute os comandos:

$sudo /etc/init.d/iptables stop

$sudo update-rc.d iptables disable

Para o Shorewall poder iniciar automaticamente, é necessário

alterar a linha “STARTUP_ENABLED=Yes” em

“/etc/shorewall/shorewall.conf”.

O firewall é iniciado usando o commando “$sudo shorewall start”, parado usando o comando “$sudo shorewall stop” e reiniciado utilizando o

comando “$sudo shorewall restart”. Quando o firewall é parado, o

roteamento é habilitado nos hosts configurados no arquivo

“/etc/shorewall/routestopped”. Se você quiser remover todos os traços do

Shorewall do seu Netfilter, use o comando “$sudo shorewall clear”. Configurações que não são necessárias neste trabalho, mas que

aqui ficam documentadas:

Serviços de DNS entre o Firewall e o ISP são configurados

automaticamente no arquivo “/etc/resolv.conf”. No entanto,

independentemente de como o serviço de DNS externo é configurado no

firewall, é de responsabilidade do administrador de rede configurar o DNS

interno da rede. Para isto você pode alterar o arquivo mencionado acima,

ou, adicionar a linha “DNS(ACCEPT) loc $FW” no arquivo

“/etc/shorewall/rules”.

Você pode rodar um servidor FTP dentro da rede local, para isto

adicione a linha “FTP(DNAT) net loc:SERVIDOR_FTP” no arquivo

“/etc/shorewall/rules”.

Você pode rodar um servidor Web dentro da rede local, para isto

adicione a linha “Web(DNAT) net loc:SERVIDOR_FTP” no arquivo

“/etc/shorewall/rules”.

De uma maneira geral, as regras de encaminhamento podem ser

criadas da seguinte forma:

DNAT net loc:<endereço IP local do servidor>[:<porta do servidor>]

<protocolo> <porta destino>

Page 91: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

4.8 DNS Dinâmico

4.8.1 Introdução

Cada computador conectado à Internet tem um endereço

IP. Tradução de nomes é o processo de relacionar um nome (como

"www.google.com") para um endereço IP (como .125.19.103 '74 '), de

modo que um site (ou outro serviço) em um computador pode ser acessado

usando um nome fácil de lembrar, ao invés do número do endereço IP do

computador. Tradução de nomes é implementado por meio de um banco de

dados distribuído conhecido como Sistema de Nome de Domínio (DNS -

Domain Name System) . Esta base de dados é implementada na internet por servidores de

nomes DNS, que mantem o controle de registros de DNS e troca

informações um com os outros para manter a consistência. Cada pedido de

um nome (ou seja, um navegador web) é então direcionado para um desses

servidores de nome. A maioria dos servidores na Internet tem um endereço fixo (estático)

IP que nunca muda. O registro DNS para este nó só vai mudar com baixa

frequência. No entanto, para muitos usuários domésticos é atribuído um

endereço IP que muda com alta frequência. Estes endereços IP

dinâmicos são atribuídos por um provedor de serviços de internete (ISP –

Internet Service Provider). Isto se torna um desafio para traduzir um nome a

um desses endereços IP. Uma vasta quantidade de servidores de nomes DNS oferece um

método para atualizar o banco de dados do DNS com um nome IP de

tradução dinâmica. Isso é feito usando um pequeno programa no seu

computador ou um roteador local. Estes serviços de DNS dinâmico permitem que o usuário escolha

um nome de host, e defina um endereço IP inicial para corresponder ao

nome do host. O utilitário de software, em seguida, verifica periodicamente

se há uma mudança no endereço IP da interface conectada a internete, e

quando um novo endereço IP é descoberto, ele atualiza o banco de dados de

DNS dinâmico para refletir essa mudança.

4.8.2 Registrar IP com um provedor de DNS dinâmico

Page 92: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

DNS exige que um servidor de nome em algum lugar da Internet

acompanhe "onde você está" (ou seja, o seu endereço IP atual). Ou seja, seu

banco de dados deve estar sempre atualizado para garantir que seu “hostname”

corresponda sempre ao seu endereço IP atual. Para utilizar um desses serviços de DNS dinâmico, é necessário

efetuar o registro em seus serviços. Aqui está uma seleção desses serviços.

DynDNS - http://dyn.com/

No-IP - http://www.noip.com/

EasyDNS - https://web.easydns.com/

ZoneEdit - http://www.zoneedit.com/

DNSPark - http://www.dnspark.com

NameCheap - http://www.namecheap.com

DSLReports - http://www.dslreports.com

FreeDNS - http://freedns.afraid.org/

OpenDNS - http://www.opendns.com/

Ao se cadastrar, você irá selecionar um nome de usuário e senha, bem

como um nome de host que você vai usar como o nome DNS (para permitir o

acesso externo ao seu aparelho usando o nome do host). Muitos provedores de DNS dinâmico oferecem uma seleção de nomes

de hosts disponíveis para uso livre com o seu serviço. No entanto, com um

plano pago, qualquer “hostname” (incluindo o seu próprio nome de domínio

registrado) pode ser usado.

4.8.3 Utilitário de software para realizar atualizações de DNS

dinâmico

Existem vários utilitários disponíveis. Cada serviço de DNS

dinâmico pode funcionar melhor com um utilitário específico.

No-IP

O gerenciador de DNS dinâmico compatível com o site

http://www.noip.com, é distribuído em uma versão não compilada, deve-se

primeiro instalar o compilador da linguagem C/C++ executando os

comandos:

$sudo apt-get update

$sudo apt-get install build-essentials

Page 93: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

A versão do compilador “gcc” e do montador “make” podem ser

verificados com os seguinte comandos: “$gcc –v” e “make –v”.

netadmin@servidor-vpn-firewall:~$ gcc -v

Using built-in specs.

COLLECT_GCC=gcc

COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6/lto-wrapper

Target: x86_64-linux-gnu

Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-

1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-

languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --

enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib -

-without-included-gettext --enable-threads=posix --with-gxx-include-

dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-

clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-

gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-

arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-

linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu

Thread model: posix

gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)

netadmin@servidor-vpn-firewall:~$ make -v

GNU Make 3.81

Copyright (C) 2006 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.

There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR

A PARTICULAR PURPOSE.

This program built for x86_64-pc-linux-gnu

Para obter o programa no-ip de sincronização de IP para DNS

dinâmico, execute o comando:

$wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz

Para o extrair e compilar, execute a sequência de comando no

terminal:

$tar xf noip-duc-linux.tar.gz

$cd noip-2.1.9-1/

$sudo make install

Você terá de selecionar a interface de rede conectada à rede

externa, neste caso a resposta é “0” (zero). Insira o nome de usuário e a

Page 94: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

senha previamente cadastrados no site oficial. Insira o tempo de frequência

de atualização, neste caso foi inserido 600 segundos (10 minutos), visto que

o IP dinâmico da internete não é substituído com frequência alta. A

instalação também perguntará se você deseja rodar algo quando houver uma

atualização bem sucedida, neste caso foi selecionado “n” (não). E por fim,

ele avisará que foi criado com sucesso um arquivo de configuração em

“/usr/local/etc/no-ip2.conf”.

Auto configuration for Linux client of no-ip.com.

Multiple network devices have been detected.

Please select the Internet interface from this list.

By typing the number associated with it.

0 eth0

1 eth1

0

Please enter the login/email string for no-ip.com giovanni2s

Please enter the password for user 'giovanni2s' ********

Only one host [sarani.no-ip.biz] is registered to this account.

It will be used.

Please enter an update interval:[30] 600

Do you wish to run something at successful update?[N] (y/N) n

New configuration file '/tmp/no-ip2.conf' created.

mv /tmp/no-ip2.conf /usr/local/etc/no-ip2.conf

Finalizado, agora seu endereço de IP público estará sendo

redirecionado automaticamente para o domínio cadastrado gratuitamente no

site www.no-ip.com. Para testar se está funcionando, basta executar o

comando abaixo (para interromper as sequências de ping, pressione as

teclas [ctrl]+[c]):

$ping <domínio cadastrado>

Para uma configuração bem sucedida o retorno do comando deve ser:

Page 95: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

netadmin@servidor-vpn-firewall:~/noip-2.1.9-1$ ping sarani.no-ip.biz

PING sarani.no-ip.biz (186.222.2.123) 56(84) bytes of data.

64 bytes from bade027b.virtua.com.br (186.222.2.123): icmp_req=1 ttl=63

time=20.6 ms

64 bytes from bade027b.virtua.com.br (186.222.2.123): icmp_req=2 ttl=63

time=16.0 ms

64 bytes from bade027b.virtua.com.br (186.222.2.123): icmp_req=3 ttl=63

time=13.8 ms

64 bytes from bade027b.virtua.com.br (186.222.2.123): icmp_req=4 ttl=63

time=23.3 ms

64 bytes from bade027b.virtua.com.br (186.222.2.123): icmp_req=5 ttl=63

time=15.4 ms

64 bytes from bade027b.virtua.com.br (186.222.2.123): icmp_req=6 ttl=63

time=16.1 ms

64 bytes from bade027b.virtua.com.br (186.222.2.123): icmp_req=7 ttl=63

time=15.4 ms

^C

--- sarani.no-ip.biz ping statistics ---

7 packets transmitted, 7 received, 0% packet loss, time 6008ms

rtt min/avg/max/mdev = 13.880/17.284/23.348/3.139 ms

Feito esta configuração, agora você pode substituir, nos campos das

configurações do OpenVPN, onde aparecem o seu IP público, pelo domínio

cadastrado.

Page 96: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

5 Conclusão:

Apesar de todo esforço, todos os reinícios da implementação da

parte prática deste trabalho, foi uma enorme satisfação poder o ter

concluído. O produto final ficou bem configurado e 100% funcional. Em

suma, neste trabalho foi apresentados o funcionamento das tecnologias de

Firewall e VPN, foram apresentadas também, diversas aplicações destas

tecnologias com código aberto, procurou-se utilizar uma linguagem clara e

objetiva, onde até os menos entendidos poderão recorrer a este trabalho

para obter um melhor entendimento da necessidade, operação e

implementação das tecnologias. Por fim, foi desenvolvido um servidor

aplicando uma tecnologia de VPN e outra de Firewall, juntamente com

outros serviços necessários. A aplicação foi bem sucedida e serve de

exemplo para as diversas organizações que desejarem aplicar esta solução

em suas redes de computadores. A figura 16 demonstra como ficou a

implementação final do servidor, juntamente com os serviços instalados:

Figura 17 - Resumo do Servidor Implementado

Interface de Rede Eth0

Interface de Rede Eth1

Firewall ShoreWall

Roteador DHCP

Modem ADSL

VPN OpenVPN Servidor de Certificadosdo OpenVPN

Serviço de DNS Dinâmico

Rede de Computadores

Servidor Implementado

Internete

XFCE v4

Interface Gráfica

Acesso da Área de Trabalho Remota

XRDPServiço

SSH

WebAdmin

Gerenciamento Remoto por Navegador Web

Page 97: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

5.1 Resumo da Parte Prática

Este capítulo é referente aos recursos instalados no servidor,

enumerados na figura 17.

O sistema operacional do servidor é Linux (Ubuntu Server 12.04.3

LTS), o único serviço habilitado no servidor foi o SSH para conexões

remotas ao shell de comandos.

O servidor possui duas interfaces de rede. A interface eth0 (placa

de rede onboard) está conectada à rede pública (internete) enquanto que a

interface eth1 (placa de rede offboard) está conectada à rede local. Assim

todo tráfego que atravessa da rede local para pública é analisada pelo

serviço de firewall instalado.

Foi instalado também o serviço de DHCP, para habilitar e

gerenciar a distribuição de IPs na rede local pelo servidor. Este processo

também é necessário para permitir o encaminhamento de pacotes de dados

de uma interface de rede à outra. Isto caracteriza o servidor como um

roteador. Foi adicionado ainda o serviço de DNS dinâmico para redes sem

IP público estático.

Para facilitar o manuseio dos serviços oferecidos no servidor, ainda

foi instalado o serviço de conexão remota (XRDP) juntamente com

interface gráfica (XFCE). Ainda foi instalado o WebAdmin, que permite

gerenciar e controlar diversos serviços do servidor, diretamente por

qualquer navegador web dentro da rede.

Dando continuidade a meta do trabalho, foi implantado o serviço

de VPN (OpenVPN), onde é necessário definir certificados e chaves de

autenticação, por isso, este servidor também possui características de

servidor de certificados.

O serviço de firewall instalado foi o Shorewall. Como ele é um

firewall de inspeção dinâmica de pacotes, ele é orientado à conexões. As

conexões permitidas são as seguintes:

Firewall Rede Local

Rede Local Internete

Firewall Internete

RoadWarrior Rede Local

VPN Rede Local

Onde RoadWarrior é o nome da extremidade de conexão de

usuário VPN fora da rede local; e VPN é o nome da extremidade de

conexão de um servidor cliente de rede de computadores. Ressaltando que

ele considera o próprio Firewall como uma extremidade de conexão.

Page 98: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

5.2 Trabalhos futuros

Implantar um servidor de diretório de domínios, com LDAP para

restringir acesso e dar permissões exclusivas a usuários da rede de

computadores.

Implantar um Servidor Samba (para comunicação, acesso e troca

de arquivos entre computadores com sistemas operacionais diferentes) com

HDs em RAID.

Backup de arquivos via rede (sugere-se utilizar o programa Bacula)

e também a cópia de segurança de imagens de sistemas operacionais da

rede, para fácil formatação dos PCs.

Instalação de um servidor LAMP (Linux Apache MySQL PHP),

para implantar um website (em Joomla) na intranet, acessado de fora

somente por VPN, com calendário, chat, notícias internas, blog, wiki,

helpdesk, etc...

Servidor de envio e recebimento de e-mails (SMTP, POP, IMAP).

Entre outras funcionalidades para ampliar a capacidade das redes

de computadores empresariais, de pesquisa e desenvolvimento, e até

mesmo, redes domésticas.

Page 99: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

6 Referências Bibliográficas:

[1] Scambray, J., Mcclure, S. and Kurtz G. (2001) Hacking Exposed: Network Security and Solutions, Osborne/McGraw-Hill.

[2] Tipton, H.F. and Krause, M. (2000) Information Security Management Handbook (4th Edition), Auerbach Publications

[3] Zacker, C. (2001) Networking: The Complete Reference,

Osborne/McGraw-Hill

[4] Firkhan Ali, H. A etl. , “Development Of Dual-Factor Authentication

For Web Based Application Using SMS”, Proceedings of the ICITS

2008, Kusadasi, Turkey, 2008.

[5] Firkhan Ali, H. A etl., “Development of Vulnerability and Security

Reporting System for Computer System and Networking” in SITIA

2008: Proceedings of the Seminar In The Intelligent Applications 2008,

Surabaya, Indonesia, 2008.

[6] Firkhan Ali, H. A., “ An Analysis of Possible Exploits in the Computer

Network’s Security “ in ISC 2005 : Proceedings of the International

Science Congress 2005. PWTC, Kuala Lumpur, 2005. pp.338.

[7] Deraison, R., Haroon Meer, Temmingh, R., Walt, C., Raven Alder,

Alderson, J., Johnston, A., Theall, G. A. (2004). “Nessus Network

Auditing.” Syngress.

[8] Bauer, M. (2001). “Paranoid Penguin: Seven Top Security Tools” Linux Journal. Volume 2004 , Isu 118 (Februari 2004).

[9] Guomin Yang, Duncan S. Wong, Huaxiong Wang dan Xiaotie Deng

(2006). “Formal Analysis and Systematic Construction of Two-factor

Authentication Scheme.” City University of Hong Kong, China.

[10] Richard A. Kemmerer et al., (2002), Intrusion Detection: A Brief

History and Overview, SECURITY & PRIVACY–2002, Reliable

Software Group, Computer Science Department, University of

California Santa Barbara.

Page 100: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

[11] Wenke Lee et al., (2000), A Framework for Constructing Features and

Models for Intrusion Detection Systems, ACM Transactions on

Information and System Security (TISSEC), Volume 3 Issue 4, ACM Press.

[12] William Stallings, “Cryptography and network Security”, 3rd edition,

Prentice Hall,2003.

[13] R. Venkateswaran, “Virtual Private Networks,” IEEE Potentials, Mar.

2001.

[14] J. Epplin, “Peeking Under the Hood of SnapGear’s uClinux-powered

VPN Appliances,” LinuxDevices.com, Jan. 2003,

[15] C. J. C. Pena and J. Evans, “Performance Evaluation of Software

Virtual Private Networks (VPN),” Proc. 25th

Annual IEEE Conf. Local

Comp. Networks, Nov. 2000,

pp. 522–23.

[16] J. P. McGregor and R. B. Lee, “Performance Impact of Data

Compression on Virtual Private Network Transactions,” Proc. 25th Annual

IEEE Conf. Local Comp. Networks, 2000, pp. 500–10.

[17] O. Titz, “Why TCP over TCP Is a Bad Idea,”

http://sites.inka.de/sites/bigred/devel/tcp-tcp.html

[18] H. Lipmaa, “Crypto Hardware Pointers,”

http://www.tcs.hut.fi/~helger/crypto/link/practice/hardware.html

[19] B. Schneier, “Security in the Real World: How to Evaluate Security

Technology,” excerpts from a general session presentation at CSI’s NetSec

Conf., St. Louis, MO, June 1999; http://www.schneier.com/essay-

realworld.html

[20] J. De Clercq and O. Paridaens, “Scalability Implications of Virtual

Private Networks,” IEEE Commun. Mag., vol. 40, no. 5, May 2002, pp.

151–57.

[21] O. Kolesnikov and B. Hatch, “Building Linux Virtual Private

Networks,” New Riders, 2001.

Page 101: SERVIDOR DE BORDA DE CÓDIGO LIVRE PARA CONEXÃO REMOTA E SEGURANÇA DE REDE · REMOTA E SEGURANÇA DE REDE ... Para reforçar a segurança da rede, seria ideal ter um firewall de

[22] Jürgen Schmidt, “A death blow for PPTP”, http://www.h-

online.com/security/features/A-death-blow-for-PPTP-1716768.html

[23] S. Khanvilkar and A. Khokhar, “Virtual Private Networks: An

Overview with Performance Evaluation”.

Ubuntu Help Documentation

http://help.ubuntu.com/

OpenVPN Documentation

https://openvpn.net/index.php/open-source/documentation.html

Shorewall Documentation

http://www.shorewall.net/Documentation_Index.html