74
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA CURSO SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES MAURICIO KUNITAKI IPTABLES: UMA OPÇÃO PARA GERENCIAMENTO DE SEGURANÇA, TRÁFEGO DE REDE E QUALIDADE DE SERVIÇO LINS SP 2º SEMESTRE/2013

CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA

PAULA SOUZA

FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA

CURSO SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES

MAURICIO KUNITAKI

IPTABLES: UMA OPÇÃO PARA GERENCIAMENTO DE SEGURANÇA, TRÁFEGO DE REDE E QUALIDADE DE SERVIÇO

LINS – SP

2º SEMESTRE/2013

Page 2: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

2

CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA

PAULA SOUZA

FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA

CURSO SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES

MAURICIO KUNITAKI

IPTABLES: UMA OPÇÃO PARA GERENCIAMENTO DE SEGURANÇA, TRÁFEGO DE REDE E QUALIDADE DE SERVIÇO

Trabalho de Conclusão de Curso apresentado à Faculdade de Tecnologia de Lins para obtenção do Título de Tecnólogo em Redes de Computadores.

Orientador: Prof. Me. Alexandre Ponce de Oliveira

LINS – SP

2º SEMESTRE/2013

Page 3: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

3

MAURICIO KUNITAKI

IPTABLES: UMA OPÇÃO PARA GERENCIAMENTO DE SEGURANÇA,

TRÁFEGO DE REDE E QUALIDADE DE SERVIÇO

Trabalho de Conclusão de Curso apresentado à Faculdade de Tecnologia de Lins, como parte dos requisitos necessários para a obtenção do título de Tecnólogo em Redes de Computadores sob orientação do Prof. Me. Alexandre Ponce de Oliveira.

Data de aprovação:____/____/____

___________________________________ Orientador (Prof. Me. Alexandre Ponce de Oliveira)

___________________________________

Examinador 1

___________________________________

Examinador 2

Page 4: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

4

A minha família que sempre me apoiou. A minha namorada Elisangela, que acreditou em mim mesmo quando nem eu acreditava e com seu amor me deu forças para continuar. A minha avó Rosa in memorian.

Page 5: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

5

AGRADECIMENTOS

A Deus, que me deu o dom da vida, me capacitou e permitiu a realização

desse sonho.

Agradeço especialmente ao meu orientador professor Alexandre Ponce de

Oliveira pelos ensinamentos, incentivos, esclarecimentos e principalmente por

despertar em mim o gosto pela área de redes de computadores. Agradeço também

ao professor Julio Lieira que além de contribuir com este trabalho e enriquecimento

no aprendizado durante esses três anos, foi muito importante no meu crescimento

pessoal.

Aos amigos Cesar e Jairo pelo companheirismo e apoio nos bons e maus

momentos.

Agradeço a todos os professores e colegas de classe que de alguma maneira

contribuíram para a conclusão desse ciclo da minha vida.

Tenho certeza que vou levar os valores, aprendizados e amizades adquiridas

comigo para sempre.

Page 6: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

6

RESUMO

O objetivo deste trabalho foi avaliar a ferramenta iptables na área de segurança, gerenciamento de tráfego e qualidade de serviço em redes de computadores. O gerenciamento dos recursos e a necessidade de preservar a qualidade dos serviços de rede se tornam mais importantes à medida que são essenciais para a realização de tarefas, que hoje, agilizam processos e diminuem custos, principalmente em ambientes empresariais. Desta forma procurou-se apresentar uma opção de ferramenta livre que pode ser utilizada em diferentes aspectos da gerência de rede de computadores. O iptables é uma ferramenta nativa do Kernel do Linux, desenvolvida para manipulação das tabelas do módulo Netfilter e não requer grande poder computacional. Foram aplicadas técnicas de marcação de pacotes com o iptables, que em conjunto a outras ferramentas livres ofereçam um resultado satisfatório nos aspectos avaliados. Neste trabalho foram abordados conceitos de redes de computadores, qualidade de serviço e segurança e, apresentada pesquisa sobre as ferramentas iptables, Traffic Control e a disciplina de fila Hierarquical Token Bucket. O ambiente de testes foi estruturado através do uso de máquinas virtuais, para simular as máquinas: Servidor, Cliente e Atacante. Para o desenvolvimento dos testes faz-se necessário um Sistema Operacional Linux com Kernel na versão 4.2 ou superior.

Palavras–Chave: iptables, QoS, gerenciamento de rede, tráfego de rede, segurança.

Page 7: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

7

ABSTRACT

The objective of this work was to evaluate the tool iptables in the area of security, traffic management and quality of service. The management of resources and the need to preserve the quality of the network services are becoming more important the extent that they are essential for the achievement of tasks, which today, streamline processes and reduce costs, especially in corporate environments. In this way we sought to introduce an option for low-cost tool that can be used in different aspects of the management of network computers. The iptables is a native tool from the Linux Kernel, developed for manipulation of tables of Netfilter module and it doesn’t require large computational power. Techniques for packet marking with the iptables, which in conjunction with other free tools offer a satisfactory result to the aspects assessed were applied. In this work were discussed concepts of computer networks, quality of service and safety and, presented research on the tools iptables, Traffic Control and discipline of queue Hierarquical Token Bucket. The test environment were structured through the use of virtual machines to simulate the machines: Server, Client, and Attacker. For the development of tests it is necessary a Linux Operating System with Kernel version 4.2 or higher.

Keywords: iptables, free software, network management, Linux.

Page 8: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

8

LISTA DE ILUSTRAÇÕES

Figura 1.1 – Camadas do modelo OSI

Figura 1.2 – Camadas do modelo TCP/IP

Figura 1.3 – Campos do datagrama IP.

Figura 2.1 – Filas no roteador

Figura 2.2 – Funcionamento do protocolo RSVP

Figura 3.1 – Tipos de incidentes reportados á CERT.br em 2012

Figura 3.2 – Posicionamento do firewall na rede de computadores

Figura 4.1 – Localização do Kernel

Figura 4.2 – Esquema da tabela Filter

Figura 4.3 – Esquema da Tabela NAT

Figura 5.1 – Organização da rede de testes

Figura 5.2 – Cenário de testes de segurança

Figura 5.3 – Handshake de três vias

Figura 5.4 – Varredura de portas com êxito

Figura 5.5 – Listagem das regras ativas do iptables no firewall

Figura 5.6 – Varredura de portas sem êxito

Figura 5.7 – Log do sistema operacional

Figura 5.8 – Lista de portas alteradas

Figura 5.9 – Log de Ping Flood

Figura 5.10 – Hierarquia de classes no HTB

Figura 5.11 – Teste de velocidade Host A

Figura 5.12 - Teste de velocidade Host B

Figura 5.13 - Teste de QoS no serviço de FTP

Page 9: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

9

LISTA DE TABELAS

Tabela 5.1 - Configuração das máquinas virtuais utilizadas

Tabela 5.2 – Definições de parâmetros do TC

Page 10: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

10

LISTA DE ABREVIATURAS E SIGLAS

ANSI - American National Standards Institute

CERT - Centro de estudos, reposta e tratamento de incidentes de segurança no

Brasil

CBQ - Class Based Queueing

DNS - Domain Name System

DOS - Denial of Service

FCC - Federal Communications Commission

FTP - File Transfer Protocol

HTB - Hierarquical Token Bucket

ICANN - Internet Corporation for Assigned Names and Numbers

ISO - International Organization for Standardization

IPV4 – Internet Protocol Version 4

IPV6 – Internet Protocol Version 6

IEEE - Institute of Electrical and Electronics Engineers

IETF - Internet Engineering Task Force

IP - Internet Protocol

ISP - Internet Service Provider

LAN - Local Area Network

MAN - Metropolitan Area Network

NAT - Network Address Translation

PFIFO - Packet First in First Out

QoS – Quality of Service

OSI - Open System Interconnection

RSVP - Resource Reservation Protocol

SLA - Service Level Agreement

SFQ - Classless Queuing Disciplines

Page 11: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

11

SMTP - Simple Message Transfer Protocol

SSH – Security Shell

TC - Traffic Control

TCP - Transfer Control Protocol

TOS - Type of Service

ITU – International Telecommunication Union

VoIP - Voice over Internet Protocol

WAN - Wide Area Network

Page 12: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

12

LISTA DE SIMBOLOS

@ - Arroba

# - Sustenido

Page 13: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

13

SUMÁRIO

INTRODUÇÃO .......................................................................................................... 14

1 SOFTWARE DE REDES ........................................................................................ 16

1.1 ARQUITETURA DE REDE .............................................................................. 16

1.2 CAMADAS ....................................................................................................... 17

1.2.1 Interface da camada ..................................................................................... 17

1.2.2 Serviços das camadas .................................................................................. 17

1.2.3 Serviço com conexão e sem conexão .......................................................... 18

1.2.4 Vantagens e desvantagens das camadas .................................................... 19

1.3 PROTOCOLOS ............................................................................................... 19

1.3.1 Padronização de protocolos ......................................................................... 20

1.4 Modelos de referência ..................................................................................... 21

1.4.1 Modelo de referência OSI ............................................................................. 21

1.4.2 Modelo TCP/IP ............................................................................................. 23

1.4.3 Comparações entre modelo OSI e TCP/IP ................................................... 24

1.5 PROTOCOLO IP ............................................................................................. 25

1.5.1 ENDEREÇO IP ............................................................................................. 26

2 QOS ....................................................................................................................... 30

2.1 SURGIMENTO DA QoS .................................................................................. 30

2.2 DEFINIÇÃO DE QOS ...................................................................................... 31

2.3 PARÂMETROS DE QOS ................................................................................. 32

2.4 TÉCNICAS DE QOS ........................................................................................ 33

2.4.1 Técnicas de controle de congestionamento .................................................. 33

2.4.2 Serviços integrados e serviços diferenciados ............................................... 34

3 SERVIÇOS DE REDE ............................................................................................ 37

3.1 CONTROLE DE TRÁFEGO ............................................................................. 37

3.2 FIREWALL ....................................................................................................... 38

3.2.1 Firewall filtro de pacotes ............................................................................... 39

4 IPTABLES .............................................................................................................. 41

4.1 KERNEL .......................................................................................................... 41

4.2 MÓDULO NETFILTER ..................................................................................... 42

Page 14: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

14

4.3 TABELAS ......................................................................................................... 42

4.3.1 Tabela Filter .................................................................................................. 42

4.3.2 Tabela NAT ................................................................................................... 43

4.3.3 Tabela Mangle .............................................................................................. 44

4.4 REGRAS .......................................................................................................... 44

4.5 CHAIN .............................................................................................................. 44

4.6 FERRAMENTA IPTABLES .............................................................................. 45

4.6.1 Comandos .................................................................................................... 45

4.6.2 Alvo ............................................................................................................... 48

4.6.3 Ação .............................................................................................................. 49

5 IMPLEMENTAÇÃO ................................................................................................ 49

5.1 CENÁRIO ........................................................................................................ 50

5.2 SEGURANÇA .................................................................................................. 51

5.2.1 Ataque de varredura de portas ..................................................................... 51

5.2.2 Teste de segurança contra ataque de varredura de portas .......................... 52

5.2.3 DoS: Ping Flood ............................................................................................ 55

5.2.4 Testes de segurança contra ataque de Ping Flood ...................................... 56

5.3 CONTROLE DE TRÁFEGO ............................................................................. 57

5.3.1 Cenário ......................................................................................................... 57

5.3.2 Ferramentas para controle de tráfego ........................................................... 58

5.3.3 Testes de controle de tráfego ....................................................................... 58

5.4 QoS.................................................................................................................. 63

5.4.1 Teste de qualidade de serviço ...................................................................... 63

CONCLUSÃO ............................................................................................................ 66

REFERÊNCIAS BIBLIOGRÁFICAS .......................................................................... 67

ANEXOS ................................................................................................................... 69

Page 15: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

14

INTRODUÇÃO

A importância de se garantir qualidade e segurança em uma rede de

computadores é inquestionável, hoje ela é um dos principais meios de comunicação

e interliga milhões de pessoas ao redor do mundo por diversos dispositivos e através

de diferentes meios. Segundo a International Telecommunication Union União (ITU,

2012), em 2011 haviam 2,3 bilhões de pessoas online na Internet.

Serviços oferecidos pelas redes como o compartilhamento de arquivo,

Internet e e-mail são constantemente utilizados por empresas e são essenciais para

o seu funcionamento e competitividade no mercado. A grande demanda na

utilização desses serviços gera um intenso tráfego nas transmissões de dados em

redes de computadores, esses dados por sua vez precisam ser transportados de

forma rápida, segura e de maneira que não cause lentidão para os usuários

interligados na rede, assim evita-se o congestionamento. (TANENBAUM;

WETHERALL, 2011)

Segundo Bernardes (2011), na busca de um melhor desempenho na rede e

nos serviços que são disponibilizados, bem como a segurança das informações, os

profissionais responsáveis pelo gerenciamento de redes de computadores buscam

ferramentas automatizadas que os auxiliem neste gerenciamento para identificar os

gargalos e evitar o congestionamento em redes de computadores, uma vez que

realizar esse trabalho de forma manual é demorado, pouco efetivo e custoso para a

empresa.

O objetivo principal deste trabalho é demonstrar o funcionamento da

