Firewall Seguranca de Redes Linux

download Firewall Seguranca de Redes Linux

of 135

Transcript of Firewall Seguranca de Redes Linux

Firewall: Segurana de redes LinuxPaul Russell Gleydson Mazioli da Silva Alexandre Folle de Menezes

Traduo Oficial AlfamdiaAlexandre Folle de Menezes

Verso 1.1, agosto/2002.

As marcas registradas utilizadas no decorrer deste livro so usadas unicamente para fins didticos, sendo estas propriedade de suas respectivas companhias. A Alfamdia no assume qualquer responsabilidade por erros ou omisses, ou por danos resultantes do uso das informaes contidas neste livro. O captulo 5 uma adaptao do texto: Linux IPCHAINS-HOWTO Copyright 1999 Paul Russell, Traduo para o portugus por Gleydson Mazioli da Silva, O captulo 6 uma adaptao do texto: Guia Foca GNU/Linux Copyleft 1999-2002 - Gleydson Mazioli da Silva. Fonte: http://focalinux.cipsga.org.br Os captulos 1, 2 e 4 foram escritos por: Copyright 2002 por Alexandre Folle de Menezes Traduo para portugus - Brasil, 2002: Alfamdia Ltda Rua Flix da Cunha, 818 Porto Alegre - RS - Brasil Fone/Fax: +55 (51) 3346-7300 E-mail: [email protected] URL: http://www.alfamidia.com.br Esta apostila uma coletnea de textos com licena GNU ou livres encontrados na Internet, conforme referncias acima. Este material foi totalmente montado com fins didticos, sem objetivo comercial. Foram acrescentados exemplos e exerccios desenvolvidos pela Alfamdia Ltda.

CONTEDOCONTEDO ................................................................................................................... 5 1 TCP/IP ..................................................................................................................... 11

1.1 A CAMADA FSICA ................................................................................................. 11 1.2 A CAMADA DE ENLACE DE DADOS ....................................................................... 12 1.3 A CAMADA DE REDE ............................................................................................. 12 1.3.1 O DATAGRAMA IP............................................................................................... 13 1.3.2 FRAGMENTAO DOS DATAGRAMAS .................................................................. 14 1.4 CAMADA DE TRANSPORTE .................................................................................... 14 1.4.1 TCP..................................................................................................................... 14 1.4.1.1 O pacote TCP .................................................................................................. 15 1.4.2 UDP .................................................................................................................... 16 1.4.3 ICMP .................................................................................................................. 16 1.5 MONTAGEM DOS PACOTES .................................................................................... 17 1.6 ROTEAMENTO ....................................................................................................... 18 1.6.1 REEMPACOTAMENTO ........................................................................................... 20 EXERCCIOS.................................................................................................................... 21 2 ENDEREAMENTO............................................................................................. 22

2.1 ENDEREAMENTO DE ENLACE (MAC) ................................................................ 22 2.2 ENDEREAMENTO DE REDE (IP) .......................................................................... 22 2.2.1 MULTIHOMING .................................................................................................... 23 2.2.2 CLASSES DE REDE IP ........................................................................................... 23 2.2.3 ENDEREOS RESERVADOS PARA USO EM REDES PRIVADAS ................................. 24 2.2.4 ENDEREOS ESPECIAIS ........................................................................................ 24 2.2.4.1 O endereo de Rede......................................................................................... 24 2.2.4.2 O endereo de Broadcast................................................................................. 25 2.2.4.3 O endereo de Loopback ................................................................................. 25 2.2.5 DIVISO EM SUB-REDES ....................................................................................... 25 2.2.5.1 Mscaras de Sub-Rede .................................................................................... 25 2.2.6 SUPER-REDES E CDIR......................................................................................... 26 2.2.7 REFERNCIA RPIDA DE MSCARA DE REDES ...................................................... 26 2.3 ENDEREAMENTO DE SESSO (PORTAS) ............................................................. 27 EXERCCIOS.................................................................................................................... 28 3 CONECTANDO REDES ....................................................................................... 29

3.1 ROTEAMENTO ....................................................................................................... 29 3.1.1 ROTAS ESTTICAS E DINMICAS .......................................................................... 29 3.1.2 GATEWAY............................................................................................................ 30

3.2 NETFILTER ............................................................................................................ 30 3.2.1 ANATOMIA DO NETFILTER ................................................................................... 31 3.2.2 NAT .................................................................................................................... 31 3.2.2.1 Tipos de NAT .................................................................................................. 32 3.2.3 IMPLEMENTAO DE UM SERVIO NAT .............................................................. 32 4 VULNERABILIDADES NO PROTOCOLO TCP/IP ........................................ 33

4.1 DISPONIBILIDADE DOS DADOS............................................................................... 33 4.2 SOBRE O PROTOCOLO TCP/IP ............................................................................. 33 4.3 IP SPOOFING ......................................................................................................... 34 4.3.1 SERVIOS VULNERVEIS AO IP SPOOFING:.......................................................... 34 4.3.2 MEDIDAS PARA SE PREVENIR DE ATAQUES IP SPOOFING: .................................... 35 4.4 SOBRE OS ATAQUES ............................................................................................... 35 4.4.1 SYN FLOODING................................................................................................... 35 4.4.2 LAND ................................................................................................................... 35 4.4.3 WINNUKE ............................................................................................................ 36 4.4.4 TEARDROP .......................................................................................................... 36 4.4.5 NEWTEAR............................................................................................................ 37 4.4.6 BONK/BOINK ....................................................................................................... 37 4.4.7 SSPING ................................................................................................................. 37 4.4.8 SMURF ................................................................................................................. 37 5 FIREWALL IPCHAINS........................................................................................ 39

5.1 INTRODUO ......................................................................................................... 39 5.1.1 O QUE? ................................................................................................................ 39 5.1.2 POR QUE? ............................................................................................................ 39 5.1.3 COMO? ................................................................................................................ 39 5.1.4 ONDE? ................................................................................................................. 40 5.2 BSICO SOBRE A FILTRAGEM DE PACOTES........................................................... 40 5.2.1 O QUE ? ............................................................................................................. 40 5.2.2 POR QUE? ............................................................................................................ 40 5.2.3 COMO? ................................................................................................................ 41 5.2.3.1 Um kernel com filtragem de pacotes............................................................... 41 5.2.3.2 O ipchains .................................................................................................. 42 5.2.3.3 Fazendo regras permanentes............................................................................ 42 5.3 ROTEAMENTO, MASQUERADING, PORTFORWARDING, IPAUTOFW...................... 43 5.3.1 GUIA RPIDO DE TRS LINHAS PARA MASQUERADING ......................................... 43 5.3.2 CONFIGURAES DE FIREWALL SIMPLES ............................................................. 44 5.3.2.1 Rede Pblica .................................................................................................... 44 5.3.2.2 Rede Privada: Masquerading........................................................................... 45 5.3.2.3 Rede Privada: Proxies Transparentes .............................................................. 46 5.3.2.4 Rede Privada: Proxies Tradicionais................................................................. 47 6

5.3.2.5 Servios Internos Limitados ............................................................................ 48 5.3.3 MAIS DETALHES SOBRE MASQUERADING ............................................................ 48 5.4 IP FIREWALLING CHAINS ..................................................................................... 49 5.4.1 COMO OS PACOTES ATRAVESSAM OS FILTROS ...................................................... 49 5.4.1.1 Usando ipchains......................................................................................... 50 5.4.1.2 Operaes em uma regra Simples ................................................................... 51 5.4.1.3 Especificaes de Filtragem ............................................................................ 53 5.4.1.4 Efeitos do Lado da Filtragem .......................................................................... 57 5.4.1.5 Operaes em Masquerading .......................................................................... 64 5.4.1.6 Checando um Pacote ....................................................................................... 65 5.4.1.7 Multiplas Regras at Once and Watching What Happens ................................ 65 5.4.2 EXEMPLOS TEIS ................................................................................................. 66 5.4.2.1 Usando ipchains-save............................................................................. 68 5.4.2.2 Usando ipchains-restore...................................................................... 68 5.5 DIVERSOS .............................................................................................................. 69 5.5.1 COMO ORGANIZAR SUAS REGRAS DE FIREWALL ................................................... 69 5.5.2 O QUE NO FILTRAR ............................................................................................ 69 5.5.2.1 Pacotes ICMP .................................................................................................. 69 5.5.2.2 Conexes TCP para DNS (servidores de nomes)............................................ 70 5.5.2.3 Pesadelos FTP ................................................................................................. 70 5.5.3 FILTRANDO O PING OF DEATH (PING DA MORTE) ................................................. 71 5.5.4 FILTRANDO O TEARDROP E BONK........................................................................ 71 5.5.5 FILTRANDO BOMBAS DE FRAGMENTO ................................................................. 71 5.5.6 MODIFICANDO REGRAS DO FIREWALL ................................................................. 71 5.5.7 COMO EU CONFIGURO A PROTEO IP SPOOF?.................................................... 72 5.6 PROBLEMAS COMUNS ............................................................................................ 73 5.6.1 IPCHAINS -L TRAVA! ........................................................................................... 73 5.6.2 MASQUERADING/FORWARDING NO FUNCIONA!................................................. 73 5.6.3 -J REDIR NO FUNCIONA!.............................................................................. 73 5.6.4 CORINGAS NAS INTERFACES NO FUNCINAM! ..................................................... 74 5.6.5 TOS NO FUNCIONA! .......................................................................................... 74 5.6.6 IPAUTOFW E IPPORTFW NO FUNCIONAM! ........................................................... 74 5.6.7 XOSVIEW EST QUEBRADO! ................................................................................. 74 5.6.8 FALTA DE SEGMENTAO COM -J REDIRECT! ............................................ 74 5.6.9 EU NO POSSO CONFIGURAR TEMPO LIMITE NO MASQUERADE! ........................... 74 5.6.10 EU DESEJO PROTEGER IPX! ............................................................................... 75 6 FIREWALL IPTABLES........................................................................................ 76

6.1 INTRODUO ......................................................................................................... 76 6.1.1 VERSO ............................................................................................................... 77 6.1.2 UM RESUMO DA HISTRIA DO IPTABLES............................................................... 77

7