ferramenta livre iptables, nativa no Kernel do Linux a partir da versão 2.4, em

diferentes áreas da administração de redes, como por exemplo a área de segurança,

gerenciamento de tráfego e Quality of Service (QoS) ou qualidade de serviço.

Para atingir o objetivo principal foram realizados estudos sobre redes de

computadores e sobre as áreas mencionados a fim de compreender seus

funcionamentos, a partir disso, implementar regras que atinjam um nível aceitável de

qualidade e segurança nas respectivas áreas.

Este trabalho está organizado da seguinte forma: o primeiro capítulo descreve

os conceitos relacionados a redes de computadores, o segundo capítulo aborda a

Page 16: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

15

definição e as ferramentas existentes de QoS, o terceiro capítulo descreverá o que é

e como atuam o serviço o Firewall e controle de tráfego. O quarto capítulo descreve

a ferramenta iptables e suas características.

O estudo de caso é descrito no quinto capítulo, onde é apresentado o cenário

onde os testes foram aplicados, as técnicas utilizadas e os resultados obtidos, por

fim tem-se as considerações finais do trabalho.

Page 17: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

16

1 SOFTWARE DE REDES

Inicialmente, quando a principal função dos computadores era o

processamento de cálculos matemáticos, todo o investimento em tecnologia se

destinava aos hardwares, visto que o tipo de informação processado não carecia de

muito cuidado. Com o advento de novos serviços aos computadores e a interligação

deles por meio de redes de computadores, informações mais complexas começaram

a ser processadas e compartilhadas, desse modo tornou-se inviável todo o processo

de comunicação depender somente de hardwares, assim surgiu a necessidade dos

softwares nas redes de computadores. (FOROUZAN, 2008)

Assim sendo, as redes de computadores são formadas por um conjunto de

hardwares e softwares. Hardwares de rede é toda infraestrutura física usada no

transporte de sinais de um local para o outro e softwares são programas escritos em

linguagem de alto nível que viabilizam essa comunicação, são os protocolos.

(FOROUZAN, 2008)

Este capítulo tem como objetivo mostrar os conceitos da arquitetura dos

softwares de rede e a finalidade de suas camadas, a importância dos protocolos e

dos modelos de arquitetura.

1.1 ARQUITETURA DE REDE

Nos anos 60, muitos fabricantes de computadores tinham mais de uma linha

de produto que eram totalmente incompatíveis entre si. Para os fabricantes acabava

sendo muito custoso o desenvolvimento e a manutenção dessas duas linhas

completamente diferentes e entre os usuários havia o problema de incompatibilidade

de softwares. Para resolver isso, a IBM criou o System/360, máquina que era

compatível por software, pois tinham a mesma arquitetura e se diferenciavam

somente no preço e desempenho, assim os programas executariam em qualquer

máquina, solucionando os dois problemas. (TANENBAUM; WOODHULL, 2002)

Em suma, a arquitetura de rede tem o mesmo propósito. Ela é o conjunto de

camadas e protocolos que contem informações suficientes para que o

desenvolvedor construa um hardware ou software para cada camada de forma que

ele funcione corretamente de acordo com o protocolo utilizado, garantindo, dessa

maneira, interoperabilidade entre todas as entidades.

Page 18: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

17

1.2 CAMADAS

As camadas são estruturadas hierarquicamente, ou seja, uma camada sobre

a outra formando uma pilha. Cada uma possui seus próprios protocolos.

Características como número de camadas, nome e função se diferem de uma

arquitetura para outra.

Segundo Kurose e Ross (2010), uma camada de protocolo pode ser

implementada em software, em hardware ou em uma combinação dos dois. Como

cada camada oferece um serviço, ela pode atuar em lugares diferentes uma das

outras, comumente as camadas inferiores de uma hierarquia atuam nos hardwares e

as camadas mais altas nos softwares de aplicação.

A comunicação entre as camadas se dá entre os níveis, a camada 2 da

máquina emissora, por exemplo, se comunica com a camada 2 da máquina

receptora. Apesar das camadas só se comunicarem com o seu par, esta

comunicação não acontece diretamente, os dados são transferidos pelas camadas

até a camada mais baixa onde se encontra o meio físico e por ela ocorre a

comunicação de fato. (TANENBAUM; WETHERALL, 2011)

No lado emissor cada camada utiliza o serviço da camada imediatamente

inferior a ela, de cima para baixo, já no lado receptor a ordem inverte, cada camada

faz uso do serviço da camada superior, de baixo para cima. (FOROUZAN, 2008)

1.2.1 Interface da camada

Entre cada nível de camada uma interface define quais serviços a camada

inferior deve prestar a superior, essa definição precisa ser bem clara, pois faz com

que o volume de informações diminua entre as camadas e facilite a substituição de

implementação de uma camada por uma implementação completamente diferente.

(TANENBAUM; WETHERALL, 2011)

1.2.2 Serviços das camadas

Segundo Tanenbaum e Wetherall (2011), um serviço é um conjunto de

operações que a camada oferece à camada localizada acima dela. O serviço

Page 19: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

18

determina quais operações a camada está apta para executar em nome de seus

usuários.

Tanenbaum e Wetherall (2011), acrescentam algumas questões importantes

relacionadas aos serviços das camadas, primeiramente todas as camadas

necessitam identificar os transmissores e receptores. Constantemente as redes são

constituídas por vários computadores, assim sendo, é necessário um modo em que

um processo de uma máquina possa identificar com quem ele deseja estabelecer

comunicação.

Por conseguinte, se faz necessário as camadas e aos protocolos que nelas

atuam estabelecer como ocorrerá a transferência de dados. Os dados podem ser

transmitidos em ambos os sentidos ou em apenas uma direção.

Tanenbaum e Wetherall (2011), citam também a questão de controle de erros,

os circuitos de comunicação são passiveis a interferência, assim, comprometendo a

integridade dos dados. O receptor deve ter a capacidade de notificar o transmissor

quais mensagens foram recebidas com erros e quais não.

Por fim, Tanenbaum e Wetherall (2011), consideram, além dos citados, mais

dois problemas que precisam ser resolvidos em diversos níveis de camadas, a

velocidade que um transmissor envia mensagens e o tamanho das mensagens

enviadas. Para impedir que um transmissor rápido envie uma quantidade excessiva

de dados a um receptor mais lento, são utilizadas técnicas de controle de fluxo. Já

quando um pacote muito grande é recebido, é preciso fragmentá-lo e remontá-lo ao

fim da transmissão.

1.2.3 Serviço com conexão e sem conexão

Tanenbaum e Wetherall (2011), citam dois tipos de serviço que uma camada

pode prestar a camada superior, os serviços com conexão e os serviços sem

conexão.

Nos serviços com conexão é traçado uma rota previamente entre as duas

máquinas que desejam trocar informações, todos os dados percorrem o mesmo

caminho em todas as comunicações entre essas duas máquinas, normalmente os

dados chegam na ordem em que foram enviados.

Page 20: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

19

Já os serviços sem conexão, onde cada fragmento de dado pode percorrer

um caminho diferente até chegar ao destino. Cada pacote tem o endereço do

destino e o roteamento é feito dinamicamente, frequentemente os pacotes chegam

fora de ordem, ficando por responsabilidade das camadas superiores a tarefa de

remontar a mensagem.

1.2.4 Vantagens e desvantagens das camadas

Uma das vantagens do uso do sistema de camadas é a flexibilidade que a

rede de computadores adquire, tornando fácil a alteração de algum aspecto da rede,

o meio de transmissão por exemplo. (TANENBAUM; WETHERALL, 2011)

Como observou Kurose e Ross (2010), alguns pesquisadores e engenheiros

de rede, no entanto, vêem algumas desvantagens potenciais no sistema de

camadas, a primeira é a duplicação de funcionalidade entre as camadas, só para

exemplificar, mais de uma camada pode ter o mesmo serviço de recuperação de

erros. Outra possível desvantagem é que para desenvolver um serviço, a camada

pode precisar de mais informações e estas estarem inacessíveis à ela.

1.3 PROTOCOLOS

A composição de uma rede de computadores dificilmente é feita por entidades

com as mesmas características de hardware e software. Por entidades entende-se

como qualquer dispositivo com capacidade de enviar e receber dados.

(FOROUZAN, 2008)

Em uma Local Area Network (LAN), que é uma rede local privada, um

escritório, por exemplo, seria possível já que o numero de máquinas é pequeno, mas

em uma Metropolitan Area Network (MAN) ou Wide Area Network (WAN) que são

redes de grande porte seria inviável. Para que haja uma comunicação entre as

entidades é preciso que elas falem a mesma língua, ou seja, estabeleçam um

acordo de como acontecerá a conversação.

O protocolo é um conjunto de regras de comunicação que atuam nas

camadas, essas regras são estabelecidas e devem ser respeitadas para que a

comunicação entre duas entidades ocorra sem problemas. A atual necessidade de

Page 21: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

20

interconectividade a nível internacional é uma das justificas da importância dos

protocolos.

Ainda segundo Forouzan (2008), existem três elementos chave de um

protocolo, são eles:

Sintaxe: a estrutura ou formato dos dados e a ordem pela qual são

apresentados;

Semântica: diz como deve ser interpretada cada sessão de bits e o que deve

ser feito com base nessa interpretação;

Temporização: faz referência a duas características, quando e em qual

velocidade os dados devem ser enviados.

1.3.1 Padronização de protocolos

Forouzan (2008) diz que existem dois tipos de padrões em comunicação de

dados:

De facto: é adotado como padrão, porém ainda não foi aprovado por um

comitê organizado. Frequentemente é estabelecido por fabricantes de equipamentos

com o intuito de definir a funcionalidade de algum produto ou tecnologia.

De jure: são os padrões reconhecidos por um corpo ou comitê organizado.

Além da forma de imposição por parte dos fabricantes e consequentemente

aceitação, Tanenbaum e Wetherall (2011) consideram a existência de órgãos que

trabalham em conjunto na criação e estabelecimento dos padrões, são eles os

comitês de criação de padrões, fóruns e agências de regulamentação. A seguir tem-

se a descrição de alguns deles:

International Organization for Standardization (ISO): é uma organização

fundada em 1946 e formada por membros de diversos países sendo que a maioria

desses membros fazem parte dos comitês de criação de padrões de seu país. Suas

normas internacionais abrangem vários aspectos da tecnologia como, segurança

alimentar, computadores e cuidados com a saúde.

American National Standards Institute (ANSI): organização privada sem fins

lucrativos e sem vínculo com o governo dos Estados Unidos, porém todas suas

atividades são reconhecidas e tem apoio do governo americano.

Institute of Electrical and Electronics Engineers (IEEE): é a maior sociedade

Page 22: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

21

profissional de engenheiros no mundo. Ajuda no avanço da teoria e da qualidade

dos produtos nos campos da engenharia elétrica e eletrônica. Como meta, a IEEE

supervisiona o desenvolvimento e a adoção de padrões internacionais para a

computação e as comunicações.

Fóruns: foram criados por grupos especializados com o intuito de agilizar

os acordos e facilitar os processos de padronização. Surgiu pelo fato dos comitês de

padronização, como consequência da rigidez em seus procedimentos, não

acompanharem o rápido desenvolvimento das tecnologias de telecomunicações.

São formados por representantes de corporações e trabalham em conjunto com as

universidades e os usuários para testar, avaliar e padronizar novas tecnologias.

Agências reguladoras: têm como propósito proteger o interesse público

regulamentando as comunicações. Toda e qualquer tecnologia de comunicação está

sujeita a regulamentação, seja rádio, televisão e a cabo. A Federal Communications

Commission (FCC) é uma dessas agências.

1.4 Modelos de referência

Na prática, são dois os modelos de referencias mais conhecidos, o modelo

Open System Interconnection (OSI) e modelo Transfer Control Protocol/Internet

Protocol (TCP/IP)

1.4.1 Modelo de referência OSI

Segundo Tanenbaum e Wetherall (2011) o modelo OSI surgiu como primeiro

passo dado pela ISO na tentativa de padronizar internacionalmente os protocolos

utilizados nas camadas. Os protocolos do modelo OSI raramente são usados e o

modelo em si nunca foi implementado seriamente, mas ainda é amplamente usado

como referência, pelo fato de não especificar os serviços e os protocolos utilizados,

mas sim informar o que cada camada deve fazer. Esse modelo possui sete

camadas, na sequência será dada uma descrição de cada camada.

A primeira camada do modelo de referência OSI é a camada física. Ela é

responsável pela transmissão dos bits pelo canal de comunicação. Deve garantir

que se uma estação enviar um bit 1 seja recebido o mesmo bit 1 e não um bit 0.

Para isso os protocolos devem levar em consideração fatores como a voltagem que

Page 23: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

22

representará os bits, o tempo de duração de cada bit, o método de transmissão que

será utilizado e como será iniciada e encerrada a conexão. (TANENBAUM;

WETHERALL, 2011)

A segunda camada é a camada de enlace de dados, ela detecta e corrige

possíveis erros que podem acontecer na transmissão do meio físico. A verificação

de integridade é possível porque ela divide os dados em quadros e adiciona

cabeçalhos para controle de erros. Ela também cuida das retransmissões dos

quadros danificados ou perdidos ao longo do caminho. Outra função importante na