6.1.3 CARACTERSTICAS DO FIREWALL IPTABLES ......................................................... 77 6.1.4 FICHA TCNICA .................................................................................................... 78 6.1.5 REQUERIMENTOS ................................................................................................. 78 6.1.6 ARQUIVOS DE LOGS CRIADOS PELO IPTABLES ...................................................... 79 6.1.7 INSTALAO ........................................................................................................ 79 6.1.8 ENVIANDO CORREES/CONTRIBUINDO COM O PROJETO .................................... 79 6.1.9 O QUE ACONTECEU COM O IPCHAINS E IPFWADM? ............................................... 79 6.1.10 TIPOS DE FIREWALLS ......................................................................................... 79 6.1.11 O QUE PROTEGER?............................................................................................. 80 6.1.12 O QUE SO REGRAS?.......................................................................................... 81 6.1.13 O QUE SO CHAINS? .......................................................................................... 81 6.1.14 O QUE SO TABELAS?........................................................................................ 81 6.1.15 HABILITANDO O SUPORTE AO IPTABLES NO KERNEL .......................................... 82 6.1.16 LIGANDO SUA REDE INTERNA A INTERNET ......................................................... 84 6.2 MANIPULANDO CHAINS ......................................................................................... 84 6.2.1 ADICIONANDO REGRAS - A.................................................................................. 84 6.2.2 LISTANDO REGRAS - L ......................................................................................... 85 6.2.3 APAGANDO UMA REGRA - D ................................................................................ 87 6.2.4 INSERINDO UMA REGRA - I................................................................................... 88 6.2.5 SUBSTITUINDO UMA REGRA - R ........................................................................... 88 6.2.6 CRIANDO UM NOVO CHAIN - N............................................................................. 88 6.2.7 LISTANDO OS NOMES DE TODOS OS CHAINS ATUAIS ............................................. 90 6.2.8 LIMPANDO AS REGRAS DE UM CHAIN - F.............................................................. 90 6.2.9 APAGANDO UM CHAIN CRIADO PELO USURIO - X............................................... 90 6.2.10 ZERANDO CONTADOR DE BYTES DOS CHAINS - Z ............................................... 90 6.2.11 ESPECIFICANDO O POLICIAMENTO PADRO DE UM CHAIN - P............................. 91 6.3 OUTRAS OPES DO IPTABLES.............................................................................. 92 6.3.1 ESPECIFICANDO UM ENDEREO DE ORIGEM/DESTINO........................................... 92 6.3.2 ESPECIFICANDO A INTERFACE DE ORIGEM/DESTINO ............................................. 92 6.3.3 ESPECIFICANDO UM PROTOCOLO ......................................................................... 94 6.3.3.1 Especificando portas de origem/destino .......................................................... 94 6.3.3.2 Especificando mensagens do protocolo ICMP................................................ 94 6.3.3.3 Especificando pacotes syn ............................................................................... 95 6.3.4 ESPECIFICANDO FRAGMENTOS ............................................................................. 96 6.3.5 ESPECIFICANDO UMA EXCEO ........................................................................... 96 6.3.6 ESPECIFICANDO UM ALVO.................................................................................... 97 6.3.6.1 Alvo REJECT .................................................................................................. 98 6.3.6.2 Especificando LOG como alvo........................................................................ 98 6.3.6.3 Especificando RETURN como alvo.............................................................. 101 6.4 A TABELA NAT (NETWORK ADDRESS TRANSLATION) - FAZENDO NAT ............. 101 6.4.1 CRIANDO UM NOVO CHAIN NA TABELA NAT..................................................... 102

8

6.4.2 FAZENDO IP MASQUERADING (PARA OS APRESSADOS) ...................................... 102 6.4.3 FAZENDO SNAT................................................................................................ 102 6.4.3.1 Fazendo IP Masquerading ............................................................................. 104 6.4.4 FAZENDO DNAT ............................................................................................... 105 6.4.4.1 Redirecionamento de portas .......................................................................... 105 6.4.5 MONITORANDO CONEXES FEITAS NA TABELA NAT .......................................... 106 6.5 A TABELA MANGLE ............................................................................................. 106 6.5.1 ESPECIFICANDO O TIPO DE SERVIO ................................................................... 106 6.5.1.1 Especificando o TOS para trfego de sada................................................... 107 6.5.1.2 Especificando o TOS para o trfego de entrada ............................................ 107 6.6 OUTROS MDULOS DO IPTABLES ........................................................................ 107 6.6.1 CONFERINDO DE ACORDO COM O ESTADO DA CONEXO .................................... 108 6.6.2 LIMITANDO O NMERO DE VEZES QUE A REGRA CONFERE ................................. 108 6.6.3 PROTEO CONTRA PING DA MORTE .................................................................. 109 6.6.4 PROTEO CONTRA SYN FLOOD ......................................................................... 109 6.6.5 PROTEO CONTRA IP SPOOFING ...................................................................... 109 6.6.6 ESPECIFICANDO MLTIPLAS PORTAS DE ORIGEM/DESTINO................................. 110 6.6.7 ESPECIFICANDO O ENDEREO MAC DA INTERFACE........................................... 110 6.6.8 CONFERINDO COM QUEM CRIOU O PACOTE ........................................................ 111 6.7 CAMINHO PERCORRIDO PELOS PACOTES NAS TABELAS E CHAINS .................... 111 6.7.1 PING DE 192.168.1.1 PARA 192.168.1.1 ............................................ 112 6.7.2 CONEXO FTP DE 192.168.1.1 PARA 192.168.1.1 ............................................ 112 6.7.3 CONEXO FTP DE 192.168.1.1 PARA 192.168.1.4 ............................................ 113 6.7.4 CONEXO FTP DE 200.217.29.67 PARA FTP.DEBIAN.ORG.BR ................. 114 6.7.5 PING DE 192.168.1.4 PARA 192.168.1.1 ............................................................ 115 6.7.6 CONEXO FTP DE 192.168.1.4 PARA 192.168.1.1 ............................................ 116 6.7.7 CONEXO FTP DE 192.168.1.4 PARA FTP.DEBIAN.ORG.BR ................................ 117 6.7.8 CONEXO FTP DE 200.198.129.162 PARA 200.217.29.167 .............................. 118 6.7.9 GRFICO GERAL DA PASSAGEM DOS PACOTES ................................................... 118 6.8 EXEMPLOS DE CONFIGURAES DO IPTABLES ................................................... 119 6.8.1 BLOQUEANDO CONEXES DE FORA PARA SUA MQUINA ................................... 119 6.8.2 MONITORANDO TENTATIVA DE CONEXO DE TROJANS EM SUA MQUINA ......... 119 6.8.3 CONECTANDO SUA REDE INTERNA A INTERNET ................................................. 120 6.8.4 UM EXEMPLO DE FIREWALL SIMPLES ................................................................. 120 7 O PROXY SQUID ................................................................................................ 125

7.1 INTRODUO ....................................................................................................... 125 7.2 REQUISITOS BSICOS .......................................................................................... 125 7.3 O FEIJO COM ARROZ ......................................................................................... 126 7.3.1 INSTALAO ...................................................................................................... 126 7.3.2 CONFIGURAO ................................................................................................ 127 7.4 CONTROLANDO OS USURIOS ............................................................................. 128 9

7.5 EXEMPLOS DE CONFIGURAO .......................................................................... 130 7.5.1 PERMITIR HTTP_ACCESS PARA APENAS UMA MQUINA COM MAC ADDRESS IGUAL A 00:08:C7:9F:34:41 :.................................................................................................... 130 7.5.2 PARA RESTRINGIR ACESSO NAS HORAS DE TRABALHO (9 HORAS - 17 HORAS, DE SEGUNDA SEXTA) DA FAIXA DE IP 192.168.2.0 MSCARA 255.255.255.0 :................... 130 7.5.3 POSSO USAR UMA LISTA DE CONTROLE COM MULTIPLOS HORRIOS PARA DIFERENTES USURIOS?................................................................................................. 130 7.5.4 QUERO CRIAR UMA ACL PARA BLOQUEAR SITES COM A PALAVRA SEXO POIS MEUS FUNCIONRIOS FICAM BAIXANDO FILMES EM DIVX DE PORNOGRAFIA:.......................... 131 7.5.5 A IDIA ACIMA E TIMA, MAS EU TENHO UMA LISTA DE PALAVRAS PARA FAZER O MESMO. TEREI QUE REPETIR ESSE COMANDO VRIAS VEZES?........................................ 131 7.5.6 AINDA EXISTEM SITES QUE ESCAPAM A ESSE CONTROLE. GOSTARIA DE BLOQUELOS DIRETAMENTE......................................................................................................... 131 7.5.7 MEU DIRETOR RECLAMA QUE AGORA NO CONSEGUE MAIS LER AS ENTREVISTAS NO SITE DA PLAYBOY..................................................................................................... 132 7.5.8 E UMA LISTA DE DIRETRIOS? ........................................................................... 132 7.6 RECURSOS NA INTERNET .................................................................................... 132 APNDICE A. LICENA DE PUBLICAO LIVRE...................................... 133

10

1 TCP/IPO TCP/IP um protocolo que conecta redes LAN ou WAN, homogneas ou heterogneas. Ele pode fazer tanto a comunicao entre hosts ponto-aponto, como a comunicao entre cliente e servidor. Existem dois tipos de interao entre aplicaes. Comunicao Orientada Conexo apropriada quando as aplicaes precisam de uma troca contnua de dados. Em contraste, a Comunicao No Orientada Conexo apropriada quando as aplicaes trocam mensagens isoladas, geralmente com quantidades pequenas de dados. Para conseguir uma troca de dados confivel entre os ns, so necessrios vrios procedimentos: empacotamento dos dados, determinao do caminho a ser seguido pelos pacotes, transmisso dos dados, adaptao da taxa de transmisso de acordo com a capacidade do destino de receber dados, gerenciamento de erros e retransmisso de dados. Isso resulta em uma implementao complicada. Para facilitar essa tarefa, pode se usar uma implementao modular, agrupando as tarefas relacionadas em camadas distintas. Para o TCP/IP foi adotado um modelo de comunicao dividido em camadas, que depois viria a influenciar o modelo OSI que hoje considerado padro. Aplicaes e Servios TCP UDP IP PPP V.90 Ethernet Aplicao Apresentao Sesso Transporte Rede Enlace Fsico

Cada camada acrescenta informaes de controle ao pacote de dados e transmite seu pacote para a camada inferior, que tambm adiciona seus dados.

1.1 A camada FsicaA camada fsica trabalha com a mdia fsica, conectores, e os sinais que representam 0 e 1. Por exemplo, um modem padro V.90 ou V.92 implementam as funes da camada fsica. 11

1.2 A camada de Enlace de DadosA camada de enlace de dados usa a capacidade de transmisso de dados brutos da camada fsica e transforma-a em uma linha que parea camada de rede ser livre de erros de transmisso. O protocolo PPP um exemplo de camada de enlace de dados. Na camada de Enlace de Dados, os dados so organizados em quadros. Header Dados Trailer

Cada quadro tem um cabealho que inclui o endereo e controla a informao e um trailer que usado para deteco de erros. Um cabealho de quadro de LAN contm a os endereos fsicos de origem e destino, que identificam as placas de rede. Note que o Enlace pode ser uma rede local ou uma conexo Ponto-aPonto.