camada de enlace de dados é o controle de fluxo. (TANENBAUM; WETHERALL,

2011)

A camada de nível três é a camada de rede. Ela controla as operações da

sub-rede e é responsável pelo roteamento dos pacotes de origem até o destino. As

rotas podem ser estáticas ou podem ser determinadas no início de cada

conversação. (TANENBAUM; WETHERALL, 2011)

A camada de transporte recebe os dados da camada de sessão, se houver

necessidade divide os dados em unidades menores e repassa esses dados a

camada inferior a ela, a camada de rede. Esse serviço deve ser feito com eficiência,

isolando as camadas superiores de qualquer possível alteração de tecnologia de

hardware na rede. (TANENBAUM; WETHERALL, 2011)

A quinta camada é a camada de sessão. Ela permite que duas máquinas

estabeleçam sessões entre elas, uma sessão pode oferecer vários serviços como

controle de diálogo, isso estabelece quem deve transmitir em um determinado

momento e a sincronização da comunicação, que através de pontos de checagem

consegue restabelecer a comunicação de onde parou após ela ser interrompida

bruscamente.(TANENBAUM; WETHERALL, 2011)

A camada de apresentação é a sexta, ela cuida da sintaxe e da semântica

das informações trocadas. Antes de serem transmitidas as informações são

convertidas em bits, a camada de apresentação faz essa tradução garantindo o

entendimento independente do sistema de codificação utilizado. (TANENBAUM;

WETHERALL, 2011)

A camada mais elevada do modelo OSI é a camada de aplicação, ela permite

que o usuário, seja uma pessoa ou um software tenha acesso a rede, é a interface

entre o processo de usuário e os protocolos de comunicação, como e-mail e acesso

a páginas web. (TANENBAUM; WETHERALL, 2011)

Page 24: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

23

Todas as camadas do modelo OSI descritas anteriormente são exibidas na

figura 1.1.

Figura 1.1 – Camadas do modelo OSI Fonte: Tanenbaum e Wetherall, 2011, p.28

1.4.2 Modelo TCP/IP

O modelo TCP/IP possui 4 camadas, são elas: camada de enlace, Internet,

transporte e aplicação. A posição de cada uma delas no modelo pode ser

visualizada na figura 1.2.

Figura 1.2 – Camadas do modelo TCP/IP Fonte: Tanenbaum e Wetherall, 2011, p.28

Segundo Tanenbaum e Wetherall (2011) o modelo TCP/IP surgiu na primeira

rede de computadores geograficamente distribuída, a ARPANET. A ARPANET era

Page 25: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

24

patrocinada pelo Departamento de Defesa dos Estados Unidos e interligava

centenas de universidades e repartições públicas por meio de linhas telefônicas

dedicadas. Os problemas começaram a surgir quando foram criadas as redes de

rádio e satélite, pois os protocolos usados levaram a necessidade de uma nova

arquitetura onde o objetivo principal era interligar várias redes de maneira uniforme.

O Departamento de Defesa tinha outra preocupação, a que seus

equipamentos de sub-rede fossem destruídos em razão de um ataque motivado pela

guerra fria, o que causaria o fim da rede, então foi definido outro requisito para a

arquitetura, a rede deveria se manter ativa mesmo com falha em alguns

equipamentos que compunham a sub-rede. Assim nasceu o modelo TCP/IP.

(TANENBAUM; WETHERALL, 2011)

Na primeira camada do modelo TCP/IP, camada de enlace, existe uma

lacuna, o modelo não especifica exatamente o que deve ser feito, exceto que os

hosts precisam se conectar a rede utilizando algum tipo de protocolo.

(TANENBAUM; WETHERALL, 2011)

A camada de Internet é a segunda camada, ela abrange toda a arquitetura e é

baseada em serviços sem conexão, Suas funções se assemelham com a camada

de rede do modelo OSI. Uma delas é permitir que os hosts enviem pacotes em

qualquer rede e garantir que eles cheguem ao seu destino de forma independente,

possivelmente chegarão fora de ordem, cabendo as camadas superiores a função

de organizá-las. O protocolo IP atua nessa camada. (TANENBAUM; WETHERALL,

2011)

A camada de transporte é a terceira camada, é nela que atua o protocolo TCP

que em conjunto com o protocolo IP dá nome ao modelo. Sua função é permitir que

as entidades de origem e destino estabeleçam comunicação. (TANENBAUM;

WETHERALL, 2011)

Os protocolos de níveis mais altos ficam na camada de aplicação, como o

protocolo de terminal virtual TELNET, o protocolo de transferência de arquivos File

Transfer Protocol (FTP), e o de correio eletrônico Simple Mail Transfer Protocol

(SMTP).(TANENBAUM; WETHERALL, 2011)

1.4.3 Comparações entre modelo OSI e TCP/IP

Os modelos OSI e TCP/IP surgiram de formas distintas e por isso se

Page 26: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

25

diferenciam em alguns aspectos.

O modelo OSI foi criado antes dos protocolos nele implementados e teve

evoluções conforme novas tecnologias surgiam, em razão disso esse modelo é mais

genérico e flexível. (TANENBAUM; WETHERALL, 2011)

Já o modelo TCP/IP foi criado baseado em protocolos, e suas camadas são

praticamente uma descrição de cada um desses protocolos. A consequência disso é

um modelo que dificilmente se adapta a outras pilhas, não tendo utilidade para

descrever outras redes que não utilizam os protocolos TCP/IP. (TANENBAUM;

WETHERALL, 2011)

Apesar do número de camadas diferentes, existem três camadas que estão

presentes nos dois modelos, a camada de rede, transporte e aplicação. No modelo

OSI a camada de rede é compatível com a comunicação sem conexão e

comunicação orientada a conexão, mas na camada de transporte só aceita a

comunicação orientada a conexão. No TCP/IP a camada de rede só aceita

comunicação sem conexão, mas aceita os dois modos na camada de transporte,

oferecendo ao usuário a opção de escolha.

Tanenbaum e Wetherall (2011) afirmam que provavelmente a maior

contribuição do modelo OSI é tornar explicito a distinção entre três conceitos

fundamentais em que o modelo se fundamenta, os serviços, as interfaces e os

protocolos. A definição desses três conceitos não é tão clara no modelo TCP/IP, o

que faz com que os protocolos do modelo OSI sejam mais bem encapsulados,

podendo ser substituídos com certa facilidade conforme mudança de tecnologia.

Em conclusão, o modelo OSI se tornou muito útil para a discussão das redes

de computadores, em contraste com o modelo TCP/IP onde o modelo em si é

praticamente inexistente, mas seus protocolos são amplamente utilizados.

1.5 PROTOCOLO IP

Segundo Forouzan (2008) o protocolo IP é o principal protocolo da camada de

rede e tem como responsabilidade entregar os datagramas da origem ao destino.

Segundo Kurose e Ross (2010) um pacote na camada de rede é denominado

datagrama. Há duas versões do protocolo IP em uso atualmente, a versão 4,

também conhecida como IPV4 e a versão 6 ou IPV6, a versão IPV6 não será

Page 27: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

26

abordada neste trabalho.

1.5.1 ENDEREÇO IP

Um endereço IPv4 tem comprimento de 32 bits que equivale a 4 bytes, quase

4 bilhões de endereços possíveis, porém segundo a Corporação da Internet para

Atribuição de Nomes e Números (ICANN), em 2010 restavam apenas 10% desses

endereços livres. (KUROSE; ROSS, 2010) (ICANN, 2010)

Um host conectado a Internet possui um endereço IP que codifica seu número

de rede e seu número de host, esse endereço é exclusivo e dois hosts na Internet

nunca tem o mesmo endereço. Esse endereço está associado a interface e não ao

host, Kurose e Ross (2010) descrevem interface como sendo a fronteira entre o

hospedeiro e o enlace físico, dessa maneira para um host estar em duas redes ele

precisa de dois endereços IP.(TANENBAUM; WETHERALL, 2011)

Segundo Forouzan (2008) os endereços IP podem ser escritos com notação

binária ou decimal. Na notação binária, o endereço IP é representado por meio de

32 bits como no exemplo: 01110101 10010101 00011101 11101010.

Com o intuito de tornar os endereços IP mais legíveis, é comum escrevê-los

em forma decimal separando cada byte por ponto, por exemplo, 128.11.3.31. Em

virtude de cada byte ser formado por 8bits, qualquer número na notação decimal

deve ficar restrito a faixa entre 0 e 255. (FOROUZAN, 2008)

Entretanto, alguns endereços são reservados para fins específicos, como por

exemplo, todos os endereços com formato 127.xx.yy.zz são utilizados para fazer

referência a própria máquina e utilizado para comunicação interna. IP com o

identificador do host valendo 0 é utilizado para identificar a rede e com valor 255 é

usado para broadcast. (TANENBAUM; WETHERALL, 2011)

1.5.2 Datagrama IP

Conforme citado por Tanenbaum e Wetherall (2011) um datagrama IP possui

duas partes, uma de cabeçalho e outra de dados. Seus campos podem ser vistos na

figura 1.3.

De acordo com Forouzan (2008) um datagrama IP possui tamanho que

varia de 20 a 60 bytes,a seguir a descrição de cada campo do datagrama IP.

Page 28: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

27

Versão: campo de 4 bits que determina a versão do protocolo IP. O

roteador analisa esse campo e determina como interpretar o restante do datagrama,

já que diferentes versões do IP utilizam diferentes versões de datagrama. (KUROSE;

ROSS, 2010)

Tamanho do cabeçalho: campo de 4 bits que define o tamanho do cabeçalho,

é necessário para determinar em que lugar no datagrama os dados realmente

começam, pois o tamanho do datagrama IP pode ter tamanho variável. (KUROSE;

ROSS, 2010) (FOROUZAN, 2008)

Tipo de serviço: esse campo foi adicionado no IPV4 com o propósito de

diferenciar os tipos de datagramas IP. Um exemplo de uso deste campo é que

Datagramas de aplicações de tempo real, como telefonia, podem ser diferenciados

de aplicações que não são em tempo real. Esse campo será melhor abordado nos

capítulos seguintes.(KUROSE; ROSS, 2010)

Comprimento do datagrama: esse campo possui 16 bits e possui a somatória

em bytes do tamanho do cabeçalho e do tamanho do datagrama. O tamanho

máximo do datagrama IP é 65.535 bytes, porém raramente são maiores que 1.500

bytes. (KUROSE; ROSS, 2010)

Identificador: para um datagrama IP chegar ao seu destino, ele pode passar

por várias redes diferentes. Nesse trajeto os roteadores desencapsulam um

datagrama do frame recebido e encapsulam-no de novo em um frame com formato

que depende do tipo de protocolo utilizado pela rede. Esse campo identifica os

frames que pertencem ao mesmo datagrama. Esse número de identificação auxilia o

host de destino no processo de reagrupamento do datagrama. (FOROUZAN, 2008)

Flags: esse campo de três bits diz respeito a fragmentação do datagrama. O

primeiro bit é reservado, o segundo bit é denominado não fragmentar, quando esse

campo possui valor 1 o host não deve fragmentar, se o valor for 0 pode ocorrer a

fragmentação. O terceiro bit é denominado mais fragmento, esse campo com valor 1

significa que este fragmento não é o ultimo, com bit 0 significa que esse fragmento é

o ultimo ou único.(FOROUZAN, 2008)

Deslocamento de fragmentação: esse campo possui tamanho de 13 bits e

mostra a posição do fragmento em relação ao datagrama como um todo.

(FOROUZAN, 2008)

Tempo de vida: esse campo é importante para garantir que datagramas não

circulem para sempre na rede. Tanenbaum e Wetherall (2011) o descrevem como

Page 29: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

28

um contador para limitar a vida útil do datagrama. Seu valor é decrementado em

uma unidade a cada roteador em que é processado, se o valor do campo chegar a

zero ele deve ser eliminado. (KUROSE; ROSS, 2010)

Protocolo da camada superior: o valor desse campo informa a que processo

de transporte o datagrama IP deve ser entregue. Por exemplo, o valor 6 indica que

deve ser passado ao TCP. (TANENBAUM; WETHERALL, 2011) (KUROSE; ROSS,

2010)

Soma de verificação do cabeçalho: “esse campo auxilia os roteadores na

detecção de erros de bits em um datagrama IP recebido.” (KUROSE; ROSS, 2010,

p. 249)

Por meio de um algoritmo que soma os valores dos bytes se encontra o valor

deste campo. Os roteadores calculam o valor e se esse for diferente do que está no

campo considera que esse fragmento está com erro. (KUROSE; ROSS, 2010)

Endereço IP de fonte e de destino: campo com endereço IP do host de origem

e destino. (FOROUZAN, 2008)

Opções: esse campo foi projetado para permitir que versões posteriores do

protocolo incluam novas informações, possibilitando a experimentação de novas

ideias e evitando a alocação de bits de cabeçalho para informações

raramente necessárias. (TANENBAUM; WETHERALL, 2011)

Dados: o último e mais importante campo do datagrama, é nela que é contida

a informação de fato, também conhecida como payload. (KUROSE; ROSS, 2010)

Figura 1.3 – Campos do datagrama IP. Fonte: Kurose e Ross, 2010

Page 30: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

29

O propósito deste capítulo foi abordar de forma simples os conceitos de