1.3 A camada de RedeO IP (Internet Protocol) executa as funes da camada de rede. O IP roteia os dados entre sistemas. Os dados podem atravessar um nico enlace ou podem ser retransmitidos por vrios enlaces pela internet. As unidades de dados so chamadas datagramas. Cabealho IP Endereo IP Origem Endereo IP Destino

Informao

Os datagramas tm um cabealho IP que contm endereamento de rede. Os roteadores examinam o endereo de destino no cabealho IP para direcionar os datagramas para seu destino. A camada IP dita No-Orientada Conexo porque cada datagrama roteado independentemente e o IP no garante a entrega confivel ou em seqncia dos datagramas.

12

1.3.1 O Datagrama IPO cabealho de um datagrama IP pode ser visto na figura abaixo: 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 Verso Header Precedncia Flags Length of Datagram Offset do Fragmento Checksum do Cabealho

Identificao TTL Protocolo

Endereo IP Origem Endereo IP Destino Opes Dados

Os campos do cabealho tm o seguinte significado: VERS: verso do protocolo IP que foi usada para criar o datagrama (4bits) HLEN: comprimento do cabealho, medido em palavras de 32 bits (4 bits) TOTAL-LENGTH: este campo proporciona o comprimento do datagrama medido em bytes, incluindo cabealho e dados. SERVICE-TYPE: este campo especifica como o datagrama poderia ser manejado TTL(Time To Live): especifica o tempo que o datagrama est permitido a permanecer no sistema Internet. Gateways e hosts que processam o datagrama devem decrementar o campo TTL cada vez que um datagrama passa por eles e devem remov-lo quando seu tempo expirar. PROTOCOL: especifica qual protocolo de alto nvel foi usado para criar a mensagem que est sendo transportada na rea de dados do datagrama. HEADER-CHECKSUM: cabealho. assegura integridade dos valores do

SOURCE AND DESTINATION IP ADDRESS: especifica o endereo IP de 32 bits do remetente e receptor. IDENTIFICATION, FLAGS e FRAGMENTS: estes trs campos controlam a fragmentao e a unio dos datagramas. O campo de

13

identificao contm um nico inteiro que identifica o datagrama, um campo muito importante porque quando um gateway fragmenta um datagrama, ele copia a maioria dos campos do cabealho do datagrama em cada fragmento, ento a identificao tambm deve ser copiada, com o propsito de que o destino saiba quais fragmentos pertencem a quais datagramas. Cada fragmento tem o mesmo formato que um datagrama completo. FRAGMENT OFFSET: especifica o incio do datagrama original dos dados que esto sendo transportados no fragmento. medido em unidades de 8 bytes.

1.3.2 Fragmentao dos DatagramasAo realizar trocas de pacotes, os aplicativos da Internet se deparam com um problema: A diferena do tamanho das mensagens nas diversas redes. Nesse caso, o protocolo IP suporta o processo de fragmentao, onde os datagramas so divididos em unidades menores. O procedimento de fragmentao realizado por um gateway, onde as mensagens so partidas em unidades menores e adequadamente identificadas. a estao destino ento reagrupar as instrues baseado nas identificaes do gateway. Na identificao dos fragmentos o gateway cria um header para cada fragmento.O header contm os endereos iniciais das redes e uma identificao referente mensagem a qual faz parte. J na fase de reagrupamento, a estao destino, ao receber o primeiro fragmento, independentemente de estar na ordem correta, aciona um timer. Se uma margem de tempo padro for ultrapassada e a mensagem no estiver completamente recontituida, a estao destino descarta os fragmentos recebidos e retorna origem uma mensagem de erro.

1.4 Camada de Transporte1.4.1 TCPO TCP (Transmission Control Protocol) proporciona conexes de dados confiveis para as aplicaes. O TCP conta com mecanismos que garantem que os dados so entregues s suas aplicaes locais: 14 ntegros Em seqncia Completos Sem duplicatas Numerao dos segmentos

Os mecanismos bsicos que o TCP usa para conseguir isso so:

Estabelecimento de Timeout Retransmisso dos segmentos

O lado que recebe os dados deve coloc-los em na seqncia correta, descartando duplicatas e confirmando o recebimento dos mesmos. O TCP implementado apenas nos hosts. O TCP um protocolo fullduplex, ou seja, ambos os lados podem enviar dados ao mesmo tempo. O TCP adiciona um cabealho ao pacote de dados da aplicao, formando um segmento. O TCP passa os segmentos ao IP, que ento roteia os mesmos at seu destino. O TCP aceita segmentos do IP, determina qual aplicao o destino, e passa os dados para a aplicao apropriada. 1.4.1.1 O pacote TCP

0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7

Porta Origem Nmero de Seqncia

Porta Destino

Nmero de Reconhecimento Offset Reservado Checksum Opes Dados Flags Window Urgent Pointer

Os campos do cabealho tm o seguinte significado: Porta Origem e Destino: estes campos no cabealho TCP contm os nmeros de portas TCP que identificam os programas de aplicao dos extremos de uma conexo. Nmero de sequncia (32 bits): identifica a posio no fluxo de bytes do segmento enviado pelo transmissor. Nmero de Reconhecimento (32 bits): este campo identifica a posio do byte mais alto (ou ltimo byte) que o fonte recebeu.

15

Offset: contm um inteiro que especifica o incio da poro de dados do segmento. Este campo necessrio j que o campo Options varia em comprimento dependendo de quais opes tenham sido includas. Reserv: reservado para uso futuro. Flags (6 bits): determina o propsito e contedo do segmento, codificado assim: o URG - Campo de ponteiro Urgente vlido o ACK - Campo de Reconhecimento vlido o PSH - Este segmento solicita um PUSH o RST - Reset da conexo o SYN - Sincroniza numeros de sequncias o FIN - O transmissor chega ao fim do fluxo de bytes.

WINDOW: atravs deste campo o software TCP indica quantos dados ele tem capacidade de receber em seu buffer. URGENT POINTER: TCP atravs deste campo permite que o transmissor especifique que alguns dados so urgentes, isto significa que os dados sero expedidos to rpido quanto seja possvel. OPTIONS: o software TCP usa este campo para se comunicar com o software do outro extremo da conexo. CHECKSUM: usado para verificar a integridade tanto do cabealho como dos dados do segmento TCP.

1.4.2 UDPO UDP no faz nenhuma garantia quanto entrega dos dados, e dever da aplicao trocar informaes que confirmem a chegada dos dados. O UDP implementado apenas nos hosts. Com o UDP (User Datagram Protocol), uma aplicao manda uma mensagem isolada para outra aplicao. O UDP adiciona um cabealho, formando um datagrama UDP. O UDP passa os segmentos ao IP, que ento roteia os mesmos at seu destino. O UDP aceita segmentos do IP, determina qual aplicao o destino, e passa os dados para a aplicao apropriada.

1.4.3 ICMPO IP tem um projeto simples e elegante. Em condies normais, o IP faz um uso muito eficiente da memria e recursos de transmisso. Como IP prov um servio de expedio de datagramas sem conexo e no confivel, e alm disso um datagrama viaja de um gateway a outro at alcanar um gateway que possa exped-lo diretamente estao destino; 16

necessrio um mecanismo que emita informaes de controle e de erros quando acontecerem problemas na rede. Alguns dos problemas tpicos que podem acontecer so: Um gateway no pode expedir ou rotear um datagrama; Um gateway detecta congestionamento. uma condio no usual, tal como

O mecanismo de controle que emite mensagens quando acontece algum erro a funo principal do protocolo ICMP. O ICMP permite aos gateways enviar mensagens de erros ou de controle a outros gateways ou hosts. ICMP prov comunicao entre o software de IP numa mquina e o software de IP numa outra mquina.Tabela 1-1 Mensagens ICMP

Tipo 0 3 4 5 8 11 12 13 14

Mensagem Echo Reply Destination Unreachable Source Quench Redirect Echo Time Exceeded Parameter Problem Time Stamp Time Stamp Reply

ICMP somente reporta condies de erros fonte original. A fonte deve relatar os erros aos programas de aplicao individuais e tomar ao para corrigir o problema. Uma das mensagens que o ICMP pode enviar : Destination Unreachable, o qual, por sua vez pode ser dos seguintes tipos: Network Unreachable (rede no alcanvel) Host Unreachable (mquina no alcanvel) Port Unreachable (porta no alcanvel) Destination Host Unknown (mquina destino desconhecido) Destination Network Unknown (rede destino desconhecida)

1.5 Montagem dos pacotesNa maioria das redes, a informao dividida em vrias partes, chamadas de pacotes, por duas razes: compartilhamento de recursos e deteco/correo de erros.

17

Obviamente no justo que um nico usurio da domine os recursos da rede por muito tempo. Com a diviso da informao em pacotes, cada um dos pacotes pode ser enviado/recebido individualmente, permitindo assim que outros pacotes possam trafegar pela rede. Isso possibilita um compartilhamento justo dos recursos. Na maioria dos casos, os dispositivos so conectados atravs de cabos. Em alguns casos, usa-se ondas de rdio ou mesmo luz infravermelha. Ambas as formas de conexo fsica esto sujeitas a interferncias, que podem corromper os dados que trafegam na rede. Grande parte do trabalho complexo em redes detectar e solucionar os erros no trfego dos dados. A maioria das tcnicas de deteco e correo de erros baseada no uso de checksums. Quando a informao enviada, anexado em seu final um nmero indicando a soma de todos os bytes da mesma. Na recepo, esse nmero comparado com a soma dos dados recebidos. Se houver diferena, a informao est corrompida e deve ser retransmitida. Caso o bloco de dados seja muito grande, o reenvio vai tomar muito tempo, degradando a performance da rede. Para minimizar este problema, divide-se a informao em pacotes. Se houver algum erro, basta retransmitir apenas os pacotes corrompidos. AplicaaoDados

Dados

TransporteSegmento TCP

TransporteDatagrama UDP

{IP Header Frame Header IP Header

TCP Header UDP Header

Dados Dados

RedeDatagrama

TCP/UDP Header

Dados

EnlaceQuadro

TCP/UDP Header

Dados

Frame Trailer

1.6 RoteamentoO TCP/IP pode ser usado em redes locais e para interligao de redes. As diversas redes locais conversam atravs dos roteadores. Pode haver mais de um caminho entre dois pontos.

18

As redes isoladas so conectadas por meio de Roteadores IP. Roteadores modernos so equipados com vrios slots que podem receber diferentes tipos de adaptadores de rede: Ethernet, Token-Ring, FDDI, PPP, etc. O software de IP roda nos hosts e nos roteadores. Se o destino est no mesmo enlace, manda-se o datagrama diretamente para ele; Se o destino no est no mesmo enlace, manda-se o pacote para o roteador local; Se o destino no estiver no mesmo enlace do roteador, este ir repass-lo ao prximo roteador. Este processo continua at que o destino seja atingido.

Pode ser til ilustrar isto com um exemplo. Imagine um simples roteador de escritrio, ele pode ter um link intermitente com a Internet, um nmero de segmentos Ethernet alimentando as estaes de trabalho e outro link PPP intermitente fora de outro escritrio. Quando o roteador recebe um datagrama de qualquer de suas conexes de rede, o mecanismo que usa determina qual a RoteadorN

N

RoteadorN N

Roteador

N

Rede Local InternetN N

N

N

prxima interface deve enviar o datagrama. Computadores simples tambm precisam rotear, todos os computadores na Internet tm dois dispositivos de rede. Um a interface loopback (explicada acima), o outro usado para falar com o resto da rede, talvez uma interface Ethernet, talvez uma interface serial PPP ou SLIP. Cada computador mantm uma lista de regras especiais de roteamento, chamada tabela de roteamento. Esta tabela contm colunas que tipicamente contm no mnimo trs campos, o primeiro o endereo de destino, o segundo o nome da interface que o datagrama deve ser roteado e o terceiro opcionalmente o endereo IP da outra mquina que levar o datagrama em

19

seu prximo passo atravs da rede. No GNU/Linux voc pode ver a tabela de roteamento usando um dos seguintes comandos:cat /proc/net/route route -n netstat -r

O processo de roteamento muito simples: um datagrama (pacote IP) recebido, o endereo de destino (para quem ele ) examinado e comparado com cada item da tabela de roteamento. O item que mais corresponder com o endereo selecionado e o datagrama direcionado a interface especificada. Se o campo gateway estiver preenchido, ento o datagrama direcionado para aquele computador pela interface especificada, caso contrrio o endereo de destino assumido sendo uma rede suportada pela interface. Em uma LAN pequena, as tabelas de roteamento podem ser feitas manualmente. Em redes maiores, os roteadores mantm suas tabelas atualizadas trocando informaes entre si. Roteadores podem descobrir eventos como: Uma nova rede adicionada a internet; Um caminho foi interrompido, e um destino no pode ser atingido; Uma nova rota foi estabelecida para um destino.

No existe um padro nico para troca de informao entre roteadores. A liberdade de escolha do protocolo estimulou a competio e levou a grandes melhorias nos protocolos. Os protocolos de roteamento mais usados so o RIP e o OSPF.

1.6.1 ReempacotamentoExiste um evento olmpico onde um competidor nada uma parte do percurso, pega uma bicicleta e pedala outra parte, e corre uma terceira etapa. O IP funciona da mesma maneira. O datagrama foi projetado para poder ser mudado de uma mdia para outra at chegar ao seu destino. Antes de um datagrama ser transmitido por um enlace, ele empacotado em um quadro apropriado para o enlace. Quando um roteador recebe o quadro: O roteador desempacota o quadro e extrai o datagrama O roteador analisa o endereo de destino e descobre a mdia do prximo trecho O roteador reempacota o datagrama em um novo quadro, apropriado para o prximo lao

20

Exerccios1. Em que nvel de TCP/IP rodam o telnet e o ftp? a) Fsico b) Sesso c) Aplicao d) Transporte e) Enlace

2. Qual das seguintes aplicaes no usa o protocolo UDP? a) TFTP b) DNS c) RPC d) FTP e) SNMP

21

2 ENDEREAMENTOEm uma rede, o endereo de um dispositivo uma forma de identificar esse dispositivo como sendo nico. Normalmente, os endereos de rede possuem um formato padronizado e bem definido.

2.1

Endereamento de Enlace (MAC)

Os endereos MAC (Media Access Control) so atribudos aos adaptadores de rede durante sua fabricao, sendo que cada adaptador tem um endereo que o identifica como nico. Cada fabricante tem um cdigo que o diferencia dos demais. Os endereos MAC so escritos no seguinte formato:00-c0-49-3f-c6-0c

Os primeiros bytes contm o cdigo do fabricante, os demais contm o modelo e nmero serial do adaptador de rede.

2.2

Endereamento de Rede (IP)

O protocolo IP usa Endereos IP para identificar estaes e para rotear os dados para elas. cada estao deve ser atribudo um endereo IP exclusivo. Um endereo IP um nmero de 32 bits. Este tamanho foi escolhido para caber convenientemente em um registrador de 32 bits. O espao de endereamento resultante possui 232 (ou 4.294.967.296) nmeros possveis. A notao de ponto foi inventada para facilitar a leitura e escrita dos nmeros IP. Cada octeto do endereo convertido para um nmero decimal, e os nmeros so separados por pontos. Por exemplo, o endereo da estao blintz.med.yale.edu 130.132.19.31.Em redes roteadas, o endereo composto de pelo menos dois nmeros: o da rede e o do n. Se dois dispositivos possurem endereos com o mesmo nmero de rede, ento eles esto localizados na mesma rede. Do contrrio, esto em redes distintas, mas unidas atravs de um roteador. O nmero que ir diferencia-los dentro desta rede o nmero do n. Os endereos IP so nmeros que identificam seu computador em uma rede TCP/IP. Inicialmente voc pode imaginar o IP como um nmero de telefone. O IP composto por quatro bytes e a conveno de escrita dos nmeros chamada de "notao decimal pontuada". Por conveno, cada interface (placa usada p/ rede) do computador ou roteador tem um endereo IP. Tambm permitido que o mesmo endereo IP seja usado em mais de uma interface de uma mesma mquina, mas normalmente cada interface tem seu prprio endereo IP. As Redes do Protocolo Internet so seqncias contnuas de endereos IP. Todos os endereos dentro da rede tm um nmero de dgitos dentro dos 22

endereos em comum. A poro dos endereos que so comuns entre todos os endereos de uma rede chamada de poro da rede. O conjunto dos dgitos restantes chamado de poro dos hosts. O nmero de bits que so compartilhados por todos os endereos dentro da rede chamado de netmask (mscara da rede) e o papel da netmask determinar quais endereos pertencem ou no a rede. Por exemplo, considere o seguinte:Tabela 2-1 Formao de Endereos IP

Endereo do Host Mscara da Rede Poro da Rede Poro do Host Endereo da Rede Endereo Broadcast

192.168.110.23 255.255.255.0 192.168.110. .23 192.168.110.0 192.168.110.255

Qualquer endereo que finalizado em zero em sua netmask revelar o endereo da rede a que pertence. O endereo de rede ento sempre o menor endereo numrico dentro da escalas de endereos da rede e sempre possui a poro host dos endereos codificada como zeros. O endereo de broadcast um endereo especial que cada computador em uma rede "escuta" em adio a seu prprio endereo. Este um endereo onde os datagramas enviados so recebidos por todos os computadores da rede. Certos tipos de dados, como informaes de roteamento e mensagens de alerta, so transmitidos para o endereo broadcast, assim todo computador na rede pode receb-las simultaneamente. Existem dois padres normalmente usados para especificar o endereo de broadcast. O mais amplamente aceito para usar o endereo mais alto da rede como endereo broadcast. No exemplo acima este seria 192.168.110.255. Por algumas razes outros sites tm adotado a conveno de usar o endereo de rede como o endereo broadcast. Na prtica no importa muito se usar este endereo, mas voc deve ter certeza que todo computador na rede esteja configurado para escutar o mesmo endereo broadcast.

2.2.1 MultihomingOs sistemas no tem endereos IP, as suas interfaces que os tm. Um roteador com quatro interfaces de rede precisa de quatro endereos IP. Um sistema que est ligado a mais de uma sub-rede chamado de multihomed.Classes de Rede IP Por razes administrativas aps pouco tempo no desenvolvimento do protocolo IP alguns grupos arbitrrios de endereos foram formados em redes e estas redes foram agrupadas no que foram chamadas de classes. Estas classes armazenam um tamanho padro de redes que podem ser usadas. As faixas alocadas so:

23

Tabela 2-2 Classes de Endereamento

Bits Mais Classe Significativos A B C D E00000 10000 11000 11100 11110

Mscara de Rede255.0.0.0 255.255.0.0 255.255.255.0 240.0.0.0

Endereos Possveis na Rede0.0.0.0 127.255.255.255 128.0.0.0 - 191.255.255.255 192.0.0.0 - 223.255.255.255 224.0.0.0 - 239.255.255.255 240.0.0.0 255.255.255.255

2.2.3 Endereos reservados para uso em Redes PrivadasSe voc estiver construindo uma rede privada que nunca ser conectada a Internet, ento voc pode escolher qualquer endereo que quiser. No entanto, para sua segurana e padronizao, existem alguns endereos IP's que foram reservados especificamente para este propsito. Eles esto especificados no RFC1597 e so os seguintes:Tabela 2-3 Endereos IP Reservados Para Redes Privadas

Classe A B C

Mscara de Rede255.0.0.0 255.255.0.0 255.255.255.0

Endereos Possveis na Rede10.0.0.0 172.16.0.0 - 10.255.255.255 - 172.31.255.255

192.168.0.0 - 192.168.255.255

Voc deve decidir primeiro qual ser a largura de sua rede e ento escolher a classe de rede que ser usada. Pode-se obter um software de Proxy que repassa a informao entre os computadores internos e o mundo exterior atravs do endereo de Classe C registrado.

2.2.4 Endereos EspeciaisNem todos os nmeros podem ser atribudos a uma sub-rede ou estao. Por exemplo, alguns endereos so reservados para broadcast, outros so reservados para tabelas de roteamento. 2.2.4.1 O endereo de Rede Se um nmero IP tiver todos os bits da estao em 0, ele se refere rede, e no uma estao especfica. Por outro lado, se os bits da sub-rede fossem todos 0, a identificao seria ambgua, por isso essa combinao invlida.

24

2.2.4.2 O endereo de Broadcast O endereo IP 255.255.255.255 reservado para broadcast para todos os sistemas no link local. Se os bits da estao forem todos 1, feito um broadcast para a subrede correspondente. Por exemplo, o Endereo 192.18.7.255 significa um broadcast para a rede 192.18.7.0. Se os bits da estao e sub-rede forem todos 1, feito um broadcast para todas as estaes da rede indicada. Um boa regra nunca usar endereos de rede ou estao cujos bits sejam todos iguais (0 ou 1). Da pode-se deduzir que um campo nunca pode ter menos do que 2 bits. 2.2.4.3 O endereo de Loopback No extremo oposto do broadcast, existem mensagens que nunca deixam a estao local. Existem muitas estaes que contm processos clientes e servidores. Os clientes locais comunicam-se com o servidor por IP. Para fazer isso, eles geralmente usam um endereo especial chamado Endereo de Loopback. Por conveno, qualquer endereo comeando com 127 reservado para esse propsito. Na prtica, apenas o endereo 127.0.0.1 usado.Diviso em sub-redes Uma rede de Classe A tem 16.777.216 endereos, uma rede de Classe B suporta 65.536 e uma de Classe C apenas 256. A grande diferena entre esses nmeros levam uma alocao muito ineficiente dos blocos e contribui para o esgotamento dos endereos IP. Por outro lado, uma organizao com um endereo de classe C s tem um espao de endereamento de 1 byte. Pode ser feito ento a diviso de 4 bits para o endereo de sub-rede e 4 bits para o endereo do sistemaMscaras de Sub-Rede O trfego roteado para uma estao olhando para as partes de rede e sub-rede do seu endereo IP. Um endereo de Classe A, B ou C tem a parte de rede com tamanho fixo. Mas em organizaes que escolhem os seus campos de sub-rede, como as estaes e roteadores reconhecem o campo? A resposta que os sistemas tem que ser configurados para conhecer o tamanho da parte de sub-rede do endereo. O tamanho do campo da sub-rede armazenado em um parmetro chamado Mscara de Sub-rede, ou Subnet Mask. uma seqncia de 32 bits, onde os bits correspondentes rede e subrede so setados em 1, e os bits do sistema so setados em 0. Por exemplo, se quisermos usar o terceiro byte de um endereo classe C para indicar a sub-rede, a mscara seria:11111111 11111111 11111111 00000000