software de redes, arquitetura de software e o protocolo IP. Nos capítulos que

seguem será abordado os conceitos de qualidade de serviço.

Page 31: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

30

2 QOS

Esse capítulo tem por finalidade explicar os conceitos da QoS em redes de

computadores, para isso inicia-se com um breve histórico do seu surgimento nas

primeiras redes de telecomunicações, em seguida são abordados os parâmetros

que são usados para medição, bem como algumas técnicas utilizadas atualmente.

2.1 SURGIMENTO DA QoS

Conforme descrito por Park (2005) no início das telecomunicações haviam

duas redes distintas, a rede telefônica que transportava voz e a rede IP que

transportava dados. Cada rede foi projetada para transportar um tipo especifico de

informação o que ocasionou em diferentes modos de funcionamento e na maneira

de obter qualidade nos serviços oferecidos.

A rede telefônica inicial utilizava o telefone como dispositivo terminal, porém a

maior parte da inteligência se encontrava na rede, que por sua vez era bem mais

complexa, a conexão era dedicada a uma chamada durante toda sua duração e ao

fim, os circuitos eram usados para configurar outra chamada. (PARK, 2005)

Uma vez que, transportando voz, coube aos projetistas encontrar métodos

para obter qualidade que eram coerentes com os tipos de serviços oferecidos pela

rede, serviços esses que em maioria era de comunicação em tempo real. Foram

duas as principais medidas tomadas, a primeira medida foi garantir o fornecimento

necessário de circuitos para se estabelecer uma ligação. Para isso criou-se o

bloqueio de chamada, que ocorria antes de iniciar a ligação, na ausência de circuitos

disponíveis. Estabelecida a conexão, a segunda medida foi na qualidade de voz, que

está diretamente ligada a qualidade de transmissão. Para isso a rede telefônica foi

projetada para aperfeiçoar a transmissão fim-a-fim, para que as deficiências da rede

como ruídos, ecos e atrasos fossem razoáveis. (PARK, 2005)

A rede IP se diferenciava e muito da rede telefônica, a começar pelo tipo de

informação transportada. Ao contrário de voz, dados são em maioria serviços em

tempo não real, podendo ser armazenado e entregue posteriormente. (PARK, 2005)

A rede IP foi projetada para ter o funcionamento mais simples possível, sua função

Page 32: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

31

principal é transportar pacotes de um nó para outro os tratando da mesma maneira.

Os pacotes são armazenados em um buffer e encaminhados em ordem.

Segundo Park (2005), outro ponto em que as redes se diferenciam é no

dispositivo terminal, que na rede IP é um típico computador hospedeiro, diferente do

telefone, nele foi depositado a maior parte da inteligência. Um exemplo disso é que o

terminal receptor, ao receber um pacote com erro, consegue identificá-lo e pedir a

retransmissão, tudo isso sem conhecimento da rede.

Em virtude do simples funcionamento da rede IP e do tipo de informação

transportada, a rede pode operar no modo Best Effort (Melhor Esforço), onde todos

os pacotes são tratados de forma igual. (PARK, 2005)

O objetivo do projeto principal da rede IP era certificar-se de que o terminal do usuário final teve os protocolos e inteligência necessários para garantir dados confiáveis a transmissão de forma que a rede pode operar tão simples quanto possível. (PARK, 2005, p.3, tradução nossa).

Por terem características de tráfego e requisitos de desempenho distintos, foi

possível obter o melhor caminho para o transporte das informações por duas redes

separadas, porém em meados de 1990 teve início o que foi conhecido como

Convergência de Voz e Dados, as duas redes começaram a se fundir com o

propósito de criar uma única rede para transportar os dois tipos de informação.

Consolidada a convergência, um novo desafio técnico surgiu, nessa nova rede o

funcionamento melhor esforço, utilizado na rede IP, não era o suficiente para

atender os diversos requisitos de desempenho dos diferentes tipos de serviços

oferecidos. QoS foi a tecnologia utilizada para resolver esse problema.(PARK, 2005)

2.2 DEFINIÇÃO DE QOS

Na recomendação E.800 de 1994 do setor de normalização das

telecomunicações ITU-T, um dos braços da União Internacional de

Telecomunicações, contém a seguinte definição para QoS: efeito coletivo do

desempenho do serviço, que determina o grau de satisfação de um usuário do

serviço.

Essa definição abrange somente a percepção do usuário, porém, segundo

Park (2005), além do ponto de vista do usuário, a QoS também pode ser definida a

Page 33: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

32

partir do ponto de vista da rede, que está na sua capacidade de prover condições

para que a QoS do ponto de vista do usuário final ocorra.

Essas condições podem ser alcançadas por meio de técnicas de QoS e

mensuráveis através de parâmetros.

2.3 PARÂMETROS DE QOS

De acordo com Tanenbaum e Wetherall (2011) um fluxo de dados exige

quatro parâmetros de qualidade, são eles o atraso, largura de banda, flutuação e

confiabilidade. Para Park (2005), o entendimento desses parâmetros é vital para a

compreensão da QoS.

Atraso (ou retardo): de acordo com Kurose e Ross (2010) um pacote se

origina em um sistema final, passa por uma série de roteadores e tem como destino

outro sistema final, ao percorrer esse trajeto, o pacote sofre atrasos. Segundo

Forouzan (2008) os atrasos ocorrem porque existem filas nos roteadores e buffers

que armazenam os dados antes e depois de serem processados. Kurose e Ross

(2010) descrevem o atraso como sendo a soma do atraso de processamento

(identificação e direcionamento do pacote), atraso de fila (tempo de espera para ser

transmitido), atraso de transmissão (tempo de transmissão de todos os bits do

pacote para o enlace) e o atraso de propagação (tempo que um bit leva para

atravessar o meio físico). Os atrasos que um pacote sofre são ilustrados na figura

2.1. Aplicações como transferência de arquivos e correio eletrônico não são

sensíveis ao retardo. (TANENBAUM; WETHERALL, 2011)

Figura 2.1 – Filas no roteador Fonte: Kurose; Ross, 2010, p.27

Page 34: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

33

Largura de banda: segundo Forouzan (2008),é formada pelos valores de taxa

máxima de dados (indica a largura de banda máxima que uma rede pode suportar),

taxa média (define a largura de banda média necessária ao tráfego) e tamanho

máximo de rajada (intervalo de tempo em que o tráfego consegue se manter na taxa

máxima). Aplicações como de vídeo-conferência exigem alta largura de banda.

(TANENBAUM; WETHERALL, 2011)

Flutuação (ou jitter): variação de tempo de chegada dos pacotes do mesmo

fluxo. Aplicações do tipo Voice over Internet Protocol (VoIP) são sensíveis a

flutuação.

Confiabilidade: em uma rede pouco confiável há uma grande quantidade de

perda e retransmissão de pacotes. Aplicações como a de acesso a web e

transferência de arquivos necessitam de uma rede confiável. (FOROUZAN, 2008)

Alguns desses parâmetros podem ser melhorados com a correta configuração

dos elementos da rede, por exemplo, switches, protocolos e o serviço de Domain

Name System (DNS).

2.4 TÉCNICAS DE QOS

A qualidade de uma rede de computadores pode ser alcançada por diferentes

meios, atualmente existem diversas técnicas, porém, o uso de uma somente não é

suficiente para a obtenção de uma QoS eficiente e segura, isso só é possível por

meio de uma combinação de várias técnicas. (TANENBAUM; WETHERALL, 2011)

Em uma rede de computadores onde não existe nenhum método de QoS

atuante, a rede trata todos pacotes da mesma maneira e faz o melhor possível para

entregar os pacotes ao destino, esse método é conhecido como melhor esforço.

(PARK, 2005)

2.4.1 Técnicas de controle de congestionamento

É muito comum técnicas de QoS atuarem no controle de congestionamento

em virtude da sua proximidade. (FOROUZAN, 2008)

Forouzan (2008, p. 559) se propôs a refletir: ‘’as duas técnicas são tão

próximas que melhorar uma, significa melhorar a outra e ignorar uma, geralmente

significa ignorar a outra. ’’

Page 35: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

34

Segundo Forouzan (2008), as técnicas de controle de congestionamento

podem ser de prevenção ou de contenção. As técnicas preventivas são aplicadas

nos hosts de origem ou destino e atuam antes de o congestionamento acontecer. As

técnicas de contenção são aplicadas em hosts ou em elementos da rede, roteadores

por exemplo, e atuam durante o congestionamento, tentando aliviá-lo ou eliminá-lo.

Existem várias unidades métricas que podem ser utilizadas para monitorar a

rede a fim de verificar a ocorrência de congestionamento. Alguns deles são os

números de pacotes descartados por falta de espaço em buffer, tamanho médio da

fila e retardo médio de pacotes. (FOROUZAN, 2008)

2.4.2 Serviços integrados e serviços diferenciados

A Internet Engineering Task Force (IETF) propôs vários modelos de

mecanismos para atender a demanda de QoS, entre os resultados desses estudos

estão os serviços integrados e serviços diferenciados. (XIAO; NI, 1999)

Segundo Xiao e Ni (1999), o serviço integrado é caracterizado pela reserva de

recursos e utiliza o protocolo Resource Reservation Protocol (RSVP).

O modelo de serviço integrado identifica um fluxo de IP pelos seguintes

parâmetros: identificador do protocolo, endereço IP do destino, endereço de porta do

destino, endereço IP de origem e endereço de porta de origem. (PARK, 2005)

A reserva de recursos é realizada pelo protocolo RSVP, essa reserva é feita

por troca de mensagens entre o remetente e o receptor, esse diálogo pode ser

melhor observado na figura 2.2.

Figura 2.2 – Funcionamento do protocolo RSVP Fonte: Xiao; Ni, 1999, p.4

Primeiramente o remetente envia uma mensagem PATH que contém a

especificação do fluxo ao receptor. Essa mensagem passa pelos roteadores da rede

Page 36: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

35

que registram a especificação, de modo que quando a mensagem RESV, que

contém a solicitação dos recursos, fizer o caminho inverso os roteadores possam

relacionar as mensagens PATH e RESV, alocar largura de banda e espaço em

buffer. (XIAO; NI, 1999) (PARK, 2005)

Segundo Tanenbaum e Wetherall (2011) o modelo de serviço integrado

oferece boa qualidade de serviço a um ou mais fluxos porque eles reservam os

recursos necessários ao longo da rota, porém esse modelo também possui suas

desvantagens, uma delas é a configuração antecipada para cada fluxo, o que não

funciona bem com um grande número de fluxo. Outra desvantagem segundo Xiao e

Ni (1999) é a necessidade de todos os roteadores da rede implementarem o RSVP,

o que em uma rede de grande porte se torna uma arquitetura não escalável.

A IETF então criou um modelo mais simples que se baseava na classe e não

no fluxo. Segundo Xiao e Ni (1999) o modelo de serviço diferenciado foi introduzido

devido a dificuldade da implementação dos serviços integrados e do protocolo

RSVP.

Park (2005) descreve que no modelo de serviço diferenciado os fluxos não se

distinguem e são agregados em classes de tráfego. Dessa maneira o tratamento

diferenciado, como largura de banda e outros recursos, se dá sobre essas classes.

A classe de serviço é identificada no campo denominado DS, que substituiu o

campo Type Of Service (TOS) no cabeçalho do pacote IP, por indicação da IETF.

(FOROUZAN, 2008)

Segundo Tanenbaum e Wetherall (2011) os serviços diferenciados podem ser

oferecidos por um conjunto de roteadores que formam um domínio administrativo, o

Internet Service Provider (ISP). Segundo Xiao e Ni (1999) para receber o serviço

diferenciado, o cliente deve ter uma Service Level Agreement (SLA), que nada mais

é do que um contrato que, dentre outras coisas, especifica as classes de serviços

suportadas e quantidade de tráfego permitida.

O modelo de serviço diferenciado possui dois conjuntos de elementos

funcionais, as funções de bordas, que são formadas pela classificação de pacotes e

o condicionamento de tráfego; e função central, formada pelo envio (KUROSE;

ROSS, 2010):

Funções de borda: quando um pacote passa pelo primeiro host ou

roteador habilitado a serviço diferenciado ele é marcado no campo DS com um

valor, assim ele pode receber tratamento diferenciado;

Page 37: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

36

Função central: quando um pacote marcado chega em um roteador

habilitado a serviço diferenciado ele é repassado até o próximo salto, de acordo com

o comportamento associado a classe de serviço.

O modelo de serviço diferenciado é escalável e flexível, a necessidade de

escalabilidade vem do número de fluxos simultâneos, passando em um roteador da

Internet e a necessidade de flexibilidade vem do fato de que novas classes de

serviços podem surgir e as existentes se tornarem obsoletas. (KUROSE; ROSS,

2010)

Neste capítulo foram abordados os conceitos de QoS, seus parâmetros e

algumas técnicas utilizadas. No capítulo seguinte serão abordados os serviços de

firewall e o serviço de controle de tráfego, suas características e funcionamento.

Page 38: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

37

3 SERVIÇOS DE REDE

A facilidade de acesso a Internet nos últimos anos contribuiu para a

popularização desses serviços, alguns deles, fundamentais em ambientes

empresariais. Nesse ambiente, além das vantagens financeiras que eles podem

gerar, ainda existem as vantagens competitivas, pois agilizam processos e