As mscaras geralmente so expressas usando a notao decimal, ento a mscara acima seria escrita como 255.255.255.0. J no caso de querermos dividir um endereo Classe C usando 4 bits para o campo da sub-rede, a mscara ficaria assim: 25

11111111 11111111 11111111 11110000

Ou, na forma decimal, 255.255.255.240. Bits de Nmeros de Sub-Rede Sub-Rede 0 1 2 3 4 5 6 7 0 2 4 8 16 32 64 Bits da Estao 8 7 6 5 4 3 2 1 Nmero de Mquinas 254 128 62 30 14 6 2 Mscara 255.255.255.0 255.255.255.128 255.255.255.192 255.255.255.224 255.255.255.240 255.255.255.248 255.255.255.252 Invlido

A tabela acima mostra as vrias maneiras em que um endereo local de classe C pode ser dividido. Ele tambm mostra o nmero de sub-redes e estaes para cada partio. O nmero de sub-redes e estaes menor do que o que se espera porque alguns endereos so reservados para propsitos especficos.Super-Redes e CDIR O mtodo de atribuir blocos de endereos de classe A, B e C era muito ineficiente. Um bloco de Classe C proporciona 254 endereos, que pode ser muito ou pouco, dependendo do tamanho da organizao. Pode haver escassez ou desperdcio de endereos. Faria mais sentido atribuir s organizaes o nmero de bits que elas realmente precisam. Isso feito facilmente. Se uma organizao precisa de 4000 endereos, ela ganha 12 bits para usar como parte local de seu endereamento. Os 20 bits restantes so o prefixo, usado como endereo de super-rede ou prefixo. A maneira de nomear esse endereo sem classe /20. Obter um prefixo de 20 bits equivalente a obter 16 blocos contnuos de classe C. Para rotear para uma organizao, o roteador precisa saber o nmero de bits no prefixo e o padro de bits designado para o prefixo da organizao. O roteador pode ento enviar trfego para a organizao com uma nica entrada na tabela de roteamento. Isto chamado Classless Internet-Domain Routing (CDIR).Referncia rpida de mscara de redes A tabela abaixo faz referncia s mscaras de rede mais comuns e a quantidade de mquinas mximas que ela atinge. Note que a especificao da mscara tem influncia direta na classe de rede usada: Mscara (octal)Classe A:

Mscara (32 bits) /255.0.0.0 /255.128.0.0 /255.192.0.0

Nmero de Mquinas 16,777,214 8,388,606 4,194,302

/8 /9 /10 26

/11 /12 /13 /14 /15Classe B:

/255.224.0.0 /255.240.0.0 /255.148.0.0 /255.252.0.0 /255.254.0.0 /255.255.0.0 /255.255.128.0 /255.255.192.0 /255.255.224.0 /255.255.240.0 /255.255.248.0 /255.255.252.0 /255.255.254.0

2,197,150 1,048,574 524,286 262,142 131,070 65,534 32,766 16,382 8,190 4,094 2,046 1,022 510

/16 /17 /18 /19 /20 /21 /22 /23Classe C:

/24 /255.255.255.0 254 /25 /255.255.255.128 126 /26 /255.255.255.192 62 /27 /255.255.255.224 30 /28 /255.255.255.240 14 /29 /255.255.255.248 6 /30 /255.255.255.252 2 /32 /255.255.255.255 1 Qualquer outra mscara fora desta tabela (principalmente para a classe A), dever ser redimensionada com uma calculadora de IP para chegar a um nmero aproximado de redes/mquinas aproximados que deseja.

2.3

Endereamento de Sesso (Portas)

Todo processo que deseje estabelecer comunicao com outro processo deve se identificar de alguma forma. O TCP/IP implementa essa comunicao atravs do uso do conceito de portas (ou ports). A porta um nmero de 16 bits que identifica processos (ou servios de rede). O nmero da porta de origem e o nmero da porta de destino esto Ap. 23 Ap. 80 Ap. 53 Ap. 161

Portas TCP UDP 27

includos no cabealho de cada segmento TCP ou pacote UDP. Um socket uma combinao de um endereo IP com um nmero de porta, e identifica um processo como nico na rede.

Exerccios1. O que significa a sigla MAC? a) Media Assynchronous Connection b) Master Assynchronous Connection c) Media Access Connection d) Media Access Control e) Master Access Control

2. Que endereo de rede no roteado na internet? a) 128.9.0.0 b) 10.0.0.0 c) 191.168.72.0 d) 171.20.20.0 e) 8.0.0.0 3. So mscaras padro de redes classe A, B e C: a) 0.0.0.255, 0.0.255.255, 0.255.255.255 b) 0.0.0.0, 0.0.0.255, 0.0.255.255 c) 255.0.0.0, 255.255.0.0, 255.255.255.0 d) 0.0.0.0, 255.0.0.0, 255.255.0.0 e) 255.255.255.0, 255.255.0.0, 255.0.0.0

28

3 CONECTANDO REDESAdaptado dehttp://www.conectiva.com/doc/livros/online/8.0/servidor/conectividade.html#CONECTANDOREDES

A criao de grandes redes de computadores possvel graas interligao de pequenas redes de computadores. No entanto, essa diviso de redes em pequenas unidades gera a necessidade de se criar meios que permitam que essas unidades sejam capazes de se conectar e trocar informaes. Alm dos meios fsicos (cabos, hubs, roteadores, etc.) so necessrios tambm os meios lgicos que permitam essa troca de informao. Sero estudados a seguir os conceitos bsicos sobre roteamento, e em seguida ser visto um tipo particular de roteamento chamado NAT (Network Address Translation).

3.1 RoteamentoPara entender melhor como funciona o processo de transmisso de um pacote de dados dentro de uma rede, pode ser feita uma analogia com o processo de uma ligao telefnica. Ao se discar o nmero do telefone com quem se deseja falar, a sua central telefnica verifica se o nmero est conectado a ela, se no estiver ela "encaminha" a sua ligao para outra central que por sua vez faz o mesmo teste, at chegar a central onde se localiza o nmero de destino. Os cdigos de pas, rea e o prefixo do telefone so utilizados para determinar para qual central sua ligao deve ser encaminhada. Cada central por onde a ligao passa, alm de decidir para onde encaminhar a ligao, funciona tambm como uma espcie de retransmissora ao receber sua ligao de uma central e repass-la para outra. Um processo bastante semelhante acontece em uma rede de computadores, ou seja, quando um computador tenta se comunicar com outro que no esteja diretamente ligado a ele (ou em sua sub-rede), ele deve enviar seus datagramas para uma mquina especial, ligada a duas ou mais redes e que encaminhar os datagramas para o destino. Essa mquina especial recebe o nome de gateway ou roteador, e ao processo de decidir para onde repassar os datagramas chamamos de roteamento. A idia bsica do roteamento a criao de regras que estabeleam que caminho um datagrama deve tomar baseado no endereo de destino dele. Em uma mquina cliente essa regra bastante simples: tudo que no for para a rede local deve ser enviado para a mquina gateway (essa regra chamada rota padro). J em uma mquina gateway podem ser necessrias muito mais regras, principalmente se essa mquina est conectada a um grande nmero de redes.

3.1.1 Rotas estticas e dinmicasExistem dois tipos de rotas que podem ser utilizadas por um roteador: rotas estticas e dinmicas. As rotas estticas so explicitamente configuradas

29

pelo administrador, enquanto que as rotas dinmicas podem ser "aprendidas" atravs da utilizao de um servio especial para esse fim. As rotas dinmicas utilizam protocolos especiais como o RIP (Routing Information Protocol), OSPF (Open Shortest Path First) e BGP (Border Gateway Protocol) para divulgar e aprender rotas. O Linux possui o servio routed que capaz de utilizar estes protocolos. As rotas estticas podem ser configuradas com o auxlio do Linuxconf, e no necessitam de nenhum servio adicional. Ser visto aqui apenas a configurao de rotas estticas, j que a utilizao de rotas dinmicas normalmente s necessria em grandes redes e Sistemas Autonmos (AS).

3.1.2 GatewayUm gateway ou roteador funciona como uma porta de sada de uma rede; ele um mquina equipada com duas ou mais interfaces ou dispositivos de rede e capaz de fazer o repasse de datagramas para fora ou para dentro da rede. Essa mquina possui diferentes nmeros IPs associados a cada interface. O Linux capaz de decidir automaticamente por qual interface de rede ele deve enviar datagramas baseado nos IPs de cada interface e na definio da rota padro. Existem alguns casos nos quais necessrio informar ao seu gateway como alcanar uma determinada rede, por exemplo, no caso dessa rede estar por trs de um outro gateway. Para esses casos especiais necessrio inserir uma rota esttica para esta rede (caso no se esteja usando um servio de rotas dinmicas).

3.2 NetfilterO kernel do Linux possui recursos bastante sofisticados para filtrar e transformar pacotes IP. Esses recursos, agrupados sob o nome de netfilter, podem ser configurados com o auxlio do comando iptables. O netfilter permite a construo de firewalls e de gateways com NAT (Network Address Translation). O site oficial do netfilter http://netfilter.gnumonks.org/. Sero estudados aqui os conceitos bsicos do netfilter e como utilizar o recurso de NAT.

30

3.2.1 Anatomia do netfilterO netfilter possui um conjunto de ganchos (tambm chamados de cadeias ou chain) em vrios pontos da pilha de um protocolo (ser considerado aqui somente o protocolo IPv4). Cada gancho um ponto no caminho que um pacote IP percorre ao entrar ou sair de uma mquina, conforme a figura abaixo:

Figura 3-1Estrutura do Netfilter