automatizam tarefas.

Nesse capítulo, busca-se apresentar os serviços de controle de tráfego e

firewall, que juntamente com a QoS serão utilizados para validação da pesquisa

posteriormente nos testes práticos.

3.1 CONTROLE DE TRÁFEGO

Controle de tráfego é o nome dado aos conjuntos de sistemas de filas e

mecanismos pelos quais os pacotes são recebidos e transmitidos em um roteador.

Isso inclui decidir quais pacotes aceitar e a que taxa de transmissão passará pela

interface, bem como determinar quais pacotes transmitir, em qual ordem e a que

taxa de transmissão irá passar pela interface de saída. (BROWN, 2006)

Há exemplos de filas em todos os tipos de software. A fila é uma forma de

organizar as tarefas ou dados. No caso de um servidor compartilhando o mesmo link

para Internet com outros computadores, poderá ocorrer disputa por banda, com isso

o controle de tráfego ajuda na melhor divisão deste recurso. (BROWN, 2006)

Quando bem utilizado, o controle de tráfego conduz ao uso mais previsível e

na melhor distribuição dos recursos da rede de computadores. Por exemplo, um

download pode ser realizado sem afetar outras aplicações. Segundo Brown (2006) a

configuração de controle de tráfego representa uma política que foi comunicada aos

usuários, os usuários (e, por consequência, aplicações) sabem o que esperar da

rede.(BROWN, 2006)

De acordo com Brown (2006) a complexidade é a desvantagem mais

significativa no controle de tráfego, ainda segundo o autor, existem maneiras de se

familiarizar com as ferramentas, mas a identificação de um erro de configuração

pode ser um grande desafio. Dessa maneira, muitas empresas adquirem mais

Page 39: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

38

largura de banda como solução para seus problemas ao invés de investir em

treinamento e em ferramentas de controle de tráfego. (BROWN, 2006)

3.2 FIREWALL

Datado em meados dos anos 80, o primeiro firewall foi desenvolvido pela Bell

Labs por encomenda da AT&T, o objetivo da ferramenta era filtrar todos os pacotes

que saíssem e entrassem na rede corporativa, sendo possível manipulá-los de

acordo com regras predefinidas pelos cientistas da Bell Labs. (NETO, 2004)

A evolução da tecnologia não suprimiu a necessidade do uso do firewall, pelo

contrário, o tornou extremamente importante, principalmente pelo número de

computadores conectados por meio da Internet e sujeitos a ataques de diversos

tipos e motivados por diversas razões. Segundo o site Centro de estudos, reposta e

tratamento de incidentes de segurança no Brasil (CERT), em 2012 foram reportados

a ele 466029 incidentes no Brasil. O CERT é um grupo responsável por tratar

incidentes de segurança em computadores que envolvam redes conectadas à

Internet brasileira. Com o propósito de conscientizar sobre os problemas de

segurança os incidentes reportados são exibidos em forma de gráficos, como ilustra

a figura 3.1.

Figura 3.1 – Tipos de incidentes reportados á CERT em 2012 Fonte: CERT, 2013

Segundo Neto (2004) firewall é um programa que detém autonomia concedida

pelo sistema para pré-determinar e disciplinar todo tipo de tráfego existente entre o

mesmo e outros hosts/rede.

Comumente o firewall está situado entre a rede Internet e o ponto em que os

computadores da rede local se conectam, esse ponto pode ser um switch ou um

Page 40: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

39

hub. Nessas condições, faz-se uso de um computador com duas placas de rede,

onde uma é conectada a Internet e outra a rede local. (MORIMOTO, 2006)

Dessa maneira o firewall se torna o único elemento conectado diretamente a

Internet e automaticamente a primeira defesa dessa rede. Tem funcionamento

parecido com a de uma barreira, isolando as duas redes. Todos os pacotes que

entram e saem da rede passam por ele, possibilitando a filtragem e o monitoramento

de todo tráfego. O posicionamento do firewall pode ser mais bem observado na

figura 3.2.

Figura 3.2 – Posicionamento do firewall na rede de computadores Fonte: Forouzan, 2008, p.560

3.2.1 Firewall filtro de pacotes

A filtragem de pacotes é a principal e mais utilizada função do firewall, em

uma rede onde ele está configurado para realizar essa função, é possível analisar os

cabeçalhos dos pacotes enquanto eles trafegam e filtrar o tráfego com base em

regras predefinidas, assim direcionando os pacotes ao seu devido destino (NETO,

2004)

Conforme citado por Tanenbaum e Wetherall (2011), em geral a filtragem de

pacotes é baseada em tabelas configuradas pelo administrador do sistema. Nelas

estão listadas as origens ou destinos aceitáveis e bloqueados e as regras padrão

que orientam o que deve ser feito com pacotes recebidos de outras maquinas ou

destinados a elas.

De acordo com Kurose e Ross (2010) as decisões de filtragem podem ser

baseadas em endereço IP de destino ou origem, tipos de protocolos, porta de

Page 41: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

40

destino ou origem, entre outros.

Para exemplificar, em um ambiente corporativo onde é proibido o acesso a

Internet, isso pode ser feito bloqueando todos os pacotes de saída com destino a um

IP com porta 80. (TANENBAUM; WETHERALL, 2011)

Page 42: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

41

4 IPTABLES

O iptables é uma ferramenta nativa do Linux que possibilita controlar as

tabelas do módulo Netfilter, é popularmente conhecido como um firewall, porém

essa é só uma de suas funções. (NETO, 2004)

O iptables foi desenvolvido por Rusty Russell em colaboração com Michel

Neuling e implementado na versão 2.4 do Kernel do Linux em 1999.

Para melhor entendimento da ferramenta iptables, é necessário conhecermos

onde ela está localizada e do que é composta, a seguir uma melhor abordagem

sobre esses elementos.

4.1 KERNEL

A criação do Kernel teve inicio em 1991 por Linus Torvalds quando ele era um

estudante na universidade de Helsinki na Finlândia, a primeira versão do Kernel veio

a público em setembro desse mesmo ano. O Kernel do Linux foi a ultima e mais

importante peça de código necessária para completar o sistema operacional UNIX-

Like. (NEGUS, 2010)

Segundo Silva (2010) o Kernel é a peça central do sistema operacional Linux,

ele controla os dispositivos e os demais periféricos do sistema como disco rígido e

placa de rede. A localização do Kernel pode ser melhor observada na figura 4.1.

Figura 4.1 – Localização do Kernel Fonte: CLIPATEC INFORMÁTICA, 2011

Negus (2010) descreve o Kernel como sendo um software que inicia junto

com o computador e permite a comunicação eficaz entre os hardwares do

computador e os programas.

Page 43: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

42

4.2 MÓDULO NETFILTER

Segundo Silva (2010), um módulo é uma parte do Kernel inicializada somente

quando solicitada por algum aplicativo ou dispositivo e descarregada da memória

quando não é mais utilizada. São importantes porque evitam a construção de um

Kernel muito grande que ocupa grande parte da memória e também por permitir que

partes do Kernel ocupem espaço em memória só quando necessário.

Tudo o que acontece no sistema operacional, independente da camada,

passa pelo Kernel, tarefas comum a um computador como o gerenciamento de

processos e gerenciamento de memória por si só já exigem bastante do Kernel, por

isso a necessidade de criar módulos que trabalhem em conjunto com o Kernel. O

modulo Netfilter foi criado para que o kernel pudesse controlar seu próprio fluxo

interno. (NETO, 2004)

O módulo Netfilter é composto por tabelas, regras e chains, a seguir uma

melhor descrição de cada um desses elementos.

4.3 TABELAS

Segundo Neto (2004) é possível ver o Netfilter como um banco de dados que

contém três principais tabelas, a Filter, Network Address Translation (NAT) e

Mangle, cada uma com regras para uma finalidade específica, além de possuir as

tabelas raw e security que não serão abordados nesse trabalho.

As tabelas são os locais onde ficam armazenadas as chains e o conjunto de

regras com uma determinada característica em comum. (SILVA, 2010)

4.3.1 Tabela Filter

Filter é a tabela padrão do iptables, é nela que ficam armazenadas as regras

referentes a um firewall filtro de pacotes. (NETO, 2004)

Por ser a tabela padrão, toda regra em que não é especificada a tabela o

iptables assume que a tabela ma qual será inserida a regra é a filter. (NETO, 2004)

As situações de fluxo, ou seja, as chains possíveis nessa tabela são:

INPUT: todos os pacotes que tem como destino a máquina em que o iptables

está em funcionamento;

Page 44: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

43

OUTPUT: todos os pacotes gerados pela máquina onde o iptables está em

funcionamento

FORWARD: todos os pacotes que passam pelo iptables vindo de uma

máquina e direcionado a outra. A figura 4.2 ilustra como os pacotes são tratados

pela tabela filter.

Figura 4.2 – Esquema da tabela Filter Fonte: Filho, 2013

4.3.2 Tabela NAT

Segundo Silva (2010) a tabela NAT é utilizada quando são geradas outras

conexões. As situações possíveis na tabela NAT são:

PREROUTING: utilizado quando é preciso fazer alterações no pacote antes

de serem roteados. (NETO, 2004)

OUTPUT: utilizado quando pacotes gerados localmente precisam ser

modificados antes de serem roteados. (SILVA, 2010)

POSTROUTING: utilizado quando é preciso modificar pacotes após o

roteamento. (SILVA, 2010) O roteamento da tabela NAT é ilustrado pela figura 4.3.

Figura 4.3 – Esquema da Tabela NAT

Fonte: Filho, 2013

Page 45: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

44

4.3.3 Tabela Mangle

A tabela mangle é utilizada para fazer tratamentos mais profundos nos

pacotes como alterar a prioridade de entrada e saída de um pacote baseado no

campo tipo de serviço. (NETO, 2004)

As situações possíveis para essa tabela são:

INPUT: usado para alterar pacotes com direção ao próprio firewall

OUTPUT: usado para alterar pacotes gerados localmente antes do

roteamento

FORWARD: usado para alterar pacotes sendo roteados no firewall

PREROUTING: usado para alterar pacotes recebidos antes do roteamento.

POSTROUTING: usado para alterar pacotes antes de sairem (IPTABLES,

2013)

4.4 REGRAS

Neto (2004) entende as regras como pré-definições aplicadas a fim de

disciplinar todo um tráfego de dados em uma rede ou host.

Segundo Silva (2010) as regras são comandos passados pela ferramenta

iptables ao módulo Netfilter, para que ele tome determinada ação com base em

informações. As regras são armazenadas dentro das chains e processadas na

ordem que são inseridas.

4.5 CHAIN

As regras do firewall definidas pelo usuário ficam localizadas nas chains.

Segundo Silva (2010) existem dois tipos de chains, as embutidas e as criadas pelo

usuário.

Neto (2004) descreve as chains como situações vividas pelo Kernel. ‘’Logo,

uma situação de entrada trataria-se, na verdade de uma INPUT chain, uma situação

de redirecionamento uma FORWARD chain e uma situação de saída uma OUTPUT

chain.’’ (NETO, 2004, pag. 21,22)

Page 46: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

45

4.6 FERRAMENTA IPTABLES

Para que fosse possível inserir, modificar e apagar as regras no módulo

Netfilter foi criada a ferramenta iptables. Ela não requer grande poder computacional

e é composta por 4 outras aplicações. a iptables que é utilizada para manipular as

regras referente ao protocolo ipv4, o ip6tables que é usado para o protocolo IPv6,

iptables-save utilizado para salvar as regras inseridas da sessão ativa em um

arquivo informado pelo administrador da rede e o iptables-restore que restaura as

regras salvas em um arquivo. (NETO, 2004)

Segundo Neto (2004) a síntese das regras do iptables é:

Iptables [tabela] [comando] [alvo] [ação]

4.6.1 Comandos

A seguir um descritivo dos comandos do iptables e alguns exemplos.

-A: adiciona uma regra ao fim da lista de regras.

root@ubuntu:/home/mauricio# iptables -t filter -A INPUT -s

192.168.0.10 -j DROP

Essa regra descarta todo pacote entrando no firewall vindo do endereço

192.168.0.10

-D: Apaga uma regra da lista, pode ser utilizado substituindo o –A por –D ou

inserindo o número da regra.

root@ubuntu:/home/mauricio# iptables -t filter -D INPUT -s

192.168.0.10 -j DROP

-L: lista as regras de uma tabela.

root@ubuntu:/home/mauricio# iptables -L

Chain INPUT (policy ACCEPT)

Target prot opt source destination

DROP all -- 192.168.0.10 anywhere

Page 47: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

46

Chain FORWARD (policy ACCEPT)

Target prot opt source destination

Chain OUTPUT (policy ACCEPT)

Target prot opt source destination

Esse comando lista as regras da tabela filter.

-P: altera a política padrão das chains, inicialmente todas elas são ACCEPT.

root@ubuntu:/home/mauricio# iptables -t filter -P INPUT DROP

Essa regra define como política padrão a ação de descarte para a chain

INPUT.

-F: remove todas as entradas da lista de regras sem alterar a política padrão

root@ubuntu:/home/mauricio# iptables –F

Essa regra remove todas as regras da tabela filter, mas mantém a política

padrão

-I: insere uma nova regra no início da lista

root@ubuntu:/home/mauricio# iptables -I INPUT -d 192.168.0.0 -

j ACCEPT

A regra acima aceita todo pacote vindo da rede 192.168.0.0

-R: substitui uma regra da lista por outra

root@ubuntu:/home/mauricio# iptables -R INPUT 1 -d 192.168.0.5

-j DROP

Essa regra substitui a rede 192.168.0.0 e a ação de ACCEPT da regra

anterior pelo endereço 192.168.0.5 e a ação DROP.

-N: cria uma nova chain

root@ubuntu:/home/mauricio# iptables -t nat -N internet

root@ubuntu:/home/mauricio# iptables -t nat -L

Chain PREROUTING (policy ACCEPT)

Target prot opt source destination

Chain INPUT (policy ACCEPT)

Page 48: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

47

Target prot opt source destination

Chain OUTPUT (policy ACCEPT)

Target prot opt source destination

Chain POSTROUTING (policy ACCEPT)

Target prot opt source destination

Chain internet (0 references)

Target prot opt source destination

As primeira regra usada cria uma chain na tabela filter com o nome de internet

e em seguida é listada as chains da tabela filter.

-E: renomeia uma chain criada pelo administrador

root@ubuntu:/home/mauricio# iptables -t nat -E internet

permitirAcesso

root@ubuntu:/home/mauricio# iptables -t nat -L

Chain PREROUTING (policy ACCEPT)

Target prot opt source destination

Chain INPUT (policy ACCEPT)

Target prot opt source destination

Chain OUTPUT (policy ACCEPT)

Target prot opt source destination

Chain POSTROUTING (policy ACCEPT)

Target prot opt source destination

Chain permitirAcesso (0 references)

Target prot opt source destination

Aqui é renomeado a chain criada anteriormente com o nome de internet para

permitirAcesso.

-X: apaga uma chain criada pelo administrador

root@ubuntu:/home/mauricio# iptables -t nat -X permitirAcesso

Essa regra apaga a chain criada com o nome de permitir Acesso

Page 49: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

48

4.6.2 Alvo

A seguir a lista de alvos possíveis da ferramenta iptables e alguns exemplos -p: especifica o protocolo aplicado a regra;

root@ubuntu:/home/mauricio# iptables -A INPUT -p udp -j DROP

Essa regra rejeita todo pacote do protocolo UDP entrando no firewall

-i: especifica a interface de entrada na regra.

root@ubuntu:/home/mauricio# iptables -A INPUT -i eth1 -j

ACCEPT

Essa regra aceita todos os pacotes que entram no firewall pela interface eth1

-o: especifica a interface de saída na regra

root@ubuntu:/home/mauricio# iptables -A OUTPUT -o eth1 -j

ACCEPT

Essa regra permite a saída de todos os pacotes pela interface eth1.

-s: especifica a origem dos pacotes na regra.

root@ubuntu:/home/mauricio# iptables -A INPUT -s 192.168.0.4 -

j REJECT

Essa regra rejeita todos os pacotes vindo do endereço 192.168.0.4

-d: especifica o destino dos pacotes na regra.

root@ubuntu:/home/mauricio# iptables -A INPUT -d 192.168.0.3 -

j ACCEPT

Essa regra aceita todos os pacotes com origem o IP 192.168.0.3

!: é utilizado para especificar uma exceção

root@ubuntu:/home/mauricio# iptables -A OUTPUT ! -o eth0 -j

DROP

Essa regra rejeita todos os pacotes vindo de todas as interfaces com exceção

da interface eth0.

--sport: define a porta de origem.

Page 50: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

49

root@ubuntu:/home/mauricio# iptables -A INPUT -p tcp --sport

80 -j DROP

Essa regra descarta todos os pacotes com porta de origem 80.

--dport: define a porta de destino na regra

root@ubuntu:/home/mauricio# iptables -A OUTPUT -p tcp --dport

21 -j DROP

Essa regra descarta todos os pacotes que a porta de destino é a 21.

4.6.3 Ação

Toda regra possui uma ação em relação ao pacote, as ações vem depois da

opção –j e as possíveis são:

ACCEPT - aceita o pacote,

DROP - descarta o pacote sem notificar a origem do pacote

REJECT - descarta o pacote e envia uma mensagem icmp notificando a

origem do pacote

LOG – cria uma entrada no arquivo de log, a localização do arquivo pode

variar de distribuição para distribuição, no Ubuntu Server a localização é

/var/log/kern.log,

SNAT – altera o endereço de origem do pacote antes de serem roteados

DNAT– altera o endereço de destino do pacote

REDIRECT – é utilizada em conjunto com a opção –to-port par realizar o

redirecionamento de porta

TOS – prioriza a entrada e saída de pacotes baseando no campo tipo de

serviço localizado no cabeçalho do pacote IPv4

Neste capitulo foram apresentadas as regras para uso da ferramenta iptables.

No capítulo seguinte serão apresentados os testes implementados para avaliação da

ferramenta, bem como apresentação dos resultados de cada simulação.

5 IMPLEMENTAÇÃO

De modo a avaliar a ferramenta iptables em diferentes aspectos da gerencia

de redes de computadores realizamos testes que abrangem as áreas de segurança,

gerência de tráfego e qualidade de serviço.

Page 51: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

50

Para testar o iptables como ferramenta de segurança exercendo a função de

firewall os testes focaram a proteção contra ataque de varredura de portas e ataque

de Ping Flood, uma variante do ataque Denial of Service (DoS), esses serão melhor

abordados durante os testes.

No aspecto da gerencia de tráfego foi utilizado o iptables em conjunto com

outras ferramentas, no teste foi simulado uma situação em que há a necessidade de

fazer a melhor divisão dos recursos da rede, mais especificamente o link da Internet.

Na qualidade de serviço foi priorizado o serviço de FTP reservando uma

largura de banda maior e classificando como tráfego prioritário.

5.1 CENÁRIO

Os testes foram realizados em sistemas operacionais virtualizados no

software VirtualBox. As configurações dos computadores utilizados estão descritos

na tabela 5.1.

Tabela 5.1 - Configuração das máquinas virtuais utilizadas

Descrição Servidor/firewall Host A Host B Atacante

S.O. Linux Ubuntu Server

12.04.3

Windows

XP

Windows

XP

Linux Ubuntu

Server

12.04.3

Memória 512MB 512MB 512MB 512MB

HD 8G 8G 8G 8G

Interface eth1 – 192.168.0.102

eth2 – 192.168.1.1

eth3 – 192.168.2.1

192.168.1.2 192.168.2.2 192.168.0.104

Fonte: Elaborado pelo autor, 2013

Os hosts estão interligados ao servidor por meio da opção rede interna do

Virtualbox. O cenário pode ser observado na figura 5.1.

Page 52: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

51

Figura 5.1 – Organização da rede de testes Fonte: Elaborado pelo autor, 2013

5.2 SEGURANÇA

Para simular os ataques foi inserido dois computadores na mesma rede,

sendo o atacante e o servidor com as configurações citadas anteriormente.

Figura 5.2 – Cenário de testes de segurança Fonte: Elaborado pelo autor, 2013

5.2.1 Ataque de varredura de portas

O ataque de varredura de portas tem como finalidade identificar quais

computadores estão ativos e quais serviços são disponibilizados por eles. Esse

ataque é amplamente utilizado por atacantes para identificar potenciais alvos, pois

permitem associar possíveis vulnerabilidades aos serviços habilitados em um

computador. (CERT, 2013)

Esse tipo de ataque faz solicitações de conexão nas portas do alvo, ou seja,

envia um pacote que solicita sincronização e aguarda resposta. Em redes de

computadores, antes de iniciar a comunicação entre dois hosts ocorre um processo

de sincronização chamado Handshake de três vias. O cliente que deseja iniciar uma

comunicação envia um pacote com a flag SYN ativa que solicita sincronização, o

servidor então responde com um pacote SYN + ACK que aceita a sincronização,

Page 53: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

52

esse processo é encerrado com o pacote ACK que parte do cliente, em seguida tem

início a comunicação de fato. (SMITH, 2011)

O handshake de três vias pode ser observado com ferramentas de capturas

de pacote, como no exemplo da figura 5.3 em que são capturados pacotes do inicio

de uma conexão Security Shell (SSH) com a ferramenta WireShark.

Figura 5.3 – Handshake de três vias Fonte: Elaborado pelo autor, 2013

A varredura de portas pode iniciar em uma porta baixa e seguir a ordem

crescente, pode iniciar em uma porta alta e seguir a ordem decrescente, como pode

também analisar apenas uma série de portas pré-determinadas pelo atacante.

(NMAP, 2013)

5.2.2 Teste de segurança contra ataque de varredura de portas

Sem conhecimento de quais serviços estão em execução no alvo e em quais

portas eles aguardam solicitação, a varredura passa por várias portas fechadas

antes de encontrar uma aberta. O módulo recent nos permite criar dinamicamente

uma lista de endereços IP e combina-la com outras regras. (IPTABLES, 2013)

Foi feito uso desse módulo e foi utilizado o número de tentativas de acesso

que não obtiveram sucesso como regra para inseri-lo na lista.

Antes de iniciarmos as explicações das regras utilizadas, é importante

esclarecer o funcionamento da política padrão. Dentre as regras contidas em um

script de firewall estão as regras que dão permissões de entrada, saída e

roteamento no firewall. Tudo o que não estiver permitido será tratado pela política

padrão, que nos testes é DROP, ou seja, toda requisição que não estiver

explicitamente permitida nas regras do script será descartada.

Dando início as explicações, a primeira regra é inserida no fim do script e atua

antes da política padrão.

iptables -A INPUT -m recent --set --name BLACKLISTSCAN

Page 54: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

53

Quando uma requisição passa por essa regra o endereço IP de origem é

inserido em uma lista com nome BLACKLISTSCAN. Duas regras fazem uso da lista

BLACKLISTSCAN para evitar o ataque, a primeira regra atualiza o número de vezes

que o endereço IP aparece na lista e se for a quinta vez ou mais na ultima uma hora

gera um log. Para não encher o arquivo de log foi limitado a criação de uma

mensagem por minuto conforme linha de comando a seguir.

iptables -A INPUT -m recent --update --hitcount 5 --name

BLACKLISTSCAN -m limit --seconds 3600 --limit 1/m -j LOG --

log-prefix ALERTA_DE_PORTSCAN --log-ip-options

A terceira regra repete a verificação da regra anterior, porém sua ação é de

descarte do pacote. O parâmetro que atualiza o número de vezes em que o

endereço IP aparece na lista BLACKLISTSCAN é o –-update, o parâmetro que

verifica se o IP já foi inserido 5 vezes ou mais na lista é o hitcount 5. O

parâmetro –-seconds 3600 determina o tempo de validade da regra, ou seja, se

o IP foi inserido na lista na ultima hora. A ação de descarte é determinada pelo

parâmetro –j DROP.

iptables -A INPUT -m recent --update --hitcount 5 --name

BLACKLISTSCAN --seconds 3600 -j DROP

No desenvolvimento dos testes foi usado como ferramenta de ataque o

Nmap, que é uma ferramenta livre e de código aberto, utilizada para testes de

segurança. (NMAP, 2013)

No primeiro teste, o servidor estava sem regras de firewall ativas. O comando

utilizado pelo atacante faz uma varredura iniciando na porta de número 1 até a porta

de número 1024. O resultado da varredura de portas pode ser visto na figura 5.4, em

que todos os serviços ativos são exibidos, como o serviço de FTP que aguarda

solicitações na porta 21, o serviço de SSH na porta 22, o servidor de e-mail que

utiliza a porta 25 e o servidor web que faz uso da porta 80. Além dos serviços em

execução no servidor a varredura de portas conseguiu identificar o endereço físico

da interface.

Page 55: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

54

Figura 5.4 – Varredura de portas com êxito Fonte: Elaborado pelo autor, 2013

No segundo teste as regras do firewall estavam ativas. O comando utilizado

para iniciar o script de nome iptables que contêm as regras e está localizado em

/etc/init.d é:

root@ubuntu:/home/mauricio# /etc/init.d/iptables start

A figura 5.5 ilustra a inicialização do script.

Figura 5.5 – Iniciando script de regras Fonte: Elaborado pelo autor, 2013

Agora com as regras ativas no firewall foi feita uma nova varredura com a

máquina do atacante, a figura 5.6 exibe o resultado do ataque.

Figura 5.6 – Varredura de portas sem êxito Fonte: Elaborado pelo autor, 2013

Page 56: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

55

Com as regras do firewall em execução o ataque de varredura de portas não

obteve sucesso, todos os pacotes originários do atacante serão bloqueados por 1

hora e os logs foram gerados no sistema, como é possível observar na figura 5.7.

Figura 5.7 – Log do sistema operacional Fonte: Elaborado pelo autor, 2013

A segurança pode ser maior se substituir as portas padrão dos serviços por

portas altas, como ilustra a figura 5.8, em que a porta do SSH foi alterada para 2222

e a porta do FTP para 2121.

.

Figura 5.8 – Lista de portas alteradas Fonte: Elaborado pelo autor, 2013

5.2.3 DoS: Ping Flood

Segundo o CERT (2013) o ataque de DoS ocorre quando um atacante utiliza

um computador para tirar de operação um serviço, computador ou rede.