O gancho PRE-ROUTING est ligado entrada de pacotes na mquina; aps a deciso de roteamento os pacotes que no so destinados mquina local atravessam o gancho FORWARD e finalmente saem da mquina passando pelo gancho POST-ROUTING. O gancho INPUT atravessado pelos pacotes que chegam com destino mquina local enquanto que o gancho OUTPUT utilizado pelos pacotes originados na mquina local. Para filtrar ou transformar pacotes IP, o netfilter possui estruturas chamadas tabelas, que se ligam a conjuntos de ganchos. Essas tabelas so implementadas atravs de mdulos do kernel. Por padro o kernel possui trs tabelas: filter, nat e mangle. Cada tabela possui regras ligadas a cada um dos ganchos usados por ela. Estas regras podem ser criadas pelo administrador, de acordo com suas necessidades (isto , um firewall, NAT, etc.). Cada regra especifica um padro ou critrio a ser comparado com pacotes IPs e um alvo, ou o que fazer com cada pacote que casa com o padro especificado. Os alvos podem ser aes pr-definidas de cada tabela, como por exemplo, DROP ou MASQUERADE, que, respectivamente, descartam ou mascaram um pacote, ou ainda uma outra regra. A tabela nat, que ser utilizada a seguir, est ligada aos ganchos PREROUTING, POST-ROUTING e OUTPUT.

3.2.2 NATOs nmeros IPs da Internet so finitos e cada nmero deve ser nico. O crescimento explosivo da Internet tem transformado estes nmeros em um 31

recurso escasso, e para se obter um nmero ou conjunto de IPs vlidos necessrio requisit-los a um rgo regulador e pagar por eles. Logo, em muitos casos no se justifica construir redes locais utilizando-se nmeros IPs vlidos. Como alternativa certos intervalos de nmeros IPs so considerados invlidos, isto , no so utilizados na Internet, permitindo assim que eles possam ser utilizados em intranets sem problemas, ou seja, vrias intranets podem utiliz-los desde que no estejam diretamente conectadas umas s outras. No entanto, isso cria um dilema: como conectar uma intranet que utiliza nmeros IPs invlidos Internet? A resposta a essa pergunta atravs da utilizao de um roteador que possua um nmero IP vlido e que seja capaz de fazer uma traduo de endereos de rede (NAT). Para entender melhor o que isso significa considere o seguinte cenrio: uma rede local ligada Internet atravs de um roteador com conexo discada. Ao se conectar na Internet, a mquina gateway recebe um nmero IP vlido do provedor de acesso. Quando uma mquina da intranet precisa se conectar a um site (por exemplo), ela envia seus pacotes IPs com a requisio mquina gateway, que por sua vez altera os cabealhos destes pacotes inserindo o nmero IP que ela recebeu do provedor e os envia atravs de sua conexo. O site responde requisio enviando a resposta para a mquina gateway que altera novamente os cabealhos dos pacotes e os envia mquina que originalmente os requisitou. Dessa forma, cada mquina da intranet se comporta como se estivesse ligada diretamente Internet, enquanto que as vrias mquinas na Internet "enxergam" apenas a sua mquina gateway. 3.2.2.1 Tipos de NAT possvel dividir o NAT em dois tipos: o NAT de origem (SNAT) e o NAT de destino (DNAT). O NAT de origem quando voc altera o endereo de origem de um pacote, isto , a conexo passa a ter um outro endereo de origem. Esse tipo de NAT sempre criado utilizando-se o gancho POSTROUTING, logo antes do pacote sair da mquina. O mascaramento (como tambm conhecido) uma forma de SNAT. O NAT de destino se caracteriza pela alterao do endereo de destino do pacote, isto , alterando o destino de uma conexo que passa pela mquina. Este tipo de NAT sempre criado utilizando-se o gancho PREROUTING. Balanceamento de carga, proxys transparentes e repasse de portas so tipos de DNAT.

3.2.3 Implementao de um servio NATUm servio de NAT necessrio em solues de Conexo Discada, mas pode ser utilizado tambm como uma forma de aumentar a segurana de uma intranet, uma vez que ele "esconde" as mquinas da rede mostrando para o resto do mundo apenas a mquina gateway.

32

4 VULNERABILIDADES NO PROTOCOLO TCP/IPUltimamente temos presenciado um novo fenmeno no underground digital. O fenmeno em si no novo, mas tornou-se muito fcil acessar as ferramentas necessrias para fazer ms aes, temos experimentado muitas instncias.O fenmeno conhecido por diferentes nomes (Smurph, Land, Bonk,etc). O intuito de todos, contudo, o mesmo: impedir computadores desabilitando seu uso como pretendido. Esse captulo tenta explicar esses ataques.

4.1

Disponibilidade dos dados

Podemos dividir a segurana dos dados em trs partes diferentes: integridade, confidencialiade e disponibilidade. Se algum, que no autorizado, gerencia e muda seus dados, a integridade comprometida. Voc no poder mais acreditar que o valor dessa informao verdadeiro. A confidencialidade da sua informao comprometida se uma pessoa for capaz de entrar no seu computador. Se puder conhecer uma informao a qual no se pretendia que essa pessoa conhecesse. Ela poder tambm distribuir a informao. A ltima categoria - disponibilidade - onde os ataques aqui discutidos pertencem. A disponibilidade dos dados importante no decorrer dos negcios e grandes perdas podem ocorrer se a informao importante no estiver disponvel devido a um ataque contra um computador. Tais ataques so frequentemente chamados de "Denial-of-Service" (DoS).

4.2

Sobre o protocolo TCP/IP

Todos os ataques discutidos aqui se beneficiam de vulnerabilidades na implementao do protocolo TCP/IP visando a interrupo da atividade do computador atacado. Para entender os ataques necessrio um conhecimento bsico de como o protocolo foi projetado para funcionar. TCP/IP uma abreviao de Transmission Control Protocol/Internet Protocol e um dos vrios protocolos desenvolvidos pelo Departamento de Defesa dos Estados Unidos no final da dcada de 70. A razo pela qual o protocolo foi desenhado era a necessidade de construir uma rede de computadores capaz de se conectar com outra rede do mesmo tipo (roteamento). Essa rede chamou-se ARPANET (Advanced Research Project Agency Internetwork), e a irm mais nova da Internet. Antes de ler sobre os ataques, recomendo que voc leia a seo sobre TCP/IP.

33

4.3

IP Spoofing

Um ataque spoofing envolve a falsificao do endereo de origem. o ato de usar uma mquina para representar o papel de outra. A maioria das aplicaes e ferramentas no UNIX baseam-se na autenticao do IP de origem. Muitos programadores tm usado controle de acesso baseado na mquina para segurana das suas redes. O endereo IP de origem um identificador nico mas no fivel. Ele pode facilmente ser forjado (spoofed). Para entender o processo de spoofing, Primeiro vou explicar o o processo de autenticao do TCP e do IP e depois como um atacante pode enganar a sua rede. O sistema cliente comea por enviar uma mensagem SYN para o servidor. O servidor ento confirma a mensagem SYN enviando uma mensagem de SYN-ACK para o cliente. O cliente ento completa estabelecendo a conexo respondendo com uma mensagem de ACK. A conexo entre o cliente e o servidor ento aberta, e os dados especficos do servio podem ser trocado entre o cliente e o servidor. Cliente e servidor podem agora enviar dados especficos do servio. O TCP usa nmeros seqenciais. Quando um circuito virtual estabelecido entre duas mquinas, o TCP designa para cada pacote um nmero com um ndice identificador. Amboa as mquinas usam este nmero para verificarem erros e fazerem relatrios. Rik Farrow, no seu artigo "Sequence Number Attacks", explica o sistema de nmeros seqenciais como sendo o seguinte: "Os nmeros seqenciais so usados para confirmar a recepo de dados. No incio de uma ligao TCP, o cliente envia um pacote TCP com uma nmero seqencial inicial, mas nenhum reconhecimento. Se existir um servidor de aplicao a correr na outra ponta da ligao, o servidor envia de volta um pacote TCP com o seu prprio nmero seqencial, e o reconhecimento; o nmero inicial do pacote do cliente mais um. Quando o sistema cliente recebe este pacote, ele deve enviar de volta o seu prprio reconhecimento; a sequncia de nmero inicial do servidor mais um." Desta forma um atacante tem dois problemas: 1) Ele deve falsificar o endereo origem. 2) Ele deve manter um nmero seqencial com o destino. A segunda tarefa a mais complicada porque quando o destino ajusta o nmero seqencial inicial, o agressor deve responder corretamente. Assim que o agressor adivinhe o nmero seqencial correcto, pode ento sincronizar com o destino e estabelecer uma sesso vlida.

4.3.1 Servios vulnerveis ao IP Spoofing:Configuraes e servios que so vulnerveis ao IP spoofing :

RPC (Servios de Invocao Remota de Funes) 34

Qualquer servio que use autenticao de endereo IP O sistema X Window O conjunto de servios R (rlogin, rsh, etc.)

4.3.2 Medidas para se prevenir de ataques IP Spoofing:

Evite usar autenticao de endereo de origem. Implemente criptografia na autenticao em todo o sistema. Configure a sua rede para rejeitar pacotes de redes externas que declaram ser de um endereo local. Isto geralmente feito com um router. Se voc permitir ligaes externas de mquinas seguras, possibilite encriptao da sesso no router.

4.4

Sobre os ataques

Os ataques descritos nesse documento so apenas alguns dos que esto disponveis na Internet. Seu denominador comum que todos usam vulnerabilidades ou implementaes errneas do protocolo TCP/IP ou ainda, vulnerabilidades na especificao do TCP/IP em si. Qualquer um mais interessado pode dar uma olhada no site www.rootshell.com que descreve vrios ataques. Esse site tambm tem links para download de programas que protegem contra esses ataques. Todos os ataques descritos abaixo funcionam em computadores com Windows for Workgroups, Windows 95 ou Windows NT . Podem tambm funcionar para outros sistemas operacionais. Uma vez mais indico www.rootshell.com para uma lista completa de ataques que funcionam em diferentes sistemas operacionais.

4.4.1 SYN FloodingEsta a famlia dos ataques DoS (Denial-of-Service) que usa variaes da mesma tcnica. O ataque realizado enviando uma stream de pacotes para o computador alvo requisitando uma conexo (a flag SYN setada). A cada vez que o computador alvo recebe tal requisio, recursos so alocados mas nenhuma conexo efetivada. Quando muitas requisies so recebidas o computador alvo no pode mais alocar recursos para o trfego da rede como resultado o computador pode parar.

4.4.2 LandAqui o ataque acontece enviando-se um pacote com a flag SYN setada (i.e. requisitando a abertura de uma conexo) para qualquer porta da mquina 35

alvo. O pacote modificado de tal maneira que os endereos de envio e de recebimento do pacote so idnticos (spoofing). Essa situao no corretamente manipulada por algumas implementaes do TCP/IP - o computador pra. Esse ataque direcionado porta 139 de mquinas rodando o sistema operacional Windows.