Em síntese o ataque de DoS se baseia em enviar a vitima uma quantidade de

solicitações maior do que ela consegue suportar, dessa forma, negando o serviço.

(ALECRIM, 2012)

Page 57: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

56

O ataque de DoS é possível devido a algumas características do protocolo

TCP/IP, portanto qualquer computador que utilize esse protocolo está suscetível a

esse tipo de ataque. (ALECRIM, 2012)

Outro fator que o torna bastante utilizado é a sua facilidade de utilização.

(AX3 SOFT, 2013)

O ataque de DoS possui formas diferentes de atingir seu objetivo, uma das

variantes é o Ping Flood que faz uso do pacote ICMP do tipo echo request,

popularmente conhecido como ping.

O ping é comumente utilizado pelos administradores de redes de

computadores para testar a comunicação entre dois equipamentos. (AX3 SOFT,

2013)

5.2.4 Testes de segurança contra ataque de Ping Flood

Com a ferramenta iptables é possível dificultar o sucesso do ataque de Ping

Flood limitando a quantidade de pings recebido. A primeira regra permite a entrada

de uma solicitação de echo request por segundo. Caso mais que uma solicitação

seja recebida no intervalo de um segundo as próximas regras do script que tratam

requisições icmp irão atuar.

iptables –A INPUT –p icmp –icmp-type echo-request –i eth1 –m

limit –limit 1/s –j ACCEPT

A regra da sequência gera um log no sistema notificando o ataque. Também

para não enchermos o arquivo de log, limitamos a quantidade de 1 log por minuto.

iptables –A INPUT –p icmp –icmp-type echo-request –i eth1 –m

limit –limit 1/m –j LOG –log-prefix DoS –log-ip-options

A última regra rejeita a solicitação de echo request que não foi aceita pela

primeira regra.

iptables –A INPUT –p icmp –icmp-type echo-request –j DROP

Page 58: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

57

O teste foi realizado utilizando dois computadores, sendo um com sistema

operacional Windows 7 e a outra com o sistema operacional Ubuntu Server

virtualizado. Ao mesmo tempo as duas máquinas enviaram solicitações ao firewall.

Como é possível observar na figura 5.9 logs foram gerados notificando o

administrador.

5.9 – Log de Ping Flood Fonte: Elaborado pelo autor, 2013

Os resultados dos testes de segurança realizados com o iptables

demonstraram bom desempenho e de certo pode ser utilizado como um firewall sem

necessidade de outra ferramenta em conjunto.

5.3 CONTROLE DE TRÁFEGO

O objetivo dos testes documentado abaixo é demonstrar a variedade de

possibilidades de classificação dos pacotes IP utilizando o iptables e a eficiência no

gerenciamento de tráfego em conjunto à ferramenta Traffic Control (TC) e a

disciplina Hierarchical Token Bucket (HTB).

5.3.1 Cenário

Segundo Tanenbaum e Wetherall (2011), a princípio, o interesse em interligar

dois ou mais computadores fisicamente próximos era a possibilidade do

compartilhamento de recursos, como arquivos, impressoras e leitores de CDs, esse

Page 59: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

58

modelo de arquitetura é conhecido como cliente servidor. O cenário de testes para

controle de tráfego se baseia nesse modelo.

Foi simulada uma rede com duas máquinas clientes conectadas ao servidor e

com acesso a Internet fazendo uso de NAT. A máquina Host A possui endereço IP

192.168.1.2 e em suas atividades necessita de mais velocidade de upload do que

download, portanto foi classificada para utilizar 300kbit de upload 250kbit de

download. A máquina Host B possui endereço IP 192.168.2.2 e necessita de mais

download do que upload, assim, foi classificada para usar 100kbit de upload e

500kbit de download.

5.3.2 Ferramentas para controle de tráfego

Segundo Boxman (2005) a capacidade de controle de tráfego está disponível

no Kernel do Linux desde a versão 2.2, porém o iptables não tem como função o

controle de tráfego, para realizar essa função no Linux usa-se uma ferramenta do

iproute2. Segundo Brown (2006) iproute2 é um conjunto de utilitários de linha de

comando que manipulam estruturas do Kernel para a configuração de rede IP.

Dentre suas ferramentas a única que realiza a função de controle de tráfico é o TC.

A ferramenta TC permite ao administrador da rede controlar as filas e os

mecanismos de enfileiramento em um dispositivo de rede, interage com o Kernel

para gerenciar a criação, exclusão e modificação de estruturas de controle de

tráfego. (BROWN, 2006)

Em conjunto ao TC utilizamos a disciplina HTB. Entende-se por disciplina um

algoritmo que controla o tráfego de uma rede de computadores. (FILHO, 2007)

Segundo Filho (2007), o Kernel Linux trabalha com dois tipos de disciplina de

enfileiramento, são elas a Classfull e a Classless, as disciplinas Classfull utilizam

várias classes, por exemplo a disciplina Class Based Queueing (CBQ) e o HTB. As

disciplinas Classless utilizam apenas uma classe, por exemplo, o Stochastic

Fairness Queuing (SFQ) e o Packet First in First Out (PFIFO).

No controle de tráfego o iptables é usado para marcar pacotes direcionando o

fluxo a uma determinada classe com características de tráfego pré-definidas.

5.3.3 Testes de controle de tráfego

Page 60: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

59

No inicio do script foi usado duas regras para remover toda configuração de

controle de tráfego pré-existente na interface eth1, eth2 e eth3.

tc qdisc del dev eth1 root

tc qdisc del dev eth2 root

tc qdisc del dev eth3 root

Segundo Filho (2007) o HTB utiliza um conceito de tráfego controlado por

classes hierarquizadas, um exemplo da hierarquia de classes do HTB pode ser

visualizado na figura 5.10. No topo da hierarquia está a disciplina root. Essa regra

faz com que a interface de rede trabalhe com a disciplina HTB e não com outra

disciplina. Abaixo da disciplina root estão as classes que contém as limitações a

serem respeitadas.

Figura 5.10 – Hierarquia de classes no HTB Fonte: Elaborado pelo autor, 2013

Para melhor entendimento, antes de darmos inicio as inserções das regras no

script, na tabela 5.2 será descrito alguns parâmetros do TC segundo Leite (2013).

Tabela 5.2 – Definições de parâmetros do TC

Parâmetro Definição

class add Indica a criação de uma classe

parent Indica que uma classe é pai de outra, ou seja, se originou dela.

Classid Código de identificação da classe

Page 61: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

60

Rate Este valor representa a taxa desejada com que os pacotes devem

deixar esta classe

Ceil Largura de banda máxima que a classe pode usar

Prio Nível de prioridade associada à classe.

Fonte: Elaborado pelo autor, 2013

Para a configuração de controle de tráfego foram criadas as disciplinas root

de todas as interfaces, para isso bastam os seguintes comandos:

tc qdisc add dev eth1 root handle 1:0 htb default 50

tc qdisc add dev eth2 root handle 2:0 htb default 50

tc qdisc add dev eth2 root handle 3:0 htb default 50

Cada disciplina possui um identificador, a disciplina da interface eth1 tem

identificador 1:0, da interface eth2 identificador 2:0 e da eth3, 3:0.

Depois de criada as disciplinas root, foram criadas as classes. A primeira

classe é filha da disciplina root, e será pai das próximas classes que serão criadas.

Cada classe tem um identificador e rate de 100Mbit.

tc class add dev eth1 parent 1:0 classid 1:1 htb rate 1Mbit

tc class add dev eth2 parent 2:0 classid 2:1 htb rate 1Mbit

tc class add dev eth3 parent 3:0 classid 3:1 htb rate 1Mbit

Na sequência, foi inseridas as regras que irão controlar a velocidade do

tráfego que sai dos clientes e vão em direção a Internet, o upload. Essas regras

ficam localizadas na Interface de saída, ou seja, na eth1. Serão criadas duas classes

diferentes, uma com identificador 1:10, filha da classe 1:1, com rate de 100kbit,

largura máxima de banda de 100kbit e nível de prioridade 5. A segunda classe tem

identificador 1:11, o mesmo valor de rate e prioridade, porém, largura máxima de

banda de 300kbit.

tc class add dev eth1 parent 1:1 classid 1:10 htb rate 100kbit

ceil 100kbit prio 5

Page 62: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

61

tc class add dev eth1 parent 1:1 classid 1:11 htb rate 100kbit

ceil 300kbit prio 5

Na sequência foi criada a regra para controle do tráfego que tem origem na

Internet e se destina a um cliente da rede. Primeiramente foram criadas as regras

para o host A. A regra é filha da classe 2:1, tem como identificador 2:11, possui

100kbit de rate, largura máxima de banda de 250kbit e nível de prioridade 5.

tc class add dev eth2 parent 2:1 classid 2:10 htb rate 100kbit

ceil 250kbit prio 5

O mesmo procedimento é feito para a interface eth3, a classe possui

identificador 3:11, é filha da classe 3:1, possui rate de 100kbit, largura máxima de

banda de 500kbit.e o mesmo nível de prioridade da classe 2:11.

tc class add dev eth3 parent 3:1 classid 3:10 htb rate 100kbit

ceil 500kbit prio 5

Finalizado o processo de criação das classes, basta criarmos as marcações

com o iptables. Para isso utilizamos a tabela mangle. Iniciamos com o

gerenciamento do host A.

Como dito anteriormente, na simulação o host A necessita de mais velocidade

de upload do que download, portanto, foi classificado conforme essa necessidade. A

primeira marcação é referente ao tráfego de upload, nela todo tráfego que tem como

origem o IP 192.168.1.2 é classificado com a classe 1:11.

iptables -t mangle -A FORWARD -s 192.168.1.2 -j CLASSIFY --

set-class 1:11

Em seguida foi classificado todo tráfego vindo da Internet, ou seja, tráfego de

download com destino o IP 192.168.1.2 com a classe 2.10.

iptables -t mangle -A FORWARD -d 192.168.1.2 -j CLASSIFY --

set-class 2:10

Page 63: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

62

Por fim foi classificado o tráfego do host B, primeiro o tráfego de upload e

depois o de download.

iptables -t mangle -A FORWARD -s 192.168.2.2 -j CLASSIFY --

set-class 1:10

iptables -t mangle -A FORWARD -d 192.168.2.2 -j CLASSIFY --

set-class 3:10

Após o término das configurações e deixarem-nas ativas, basta efetuar os

testes. Os testes foram realizados no site http://speedtest.copel.net/, esse mede a

velocidade de download e upload de uma conexão. O primeiro teste foi realizado no

Host A e o resultado chegou bem próximo ao limite imposto pelas classes. O

resultado pode ser visto na figura 5.11.

Figura 5.11 – Teste de velocidade Host A Fonte: Elaborado pelo autor, 2013

O resultado do teste realizado no Host B também fica bem próximos ao

imposto pelas classes. O resultado é exibido na figura 5.12

Page 64: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

63

Figura 5.12 - Teste de velocidade Host B Fonte: Elaborado pelo autor, 2013

Concluiu-se ao fim dos testes de controle de tráfego que a ferramenta iptables

pode ser utilizada para efetuar essa gerência, porém necessita de outras

ferramentas em conjunto para efetuar essa tarefa.

5.4 QoS

Para testar a ferramenta iptables com relação a qualidade de serviço foi

mantido o mesmo cenário do teste de controle de tráfego. Porém agora simulamos

uma situação em que um Host necessita utilizar com frequência o serviço de FTP e

para isso pode utilizar mais largura de banda, mas esse recurso só pode ser

utilizado para o serviço de FTP. Dessa forma foi priorizado somente o tráfego do

serviço FTP.

5.4.1 Teste de qualidade de serviço

Primeiramente foi criada a classe para o serviço de FTP que atua na interface

eth2 e limita a 500kbit a banda. Além disso, é marcada como prioridade 1, assim se

houver outro tráfego no momento, o tráfego dessa classe terá prioridade em relação

as outras.

Page 65: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

64

tc class add dev eth2 parent 2:1 classid 2:15 htb rate 100kbit

ceil 500kbit prio 1

Em seguida foi marcado com o iptables o tráfego do serviço FTP. Segundo

Marques (2013) o FTP pode funcionar de dois modos, ativo e passivo. No modo

ativo utiliza a porta 21 para comunicação de comandos e a porta 20 para

transferência de arquivos. No modo passivo o servidor e o host fazem a

transferência de arquivos utilizando uma porta alta. A primeira marcação é para o

FTP no modo passivo e em seguida para o modo ativo:

iptables -t mangle -A FORWARD -d 192.168.1.2 -p TCP --sport

1024:65535 -j CLASSIFY --set-class 2:15

iptables -t mangle -A FORWARD -d 192.168.1.2 -p TCP --sport

20:21 -j CLASSIFY --set-class 2:15

Para testar o funcionamento da QoS foi feita uma transferência FTP de um

arquivo A largura de banda utilizada na transferência ficou bem próxima ao limitado

na regra como é possível visualizar na figura 5.13.

Ao fim do teste é possível afirmar que o serviço de FTP pode ser utilizado

com mais qualidade em comparação a outros serviços em execução. Essa mesma

priorização pode ser aplicada para outros tipos de serviços e protocolos, para isso

basta marca-los com o iptables, especificando a porta de origem, de destino e o

protocolo utilizado.

Outra informação que necessita ser frisada é que, os valores utilizados nos