4.4.3 WinNukeO nuke tem sido uma atividade popular, principalmente em escolas. Esse tipo de ataque voltado principalmente para computadores rodando Windows. O efeito principal o congelamento do computador, que precisa ser reiniciado. A razo pela qual o computador trava que a Microsoft no manipula um flag especial de status no protocolo TCP - a flag URG(para urgente). Esse flag setado em um pacote enviado para um computador rodando um sistema operacional Windows. O computador ir esperar por uma stream (cadeia de dados) da chamada Out-of-Band (OOB) banda de trfego do computador que envia. Esse tipo de trfego tem prioridade mais alta que o trfego ordinrio da rede. O problema surge quando tais mensagens no so enviadas: o computador para. Parece que se trata de resultado de uma m implementao do protocolo TCP/IP da Microsoft, onde essa situao no tratada satisfatoriamente. Esse ataque muito simples de ser realizado (utiliza um canal legtimo)tem sido at mesmo implementado com uma linha de cdigo na linguagem Perl. Normalmente, o ataque direcionado contra a porta 139 (Servio NetBIOS Session) do computador. Por exemplo: suponhamos que um computador com IP 200.133.10.126 esteja com a porta 139 aceitando conexes. Na barra de endereos do Browser, podemos digitar: http://200.133.10.126:139 e se ficarmos atualizando a pgina, estaremos atacando essa mquina. Um simples JavaScript pode automatizar essa tarefa. Felizmente, fcil proteger um computador contra esse tipo de ataque. A Microsoft desenvolveu patches para download. Quando esse patches so instalados, voc est protegido contra esse tipo de ataque.

4.4.4 TearDropEsse ataque utiliza outra vulnerabilidade na implementao do protocolo TCP/IP. O resultado desse ataque pode variar, mas, normalmente o computador trava e precisa ser reiniciado. Os sistemas operacionais mais vulnerveis so Windows(95/98/NT) e Linux. A razo pela qual o ataque acontece deve-se a um erro em parte do protocolo TCP/IP que toma conta de pacotes fragmentados. A fragmentao do pacote pode ocorrer se o pacote que est sendo recebido for maior do que o tamanho permitido pela rede. Caso positivo, o pacote dividido em pacotes menores, consistindo em partes do pacote original. Quando os pacotes

36

menores chegam ao computador recipiente, ele tenta coloc-los juntos -aqui ocorre o erro e o computador pra. Tecnicamente, o ataque conduzido mandando uma combinao especial de dois pacotes UDP/IP. O primeiro tem deslocamento 0, a flag MF (mais fragmentos) setada para 1 e tamanho N. O segundo tem deslocamento menor que N, flag MF resetada para 0 e tamanho menor que N. O segundo pacote sobrepes-se ao primeiro. Uma implementao errnea do TCP/IP interpreta o fim do pacote antes do seu comeo e o computador pra.

4.4.5 NewTearEsse ataque parecido com o TearDrop. A diferena o tamanho da sobreposio dos pacotes (20 bytes, enquanto o TearDrop usa 28) e a manipulao do tamanho do UDP. Esse ataque funciona contra mquinas rodando Windows95/98 e NT mesmo que o patch TearDrop esteja instalado, o que demonstra que a Microsoft no levou as variaes do ataque em conta quando o patch foi programado.

4.4.6 Bonk/BoinkOutra variao do ataque TearDrop. O deslocamento do fragmento do segundo pacote ajustado para ser maior do que o comprimento do cabealho IP. Semelhante aos outros ataques, o computador pra. No se sabe porqu esse ataque funciona. O Bonk ataca a porta 55 das mquinas. O Boink uma variao do Bonk - a diferena que esse ltimo permite ataques em outras portas, alm da 55.

4.4.7 SspingUma variao do ataque chamado "Ping da Morte". Uma pessoa manda um pacote ICMP (ECHO_REQUEST) com um tamanho anormal para a mquina alvo. O tamanho mximo para datagramas TCP/IP 65536 octetos (1 octeto = 8 bits). Contudo, possvel mandar datagramas maiores do que o tamanho mximo definido. Quando a mquina alvo recebe tal pacote pode parar. Mais uma vez, o erro deve-se a m implementao na seco do TCP/IP que manipula pacotes fragmentados. Um teste simples para testar se voc vulnervel pingar seu prprio computador. Use o comando ping -s 65510 seu_ip. Se sua mquina parar voc vulnervel a esse tipo de ataque.

4.4.8 SmurfSmurfing outro tipo de ataque semelhante aos que foram discutidos aqui. Esse tipo de ataque Smurf pode ser considerado mais perigoso que os outros.

37

O ataque Smurf no tem inteno de parar um computador, mas sim uma rede inteira. realizado enviando contnuas stream (cadeias) de pacote ICMP modificados para a rede alvo. Os pacotes so modificados de modo que o endereo da mquina que envia os dados idntico ao endereo do alvo (spoofing). Alm disso, os pacotes so enviados para os chamados endereos broadcast, o que resulta em os pacotes modificados serem enviados para todos os computadores de uma rede. Os computadores dessa rede iro responder enviando uma mensagem de ICMP ECHO_RESPONSE para o computador que eles assumem ter enviado a mensagem ( o computador alvo da rede).Se o atacante tiver uma conexo rpida,no preciso ser um grande matemtico para saber que a quantidade de dados gerados pode parar a rede atacada. A rede ir parar at que o atacante pare de enviar os pacotes ou o trfego seja bloqueado. Esse tipo de ataque tem sido usado para parar vrios Provedores de Acesso Internet e todos os seus usurios. Efetivamente, difcil se proteger desse tipo de ataque.

38

5 FIREWALL IPCHAINSAdaptado do Linux IPCHAINS-HOWTO, Paul Russell, , v1.0.7, 12 March 1999 Traduo para o portugus por Gleydson Mazioli da Silva,

5.1 IntroduoEste o Linux IPCHAINS-HOWTO; Veja Onde? para o ver site principal, que contm a ltima cpia. Voc tambm deve ler o Linux NET-3HOWTO. O IP-Masquerading HOWTO, o PPP-HOWTO, o Ethernet-HOWTO e o Firewall HOWTO que podem ser uma leitura interessante. (Ento denovo a FAQ alt.fan.bigfoot). Se a filtragem de pacotes passado para voc, leia a seo Porque?, Seo Como? e verifique os ttulos na seo IP Firewalling Chains. Se voc esta convertendo atravs do ipfwadm, leia a secao Introduo, Seo Como?, e os Apndices da seo Diferenas entre ipchains e ipfwadm e a seo Usando o script ipfwadm-wrapper.

5.1.1 O que?O ipchains do Linux uma regravao do codigo de firewall IPv4 do linux (que foi originalmente roubado do BSD) e uma regravao do ipfwadm, que foi uma regravao do ipfw dos BSDs, eu acho. requerido para administrar os filtros de pacotes IP nos kernels do linux 2.1.102 e superiores.

5.1.2 Por que?O antigo codigo do firewall do Linux no negociava com fragmentos, tinha contadores de 32 bits (no Intel no mnimo), no permitia especificao de outros protocolos seno TCP, UDP ou ICMP, no faziam grandes alteraes dinmicamente, no especificava regras contrrias, possuia alguns truques, e dificil de gerenciar ( podendo causar erros do usurio).

5.1.3 Como?Atualmente o cdigo est no kernel em desenvolvimento do 2.1.192. Para as sries do kernel 2.0, voc precisar fazer o download de um patch da pgina Internet. Se seu kernel 2.0 mais recente que o patch fornecido, o patch antigo ser OK; esta parte dos kernels 2.0 razoavelmente estvel (eg. o patch do kernel 2.0.34 funciona perfeitamente com o kernel 2.0.35). Desde ento o patch 2.0 incompatvel com patches do ipportfw e ipautofw, eu no recomendo aplica-los a no ser que voc ralmente necessita da funcionalidade que o ipchains oferece.

39

5.1.4 Onde?A pgina oficial The Linux http://www.rustcorp.com/linux/ipchains IP Firewall Chains Page

L existe uma lista de discusso para relatar bugs, discusses, desenvolvimento e uso. Entre na lista de discusso enviando uma mensagem contendo a palavra subscribe para . Para enviar E-Mails para a lista use ipchains ao invs de ipchains-request.

5.2 Bsico sobre a filtragem de pacotes5.2.1 O que ?Todo o trfego da rede enviado em forma de pacotes. Por exemplo, copiando este pacote (digamos de 50k) pode fazer voc receber 36 ou assim pacotes de 1460 bytes em cada um, (puxando nmeros ao acaso). O inicio de cada pacote diz onde ele esta indo, de onde vem, o tipo do pacote, e outros detalhes administrativos. Isto inicia o pacote e chamado de cabealho (head). O resto do pacote que contm o dado atual sendo transmitido, usualmente chamado de corpo (body). Alguns protocolos, como TCP, que usado para o trafego na web, mail, e logins remotos, usam o conceito de conexoantes de qualquer pacote com os dados atuais serem enviados, vrios pacotes de configurao (com cabealhos especiais) so trocados dizendo Eu desejo conectar, OK e Obrigado. Ento os pacotes normais so trocados. Uma filtragem de pacotes uma pea de software que olha no cabealho do pacote quando eles passam, e decide o destino de todo o pacote. Ele pode decidir negar o pacote (DENY - ie. descartar o pacote como se ele nunca tivesse o recebido), aceita o pacote (ACCEPT - ie. deixar o pacote seguir adiante), ou rejeitar o pacote (REJECT - como negar, mas avisa a origem do pacote sobre o acontecido). No Linux, a filtragem de pacotes embutida no kernel, e aqui esto algumas coisas que ns podemos fazer com os pacotes, mas o principio geral de olhar o cabealho dos pacotes e decidindo seu destino.

5.2.2 Por que? Controle: quando voc est usando um computador linux para conectar sua rede interna a outra rede (digo, a Internet) voc tem a oportunidade de permitir certos tipos de trfego, e desativar outros. Por exemplo, o cabealho do pacote contm o endereo de destino do pacote, assim voc pode prevenir pacote de irem para certas partes de fora da rede. Como outro exemplo, eu uso o Netscape para acessar os arquivos Dilbert. L esto anncios da pgina doubleclick.net, e o Netscape desperdia partes do meu tempo

40

copiando-a. Dizendo para o filtro de pacotes no permitir qualquer pacotes para ou de o endereo conhecido por doubleclick.net resolve este problema (l esto meios melhores de se fazer isto). Segurana: quando um computador linux a nica coisa entre o caos da Internet e sua bonita e organizada rede, maravilhoso conhecer como voc pode restringir o que vem batendo em sua porta. Por exemplo, voc pode permitir ir para fora de sua rede, mas voc pode estar preocupado com os conhecidos Ping of Death (ping da morte) que vem de computadores maliciosos de fora. Como outro exemplo, voc pode no desejar que pessoas de fora TELNETiando seu computador linux, embora mesmo que todas suas contas tenham senhas; talvez voc deseja (como muitas pessoas) ser um observador na Internet, e no um servidor (legando ou caso contrrio) -- simplesmente no deixe ningum conectar em seu computador, tendo filtros de pacotes rejeitando pacotes de entrada usado para iniciar conexes. Vigilncia: muitas vezes uma mquina mal configurada na rede local pode decidir enviar pacotes para fora da rede. bom dizer ao filtro de pacotes para avisa-lo se alguma coisa de anormal ocorre; talvez voc pode fazer alguma coisa sobre isto, ou talvez voc est simplesmente curioso por natureza.

5.2.3 Como?5.2.3.1 Um kernel com filtragem de pacotes Voc precisar de um kernel que tem o novo IP firewall chains nele. Voc pode ver ser o kernel que est executando tem isto instalado verificando pelo arquivo /proc/net/ip_FWchains. Se ele existe, seu kernel tem o suporte. Caso contrrio, voc precisar compilar um kernel com o IP firewall chains. Primeiro copie o cdigo fonte do kernel que deseja. Se possui um kernel nmerado 2.1.102 ou maior, voc no precisar aplicar o patch (est na verso principal do kernel agora). Caso contrrio, aplique o patch da pgina web listada acima, e ajuste a configurao como detalhado abaixo. Se voc no sabe como fazer isto, sem pnico leia o Kernel-HOWTO. As opes de configurao que precisa configurar para os kernels da srie 2.0 so:CONFIG_EXPERIMENTAL=y CONFIG_FIREWALL=y CONFIG_IP_FIREWALL=y CONFIG_IP_FIREWALL_CHAINS=y

Para os kernels da srie 2.1 ou 2.2:

41

CONFIG_FIREWALL=y CONFIG_IP_FIREWALL=y

A ferramenta ipchains fala com o kernel e diz a ele quais pacotes filtrar. A no ser que voc seja um programador, ou curioso demais, assim voc controlar a filtragem de pacotes. 5.2.3.2 O ipchains A ferramenta ipchains insere ou deleta regras da seo de filtragem de pacotes do kernel. Isto quer dizer que qualquer coisa que voc configurar, ser perdida na reinicializao; veja Fazendo Regras Permanentes para como fazer as regras serem restauradas quando o Linux iniciado. O ipchains substitui o ipfwadm, que foi usado pelo antigo cdigo de firewall de IP. H um conjunto de scripts teis disponveis no site ftp do ipchains: ftp://ftp.rustcorp.com/ipchains/ipchains-scripts-1.1.2.tar.gz Este contm um script shell chamado ipfwadm-wrapper que permite fazer a filtragem de pacotes como fez antes. Voc provavelmente no deve usar este script a no ser se deseje fazer um mtodo rpido de upgrade em um sistema que usa o ipfwadm (ele lento, no checa argumentos, etc). Neste caso, voc no precisa muito deste HOWTO. Veja Apndice Diferenas entre ipchains e ipfwadm e Apndice Usando o script ipfwadm-wrapper para um assunto mais detalhado sobre ipfwadm. 5.2.3.3 Fazendo regras permanentes Sua configurao atual do firewall armazenada no kernel, e assim ser perdida na reinicialziao. Eu recomendo usar os scripts ipchains-save e ipchains-restore para fazer estas regras permanentes. Para fazer isto, configure suas regras, ento execute (como root):# ipchains-save > /etc/ipchains.rules

Crie um script parecido com o seguinte:#! /bin/sh # Script para controlar a filtragem de pacotes. # Se no existir regras, no faz nada. [ -f /etc/ipchains.rules ] || exit 0 case $1 in start) echo -n Ativando a filtragem de pacotes: /sbin/ipchains-restore < /etc/ipchains.rules || exit 1 echo 1 > /proc/sys/net/ipv4/ip_forward echo . ;; stop)

42

echo -n Desativando a filtragem de pacotes: echo 0 > /proc/sys/net/ipv4/ip_forward /sbin/ipchains -X /sbin/ipchains -F /sbin/ipchains -P input ACCEPT /sbin/ipchains -P output ACCEPT /sbin/ipchains -P forward ACCEPT echo . ;; *) echo Use: /etc/init.d/packetfilter {start|stop} exit 1 ;; esac exit 0

Tenha certeza que isto est antes no processo de inicializao. No meu caso (Debian 2.1), eu fiz um link simblico chamado S39packetfilter em meu diretrio /etc/rcS.d (isto ser executado antes de S40network).

5.3 Roteamento, masquerading, portforwarding, ipautofw...Este HOWTO sobre filtragem de pacotes. Isto quer dizer decidindo que pacote ter permisso de passar ou no. No entanto, o Linux est sendo um parque de diverses para hackers, voc provavelmente desejar mais do que isso. Um problema que a mesma ferramenta (ipchains) usada para controlar tanto o masquerading e transparent proxy, embora estejam nacionalmente separados da filtragem de pacotes (a implementao atual do Linux obscurece estes junto no naturalmente, deixando a impresso que eles foram descontinuados). Masquerading e proxying so discutidos em HOWTOs separados, e as caractersticas auto forwarding e port forwarding so controladas por ferramentas separadas, mas mesmo assim muitas pessoas me perguntam sobre elas, eu tambm vou incluir diversos cenrios comuns e indicar quando cada um deve ser aplicado. Os mritos de segurana de cada configurao no sero discutidos aqui.

5.3.1 Guia rpido de trs linhas para MasqueradingIsto assume que sua interface externa chamada ppp0. Use ifconfig para acha-la, e ajuste ao guia.# ipchains -P forward DENY # ipchains -A forward -i ppp0 -j MASQ # echo 1 > /proc/sys/net/ipv4/ip_forward

43

5.3.2 Configuraes de firewall simplesVoc trabalha na littlecorp.com. Voc tem uma rede interna, e uma conexo dialup (PPP) simples com a Internet (firewall.littlecorp.com que 1.2.3.4). Voc usa Ethernet em sua rede local, e sua mquina pessoal chamada myhost. Esta seo ilustrar os diferentes arranjos no qual so comuns. Leia com ateno porque cada um sutilmente diferente. 5.3.2.1 Rede Pblica Neste cenrio, sua rede pessoal uma parte da Internet: pacotes pode seguir sem alteraes atravs de ambas as redes. O endereo IP da rede interna deve ser escolhido aplicando por um bloco de endereos IP, assim o resto da rede conhecer como obter pacotes para voc. Isto implica em uma conexo permanente. Neste cenrio, a filtragem de pacotes usada para que pacotes podem ser direcionados entre sua rede e o resto da internet, eg. para restringir o resto da internet para somente acessar seus servidores web internos. Exemplo: Permitindo acesso web de sua rede privada para a Internet. 1. Sua rede interna configurada de acordo com os blocos de endereos IP que possui registrados, (digamos 1.2.3.*). 2. O firewall est configurado para permitir qualquer trfego. 3. Netscape est configurado para conectar diretamente. 4. DNS deve estar configurado corretamente em sua rede. 5. O firewall deve ser a rota padro (gateway) para sua rede privada. Netscape em myhost l http://slashdot.org. 1. Netscape procura o nome slashdot.org, e obtm 207.218.152.131. Ele ento abre uma conexo para aquele endereo IP, usando a porta local 1050, e pergunta do servidor web (porta 80) pela pgina web. 2. Pacotes passam atravs do firewall, simplesmente como passam atravs de diversos firewalls entre voc e slashdot.org. 3. Netscape desenha a pgina.

ie. Aqui existe somente uma conexo: de 1.2.3.100 (myhost) porta 1050, para 207.218.152.131 (slashdot.org) porta 80.

44

5.3.2.2 Rede Privada: Masquerading Neste cenrio, pacotes da rede privada nunca atravessam a Internet sem um tratamento especial, e vice versa. O endereo Ip da rede privada devem ser escolhidos de acordo com o RFC1597 Private Network Allocations (ie. 10.*.*.*, 172.16.*.* or 192.168.*.*). Ao invs de usar um proxy, ns usamos facilidades especiais do kernel chamadas masquerading. Masquerading regravam pacotes quando passam atravs do firewall, assim eles sempre parecem vir do prprio firewall. Ele ento re-escreve as respostas assim eles pareceram estar indo para o recipiente original. Masquerading possui mdulos separados para manipular protocolos enganados, como FTP, RealAudio, Quake, etc. Para procolos realmente difceis de manipular, a facilidade auto forwarding pode manipular muitos destes configurando automticamente o forward de portas para configuraes de portas relacionadas: procure por ipportfw (kernels 2.0) ou ipmasqadm (kernels 2.1). Quaisquer servios que voc deseja acessar na Internet deve estar no firewall. (Mas veja Servios Internos Limitados abaixo). Exemplo: Permitindo acesso web da rede privada com a Internet. 1. A rede privada possui endereos 192.168.1.*, com myhost sendo

192.168.1.100, e a interface Ethernet do firewall sendo 192.168.1.1. 2. O firewall configurado para masquerade (mascarar) qualquer pacotes vindo da rede privada e indo para a porta 80 de um host da internet. 3. 4. 5. Netscape est configurado para conectar diretamente. DNS deve ser configurado corretamente na rede privada. O firewall deve ser a rota default (gateway) para a rede privada.

Netscape em myhost l http://slashdot.org. 1. Netscape procura o nome slashdot.org, e obtm 207.218.152.131. Ele ento abre uma conexo para aquele endereo IP, usando a porta local 1050, e pergunta ao servidor web (porta 80) pela pgina web. 2. Como os pacotes de myhost (porta 1050) para slashdot.org (porta 80) passam atravs do firewall, eles so regravados para virem da interface PPP do firewall, porta 65000. O firewall possui um endereo Internet vlido (1.2.3.4) assim responde pacote de slashdot.org. 3. Como pacotes de slashdot.org (porta 80) para firewall.littlecorp.com (port 65000) vem, eles so regravados para irem para myhost, porta 1050. Esta a mgica real do masquerading: ele relembra

45

quando ele regravou pacotes enviados para regrar as respostas quando retornarem. 4. Netscape desenha a pgina.

ie. Do ponto de vista de slashdot.org, a conexo feita de 1.2.3.4 (interface PPP do firewall) porta 65000 para 207.218.152.131 (slashdot.org) porta 80. Do ponto de vista de myhost, a conexo feita de 192.168.1.100 (myhost) porta 1050, para 207.218.152.131 (slashdot.org) porta 80. 5.3.2.3 Rede Privada: Proxies Transparentes Neste cenrio, pacotes da rede privada nunca atravessam a Internet e vice versa. O endereo