testes de controle de tráfego e qualidade de serviços foram meramente simbólicos,

não foi levado em conta fatores como disponibilidade de recursos da rede e a

necessidade dos usuários. Essas informações devem ser identificadas no ambiente

em que serão aplicadas as técnicas, para assim obter a solução mais adequada.

Page 66: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

65

Figura 5.13 - Teste de QoS no serviço de FTP Fonte: Elaborado pelo autor, 2013

Page 67: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

66

CONCLUSÃO

Em relação ao objetivo inicial, demonstrar a ferramenta iptables como uma

alternativa para gerenciamento em diferentes aspectos de redes de computadores,

pode-se dizer que o objetivo proposto foi atingido. Embora existam limitações na

execução das tarefas somente com o uso do iptables, essas tarefas podem ser

facilmente superadas com o uso conjunto de outras ferramentas livres também

presentes no Kernel do Linux, como foi demonstrado neste trabalho com a

ferramenta Traffic Control.

Quanto ao sistema de testes implementado, os resultados foram aceitáveis

em relação ao objetivo proposto, e se comparado à ferramentas específicas para as

funções avaliadas, pode-se considerar que os resultados foram positivos.

Nos testes de segurança realizados o iptables, sem auxilio de outra

ferramenta, foi capaz de evitar os ataques de Ping Flood e Varredura de portas. Já

nos testes de controle de tráfego e QoS, foi necessário o uso de outra ferramenta

em conjunto para que a função pudesse ser realizada, nos resultados desses testes

observou-se que os valores de largura de banda definidos foram respeitados, isso

garante o controle desses aspectos ao administrador da rede.

Durante o desenvolvimento dos testes houve dificuldade em encontrar

informações referentes aos módulos avançados do iptables, prevalecendo na

Internet, principal fonte de informação utilizada, somente informações relacionadas

as funções básicas, o que dificultou o conhecimento aprofundado em alguns

recursos disponibilizados pela ferramenta.

Pode perceber que o iptables é uma ferramenta rica em possibilidades, possui

diversos módulos e em suas regras permite diferenciar protocolos, portas, endereço

de origem e destino.

Sugere-se como trabalhos futuros a realização de testes para obtenção de

qualidade de serviço em um ambiente real, utilizando somente o iptables como

ferramenta de marcação para priorização de serviços.

Page 68: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

67

REFERÊNCIAS BIBLIOGRÁFICAS

ALECRIM, E. Ataques DoS (Denial of Service) e DDoS (Distributed DoS). 2012. Disponível em: <http://www.infowester.com/ddos.php>. Acesso em: 19 out. 2013. AX3 SOFT. How to Prevent Denial of Service (DoS) Attack. 2013. Disponível em: <http://www.ids-sax2.com/articles/PreventDosAttacks.htm>. Acesso em: 19 out. 2013. BERNARDES. G. Gerência de Redes - A importância do bom Gerenciamento. 2011. Disponível em: <http://gesielbernardes.blogspot.com.br/2011/10/gerencia-de-redes-importancia-do-bom.html> Acesso em: 13 mai. 2013. BROWN, M. A. Traffic Control HOWTO. 2006. Disponível em: <http://www.tldp.org/HOWTO/html_single/Traffic-Control-HOWTO/>. Acesso em 30 out. 2013. BOXMAN. J. A Practical Guide to Linux Traffic Control. 2005. Disponível em: <http://edseek.com/~jasonb/articles/traffic_shaping/>. Acesso em: 05 out. 2013. CENTRO DE ESTUDOS, REPOSTA E TRATAMENTO DE INCIDENTES DE SEGURANÇA NO BRASIL. Incidentes Reportados ao CERT -- Abril a Junho de 2013. 2013. Disponível em: <http://www.cert.br/stats/incidentes/2013-apr-jun/tipos-ataque.html>. Acesso em 19 out. 2013. CLIPATEC INFORMÁTICA. O que é Kernel?. 2011. Disponível em: <http://www.clipatecinformatica.com.br/2011/11/o-que-e-kernel.htm>. Acesso em: 06 out. 2013. FILHO, J. E. M. Controle de tráfego com TC, HTB e Iptables. 2007. Disponível em: <http://eriberto.pro.br/wiki/index.php?title=Controle_de_tr%C3%A1fego_com_TC,_HTB_e_Iptables>. Acesso em: 05 out. 2013. ______. Firewall com iptables. 2013. Disponível em: <http://eriberto.pro.br/iptables/3.html>. Acesso em 05 out. 2013. FOROUZAN, B. A. COMUNICAÇÃO DE DADOS E REDES DE COMPUTADORES. Tradução Glayson Eduardo de Figueiredo. 3. ed. Porto Alegre: Bookman, 2008. ICANN. Quase 4.294.967.296 endereços alocados – Resta menos de 10% do espaço de endereços IPv4: a adoção do IPv6 é essencial. 2010. Disponível em: <http://www.icann.org.br/announcements/announcement-29jan10.htm>. Acesso em: 23 set. 2013. IPTABLES. Manual iptables. Disponível em: <http://ipset.netfilter.org/iptables.man.html>. Acesso em: 11 jul. 2013.

Page 69: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

68

ITU - International Telecommunication Union. Key statistical highlights: ITU data release June 2012. 2012. Disponível em: <http://www.itu.int/ITU-D/ict/statistics/material/pdf/2011%20Statistical%20highlights_June_2012.pdf>. Acesso em: 18 mar. 2013. LEITE. R. P. C. Parâmetros das Filas-de-Espera. Disponível em: <http://paginas.fe.up.pt/~mrs01003/queues.html>. Acesso em: 27 nov. 2013. KUROSE, J. F.; ROSS, K, W. Redes de computadores e a Internet. 5. ed. São Paulo: Pearson, 2010. MARQUES, E. M. Um byte de cada vez: Seu FTP é ativo ou passivo?. Disponível em: <http://www.pop-rs.rnp.br/~berthold/etcom/redes2-2000/trabalhos/FTP_EltonMarques.htm>. Acesso em: 08 nov. 2013. MORIMOTO, C. E. Linux Redes e Servidores. 2. ed. São Paulo: GDH Press e Sul Editores, 2006. NEGUS, C. Linux Bible 2010 Edition. Indianapolis, Indiana: Wiley Publishing, Inc, 2010. NETO, Urubatan. Dominando Linux Firewall Iptables. Rio de Janeiro: Editora Ciência Moderna LTDA., 2004. NMAP. Nmap network scanning. Disponível em: <http://nmap.org/man/pt_pt/man-examples.html>. Acesso em: 15 out. 2013. PARK, K. I. QoS IN PACKET NETWORK. Estados Unidos: Springer Science + Business Media, Inc, 2005. SMITH, A. Entendendo o Three-way Handshake (Handshake de Três Vias). 2011. Disponível em: <http://www.softwarelivre-ac.org/areas/geral/66-redes/12-entendendo-o-three-way-handshake-handshake-de-tres-vias.html>. Acesso em: 01 nov. 2013. SILVA, G. M. Kernel e Módulos. 2010. Disponível em: <http://www.guiafoca.org/cgs/guia/intermediario/ch-kern.html>. Acesso em: 01 nov. 2013. TANENBAUM, A. S; WETHERALL, D. J. Redes de computadores. Tradução Daniel Vieira. 5. ed. São Paulo: Prentice Hall (Pearson), 2011. TANENBAUM, A. S.; WOODHULL. A. S. Sistemas operacionais projeto e implementação. Tradução Edson Furmankiewicz. 2. ed. Porto Alegre: Bookman, 2002. XIAO, X.; NI, L.M. Internet QoS: A Big Picture. East Lansing: Michigan State University, 1999.

Page 70: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

69

ANEXOS

ANEXO A – Script utilizado nos testes práticos

#!/bin/bash

case "$1" in

start)

echo "...INICIANDO SCRIPT..."

#<------------ZERANDO REGRAS----------------->

#LIMPANDO REGRAS

iptables -F

iptables -t nat -F

iptables -t mangle -F

tc qdisc del dev eth1 root

tc qdisc del dev eth2 root

tc qdisc del dev eth3 root

#<------------ZERANDO REGRAS----------------->

#<------------CONFIGURAÇÕES PADRAO----------------->

iptables -P INPUT DROP

iptables -P FORWARD ACCEPT

iptables -P OUTPUT DROP

#PERMITIR COMUNICAÇÃO DE LOOPBACK

iptables -A INPUT -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

#<------------CONFIGURAÇÕES PADRAO----------------->

#<------------CONTROLE DE TRÁFEGO----------------->

Page 71: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

70

tc qdisc add dev eth1 root handle 1:0 htb default 50

tc qdisc add dev eth2 root handle 2:0 htb default 50

tc qdisc add dev eth3 root handle 3:0 htb default 50

tc class add dev eth1 parent 1:0 classid 1:1 htb rate 1mbit

tc class add dev eth2 parent 2:0 classid 2:1 htb rate 1mbit

tc class add dev eth3 parent 3:0 classid 3:1 htb rate 1mbit

tc class add dev eth1 parent 1:1 classid 1:10 htb rate 100kbit

ceil 100kbit prio 5

tc class add dev eth1 parent 1:1 classid 1:11 htb rate 100kbit

ceil 300kbit prio 5

tc class add dev eth2 parent 2:1 classid 2:10 htb rate 100kbit

ceil 250kbit prio 5

tc class add dev eth2 parent 2:1 classid 2:15 htb rate 100kbit

ceil 500kbit prio 1

tc class add dev eth3 parent 3:1 classid 3:10 htb rate 100kbit

ceil 500kbit prio 5

#<------------CONTROLE DE TRÁFEGO----------------->

iptables -t mangle -A FORWARD -s 192.168.1.2 -j CLASSIFY --

set-class 1:11

iptables -t mangle -A FORWARD -d 192.168.1.2 -j CLASSIFY --

set-class 2:10

iptables -t mangle -A FORWARD -s 192.168.2.2 -j CLASSIFY --

set-class 1:10

iptables -t mangle -A FORWARD -d 192.168.2.2 -j CLASSIFY --

set-class 3:10

#<------------CONTROLE DE TRÁFEGO----------------->

#<------------QOS----------------->

iptables -t mangle -A FORWARD -d 192.168.1.2 -p TCP --sport

1024:65535 -j CLASSIFY --set-class 2:15

iptables -t mangle -A FORWARD -d 192.168.1.2 -p TCP --sport

20:21 -j CLASSIFY --set-class 2:15

#<------------QOS----------------->

Page 72: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

71

#<-----------------------PING----------------------->

#LIBERAR PING DO FIREWALL

iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT

#LIBERA PING VINDO DA REDE INTERNA

iptables -A INPUT -p icmp --icmp-type echo-request -i eth2 -j

ACCEPT

iptables -A INPUT -p icmp --icmp-type echo-request -i eth3 -j

ACCEPT

#ACEITA 1 PING POR SEGUNDO

iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -m

limit --limit 1/s -j ACCEPT

#CRIA LOG NOTIFICANDO ATAQUE DoS

iptables -A INPUT -p icmp --icmp-type echo-request -i eth1 -m

limit --limit 1/m -j LOG --log-prefix DoS --log-ip-options

#DESCARTA PING DA REDE EXTERNA

iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

#<-----------------------PING----------------------->

#<---------------------PORT SCAN---------------------->

#CRIA UM LOG DE AVISO DE PORTSCAN

iptables -A INPUT -m recent --update --hitcount 5 --name

BLACKLISTSCAN -m limit --seconds 3600 --limit 1/m -j LOG --

log-prefix ALERTA_DE_PORTSCAN --log-ip-options

#DESCARTA TODOS PACOTES POR 1 HORA CUJA ORIGEM ESTÁ NA LISTA

BLACKLISTSCAN

iptables -A INPUT -m recent --update --hitcount 5 --name

BLACKLISTSCAN --seconds 3600 -j DROP

iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT

iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -m

multiport --dports 21,20,22,80,3000 -j ACCEPT

iptables -A OUTPUT -p TCP -s 192.168.0.102 --sport 20:21 -d

0/0 --dport 1024:65535 -j ACCEPT

Page 73: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

72

#INSERE ORIGEM NA LISTA BLACKLISTSCAN

iptables -A INPUT -m recent --set --name BLACKLISTSCAN

#<---------------------PORT SCAN---------------------->

#<-------------REGRAS GENERICAS------------->

iptables -A INPUT -m state --state INVALID -j DROP

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j

ACCEPT

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j

ACCEPT

;;

stop)

echo "...Removendo as regras do Firewall..."

#Remove as regras do iptables

iptables -F

iptables -t nat -F

iptables -t mangle -F

#Muda a politica padrão para ACCEPT

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

#NÃO PERMITE NAT

echo "0" > /proc/sys/net/ipv4/ip_forward

#LIMPAR TC

tc qdisc del dev eth1 root

tc qdisc del dev eth2 root

tc qdisc del dev eth3 root

;;

*)

Page 74: CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICAfateclins.edu.br/v4.0/trabalhoGraduacao/91mOjpyDI6Wz...Figura 1.1 – Camadas do modelo OSI Figura 1.2 – Camadas do modelo TCP/IP Figura

73

echo "Usage: firewall {start|stop|restart|reload}"

exit 1

esac

exit 0

#!/bin/bash