Vous êtes sur la page 1sur 250

Administrao de Sistemas Linux:

Redes e Segurana
Pedro R. Torres Jnior Christian Lyra Gomes Francisco Marcelo M. Lima Luiz Fernando Ramos Costa

A RNP Rede Nacional de Ensino e Pesquisa qualificada como uma Organizao Social (OS), sendo ligada ao Ministrio da Cincia, Tecnologia e Inovao (MCTI) e responsvel pelo Programa Interministerial RNP, que conta com a participao dos ministrios da Educao (MEC), da Sade (MS) e da Cultura (MinC). Pioneira no acesso Internet no Brasil, a RNP planeja e mantm a rede Ip, a rede ptica nacional acadmica de alto desempenho. Com Pontos de Presena nas 27 unidades da federao, a rede tem mais de 800 instituies conectadas. So aproximadamente 3,5 milhes de usurios usufruindo de uma infraestrutura de redes avanadas para comunicao, computao e experimentao, que contribui para a integrao entre o sistema de Cincia e Tecnologia, Educao Superior, Sade e Cultura.

Ministrio da Cultura Ministrio da Sade Ministrio da Educao Ministrio da Cincia, Tecnologia e Inovao

Administrao de Sistemas Linux:

Redes e Segurana
Pedro R. Torres Jnior Christian Lyra Gomes Francisco Marcelo M. Lima Luiz Fernando Ramos Costa

Administrao de Sistemas Linux:

Redes e Segurana
Pedro R. Torres Jnior Christian Lyra Gomes Francisco Marcelo M. Lima Luiz Fernando Ramos Costa

Rio de Janeiro Escola Superior de Redes 2013

Copyright 2013 Rede Nacional de Ensino e Pesquisa RNP Rua Lauro Mller, 116 sala 1103 22290-906 Rio de Janeiro, RJ

Diretor Geral Nelson Simes Diretor de Servios e Solues Jos Luiz Ribeiro Filho

Escola Superior de Redes


Coordenao Luiz Coelho Edio Pedro Sangirardi Reviso Lincoln da Mata Coordenao Acadmica de Administrao de Sistemas Sergio Ricardo Alves de Souza Equipe ESR (em ordem alfabtica) Celia Maciel, Cristiane Oliveira, Derlina Miranda, Edson Kowask, Elimria Barbosa, Lourdes Soncin, Luciana Batista, Luiz Carlos Lobato, Renato Duarte e Yve Abel Marcial. Capa, projeto visual e diagramao Tecnodesign Verso

1.2.0

Este material didtico foi elaborado com fins educacionais. Solicitamos que qualquer erro encontrado ou dvida com relao ao material ou seu uso seja enviado para a equipe de elaborao de contedo da Escola Superior de Redes, no e-mail info@esr.rnp.br. A Rede Nacional de Ensino e Pesquisa e os autores no assumem qualquer responsabilidade por eventuais danos ou perdas, a pessoas ou bens, originados do uso deste material. As marcas registradas mencionadas neste material pertencem aos respectivos titulares. Distribuio

Escola Superior de Redes

Rua Lauro Mller, 116 sala 1103 22290-906 Rio de Janeiro, RJ http://esr.rnp.br info@esr.rnp.br
Dados Internacionais de Catalogao na Publicao (CIP) A238 Administrao de sistemas Linux: redes e segurana / Pedro R. Torres Jnior ... [et. al.]. 1. ed. rev. Rio de Janeiro: RNP/ESR, 2012. 228 p. : il. ; 28 cm. Bibliografia: p. 225-227. ISBN 978-85-63630-21-6 1. Linux (Sistema operacional de computador). 2. Servios de diretrio (tecnologia de redes de computador). 3. Redes de computadores Medidas de segurana. I. Torres Jnior, Pedro R. II. Ttulo. CDD 005.8

Sumrio
Escola Superior de Redes
A metodologia da ESRxiii Sobre o cursoxiv A quem se destinaxv Convenes utilizadas neste livroxv Permisses de usoxv Sobre os autoresxvi

1. Introduo administrao de redes e arquitetura TCP/IP (parte 1)


Objetivos e funes da administrao de redes1 Arquitetura TCP/IP2 Modelo ISO/OSI3 Tipos de camada4 Modelo TCP/IP6 Encapsulamento7 Nvel de enlace: Ethernet7 Nvel de rede: protocolo IP9 Datagrama IP9 MTU e Fragmentao10 Endereamento IP11 Classes de endereos11 Mscaras de rede12 Endereos especiais13 Sub-redes14 CIDR17 iii

Resoluo de endereos19 Atribuio de endereos (IP)19 Roteiro de Atividades 121 Atividade 1.1 Entendendo o modelo ISO/OSI21 Atividade 1.2 Visualizando a configurao de rede em uma mquina Linux21 Atividade 1.3 Entendendo a tabela ARP21 Atividade 1.4 Cabealho Ethernet21 Atividade 1.5 Fragmentao21 Atividade 1.6 Criando endereos de rede ou sub-rede22 Atividade 1.7 Notao CIDR22 Atividade 1.8 Faixa de endereos vlidos na internet22 Atividade 1.9 Entendendo a mscara de rede22 Atividade 1.10 Endereamento dinmico23 Atividade 1.11 Resoluo de nomes23

2. Introduo administrao de redes e arquitetura TCP/IP (parte 2)


Roteamento25 Tabela de roteamento 26 Exemplo de topologia26 Rotas estticas x rotas dinmicas27 Tempo de vida (TTL) 27 Algoritmo de roteamento28 Internet Control Message Protocol (ICMP)28 Ping31 Traceroute 31 Nvel de transporte32 Portas32 Nvel de transporte: protocolo UDP33 Nvel de transporte: protocolo TCP33 Incio e trmino de uma conexo34 Nvel de transporte: conexo virtual35 Nvel de transporte36 Arquitetura cliente/servidor36

iv

Roteiro de Atividades 239 Atividade 2.1 Roteamento39 Atividade 2.2 Problema na tabela de roteamento39 Atividade 2.3 Problema na tabela de roteamento39 Atividade 2.4 Protocolo ICMP40 Atividade 2.5 Comandos ping e traceroute40 Atividade 2.6 Cabealho TCP40 Atividade 2.7 Daemons40 Atividade 2.8 Testando a conexo40 Atividade 2.9 Conexes virtuais40 Atividade 2.10 Testando servios40

3. Configurando uma rede TCP/IP


Equipamentos de rede41 Hub41 Switch41 Configurando endereos e rotas43 Configurando endereos IP43 Configurando uma interface de rede43 Exemplos do comando ifconfig 44 Configurando uma interface de rede47 Configurando endereos e redes49 Formas de conexo internet51 Resoluo de nomes52 Arquivo /etc/nsswitch.conf 52 Arquivo /etc/hosts53 Arquivo /etc/resolv.conf 53 Ferramentas para resoluo de nomes54 DNSSEC55 Atribuio dinmica de endereos IP57 ISC DHCP Client 58 IPv661 Roteiro de Atividades 363 Atividade 3.1 Diferena entre switches e hubs63 Atividade 3.2 Comando ifconfig63 v

Atividade 3.3 Comando ip63 Atividade 3.4 Comando route63 Atividade 3.5 Comando ip63 Atividade 3.6 Rota invlida63 Atividade 3.7 Configurao de rotas64 Atividade 3.8 Resoluo de nomes64 Atividade 3.9 DNSSEC 64 Atividade 3.10 Atribuio dinmica de endereos64

4. Verificando a configurao da rede


Tabela de roteamento65 Comando traceroute 67 Comando ping68 Comando mtr 69 Verificao do estado do link69 Comando arp70 Verificao da configurao das interfaces70 Sniffers72 BPF72 libpcap 72 tcpdump 72 Ethereal (Wireshark)73 Verificao de servios73 Sockets74 Comando lsof 77 Comando nmap78 Roteiro de Atividades 481 Atividade 4.1 Tabela de Roteamento81 Atividade 4.2 Comando ifconfig e/ou ip link81 Atividade 4.3 Comando tcpdump81 Atividade 4.4 Wireshark (Ethereal)82 Atividade 4.5 Comandos netstat e/ou lsof82 Atividade 4.6 Servios82 Atividade 4.7 Comando nmap82

vi

Atividade 4.8 Identificando servios com o nmap82 Atividade 4.9 Monitoramento de trfego de rede83

5. Segurana Introduo
Segurana85 Conexes de entrada: gerncia e controle de acesso86 Iniciar e parar servios87 Daemon inetd88 tcpwrapper89 tcpdmatch e tcpdchk91 Daemon xinetd91 Secure shell (SSH)93 Configurando o daemon sshd 94 Chaves pblicas95 Cliente SSH96 Uso de chaves pblicas com o SSH96 Logs98 Anlise de arquivos de log98 Logs remotos99 Analisadores de logs100 Logcheck100 RootKit Hunter102 Procedimentos de deteco de invaso103 Roteiro de Atividades 5105 Atividade 5.1 Run Level105 Atividade 5.2 Run Level (continuao)105 Atividade 5.3 XInetd105 Atividade 5.4 tcpwrapper105 Atividade 5.5 sshd105 Atividade 5.6 sshd: chave RSA105 Atividade 5.7 SCP106 Atividade 5.8 Logs106 Atividade 5.9 syslogd106 Atividade 5.10 Procurando por indcios de invaso106 vii

6. Segurana Sistema Operacional


Procedimentos para instalao107 Particionando o sistema109 Poltica de segurana111 Fortalecendo o sistema112 Atualizaes de segurana112 Configurar senha do Grub 113 Restringindo o uso do console113 Desativando a reinicializao do sistema 114 Implementando quotas de disco115 Fornecendo acesso seguro ao usurio117 Ativar o suporte MD5 nas aplicaes de login e SSH117 Criando o grupo wheel118 Limitando o uso de recursos: o arquivo /etc/security/limits.conf119 Aes de login do usurio 119 Usando o sudo120 Desativao de acesso administrativo remoto120 Configurando umask 120 Limitando o contedo que os usurios podem ver e acessar121 Limitando o acesso a outras informaes de usurios121 Restringindo o acesso de usurios122 Logout de usurios ociosos122 Segurana do kernel 122 Proteo da Libsafe 122 Removendo funcionalidades122 Sistema de arquivos proc 123 Fazendo uma cpia de segurana do sistema124 chroot124 Instalao e configurao124 Iniciando e testando o funcionamento125 Instalao e configurao125 Iniciando e testando o servio 126 Tripwire127 Integridade do sistema de arquivos com Tripwire 127 Instalao e configurao127 Editando e gerando o arquivo de configurao 128

viii

Editando e gerando o arquivo de polticas 128 Iniciando e testando o servio 128 Roteiro de Atividades 6129 Atividade 6.1 Elaborando uma poltica de segurana129 Atividade 6.2 Antes e durante a instalao129 Atividade 6.3 Fortalecendo a segurana129 Atividade 6.4 Fornecendo acesso seguro ao usurio130 Atividade 6.5 Utilizando sudo130 Atividade 6.6 Calculando e testando umask130 Atividade 6.7 Limitando o acesso a outras informaes de usurios130 Atividade 6.8 Restringindo o acesso de usurios130 Atividade 6.9 Implementando o logout automtico de usurios ociosos130 Atividade 6.10 Utilizando o chroot131 Atividade 6.11 Utilizando o portsentry131 Atividade 6.12 Utilizando o tripwire131

7. Segurana Firewall
Firewall133 Tipos de firewalls134 Netfilter135 Regras135 Estados135 Chains136 Tabelas137 Configurao do firewall137 Polticas de firewall137 Mdulos do kernel 138 Manipulao de regras139 Padres de casamento140 Listagem de regras142 Manipulao de chains143 Ajuste da poltica padro de uma chain 143 Criar e remover chains 143 Utilizar chains de usurio144 Limpar chains 144 ix

Habilitando o repasse de pacotes145 Ajuste do nmero de conexes registradas145 Dicas146 Roteiro de Atividades 7147 Atividade 7.1 Mdulo ip_conntrack147 Atividade 7.2 Poltica padro147 Atividade 7.3 Firewall Stateful147 Atividade 7.4 Firewall de host147 Atividade 7.5 Liberando servios no firewall148 Atividade 7.6 Criando chain148 Atividade 7.7 Firewall de rede148 Atividade 7.8 Firewall de rede (continuao)148 Atividade 7.9 Worm149 Atividade 7.10 DMZ149

8. Interconexo de redes
Traduo de endereos de redes151 Tipos de NAT151 Source NAT (SNAT)152 Configurao do SNAT153 Configurao do DNAT154 Roteamento avanado155 Tneis156 Comandos de configuraes156 Comando ip tunnel 156 Tnel IP sobre IP (IPIP)157 Uso do tnel IPIP158 Tnel GRE159 Tnel SIT160 Tabelas de roteamento161 Entradas na tabela de roteamento162 Routing Policy Database (RPDB)164 Tipos de regras165

Roteiro de Atividades 8167 Atividade 8.1 SNAT167 Atividade 8.2 SNAT (continuao)167 Atividade 8.3 DNAT167 Atividade 8.4 DNAT (continuao)167 Atividade 8.5 Redirect168 Atividade 8.6 Tnel IPIP168 Atividade 8.7 MTU168 Atividade 8.8 Tabela de Roteamento168 Atividade 8.9 Testando rotas169 Atividade 8.10 Roteamento pela origem169

9. VPN e protocolos de tunelamento de nvel 2


Virtual Private Network (VPN)171 Proteo da VPN172 Arquitetura VPN de acesso remoto172 Arquitetura VPN intranet e extranet173 Protocolos de tunelamento PPP/SLIP174 Protocolo PPP174 Pacotes LCP176 Protocolo SLIP177 Protocolo GRE178 Protocolo PPTP179 Protocolo L2F 180 Protocolo L2TP 181 Tunelamento L2TP181 Protocolo IPSec182 VLAN182 Qualidade de Servio (QoS) MPLS185 Roteamento186 Encaminhamento dos pacotes187 Comutao188 Componente de controle 188 Componentes de encaminhamento 188 xi

Label Switching188 Informao de distribuio das etiquetas190 Roteador de Borda191 Roteiro de Atividades 9195 Atividade 9.1 Instalao do OpenVPN195 Atividade 9.2 Utilizando certificados digitais198

10. IPSec
Introduo ao IPSec207 Associaes de segurana208 Modos de operao209 Protocolo AH (IP Authentication Header)210 Formato do AH (Authentication Header)211 Protocolo ESP (IP Encapsulating Security Payload) 212 Formato do ESP212 Modos de funcionamento do ESP213 Gerenciamento de chaves213 Gerncia automtica de chaves214 Principais conceitos sobre o IKE215 Algoritmo Diffie-Hellman (DH)216 Viso geral do funcionamento do protocolo 217 Network Address Translation (NAT) Transverso219 Roteiro de Atividades 10221 Atividade 10.1 Criando o firewall221 Atividade 10.2 Configurando as interfaces de rede222 Atividade 10.3 Configurando IPSec no IPCop224 Atividade 10.4 Configurando regras de firewall224

Bibliografia 225

xii

Escola Superior de Redes


A Escola Superior de Redes (ESR) a unidade da Rede Nacional de Ensino e Pesquisa (RNP) responsvel pela disseminao do conhecimento em Tecnologias da Informao e Comunicao (TIC). A ESR nasce com a proposta de ser a formadora e disseminadora de competncias em TIC para o corpo tcnico-administrativo das universidades federais, escolas tcnicas e unidades federais de pesquisa. Sua misso fundamental realizar a capacitao tcnica do corpo funcional das organizaes usurias da RNP, para o exerccio de competncias aplicveis ao uso eficaz e eficiente das TIC. A ESR oferece dezenas de cursos distribudos nas reas temticas: Administrao e Projeto de Redes, Administrao de Sistemas, Segurana, Mdias de Suporte Colaborao Digital e Governana de TI. A ESR tambm participa de diversos projetos de interesse pblico, como a elaborao e execuo de planos de capacitao para formao de multiplicadores para projetos educacionais como: formao no uso da conferncia web para a Universidade Aberta do Brasil (UAB), formao do suporte tcnico de laboratrios do Proinfo e criao de um conjunto de cartilhas sobre redes sem fio para o programa Um Computador por Aluno (UCA).

A metodologia da ESR
A filosofia pedaggica e a metodologia que orientam os cursos da ESR so baseadas na aprendizagem como construo do conhecimento por meio da resoluo de problemas tpicos da realidade do profissional em formao. Os resultados obtidos nos cursos de natureza terico-prtica so otimizados, pois o instrutor, auxiliado pelo material didtico, atua no apenas como expositor de conceitos e informaes, mas principalmente como orientador do aluno na execuo de atividades contextualizadas nas situaes do cotidiano profissional. A aprendizagem entendida como a resposta do aluno ao desafio de situaes-problema semelhantes s encontradas na prtica profissional, que so superadas por meio de anlise, sntese, julgamento, pensamento crtico e construo de hipteses para a resoluo do problema, em abordagem orientada ao desenvolvimento de competncias. Dessa forma, o instrutor tem participao ativa e dialgica como orientador do aluno para as atividades em laboratrio. At mesmo a apresentao da teoria no incio da sesso de aprendizagem no considerada uma simples exposio de conceitos e informaes. O instrutor busca incentivar a participao dos alunos continuamente.

xiii

As sesses de aprendizagem onde se do a apresentao dos contedos e a realizao das atividades prticas tm formato presencial e essencialmente prtico, utilizando tcnicas de estudo dirigido individual, trabalho em equipe e prticas orientadas para o contexto de atuao do futuro especialista que se pretende formar. As sesses de aprendizagem desenvolvem-se em trs etapas, com predominncia de tempo para as atividades prticas, conforme descrio a seguir: Primeira etapa: apresentao da teoria e esclarecimento de dvidas (de 60 a 90 minutos). O instrutor apresenta, de maneira sinttica, os conceitos tericos correspondentes ao tema da sesso de aprendizagem, com auxlio de slides em formato PowerPoint. O instrutor levanta questes sobre o contedo dos slides em vez de apenas apresent-los, convidando a turma reflexo e participao. Isso evita que as apresentaes sejam montonas e que o aluno se coloque em posio de passividade, o que reduziria a aprendizagem. Segunda etapa: atividades prticas de aprendizagem (de 120 a 150 minutos). Esta etapa a essncia dos cursos da ESR. A maioria das atividades dos cursos assncrona e realizada em duplas de alunos, que acompanham o ritmo do roteiro de atividades proposto no livro de apoio. Instrutor e monitor circulam entre as duplas para solucionar dvidas e oferecer explicaes complementares. Terceira etapa: discusso das atividades realizadas (30 minutos). O instrutor comenta cada atividade, apresentando uma das solues possveis para resolv-la, devendo ater-se quelas que geram maior dificuldade e polmica. Os alunos so convidados a comentar as solues encontradas e o instrutor retoma tpicos que tenham gerado dvidas, estimulando a participao dos alunos. O instrutor sempre estimula os alunos a encontrarem solues alternativas s sugeridas por ele e pelos colegas e, caso existam, a coment-las.

Sobre o curso
O objetivo desse curso fornecer ao aluno o conhecimento prtico-terico necessrio ao profissional de informtica, e atravs de atividades prticas especficas aos ambientes de segurana e redes, as ferramentas necessrias para construo e manuteno de redes de computadores em ambientes seguros. O curso apresentar as principais atividades em Administrao de Redes, alm de sugerir polticas de segurana a serem implementadas nas diversas instituies com o intuito de manter os ambientes computacionais funcionais e seguros. Sero apresentados os fundamentos da arquitetura TCP/IP, apresentando sua pilha de protocolos e servios oferecidos. As atividades prticas do curso envolvem desde a configurao e monitoramento da rede at a implementao de firewall, NAT, roteamento e tunelamento, utilizando ferramentas como Wireshark, Iptables, IPSec, OpenVPN e rkhun ter, entre outras.

A quem se destina
O pblico-alvo composto por profissionais da rea de informtica com experincia em administrao de sistemas Linux, que sero os responsveis, ou faro parte de uma equipe, por instalar e manter uma rede de computadores com nfase em rede TCP/IP. Podem tambm participar outros profissionais de TI, tais com gerentes, programadores e analistas de suporte de sistemas.

xiv

Convenes utilizadas neste livro


As seguintes convenes tipogrficas so usadas neste livro: Itlico Indica nomes de arquivos e referncias bibliogrficas relacionadas ao longo do texto.

Largura constante
Indica comandos e suas opes, variveis e atributos, contedo de arquivos e resultado da sada de comandos. Comandos que sero digitados pelo usurio so grifados em negrito e possuem o prefixo do ambiente em uso (no Linux normalmente # ou $, enquanto no Windows C:\).

Contedo de slide
Indica o contedo dos slides referentes ao curso apresentados em sala de aula.

Smbolo
Indica referncia complementar disponvel em site ou pgina na internet.

Smbolo
Indica um documento como referncia complementar.

Smbolo
Indica um vdeo como referncia complementar.

Smbolo
Indica um arquivo de adio como referncia complementar.

Smbolo
Indica um aviso ou precauo a ser considerada.

Smbolo
Indica questionamentos que estimulam a reflexo ou apresenta contedo de apoio ao entendimento do tema em questo.

Smbolo
Indica notas e informaes complementares como dicas, sugestes de leitura adicional ou mesmo uma observao.

Permisses de uso
Todos os direitos reservados RNP. Agradecemos sempre citar esta fonte quando incluir parte deste livro em outra obra. Exemplo de citao: TORRES, Pedro et al. Administrao de Sistemas Linux: Redes e Segurana. Rio de Janeiro: Escola Superior de Redes, RNP, 2013.

xv

Comentrios e perguntas
Para enviar comentrios e perguntas sobre esta publicao: Escola Superior de Redes RNP Endereo: Av. Lauro Mller 116 sala 1103 Botafogo Rio de Janeiro RJ 22290-906 E-mail: info@esr.rnp.br

Sobre os autores
Pedro R. Torres Jr professor da Universidade Federal do Paran e coordenador tcnico do ponto de presena da RNP no estado do Paran. Tambm atua como coordenador tcnico do ponto de troca de trfego (IXP) da regio e da Rede Metropolitana de Curitiba. Possui mais de 14 anos de experincia em sistema operacional Linux e mais de 12 anos de experincia com roteamento IP. Christian Lyra Gomes formado em Cincias da Computao e tem mestrado em Redes de Computadores pela Universidade Federal do Paran. Teve seu primeiro contato com Linux em 1997 e em 2000 trabalhou na Conectiva Linux. Em 2001, foi contratado pelo Ponto de Presena da RNP no Paran atuando na rea de gerncia de redes e sistemas. Em 2006 assumiu a coordenao administrativa do PoP-PR, cargo que exerce at hoje. Francisco Marcelo M. Lima certificado Project Management Professional (PMP) e Modulo Certified Security Officer (MCSO), Mestre em Engenharia Eltrica pela Universi dade de Braslia (2009), Mestre em Liderana pela Universidade de Santo Amaro (2007) e ps-graduado em Segurana de Redes de Computadores pela Universidade Catlica de Braslia (2003). Atualmente exerce as funes de Coordenador dos Cursos de Redes de Computadores e Segurana da Informao do IESB, e Analista em TI do MPOG cedido para a Controladoria-Geral da Unio/PR. Atua tambm como instrutor/revisor dos cursos de segurana e redes na ESR e instrutor/revisor dos cursos de planejamento estratgico (PDTI) e gesto de contratos de TI (GCTI) na ENAP. Possui mais de 15 anos de experincia na rea de Cincia da Computao, com nfase em Segurana da Informao, Redes e Construo de Software, tendo exercido funes como: Coordenador Geral de TI do INCRA (DAS 4); Coordenador do Curso de Segurana da Informao da Faculdade Rogacionista; Coordena dor do Curso de Processamento de Dados e Segurana da Informao da Faculdade AD1, Analista em Segurana da empresa Mdulo Security Solutions. Luiz Fernando Ramos Costa Ps-graduando em Engenharia de Software UNISUL/SC, formado em Redes de Computadores pela Estcio de S, certificado LPI Linux, Novell CLA, DCTS, analista de TI do IFSC e analisa de suporte na POWERSolutions. Mais de 13 anos de experincia em administrao de redes, desenvolvimento de softwares e como orienta dor de cursos para a certificao Linux Professional Institute, atuando principalmente na gerncia de redes em grandes corporaes e com programao de sistemas web. Sergio Ricardo Alves de Souza possui mais de 35 anos de experincia na rea de Administrao e Suporte de Sistemas. Trabalhou em empresas como: Burroughs (UNISYS), ARSA (Infraero), Cobra Computadores, LNCC e outras. Consultoria e treinamento em empresas como: Fiocruz, Jardim Botnico, Museu Goeldi, Cefet-MG, IBM Brasil. Participou do desen volvimento e implantao de cursos profissionalizantes em Informtica em Petrpolis FAETC. Participou do projeto de criao do Instituto Superior de Tecnologia em Cincia da Computao de Petrpolis. Possui Notrio Saber em Informtica pelo LNCC.

xvi

1
Introduo administrao de redes e arquitetura TCP/IP (parte 1)
Conhecer as principais atividades de administrao de redes; entender o princpio

objetivos

de funcionamento da arquitetura TCP/IP e seus principais protocolos; conhecer os modelos de referncia ISO/OSI e TCP/IP; identificar as camadas e conhecer suas funcionalidades; entender os mecanismos de endereamento IP e o funcionamento da resoluo de endereos e nomes.

conceitos

Administrao de redes e arquitetura TCP/IP.

Objetivos e funes da administrao de redes


Desempenhar qualquer atividade para manter o bom funcionamento da rede. 11 Planejar. 11 Implementar. 11 Monitorar. 11 Proteger. 11 Escalar. 11 Auditar. Um administrador de redes deve ser capaz de planejar, implementar, monitorar, proteger, escalar e auditar a rede, otimizando-a sempre que possvel para melhor atender seus

q
Captulo 1 - Introduo administrao de redes e arquitetura TCP/IP (parte 1)

usurios (locais ou remotos). Alm disso, tambm deve saber gerenciar os ativos de rede e manter sua infraestrutura, analisar a evoluo da utilizao dos recursos computacionais para fornecer dados necessrios para escalar o ambiente e garantir a autenticidade, integri dade, disponibilidade e confidencialidade dos dados. Frente a tanta inovao tecnolgica e ambientes to heterogneos, o administrador de redes tambm deve manter-se atualizado em relao s integraes dos ativos de rede, falhas de segurana identificadas, atualizaes para corrigir problemas com a segurana ou mau funcionamento, inovaes de hardware e software. Atualmente a maioria dos ambientes exige interconexo com redes pblicas ou parceiras. Sendo assim, dever do administrador de redes zelar pela sua rede e pelo trnsito de dados

entre as redes. Sempre que possvel, interagir com o par que mantm a rede remota para que as melhores prticas sejam comuns s pontas, evitando assim que pontos de fragilidade remotos possam comprometer seu ambiente computacional. Funes do dia a dia do administrador: 11 Fazer instalaes fsicas e lgicas. 11 Implementar, monitorar e auditar a rede. 11 Atualizar servios e corrigir bugs ou falhas de segurana. 11 Analisar e atender a incidentes de segurana. 11 Pesquisar por novidades tecnolgicas tanto para melhor atender ao usurio quanto para facilitar o gerenciamento da rede. 11 Documentar topologia, procedimentos, atendimentos etc. Para cumprir com suas atribuies de maneira satisfatria, o administrador de sistemas deve sempre realizar atividades preventivas, tais como: 11 Instalaes fsicas/lgicas: o planejamento de uma nova rede ou da expanso de uma rede j instalada deve ser feito nos nveis fsico e lgico, envolvendo aspectos desde a seleo da tecnologia de cabeamento e dos equipamentos de interconexo at o projeto de endereamento e roteamento; 11 Implementao, monitoramento e auditoria da rede: o administrador deve sempre estar atento ao funcionamento da rede, analisando logs (registros de eventos que ocorrem no sistema), identificando possveis sintomas de problemas e analisando se o desempenho da rede est normal. Caso no esteja, ele deve avaliar as possveis corre es para a situao encontrada. A auditoria pode ser necessria para identificar, coibir e aplicar as devidas sanses aos responsveis por maus comportamentos de pessoas ou equipamentos dentro da sua rede, de acordo com as polticas e leis vigentes; 11 Atualizao de programas: um ponto importante dessa atividade assegurar a continuidade e a segurana da operao dos sistemas, isto , os servios crticos da instituio devem continuar operando normalmente. Para tanto, os aplicativos instalados devem ser sempre atualizados. Isso envolve um bom planejamento da atualizao, podendo resultar inclusive em atividades fora do horrio do expediente normal; 11 Segurana: embora o Linux seja considerado um sistema muito seguro, com a expanso da comunicao entre mquinas e dos acessos externos (remotos), as redes tornaram-se cada
Administrao de Sistemas Linux: Redes e Segurana

l
Com o desenvolvimento da internet, a disponibilidade tornou-se item de qualidade de um servio, alm dos j conhecidos: performance, segurana e confiabilidade. Como o prprio nome diz, a disponibilidade indica o tempo que um servio fica acessvel para uso. O grau de disponibilidade tambm pode ser medido pelo seu inverso, ou seja, pelo tempo que o sistema esteve indisponvel (por exemplo, 90 minutos por semana).

vez mais vulnerveis. Por isso, o administrador deve sempre ficar atento, verificar os logs (registros de eventos que ocorrem no sistema) de segurana e rastrear tentativas de invaso. Para se manter atualizado sobre questes de segurana, bugs e backdoors (mtodo que permite obter acesso a um computador remoto sem passar pelos mtodos normais de autenticao), uma boa dica frequentar com regularidade listas de discusso sobre o tema, bem como sites de hackers (termo utilizado para designar um especialista em computao).

Arquitetura TCP/IP
Modelos conceituais: 11 Ajudam a entender o funcionamento da rede. 11 Classificam protocolos. 11 Baseiam-se no conceito de diviso de camadas.

Bug um erro no funcionamento comum de um software (ou tambm de hardware), tambm chamado de falha na lgica programacional de um programa de computador. Pode causar discrepncias no objetivo ou ainda a impossibilidade de realizao de uma ao de um programa de computador ou apenas travar o sistema.

Tipos de modelos: 11 ISO/OSI. 11 TCP/IP. O que chamamos simplesmente de rede , na verdade, um complexo sistema composto

por hardware, softwares, Sistemas Operacionais e protocolos. Para ajudar a entender esse sistema e facilitar a criao e a implementao de protocolos ou softwares, criaram-se modelos conceituais baseados na ideia de camadas como forma de dividir as vrias partes do sistema e de organizar a grande quantidade de protocolos envolvidos. Dois modelos conceituais se popularizaram: o ISO/OSI e o TCP/IP.

Embora o modelo OSI seja considerado ideal, sua adoo em larga escala foi difi cultada por alguns fatores, como, por exemplo, a diversidade de protocolos. J o modelo TCP/IP, que se baseia no ISO/OSI, tornou-se o padro de fato, principalmente por minimizar o conjunto de protocolos e ter sido ampla e gratuitamente disseminado em ambientes Unix.

Modelo ISO/OSI
O Open Systems Interconnection (OSI) segue o conceito de camadas. 11 Cada camada recebe e envia requisies camada imediatamente superior ou infe rior e se comunica com a mesma camada em outro host. 11 Uma camada no oferece servios suportados por outra camada. Conceito de camadas: 11 Os servios oferecidos so feitos atravs de uma camada bem definida. 11 Cada camada possui uma forma de identificao dos dados que, por sua vez, encapsulam dados das camadas superiores.

O Open Systems Interconnection (OSI) foi desenvolvido pela International Organization for Standardization (ISO) no incio dos anos 60, quando se iniciou a discusso sobre processamento em rede. O conceito de camadas desse modelo parte das seguintes premissas: 11 Uma camada recebe e envia requisies para outra imediatamente superior ou inferior e se comunica com a mesma camada em outro host (qualquer computador conectado na internet); 11 Nenhuma camada oferece os servios suportados por outra camada; 11 Cada camada oferece seus servios atravs de uma interface bem definida; 11 Cada camada possui uma forma de identificao (endereamento) de seus prprios dados que, por sua vez, encapsulam dados das camadas superiores.

Captulo 1 - Introduo administrao de redes e arquitetura TCP/IP (parte 1)

Camada 1
aplicao Protocolo de aplicao

o que se troca
aplicao

APDU

apresentao

Protocolo de apresentao

apresentao

APDU

sesso

Protocolo de sesso

sesso

SPDU

transporte

Protocolo de transporte

transporte

TPDU

rede

rede

rede

rede

pacote

enlace

enlace

enlace

enlace

quadro

fsica

fsica

fsica

fsica

bit

mquina A

roteador

roteador

mquina B

sub-rede de comunicao

Figura 1.1 Em sete nveis, o modelo OSI e suas camadas.

O modelo OSI prope uma estrutura de camadas (sete nveis) como referncia para a arqui tetura de protocolos de redes de computadores.

Tipos de camada
Fsica: 11 Transforma bits (0 e 1) em sinais eltricos, pticos e ondas de rdio.
Administrao de Sistemas Linux: Redes e Segurana

Enlace: 11 Agrupa os bits recebidos da camada fsica em quadros de dados. 22 Exemplo: quadro Ethernet. 11 Camada fsica (nvel 1): estabelece o canal de comunicao das mquinas com base no meio de transmisso (cabo coaxial, par tranado, fibra tica etc.). Sua funo transformar bits (0 e 1) em sinais eltricos, ondas de rdio, micro-ondas etc. Para fins de aprendizado, pode-se considerar que essa camada atualmente constituda pela placa de rede, que transforma o sinal lgico em eltrico, pelo cabo de rede e pelos conectores das mquinas;

11 Camada de enlace (nvel 2): agrupa os bits recebidos do nvel 1 em quadros de dados. Aps se identificar como destino do quadro recebido e verificar que ele est livre de erros, a camada de enlace extrai suas informaes de controle e envia os dados para a camada superior. Para isso, ela implementa mecanismos de identificao de incio e fim dos quadros de dados, mecanismos de endereamento, protocolos para acessar o meio e protocolos para detectar e opcionalmente corrigir erros de quadros. Rede: 11 Define e encaminha a unidade bsica de transferncia (datagrama). 22 Exemplo: IP. Transporte: 11 Pode assegurar que pacotes enviados sero recebidos. 11 Pode implementar o controle de sequncia e erros. 11 Comunicao entre processos. 11 Camada de rede (nvel 3): responsvel pela definio e pelo roteamento de datagramas (unidade bsica de transferncia de rede) entre mquinas que podem estar conectadas em redes fsicas distintas. O roteamento baseado em mecanismos de endereamento globais que identificam cada mquina da rede de forma nica. Uma vez que os pacotes trafegam atravs de redes com diferentes capacidades de transmisso, esse nvel tambm pode implementar mecanismos de controle de congestionamento; 11 Camada de transporte (nvel 4): assegura que os pacotes enviados pela entidade do nvel 4 da mquina-origem sejam recebidos pela entidade do nvel 4 da mquina-destino. Para isso, pode implementar mecanismos de controle de sequncia e de controle de erros que asseguram que os dados sero entregues na ordem correta, sem duplicaes e erros. Tambm pode implementar um controle de fluxo para equilibrar as capacidades de pro cessamento das mquinas-origem e destino. Esse nvel fornece conectividade fim-a-fim, o que isola as camadas superiores dos aspectos de transmisso de dados. Sesso: 11 Prov mecanismos para lidar com funcionalidades necessrias aplicao. 22 Exemplo: transferncia de arquivos com checkpoints. Apresentao: 11 Trata o formato dos dados. Aplicao: 11 Dados gerados pela aplicao-origem e requisitados e/ou recebidos pela aplicao-destino. 22 Exemplo: e-mail. 11 Camada de sesso (nvel 5): fornece alguns mecanismos que lidam com a funcionalidade necessria para a aplicao, como controlar o dilogo entre os sistemas, na definio de uma disciplina de comunicao. Tambm pode implementar mecanismos de recuperao de falhas que permitem a retomada de transferncias de dados do ponto onde foram interrompidas; 11 Camada de apresentao (nvel 6): realiza transformaes nos dados relativas compresso de textos, criptografia e converso de formatos de representao. Se essa camada existisse no TCP/IP, a converso de acentos e de nmeros no precisaria ser executada atravs dos navegadores web;

Captulo 1 - Introduo administrao de redes e arquitetura TCP/IP (parte 1)

11 Camada de aplicao (nvel 7): aqui os dados so essencialmente aqueles gerados pela aplicao-origem e requisitados e ou mesmo recebidos pela aplicao-destino. Pertencem a esse nvel as aplicaes de propsitos gerais, como transferncia de arquivos, correio eletrnico e terminal remoto; Lembre-se: o nvel 1 apenas pegou um sinal fsico e o passou para o nvel 2 como um sinal lgico, interpretado de acordo com seus protocolos, sem se preocupar com o seu contedo.

Modelo TCP/IP
Aplicao: 11 Similar s de aplicao, apresentao e sesso do ISO/OSI. Transporte: 11 Similar de transporte do ISO/OSI. Rede: 11 Similar de rede do ISO/OSI. Enlace: 11 Similar de enlace do ISO/OSI. Fsica: 11 Similar fsica do ISO/OSI. O modelo TCP/IP surgiu com base em protocolos de algumas camadas j existentes e tambm como resultado prtico de pesquisas em universidades. O TCP/IP implementa

funcionalidades similares ao modelo OSI nas camadas de rede, transporte, sesso, apresentao e aplicao. O modelo TCP/IP possui cinco camadas. possvel encontrar, na bibliografia, referncias ao modelo TCP/IP com apenas quatro camadas (a camada fsica suprimida): 11 Camada fsica (ou hardware): similar do modelo ISO/OSI, transforma bits em sinais eltricos, pticos etc., e os transmite atravs de um meio (um cabo, uma fibra ou mesmo pelo ar); 11 Camada de enlace (ou interface de rede): a segunda mais baixa do modelo TCP/IP.
Administrao de Sistemas Linux: Redes e Segurana

Sua funo tambm similar do modelo ISO/OSI, ou seja, responsvel por receber os quadros de dados de tipos de redes especficas (por exemplo, Ethernet, PPP e HDLC) e prepar-los para a camada superior (a camada de rede); 11 Camada de rede (ou de internet ou de inter-rede): responsvel por transmitir pacotes de dados entre duas mquinas, possivelmente em redes diferentes. Seu principal proto colo o Internet Protocol (IP). Nessa camada feito todo o processo de roteamento de pacotes. Tambm responsvel pelas mensagens de controle e de erro (protocolo ICMP); 11 Camada de transporte: responsvel pela comunicao fim-a-fim de aplicativos. Enquanto na camada anterior temos a comunicao de mquina-a-mquina, nesta temos a comunicao de aplicativo-a-aplicativo. Os seus principais protocolos so o TCP e o UDP; 11 Camada de aplicao: a camada mais alta, onde so rodados os aplicativos com seus protocolos especficos, como transferncia de arquivos, e-mail, vdeo etc.

aplicao aplicao apresentao sesso transporte rede enlace


Figura 1.2 TCP/IP x ISO/OSI.

transporte rede enlace fsica

fsica

Encapsulamento
Cabealho Dados

Segmento TCP
Cabealho Dados

Pacote IP
Figura 1.3 Funcionamento das camadas.

Cabealho

Dados

Quadro Ethernet
Antes de prosseguirmos no estudo das camadas de enlace e de rede, vamos estudar com mais detalhes o funcionamento e/ou relacionamento das camadas. Como visto anteriormente, cada camada possui uma forma de identificao e/ou endereamento, e cada uma delas encapsula dados das camadas superiores. De uma forma geral, os dados que trafegam pelas camadas so organizados em pacotes (cada um contm um cabealho e uma rea de
Captulo 1 - Introduo administrao de redes e arquitetura TCP/IP (parte 1)

dados). Na imagem anterior mostrado um pequeno modelo com as camadas 2, 3 e 4. Esse modelo permite que um pacote de uma determinada camada seja transportado por diferentes protocolos da camada inferior. Imagine um pacote IP com origem na mquina A,
Token Ring Protocolo para redes locais. Um quadro chamado de Token circula por uma topologia em anel ou estrela para controlar o acesso ao meio compartilhado. Em ingls, ring quer dizer anel ou crculo.

ligada em uma rede Ethernet, com destino mquina B, situada em uma rede Token Ring. Essa transmisso se daria da seguinte forma: 11 A mquina A encapsularia o pacote IP em um quadro Ethernet e o transmitiria para um roteador com interfaces nas duas redes; 11 Esse roteador extrairia o pacote IP do quadro Ethernet, o encapsularia em um quadro Token Ring e o transmitiria para a mquina B; 11 A mquina B, por sua vez, extrairia o pacote IP do quadro Token Ring e o processaria.

Nvel de enlace: Ethernet


11 Padro IEEE 802.3. 11 Endereos de 48 bits. 11 Controle de acesso ao meio e deteco de coliso (CSMA/CD).

O nvel de enlace o nvel 2 do modelo ISO/OSI (que adotaremos como referncia). A famlia de protocolos TCP/IP capaz de funcionar sobre uma grande diversidade de tecnologias e protocolos de nvel 2. Abordaremos aqui o padro Ethernet, um dos mais populares para redes locais.

O padro Ethernet (padro IEEE 802.3) possui um sistema de endereamento de 48 bits. Apesar de pertencer camada de enlace, conhecido como endereo fsico ou ainda como endereo Medium Access Control (MAC em ingls, Controle de Acesso ao Meio) e est asso ciado ao dispositivo de interface de rede. Os fabricantes de dispositivos de rede compram blocos de endereos Ethernet e os designam em sequncia aos seus produtos, o que em tese faria com que cada placa de rede possusse um endereo nico. No entanto, isso nem sempre acontece (veremos como contornar esse tipo de problema em outro Captulo). O Sistema Operacional pode ler o endereo fsico de cada dispositivo de rede (Ethernet). Esse endereo representado separando-se os octetos por dois pontos, como no exemplo: 00:00:21:2C:E8:95. Os endereos fsicos podem ser de trs tipos: unicast (de interface); multicast (identifica um grupo); ou broadcast (todos os computadores). Mais adiante veremos alguns protocolos que utilizam o broadcast para algumas funes especiais como, por exemplo, obter um endereo IP dinamicamente.

Formato do quadro
Um quadro Ethernet composto de um prembulo, um cabealho, dados do usurio e um campo de Cyclic Redundancy Check (CRC) que serve para verificar a integridade do quadro.

Prembulo 8 octetos

Endereo de destino 6 octetos

Endereo de origem 6 octetos

Tamanho do quadro 2 octetos

Dados do usurio 46 - 1500 octetos

CRC 4 octetos

Figura 1.4 A estrutura de um quadro Ethernet em detalhes.

O prembulo serve apenas para sincronizar os relgios do receptor e do transmissor e no considerado para efeito de clculo do tamanho do quadro. Sendo assim, um quadro Ethernet pode ter tamanho mnimo de 64 octetos e mximo de 1.518 (incluindo o cabe alho). Em algumas verses da tecnologia Ethernet, como na primeira desenvolvida pela Xerox, o campo tamanho do quadro substitudo por um campo chamado type, de mesmo tamanho, mas com a funo de identificar o protocolo de nvel superior. Cada tecnologia de rede utiliza um protocolo de acesso ao meio, muitas vezes entendido como uma subcamada do nvel 2. Esses protocolos, como o Aloha, Carrier Sense Multiple Access (CSMA), CSMA/Collision Detection (CSMA/CD), alm de outros, so utilizados para
Administrao de Sistemas Linux: Redes e Segurana

controle de acessos mltiplos. Utilizado na tecnologia Ethernet, o CSMA/CD possui um mtodo para detectar coliso, ou seja, alm de verificar se o canal est ocupado no instante da transmisso, tambm avisa se uma coliso ocorrer durante o tempo de acesso ao meio. Quando duas mquinas na mesma rede local querem se comunicar, elas precisam primeiro descobrir o endereo fsico do receptor. Para isso utilizado o protocolo Address Resolution Protocol (ARP), que veremos mais adiante.

A interface de rede s aceita quadros Ethernet endereados para o seu prprio endereo fsico ou para o endereo de broadcast. No entanto, a placa pode ser configurada para aceitar qualquer quadro Ethernet que passe no meio. Nesse caso, dizemos que a placa est em modo promscuo.

Nvel de rede: protocolo IP


No confivel: 11 O protocolo no implementa mecanismos de confirmao. 22 O emissor da mensagem no sabe se o pacote (ou datagrama) chegou ao destino No orientado conexo: 11 No existe um mecanismo que indique se a ordem de recebimento dos pacotes foi a mesma de envio. 22 Os pacotes podem chegar fora de ordem. Na camada de rede do modelo ISO/OSI, que corresponde camada de internet do modelo

TCP/IP, so implementados alguns protocolos, como IP, ICMP, ARP e RARP. Veremos detalhes do protocolo IP, como o formato do datagrama IP e as suas formas de endereamento, na verso 4 do protocolo (IPv4). Antes dos detalhes, h duas caractersticas importantes que devemos saber sobre o proto colo IP: ele no confivel e no orientado conexo. 11 No confivel: o protocolo no implementa mecanismos de confirmao, ou seja, o emissor da mensagem no sabe se o pacote (ou datagrama) chegou ao destino; 11 No orientado conexo: no existe um mecanismo que indique se a ordem de recebi mento dos pacotes foi a mesma de envio, isto , os pacotes podem chegar fora de ordem.

Datagrama IP
O datagrama IP possui um cabealho (header) IP que contm informaes de controle do protocolo, como origem, destino e dados que est levando. A prxima figura ilustra o formato do cabealho:

VESR (4)

HLEN (4) Identicao

Tipo de servio Flags (3) Protocol (8) Endereo de origem (32)

Extenso total OFFSET do fragmento (13) CHECKSUM do HEADER (16)

TTL (8)

Figura 1.5 Informaes de controle do protocolo no datagrama IP.

Endereo de destino (32) Opes IP (?) Enchimento

Descrio da utilizao do cabealho IP: 11 Vers: verso do protocolo IP (atualmente IPv4); 11 HLEN: comprimento do cabealho em unidades de 32 bits;

Captulo 1 - Introduo administrao de redes e arquitetura TCP/IP (parte 1)

11 Tipo de servio: indica a qualidade do servio requerido. Por exemplo: prioridade, retardo, vazo e confiabilidade; 11 Comprimento total: 2^16 - tamanho do pacote (64 K); 11 Identificao: identificao dos pacotes (pacotes fragmentados tm a mesma identificao); 11 Flags: DF 1 bit indicando pedido para no fragmentar. MF 1 bit indicando se existem ainda outros fragmentos (= 1) desse pacote se tratando do ltimo fragmento (= 0); 11 Offset do fragmento: posio do fragmento com relao ao datagrama original; 11 Tempo de Vida (TTL): evita que pacotes fiquem circulando indefinidamente na rede, sobrecarregando os roteadores. Cada roteador que processa o datagrama subtrai o valor do Tempo de Vida (TTL). Se o TTL atingir o valor 0 (zero), o datagrama descartado e uma mensagem ICMP enviada ao roteador que a originou, avisando que o tempo de vida do pacote expirou; 11 Protocol: identifica o protocolo encapsulado no IP; 11 Checagem do cabealho: mecanismo utilizado para detectar erros no cabealho; 11 Endereo de origem/destino: endereos IP de origem e de destino; 11 Opes: permitem teste e depurao da rede; 11 Enchimento: usado para fazer um enchimento quando as opes no so mltiplas de 32 bits. 11 Maximum Transmission Unit (MTU). 11 Transmisso de um datagrama IP. 11 O que um quadro Ethernet? 22 Fragmentao.

MTU e Fragmentao
importante destacar que um datagrama IP encapsulado dentro de um quadro. Mas o que acontece quando a capacidade desse quadro menor que o pacote IP que queremos enviar? Nesses casos, torna-se necessrio fragmentar o pacote IP. por isso que no cabealho existem campos que tratam de fragmentao. Por exemplo, se temos um Maximum Transmission Unit (MTU) quadro que encapsula um datagrama IP de 600 bytes e queremos enviar um pacote IP de 1400 bytes, esse pacote IP ser fragmentado da seguinte forma:
Administrao de Sistemas Linux: Redes e Segurana

11 No primeiro quadro sero enviados 600 bytes, indicando-se no cabealho do IP que se trata do primeiro fragmento setando o campo Offset para 0 e a Flag MF para 1; 11 No segundo quadro sero enviados mais 600 bytes, indicando-se no cabealho do IP que se trata do segundo fragmento setando o campo Offset para 600 e a Flag MF para 1; 11 Por fim, no terceiro quadro sero enviados 200 bytes, indicando-se no cabealho IP que se trata do ltimo fragmento setando o campo Offset para 1200 e a Flag MF para 0; Consideraes sobre fragmentao: 11 A fragmentao permite a transmisso de pacotes IP de no mximo 64 kbytes sobre um quadro; 11 Os datagramas fragmentados sero remontados apenas no destino final;

10

11 Roteadores no fazem remontagem; 11 Alm do overhead para fragmentar, transmitir ou remontar, se um fragmento se perde, todo o datagrama perdido.

Endereamento IP
32 bits (representao em 4 decimais de 8 bits). 11 192.168.0.1 = 11000000.10101000.00000000.00000001 Protocolo ARP. 11 Associao IP x Endereo fsico. O protocolo IP responsvel pelo endereamento e roteamento dos pacotes. No TCP/IP, o

endereo recebe o nome de endereo IP e constitudo por 32 bits que so representados na notao decimal com pontos, separados em 4 decimais de 8 bits. Por exemplo: 192.168.0.1 = 11000000.10101000.00000000.00000001 172.17.0.2 = 10101100.00010001.00000000.00000010 10.10.0.3 = 00001010.00001010.00000000.00000011 O endereo IP est associado ao nvel de rede. O nvel IP define uma associao entre um endereo IP e um endereo fsico. Um determinado endereo IP pode ser associado somente a um nico endereo fsico. Essa associao ser descrita mais detalhadamente quando abordarmos o protocolo ARP. Cada endereo pode ser dividido em duas partes: 11 NetId: 22 Conjunto dos bits que representa o endereo da rede. 11 HostId: 22 Conjunto dos bits que representa a mquina dentro da rede.

Classes de endereos
Todas as mquinas de uma determinada rede compartilham um prefixo nos seus endereos IP. Esse prefixo denominado endereo de rede e identifica apenas uma determinada rede conectada internet. Implicitamente, o endereo de rede define o bloco de endereos IP que podem ser alocados para mquinas daquela rede. Cada endereo IP possui, logica mente, duas partes: NetId e HostId. No exemplo a seguir os bits do NetId so representados com a letra n e os bits do HostId, com a letra h: nnnnnnnn.nnnnnnnn.nnnnnnnn.hhhhhhhh 11 O NetId o conjunto dos bits que representa o endereo da rede. 11 O HostId o conjunto dos bits que representa a mquina dentro da rede. Por conveno, o endereo de rede possui o campo HostId com todos os bits iguais a 0 (zero). Exemplo: considerando que o NetId possui 24 bits e o HostId 8 bits, os endereos IP 192.168.0.10, 192.168.0.30 e 192.168.0.50 pertencem a mquinas da mesma rede 192.168.0.0. O protocolo IP foi definido em classes A, B, C, D e E, que definem diferentes quantidades de bits para o NetId e HostId.

Captulo 1 - Introduo administrao de redes e arquitetura TCP/IP (parte 1)

11

O processo de endereamento em classe tambm conhecido como classful. Classe A Endereo 0nnnnnnn.hhhhhhhh.hhhhhhhh.hhhhhhhh Faixa de endereo 1.0.0.0 a 127.255.255.255, sendo para uso privado: 10.0.0.0 a 10.255.255.255 B 10nnnnnn.nnnnnnnn.hhhhhhhh.hhhhhhhh 128.0.0.0 a 191.255.255.255, sendo para uso privado: 172.16.0.0 a 172.31.0.0 C 110nnnnnn.nnnnnnnn.nnnnnnnn.hhhhhhhh 192.0.0.0 a 223.255.255.255, sendo para uso privado: 192.168.0.0 a 192.168.255.0 D E 1110xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx 1111xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx 224.0.0.0 a 239.255.255.255 240.0.0.0 a 255.255.255.255

Na tabela anterior podemos verificar que: 11 A classe A possui 8 bits para o NetId e 24 para o HostId, e todo endereo dessa classe inicia com o bit 0; 11 A classe B possui 16 bits para o NetId e 16 bits para o HostId, e todo endereo dessa classe comea com os bits 10; 11 A classe C possui 24 bits para o NetId e 8 bits para o HostId, e todo endereo dessa classe inicia com os bits 110; 11 A classe D para uso com multicast; 11 A classe E foi reservada para uso futuro.

Tabela 1.1 Endereamento classful.

Mscaras de rede
Identificao dos bits NetId e HostId. 11 Bits 1 representam NetId. 11 Bits 0 representam HostId. 22 255.255.255.0 = 11111111.11111111.11111111.00000000 Como seria a mscara para uma rede classe B?
Administrao de Sistemas Linux: Redes e Segurana

Endereos especiais. 11 Localhost. 22 Classe A reservada (127.0.0.0). 33 Exemplo: 127.0.0.1 11 Endereo de rede. 22 Todos os bits do HostId setados em 0. 33 Exemplo: 130.239.0.0

12

Endereos especiais
11 Localhost (ou endereo de loopback): existe em toda mquina que suporta a famlia de protocolos TCP/IP. Utiliza um endereo de rede classe A reservado (127.0.0.0), do qual usado apenas o endereo 127.0.0.1. Ele permite a comunicao local (at mesmo um telnet ou FTP para a prpria mquina) e a utilizao de programas de rede sem estar, necessariamente, conectado a uma rede. Seu uso ideal para desenvolvimento e testes; 11 Endereo de rede: composto por todos os bits do HostId iguais a 0 (zero), serve para identificar de forma unvoca uma determinada rede. Exemplo de um endereo de rede classe B: 130.239.0.0. Endereo de broadcast: 11 Todos os bits do HostId setados em 1. 22 Exemplo: 130.239.255.255 Rota default: 11 Geralmente representada pelo endereo 0.0.0.0 11 Broadcast: possibilita o envio de um determinado pacote a todas as mquinas conectadas rede. O endereo de broadcast constitudo pelo endereo de rede e por todos os bits do HostId iguais a 1 (veremos mais detalhes no item seguinte, sub-redes). Exemplo de um endereo de broadcast em uma rede classe B: rede 130.239.0.0; endereo de broadcast 130.239.255.255 (255.255 = 11111111. 11111111); 11 Rota default: endereo para aonde devem ser enviados os pacotes cujos destinos no so conhecidos localmente. Esse endereo no pode ser alocado a redes ou mquinas. Muitas vezes a rota default de um host representada pelo endereo 0.0.0.0. Alocao baseada em classes gerou problemas. 11 Exemplo: classe B para uma rede com 300 hosts. Solues:
Captulo 1 - Introduo administrao de redes e arquitetura TCP/IP (parte 1)

11 Proxy ARP. 11 Sub-redes. 11 Classless Inter Domain Routing (CIDR). O padro Berkeley Software Distribution (BSD) 4.2 fez com que o endereo de broadcast fosse 0, e no 1, para os bits das mquinas. Isso foi desfeito a partir da verso 4.3, por problemas de compatibilidade com os protocolos existentes. Roteadores, switches e placas multi-seriais tm opes para configurar o tipo de broadcast que deve ser feito para haver compatibilidade. Essa opo geralmente chamada de zero for broadcast. A alocao de endereos baseada em classes (classful) gerou muitos problemas de desperdcio de endereos. Por exemplo, um provedor que deseja alocar apenas alguns endereos para um pequeno cliente obrigado a ceder pelo menos 256 endereos de uma classe C. Por outro lado, para um provedor de grande porte (com mais de 256 mquinas), deve-se alocar um endereo classe B com 216 endereos. Para minimizar o desperdcio e solucionar esses problemas, foram criados alguns mecanismos, como Proxy ARP, sub-redes e CIDR, que veremos a seguir.

13

Sub-redes
11 Diviso dos endereos de uma classe em subconjuntos. 11 Utilizao de bits HostId como NetId. 22 Exemplo: dividir uma classe C em 2. 33 192.168.0.0 (8 bits HostId). 33 192.168.0.0 192.168.0.127 (7 bits Host ID). 33 192.168.0.128 192.168.0.255 (7 bits Host ID).

Uma sub-rede uma rede fsica cujos endereos so um subconjunto do conjunto de endereos de uma rede de classe A, B ou C. Um endereo de sub-rede obtido atravs da extenso dos bits do NetId usando bits do HostId do endereo de rede original. Esse processo divide o endereo de rede original em diversos endereos de sub-rede. Com essa soluo, necessrio um roteador para conectar as diversas sub-redes criadas. Para fazer essa quebra so utilizados alguns bits do HostId como sendo do NetId. Exemplo de emprstimo de 8 bits para representar as sub-redes (representada pela letra s) de uma classe B:

nnnnnnnn.nnnnnnnn.ssssssss.hhhhhhhh
Nesse processo necessrio utilizar o conceito de mscara de rede (netmask), que indicar quantos bits so usados no NetId estendido e quantos sero usados no HostId. A mscara de rede representada por 32 bits com a seguinte propriedade: os bits que representam a sub-rede (o novo NetId) possuem o valor 1 (um) e os bits do HostId possuem o valor 0 (zero). Assim, endereos de rede classe A, B e C equivalem a mscaras de rede 255.0.0.0, 255.255.0.0 e 255.255.255.0, respectivamente. Tais mscaras so denominadas mscaras default. Por exemplo: Dado o endereo de rede classe B (mscara default 255.255.0.0) 174.179.0.0, pode-se estender o NetId de 16 para 24 bits, ou seja, 8 bits usando a mscara 255.255.255.0 e criando 256 (2^8) sub-redes (174.179.0.0 at 174.179.255.0). O intervalo de endereos vlidos para os hosts da terceira sub-rede 174.179.2.0 255.255.255.0 vai de 174.179.2.1 at 174.179.2.254. O endereo 174.179.2.0 ser utilizado para identificar essa sub-rede e o endereo 174.179.2.255 ser usado para o endereo de broadcast.
Administrao de Sistemas Linux: Redes e Segurana

10001100.10110011.00000010.00000001 140.179.2.1 (endereo IP classe B) 11111111.11111111.00000000.00000000 255.255.0.0 (mscara default classe B) 11111111.11111111.11111111.00000000 255.255.255.0 (mscara de sub-rede) --------------------------------------------------10001100.10110011.00000010.00000000 140.179.2.0 (endereo da sub-rede) 10001100.10110011.00000010.11111111 140.179.2.255 (broadcast da sub-rede)

14

Para entendermos melhor o endereo de rede e o de broadcast, vamos analisar o clculo em binrio. Utilizando a operao AND de um endereo IP com a sua mscara de sub-rede, possvel determinar o endereo da sub-rede. E o endereo de broadcast o ltimo endereo
Setado Anglicismo do verbo to set, que significa configurar, atribuir um valor.

da sub-rede, ou seja, todos os bits da sub-rede setados em 1. Exemplo: 11 Uma empresa recebeu o endereo de rede classe C 200.211.230.0. Supondo que a empresa tem trs escritrios separados e que cada escritrio ter, no mximo, 60 mquinas, vamos criar um esquema de sub-redes que atenda a tais condies.

Por meio de um exemplo ser mais simples compreender seu uso. Tomemos o caso de uma empresa que recebeu o endereo de rede classe C 200.211.230.0. Supondo que a empresa tem trs escritrios separados e que cada escritrio ter, no mximo, 60 mquinas, vamos criar um esquema de sub-redes que atenda a tais condies: 11 certo que temos o endereo de rede classe C 200.211.230.0; 11 Existe a necessidade de dividir essa rede em trs sub-redes, cada uma com no mximo 60 mquinas; 11 Para enderear 60 mquinas preciso de, no mnimo, 6 bits no campo do HostId (26 = 64); 11 Estende-se os 24 bits iniciais do NetId do endereo de rede classe C para 26 bits (32 - 6) e se obtm a mscara de rede 255.255.255.192; 11 Distribui-se os endereos nas diferentes sub-redes criadas, como na tabela a seguir: Rede Endereo de rede 200.211.230.0 200.211.230.64 200.211.230.128 200.211.230.192 Broadcast Netmask Quantidade de mquinas 62 62
Captulo 1 - Introduo administrao de redes e arquitetura TCP/IP (parte 1)

Sub-rede 1 Sub-rede 2
Tabela 1.2 Sub-redes para atender a empresa com trs escritrios separados.

200.211.230.63 200.211.230.127 200.211.230.191 200.211.230.255

255.255.255.192 255.255.255.192 255.255.255.192 255.255.255.192

Sub-rede 3 Sub-rede 4

62 62

Dessa forma, pode-se criar sub-redes que suportam at 62 mquinas (note que sempre se perdem os endereos das bordas, um para o endereo de sub-rede e outro para o endereo de broadcast). Nesse esquema quatro sub-redes foram definidas. Se forem necessrias apenas trs sub-redes, uma delas pode ficar reservada para uso futuro da empresa. Alm disso, para um host de uma sub-rede ter comunicao com outro host de outra sub-rede, ser necessrio um roteador para atingir todas as sub-redes criadas.

A mscara de rede deve ser igual para todas as sub-redes. No entanto, sistemas com suporte Variable Length Subnet Mask (VLSM) permitem a utilizao de mscaras de tamanho varivel. A tabela de NetId/NetMask, apresentada a seguir, resume os valores da mscara de rede (netmask) e os bits de NetID e HostID para diferentes quantidades de mquinas por rede, quando usado o conceito de sub-rede. Note que medida que se aumenta o nmero de sub-redes, o endereo de rede vai progressivamente se estendendo para dentro do campo

15

de HostID, e consequentemente o nmero mximo de mquinas por rede vai diminuindo. Por sua vez, os ltimos 8 bits da mscara de rede refletem exatamente o nmero de bits acrescentados ao endereo de rede. Dado um endereo de rede (ou sub-rede) e sua respectiva mscara, sempre possvel iden tificar o endereo de broadcast e o nmero de mquinas suportadas dentro dessa rede.

Endereos/rede 64 32 16 8

Netmask 255.255.255.192 255.255.255.224 255.255.255.240 255.255.255.248

NetId/HostID 11000000 11100000 11110000 11111000

Razes para a adoo do Classless Inter Domain Routing (CIDR): 11 Exausto de classes B. 11 Exploso da tabela de roteamento. 11 Possvel exausto de endereos. Com o crescimento da internet e o uso no escalonvel da alocao em classe (classful), surgiram srios problemas de endereamento, tais como:

11 Exausto de endereos classes B: a qualquer instituio que necessitasse mais do que 254 endereos IP, era fornecido um endereo classe B, no qual possvel enderear at 65.533 hosts. Em alguns casos ainda era esbanjada uma classe A, o que significa dizer que em uma nica rede era possvel alocar 16 milhes de endereos; 11 Exploso da tabela de roteamento: como cada classe alocada era uma entrada na tabela de roteamento, e no havia um mtodo de agregar endereos, as tabelas de roteamento se tornaram muito grandes e os roteadores mais sobrecarregados; 11 Possvel exausto de endereos: como o mtodo por classe no era otimizado para funcionar com redes de qualquer tamanho, havia a possibilidade de no existirem mais classes B ou A para alocao. A arquitetura CIDR aplicada no impe que todos os domnios na internet entendam CIDR, pois assume que alguns domnios nunca sero convertidos. Porm, requer que todos os
Administrao de Sistemas Linux: Redes e Segurana

domnios fornecedores de servio de backbone entendam por completo CIDR. Atualmente, as alocaes de endereo so gerenciadas pela Internet Corporation For Assigned Names and Numbers (ICANN), que delega os processos de alocao de recursos, incluindo o IP, para os Regional Internet Registry (RIR). Em 2002, o ICANN informou um novo RIR para a Amrica Latina e Caribe, chamado Latin American and Caribbean Internet Addresses Registry (LACNIC). Antes disso, essa regio era delegada ao American Registry for Internet Numbers (ARIN).

16

CIDR
11 Blocos de endereos e no classes. Notao: 11 Endereo de rede/nmero de bits do NetId. 22 Exemplo: 192.168.0.0/24 22 Como seria representada a classe A 127.0.0.0? Por causa desses problemas, foi possvel perceber que os endereos poderiam ser conservados se o sistema de classe fosse eliminado. Com isso, um novo esquema chamado Classless Inter Domain Routing (CIDR) passou a adotar medidas como reestruturao da alocao de endereos classe C e agregao hierrquica de endereos. Uma notao CIDR possui informaes sobre o nmero de bits usados para o NetId; por exemplo,

192.168.0.0/22 utiliza 22 bits para o NetId, restando 10 bits para o HostId. Da mesma forma que em sub-redes, cada rede em notao CIDR possui um endereo de rede (bits do HostId todos setados em 0) e o endereo de broadcast (bits do HostId todos setados em 1). Os endereos de nvel mais alto da hierarquia foram divididos pelas regies geogrficas: 11 Europa: endereos de 194.0.0.0 a 195.255.255.255; 11 Amrica do Norte: endereos de 198.0.0.0 a 199.255.255.255; 11 Amrica do Sul: endereos de 200.0.0.0 a 201.255.255.255; 11 sia e Pacfico: endereos de 202.0.0.0 a 203.255.255.255. Aps receber um bloco de endereo, um operador de backbone pode assinalar blocos para outras organizaes e assim sucessivamente. Hoje se observa que muitas vezes a notao de mscara utilizada no CIDR a mesma utili zada em sub-redes, porque ambas representam a mesma coisa. Exemplo:
Captulo 1 - Introduo administrao de redes e arquitetura TCP/IP (parte 1)

200.245.120.0/255.255.255.252 = 200.245.120.0/30
Conexes ponto-a-ponto para a ligao de dois hosts necessitam apenas de dois endereos IP. Sendo o endereo 200.238.128.0/24 alocado por um provedor de internet, podemos dividir esse endereamento para ser utilizado no maior nmero possvel de conexes ponto-a-ponto. Como necessitamos de dois endereos IP e sabemos que h ainda o endereo de rede e o de broadcast, sero necessrios dois bits para o HostId, ou seja, usaremos a mscara /30 ou ainda 255.255.255.252. Portanto, com um /24 (256 endereos) podemos criar 64 redes/30 (64 x 4 = 256), e com isso conseguiremos enderear 64 conexes ponto-a-ponto. Nos sistemas Unix, que compreendem muito bem esses tipos de notao, podemos verificar o endereo de um dispositivo de um host com o comando ifconfig :

# ifconfig eth0 Encapsulamento do Link: Ethernet Endereo de HW

00:0C:29:95:B4:B7 inet end.: 10.211.8.2 Masc:255.255.0.0 Bcast:10.211.255.255

17

endereo inet6: fe80::20c:29ff:fe95:b4b7/64 Escopo:Link UP BROADCASTRUNNING MULTICAST MTU:1500 Mtrica:1

RX packets:14770 errors:0 dropped:0 overruns:0 frame:0 TX packets:7412 errors:0 dropped:0 overruns:0 carrier:0 colises:0 txqueuelen:1000 RX bytes:7580861 (7.2 MiB) TX bytes:484731 (473.3 KiB)

IRQ:177 Endereo de E/S:0x1080 1o Encapsulamento do Link: Loopback Local inet end.: 127.0.0.1 Masc:255.0.0.0

endereo inet6: ::1/128 Escopo:Mquina UP LOOPBACKRUNNING MTU:16436 Mtrica:1

RX packets:1231 errors:0 dropped:0 overruns:0 frame:0 TX packets:1231 errors:0 dropped:0 overruns:0 carrier:0 colises:0 txqueuelen:0 RX bytes:103910 (101.4 KiB) TX bytes:103910 (101.4 KiB)

Existem outros comandos que listam o endereo dos dispositivos e que representam a mscara no formato CIDR, como o comando ip:

# ip addr show 1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever
Administrao de Sistemas Linux: Redes e Segurana

2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:0c:29:95:b4:b7 brd ff:ff:ff:ff:ff:ff inet 10.211.8.2/16 brd 10.211.255.255 scope global eth0 inet6 fe80::20c:29ff:fe95:b4b7/64 scope link valid_lft forever preferred_lft forever 3: sit0: <NOARP> mtu 1480 qdisc noop link/sit 0.0.0.0 brd 0.0.0.0

18

Resoluo de endereos
11 Endereo fsico x endereo IP. 11 Protocolo ARP. 11 Dois hosts na mesma rede (IP). 22 Como eles descobrem o endereo fsico um do outro? 22 Broadcast. 22 Qual o endereo fsico do 192.168.0.3? 11 Outros hosts podem ouvir a resposta e adicionar os endereos fsicos x IP em sua tabelas. A resoluo de um endereo IP para o seu respectivo endereo fsico realizada pelo

protocolo Address Resolution Protocol (ARP), que associa endereos IP e endereos fsicos (MAC, no caso da tecnologia Ethernet) em tabelas mantidas no kernel do sistema. Para entendermos como isso funciona, imagine que o host A sabe o endereo IP do host B que est na sua prpria rede. Como A descobre o endereo fsico de B para fazer uma comu nicao direta? Uma soluo seria fazer o mapeamento direto, atribuindo o endereo fsico do host B junto ao seu endereo IP. Mas isso se torna invivel, j que o endereo Ethernet possui 48 bits e um IP classe C tem apenas 8 bits para representar o host. Para contornar essa situao, o mapeamento feito de forma dinmica, onde uma requisio enviada para o endereo de broadcast solicitando o endereo MAC de um determinado IP. Dessa forma todos os hosts da rede vo capturar a mensagem e apenas o host que possui o endereo IP da requisio informar a todos o seu endereo MAC. As informaes de IP x MAC so mantidas pelo Sistema Operacional em uma tabela, e possvel tanto consult-la como modificar alguns de seus valores.
Captulo 1 - Introduo administrao de redes e arquitetura TCP/IP (parte 1)

Existe ainda o Reverse Address Resolution Protocol (RARP), que realiza a resoluo inversa, ou seja, resolve um endereo fsico para o endereo IP correspondente. Esses protocolos so automatizados no Sistema Operacional e no exigem configuraes por parte do admi nistrador, exceto em caso de problemas. Para visualizar a tabela de resoluo de endereos mantida pelo protocolo ARP, em sistemas Unix utiliza-se o comando arp:

# arp a galaxie.pop-pr.rnp.br (192.168.128.30) at 02:60:8C:F1:FF:CD [ether] on eth0maverick.pop-pr.rnp.br (192.168.128.3) at 00:02:55:5D:07:22 [ether] on eth0

Atribuio de endereos (IP)


11 Esttica. 11 Dinmica: 22 Bootp. 22 DHCP. 22 PPP.

19

Existem duas formas de se atribuir um endereo IP a uma interface de rede: esttica ou dinamicamente. Na atribuio esttica, o administrador da mquina configura manualmente um ende reo IP a ser atribudo a determinada interface. No caso especfico de sistemas Unix, essa atribuio feita em arquivos de configurao que so lidos por scripts executados na inicializao do sistema. J na atribuio dinmica so usados protocolos especiais que permitem que a mquina solicite a um servidor o endereo IP que ela dever usar. Existem alguns protocolos para isso, sendo os mais comuns: 11 Bootp: apesar de antigo, ainda utilizado. Quando ligada, uma mquina transmite um broadcast para a rede (lembre-se de que ela passa o seu endereo MAC de origem no quadro Ethernet), requisitando o seu endereo IP. Baseado no endereo MAC recebido no pacote, o servidor bootp identifica o endereo IP reservado para a mquina, consultando uma tabela que associa endereos IP e endereos MAC. Em seguida, o servidor envia uma resposta, tambm para o endereo de broadcast, indicando o endereo IP da mquina. Esse protocolo utilizado principalmente por mquinas sem disco (diskless) que realizam boot atravs da rede; 11 Dynamic Host Configuration Protocol (DHCP): semelhante ao bootp, porm aloca endereos dinamicamente a partir de um bloco de endereos especificados pelo administrador (uma mquina pode receber um endereo diferente a cada boot). Esse protocolo simplifica o processo de atribuio de endereos, permitindo a configurao de uma grande rede de forma centralizada. Tambm permite a configurao de outros parme tros de rede alm do endereo IP das mquinas; 11 PPP: esse protocolo no faz somente a alocao de endereos, mas tambm um protocolo de comunicao entre dois pontos. A atribuio dinmica de endereos apenas uma das muitas propriedades desse servio. Aps estabelecer a conexo, o PPP dinami camente seleciona um endereo livre e o atribui para a mquina remota conectada via um modem. bastante usado por provedores de acesso; 11 RARP: tambm utilizado para a atribuio dinmica de endereo. No entanto, um protocolo em desuso que tem como principais desvantagens ser implementado na camada 2 (dependente, portanto, da tecnologia usada nessa camada) alm de s permitir a obteno de endereo IP e nada mais (DNS, rotas etc.).
Administrao de Sistemas Linux: Redes e Segurana

20

Roteiro de Atividades 1
Atividade 1.1 Entendendo o modelo ISO/OSI
O diretor de uma empresa deseja fechar um negcio com o diretor de outra empresa. Mostre como essa negociao poderia ser representada no modelo OSI, usando trs camadas (telefonista, secretria e diretor). Suponha que o meio de comunicao a ser usado o fax, que a atribuio da secretria lidar com nomes de pessoas e a da telefonista lidar com nmeros de telefone.

Atividade 1.2 Visualizando a configurao de rede em uma mquina Linux


Utilize o comando ifconfig sem argumentos. Caso o caminho para o ifconfig no esteja na sua varivel de ambiente path, ser necessrio digitar /sbin/ifconfig. A partir da sada desse comando, identifique:
1. Qual a tecnologia de nvel 2 que est sendo utilizada? 2. Qual o endereo fsico (MAC) da mquina? 3. Qual o endereo IP e a mscara de rede? 4. possvel obter alguma informao sobre o nvel 1?

Atividade 1.3 Entendendo a tabela ARP


Nesta atividade, vamos explorar as informaes da tabela ARP:
1. Verifique o nmero de entradas da tabela ARP da sua estao de trabalho utilizando o

comando arp.
2. Efetue um ping para uma estao na mesma rede que a sua. 3. Examine de novo a tabela ARP e compare com o resultado anterior. O que aconteceu? 4. Qual foi o processo envolvido para entregar o pacote at o host de destino? 5. Que mapeamentos foram feitos entre o IP e o MAC Address? 6. As prximas conexes vo seguir o mesmo processo?

Atividade 1.4 Cabealho Ethernet


No cabealho de um quadro Ethernet o endereo de destino precede o endereo de origem.
Captulo 1 - Roteiro de Atividades

Voc consegue ver alguma vantagem nisso? Qual?

Atividade 1.5 Fragmentao


Suponha que uma determinada tecnologia de nvel 2 consiga transmitir quadros de 800 bytes (includo o cabealho). O que aconteceria ao tentar transmitir um datagrama IP de 1800 bytes?

21

Atividade 1.6 Criando endereos de rede ou sub-rede


Um provedor de acesso alocou para um cliente uma sub-rede de 16 endereos, com endereo de rede 200.231.15.240. Quais so os endereos de rede, broadcast, mscara de rede e os endereos vlidos para esse cliente?

Atividade 1.7 Notao CIDR


A notao de rede e a mscara de rede com notao CIDR tambm podem ser usadas para referenciar uma nica mquina. Como isso seria representado? As regras de endereos de rede e de broadcast continuam valendo nessa notao?

Atividade 1.8 Faixa de endereos vlidos na internet


Quais faixas de IP abaixo so consideradas pblicas, isto , quais podem ser usadas para fazer uma ligao na internet? Considere as mscaras default para cada classe e explique a resposta.
1. 200.249.30.0 2. 10.0.3.0 3. 127.1.2.0 4. 200.245.20.0 5. 200.261.242.0 6. 200.255.254.0 7. 2.0.0.0 8. 167.198.2.255

Atividade 1.9 Entendendo a mscara de rede


Preencha os campos abaixo com a mscara equivalente e cite a quantidade de hosts que se pode ter. No considere os endereos utilizados para identificar a rede e o broadcast da rede. Exemplo: 255.255.255.0 = /24 = 28 = 256
Administrao de Sistemas Linux: Redes e Segurana

1. 255.255.255.255 = _______________ = 2. 255.255.255.128 = _______________ = 3. _______________ = /28 = _______________ = 4. _______________ = /20 = _______________ = 5. 255.255.0.0 = _______________ = 6. 255.248.0.0 = _______________ = 7. _______________ = /30 = _______________ =

22

Atividade 1.10 Endereamento dinmico


possvel obter um endereo IP dinamicamente, em vez de configur-lo previamente no Sistema Operacional. No entanto, como fazer para obter um endereo IP tendo que se comunicar em uma rede IP e sem ter ainda um endereo IP?

Atividade 1.11 Resoluo de nomes


1. Efetue um ping para o endereo www.esr.rnp.br. Qual foi o endereo IP obtido? 2. O que aconteceria se inclussemos uma linha 127.0.0.1 www.esr.rnp.br no arquivo /etc/hosts?

Captulo 1 - Roteiro de Atividades

23

24

Administrao de Sistemas Linux: Redes e Segurana

2
Introduo administrao de redes e arquitetura TCP/IP (parte 2)
objetivos
Entender como funciona o mecanismo de roteamento e o protocolo de controle TCP/IP, o princpio de funcionamento dos protocolos TCP e UDP, bem como a diferena entre eles, e a arquitetura cliente/servidor e suas principais vantagens.

conceitos

Mecanismo de roteamento e protocolo de controle TCP/IP, protocolos TCP e UDP e arquitetura cliente/servidor.

Roteamento
Processo de escolha das rotas para alcanar um determinado destino. 11 A internet existiria se no houvesse roteamento? Hosts multi-homed: 11 Conectam-se a duas redes diferentes, mas no encaminham pacotes IP. 11 Hosts x hosts multi-homed x roteadores. Encaminhamento direto x encaminhamento indireto. O roteamento o processo de escolha das rotas que os datagramas devem seguir para alcanar o seu destino. Neste Captulo, trataremos do roteamento IP.

Roteadores e hosts multi-homed


Nesse sentido, hosts que se conectam a duas redes diferentes, mas que no desempenham esse papel de encaminhamento de pacotes IP, so chamados de hosts multi-homed.

Encaminhamento direto e indireto


Imagine um host conectado a uma rede local. Ao transmitir seus pacotes, o Sistema Operacional verifica se o IP de destino pertence ou no mesma rede fsica. No primeiro caso, basta transmitir os pacotes diretamente para a mquina destino. Essa situao denomi nada encaminhamento direto. Se o destino no estiver na mesma rede fsica, o transmissor deve passar os pacotes para um roteador encarregado de encaminh-los ao destinatrio. Esse caso denominado encaminhamento indireto.

Captulo 2 - Introduo administrao de redes e arquitetura TCP/IP


(parte 2)

25

Tabela de roteamento
Relaciona destinos a rotas. Prximo passo (next hop). 11 Prximo roteador no caminho at o destino final. Tipos de rotas: 11 Para host. 11 Para rede. Default.Como uma mquina decide para quem encaminhar um pacote?

O roteamento IP utiliza o que se denomina de tabela de roteamento. Cada mquina e cada roteador possuem pelo menos uma tabela de roteamento IP. Essa tabela contm possveis destinos e modos para acess-los. Na tabela de roteamento podemos encontrar trs tipos de rotas: 11 Rotas para um host; 11 Rotas para uma rede; 11 Rota default.

l A rota default um tipo


de rota especial que significa todos os destinos possveis, e normalmente associada ao endereo 0.0.0.0 com mscara 0.0.0.0. Note que seria praticamente impossvel manter na tabela de roteamento todos os destinos possveis na internet, assim como tambm seria bastante difcil incluir todo o caminho necessrio para atingir um determinado destino. A utilizao da rota default minimiza bastante o primeiro problema.

Prximo passo (next-hop)


Conforme observado no item anterior, seria praticamente impossvel manter nas tabelas de roteamento todo o caminho para um determinado destino. Como os roteadores trabalham de forma colaborativa, basta que na tabela tenhamos o endereo do prximo passo (next-hop), ou seja, do prximo roteador no caminho at o destino final.

Exemplo de topologia
Como seria a tabela de roteamento de R1?

q
R2
10.0.20.1

10.0.0.1

R1

10.0.10.1

10.0.10.2

Administrao de Sistemas Linux: Redes e Segurana

Rede 10.0.0.0

Rede 10.0.10.0

Rede 10.0.20.0

Figura 2.1 Trs redes interconectadas pelos roteadores R1 e R2.

Considere a imagem anterior: nesse exemplo, temos trs redes interconectadas pelos rote adores R1 e R2. Cada roteador possui duas interfaces e os seus endereos esto listados ao lado dos roteadores. Vamos construir a tabela de roteamento de R1, de modo que ele saiba como atingir todas as redes:

26

Destino Rede 10.0.0.0/24


Tabela 2.1 Tabela de roteamento de R1.

Prximo passo Entrega direta Entrega direta 10.0.10.2

Rede 10.0.10.0/24 Rede 10.0.20.0/24

Vamos construir tambm a tabela de rotas para um host situado na rede 10.0.0.0: Destino
Tabela 2.2 Host situado na rede 10.0.0.0.

Prximo passo Entrega direta 10.0.0.1

Rede 10.0.0.0/24 0.0.0.0

Observe que esse host no sabe exatamente como chegar rede 10.0.20.0, mas possui uma rota default que aponta para o roteador R1, ou seja, para atingir um destino que no esteja na rede 10.0.0.0, basta encaminhar os pacotes para o roteador R1.

Rotas estticas x rotas dinmicas


Estticas: configuradas pelo administrador. Dinmicas: protocolos de roteamento. 11 Exemplo: Open Shortest Path First (OSPF). 11 Exemplo: Border Gateway Protocol (BGP). Como evitar loops? 11 Time To Live (TTL). 11 Internet Control Message Protocol (ICMP).

11 As rotas podem ser configuradas manualmente pelo administrador; 11 Pode-se executar um aplicativo que, com o auxlio de um protocolo de roteamento, vai preencher automaticamente essa tabela. O primeiro caso chamamos de roteamento esttico e o tipo de roteamento mais apro priado para pequenas redes e hosts em geral. No entanto, nos roteadores de redes mdias e grandes, administrar uma grande quantidade de rotas manualmente seria um processo bastante complicado e sujeito a erros. Para esses casos so utilizados protocolos de roteamento, como o Open Shortest Path First (OSPF) e o Border Gateway Protocol (BGP), para permitir que os roteadores se comuniquem trocando informaes sobre rotas e destinos.

Tempo de vida (TTL)


Volte ao exemplo do item Prximo passo e imagine que, por alguma razo, o roteador R2 est com sua tabela de roteamento configurada de maneira errada. Em vez de fazer o enca minhamento direto para a rede 10.0.20.0/24, seu prximo passo (next-hop) para essa rede o endereo 10.0.10.1 do roteador R1. O que aconteceria com um pacote IP que sasse de um host da rede 10.0.0.0/24 com destino a um host da rede 10.0.20.0/24? Esse pacote entraria em um loop infinito entre os roteadores R1 e R2, j que cada um aponta para o outro como o prximo passo (next-hop) para a rede 10.0.20.0/24. Como visto no Captulo 1, no cabealho

Captulo 2 - Introduo administrao de redes e arquitetura TCP/IP


(parte 2)

A tabela de roteamento de um host ou roteador pode ser preenchida de duas formas:

27

(header) do IP existe um campo chamado Time To Live (TTL). Esse campo contm um valor que decrementado a cada passo dado por um pacote IP na rede. Ou seja, cada vez que ele atravessa um roteador, esse valor subtrado de 1 unidade. Ao chegar a 0, o pacote deve ser descartado, mesmo que ele no tenha chegado ao seu destino final, e um pacote ICMP contendo o erro enviado ao remetente.

Algoritmo de roteamento
11 Se o destino diretamente conectado: encaminhamento direto. 11 Se existe rota para o host: use a rota. 11 Se existe rota para a rede: use a rota. 11 Se existe rota default: use a rota. 11 Do contrrio: erro de roteamento. De forma resumida, podemos descrever o algoritmo de roteamento da seguinte forma: 11 Se o destino pertence a alguma rede diretamente conectada, enviar o pacote via interface de rede diretamente conectada;

l
Rotas mais especficas tm precedncia. No caso de existirem duas ou mais rotas de redes para um mesmo host, vence a que possuir a maior mscara. Por exemplo, no caso de uma rota para a rede 10.0.0.0/24 e de outra para a rede 10.0.0.0/18, para atingir o host 10.0.0.1 a rota a ser tomada a que aponta para 10.0.0.0/24.

11 Se existe uma rota de host para o destino, enviar o pacote para o roteador indicado como prximo passo (next-hop); 11 Se existe uma rota de rede para o destino, enviar o pacote para o roteador indicado como prximo passo (next-hop); 11 Se existe uma rota default, enviar o pacote para o roteador indicado na rota default; 11 Do contrrio, ocorre erro de roteamento.

Internet Control Message Protocol (ICMP)


11 Utiliza o IP. 11 Opera no nvel 3.

Type Dados ICMP


Administrao de Sistemas Linux: Redes e Segurana

Code

Checksum (16)
Figura 2.2 Exemplo de cabealho ICMP.

Internet Control Message Protocol (ICMP) um protocolo utilizado por todos os hosts TCP/IP para trocarem informaes de controle e erro. Apesar de mensagens ICMP serem encapsuladas dentro de datagramas IP, o ICMP no um protocolo de transporte, fazendo parte, portanto, da camada de rede. Uma mensagem ICMP transmitida na parte de dados do pacote IP.

28

O protocolo ICMP utiliza os seguintes tipos de mensagens: Tipo 0 3 4 5 8 9 10 11 12 13 14 15 16


Tabela 2.3 Tipos de mensagens do protocolo ICMP.

Descrio echo reply destination unreachable source quench redirect echo request router advertisement route solicitation time exceeded parameter problem timestamp timestamp reply information request information reply address mask request address mask reply

17 18

O formato das mensagens ICMP, que so encapsuladas dentro do IP, possui forma varivel, de acordo com o tipo da mensagem. Principais tipos: 11 Tipo 0: echo reply. 11 Tipo 8: echo request. 11 Tipo 3: destination unreachable. 11 Tipo 11: time exceed. Cada tipo pode ter cdigos diferentes: 11 Tipo 3, cdigo 0: network unreachable. 11 Tipo 3, cdigo 1: host unreachable.

Os tipos de mensagens ICMP tambm possuem um cdigo. Por exemplo, uma mensagem do tipo 3 (destination unreachable) pode ser classificada com o cdigo 0 (network unreachable), cdigo 1 (host unreachable), cdigo 2 (protocol unreachable) e outros cdigos. A tabela a seguir resume os tipos e os cdigos usados no ICMP:

Captulo 2 - Introduo administrao de redes e arquitetura TCP/IP


(parte 2)

29

Type 0 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 5 5 5 5
Administrao de Sistemas Linux: Redes e Segurana

Code 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 0 1 2 3 0 0 0 0 1 0 1 0 0 0

Descrio echo reply network unreachable host unreachable protocol unreachable port unreachable fragmentation needed but no frag. bit set source routing failed destination network unknown destination host unknown source host isolated (obsoleto) destination network administratively prohibited destination host administratively prohibited network unreachable for TOS host unreachable for TOS communication administratively prohibited by filtering host precedence violation precedence cutoff in effect source quench redirect for network redirect for host redirect for TOS and network redirect for TOS and host echo request router advertisement route solicitation TTL equals 0 during transit TTL equals 0 during reassembly IP header bad (catchall error) required options missing timestamp request (obsoleto) timestamp reply (obsoleto) information request (obsoleto)
Tabela 2.4 Tipos e cdigos do ICMP.

8 9 10 11 11 12 12 13 14 15

30

Vrios comandos de avaliao de conectividade utilizam mensagens do protocolo ICMP, como o ping e o traceroute.

Ping
11 ICMP tipo 0 e 8. 11 Que informaes ele fornece? Como funciona o traceroute? 11 Pacotes UDP. 11 Manipulao do TTL. 11 ICMP tipo 11. 11 ICMP tipo 3.

Envia uma mensagem ICMP do tipo 8 (echo request) para outra mquina que, ao receb-la, retorna uma mensagem ICMP do tipo 0 (echo reply) como resposta. O objetivo , primeiramente, verificar se uma mquina est no ar. Em adio, os pacotes retornados permitem medir o tempo de ida e volta (Round-Trip-Time RTT). Exemplo:

# ping www.rnp.br PING www.rnp.br (200.130.25.20) 56(84) bytes of data. 64 bytes from jupiter.sso.rnp.br (200.130.25.20): icmp_seq=1 ttl=57 time=54.0 ms 64 bytes from jupiter.sso.rnp.br (200.130.25.20): icmp_seq=2 ttl=57 time=51.3 ms 64 bytes from jupiter.sso.rnp.br (200.130.25.20): icmp_seq=3 ttl=57 time=51.2 ms
Captulo 2 - Introduo administrao de redes e arquitetura TCP/IP
(parte 2)

64 bytes from jupiter.sso.rnp.br (200.130.25.20): icmp_seq=4 ttl=57 time=51.1 ms --- www.rnp.br ping statistics --4 packets transmitted, 4 received, 0% packet loss, time 3002ms rtt min/avg/max/mdev = 51.193/51.973/54.067/1.242 ms

Traceroute
Mostra os roteadores intermedirios que definem a rota at a mquina destino especifi cada. Para definir a lista de roteadores, o traceroute utiliza o campo TTL do pacote IP, que indica o nmero mximo de roteadores que o roteador pode passar. Inicialmente, o traceroute envia um pacote IP setando o TTL para 1. Logo que o pacote IP chega ao primeiro roteador, o TTL expira e o roteador retorna uma mensagem ICMP do tipo 11 (time exceeded). Ao receber a mensagem, a ferramenta descobre o nome do primeiro rote ador. Em seguida, enviado com TTL setado para 2 e assim at atingir o host final. Porm, o TTL no vai exceder ao chegar ao destino final, mas como esse pacote IP est encapsulando dados UDP direcionados para uma porta, ser gerado um ICMP do tipo 3 (destination unreachable), o qual informar que a porta est inatingvel para a ferramenta traceroute. Ao receber tal notificao, descobre a lista completa de hosts. Exemplo:

31

# traceroute www.rnp.br traceroute: Warning: www.rnp.br has multiple addresses; using 200.17.63.100 traceroute to www.rnp.br (200.17.63.100), 30 hops max, 38 byte packets 1 bb3.pop-pr.rnp.br (200.134.255.1) 0.968 ms 0.597 ms 0.593 ms 8.942 ms 14.888

2 sp-pos0-0.bb3.rnp.br (200.143.253.106) 3 rj-pos2-0.bb3.rnp.br (200.143.253.102) ms

9.339 ms 14.900 ms

9.017 ms

15.076 ms

4 rj7507-fastethernet6-0.bb3.rnp.br (200.143.254.253) 15.641 ms 16.044 ms

15.717 ms

5 ambrosia-serial0-0.bb3.rnp.br (200.143.255.33) 18.675 ms 17.317 ms 6 janeway-e.nc-rj.rnp.br (200.17.63.190) 7 ciprod.nc-rj.rnp.br (200.17.63.100) 17.528 ms 16.982 ms

16.826 ms

16.982 ms 17.330 ms

17.521 ms 17.249 ms

Nvel de transporte
Relembrando: 11 O protocolo IP no confivel e no orientado conexo. 11 O protocolo IP s identifica hosts. 22 Como saber para que processo se destina um determinado pacote? Vimos que o protocolo IP no confivel e no orientado conexo. Alm disso, o proto colo IP apenas identifica mquinas, mas no identifica usurios e/ou aplicativos. A seguir, veremos dois protocolos do nvel de transporte criados para solucionar esses problemas.

Portas
11 Porta de origem.
Administrao de Sistemas Linux: Redes e Segurana

11 Porta de destino. Como feita a atribuio de portas? 11 Atribuio da porta de origem. 11 Atribuio de porta de destino. Os protocolos de transporte implementam os mecanismos necessrios para resolver o pro blema da identificao de um usurio e/ou aplicativo (que aqui chamaremos de processos) em cada host. Essa identificao feita atravs da utilizao de identificadores de 16 bits, tambm conhecidos como portas. Cada cabealho de um datagrama de um protocolo de transporte possui: 11 Um campo que contm a porta de origem (que identifica o processo transmissor); 11 Um campo que contm a porta de destino (que identifica o processo receptor).

32

E como um processo identifica outro processo em outra mquina? Como feita a atri buio dos nmeros de porta? Os projetistas dos protocolos de transporte optaram por uma atribuio mista, ou seja, algumas portas so atribudas por uma autoridade central, enquanto outras podem ser atribudas dinamicamente pelas aplicaes. Os servidores de nome (DNS), por exemplo, utilizam a porta 53. Assim um processo cliente sabe que na porta 53 da mquina servidora de DNS um processo servidor de nomes aceitar datagramas. Nos sistemas Unix ou Linux, o arquivo /etc/services guarda uma lista de portas conhecidas.

Nvel de transporte: protocolo UDP


11 User Datagram Protocol (UDP). 11 No confivel e no orientado conexo. 11 No entanto, possui portas.

Porta de origem Comprimento da mensagem UDP


Figura 2.3 Cabealho UDP.

Porta de origem Soma de vericao

Dados

Assim como o IP, o protocolo User Datagram Protocol (UDP), tambm um protocolo no confivel e no orientado conexo. No entanto, utiliza os identificadores de portas, como

o datagrama. No h nenhuma negociao prvia entre o transmissor e o receptor antes do envio. Caso no haja nenhum processo na mquina de destino escutando naquela porta, a mquina de destino gera uma mensagem ICMP porta no atingida (tipo 3, cdigo 3).

Nvel de transporte: protocolo TCP


11 Usa o IP, mas confivel e orientado conexo. 11 Sua confiabilidade possvel pelo uso da tcnica de confirmao positiva com retransmisso. 11 Possui maior complexidade. O protocolo Transmission Control Protocol (TCP) um protocolo orientado conexo e confivel, alm de possuir o mesmo mecanismo de portas. Mas como um protocolo pode

oferecer conexo e confiabilidade se ele utiliza o IP, que um protocolo no confivel e no orientado conexo? A confiabilidade implementada no TCP atravs da tcnica de confirmao positiva com retransmisso. Nessa tcnica, para cada segmento de dados, o transmissor aguarda do receptor uma mensagem de confirmao (ACK). Para o caso de o segmento no ter alcanado o receptor, ou de a mensagem de confirmao ter sido perdida, o protocolo se utiliza de um conjunto de temporizadores. Quando um temporizador se esgota sem que o transmissor tenha recebido uma confirmao, o segmento para o qual se esperava a confirmao retransmitido.

Captulo 2 - Introduo administrao de redes e arquitetura TCP/IP


(parte 2)

Apesar de o protocolo UDP possuir um campo de soma de verifi cao, sua utilizao opcional, ficando a cargo do programador utilizar ou no esse campo. Vale lembrar tambm que caso uma aplicao escolha utilizar o protocolo de transporte UDP, fica a cargo da aplicao: o controle de perdas, a ordenao dos pacotes, a retransmisso e a deteco de erros.

podemos ver no cabealho do exemplo anterior. O protocolo UDP foi criado para permitir grande flexibilidade ao programador ao custo, claro, de uma complexidade maior na programao de aplicativos. O processo na mquina transmissora solicita uma porta ao Sistema Operacional para transmitir seus datagramas. Aps a alocao da porta, o processo identifica o IP de destino e a porta de destino e envia

33

Para estabelecer uma conexo, o protocolo TCP utiliza campos especiais do cabealho e tcnicas de handshake no incio e ao final da transmisso de uma conexo (tambm chamada de fluxo ou stream). Alm disso, utilizando-se a tupla (IP de origem, porta de origem, IP de destino, porta de destino), possvel identificar uma conexo. Antes de estudarmos com mais detalhes como se estabelece uma conexo, vamos estudar o cabealho do protocolo TCP.

Porta de origem Nmero de sequncia Nmero de reconhecimento HLEN Reservado

Porta de destino

Bits de cdigo

Janela

Soma de vericao Opes (se houver) Dados

Ponteiro de urgente Enchimento


Figura 2.4 Cabealho TCP.

Bit URG ACK PSH RST SYN FIN

Significado Segmento que contm dados urgentes. Confirmao de recebimento. Este segmento requer um push (evita a bufferizao). Abortar a conexo. Usado para iniciar uma conexo. Usado para finalizar uma conexo.
Tabela 2.5 Bits de reconhecimento.

Incio e trmino de uma conexo


Administrao de Sistemas Linux: Redes e Segurana

Para iniciar uma conexo necessrio que as duas pontas negociem o estabelecimento dessa conexo. No TCP essa negociao feita atravs do chamado 3 way handshake: 11 A mquina T envia um datagrama com o bit SYN (localizado no campo bits de cdigo) ligado; 11 A mquina R recebe esse datagrama e envia de volta um datagrama confirmando o recebimento do datagrama de T, ligando o bit ACK e tambm solicitando uma abertura de conexo ligando o bit SYN; 11 A mquina T recebe esse datagrama e envia uma confirmao, ou seja, mais um datagrama com o bit ACK ligado. A transmisso de dados j pode ser iniciada a partir desse pacote.

34

Mquina A SYN

Mquina B

SYN
Figura 2.5 Como funciona o 3 way handshake.

ACK ACK

Trmino de uma conexo


O trmino da conexo ocorre de maneira um pouco diferente. Vejamos como isso acontece: 11 A mquina T j enviou tudo o que ela precisava e quer fechar a conexo. Ela envia, ento, um datagrama para R com o bit FIN ligado; 11 A mquina R envia uma confirmao ACK para esse datagrama. Isso encerra a conexo em um dos sentidos apenas, j que R ainda pode ter dados para enviar a T. Quando R terminar, ela envia um datagrama para T com bit FIN ligado; 11 A mquina T envia um ACK de volta e a conexo est encerrada.

Mquina A FIN ACK

Mquina B

Figura 2.6 Como termina uma conexo.

ACK

Nvel de transporte: conexo virtual


Conexo: 11 (<IP origem:porta origem>, <IP destino:porta destino>) Lembre-se: a conexo full duplex. 11 Transporta dados nos dois sentidos da conexo. Utilidade dos campos nmeros de sequncia e nmero de reconhecimento. 11 Identificar os pacotes dentro de uma conexo. O TCP garante fluxo confivel e servio de conexo virtual para os aplicativos atravs de confirmaes e, quando necessrio, atravs da retransmisso de pacotes. O TCP no s

capaz de estabelecer conexes, mas tambm essas conexes operam no modo full duplex, ou seja, so capazes de transportar dados nos dois sentidos da conexo. Alm disso, o TCP possui mecanismos para ordenar os pacotes, para o caso de eles chegarem fora de ordem.

Captulo 2 - Introduo administrao de redes e arquitetura TCP/IP


(parte 2)

FIN

35

Ao estabelecer uma conexo, os pacotes TCP carregam no campo nmero de sequncia um identificador do pacote dentro do fluxo. Esse nmero incrementado medida que os dados vo sendo transmitidos e/ou recebidos. No campo nmero de reconhecimento, o transmissor envia o prximo nmero de sequncia que ele espera receber do receptor. Como vimos, para cada segmento recebido emitida uma mensagem de confirmao. Essa mensagem , na verdade, apenas um bit marcado no cabealho do pacote. Assim as confirmaes de recebimento podem pegar carona em pacotes de dados.

Muitos detalhes sobre o protocolo TCP foram omitidos aqui. Recomendamos a leitura da bibliografia recomendada para mais informaes. Veja o exemplo: 11 O host T vai se comunicar com o host R; 11 O host T envia um datagrama para R e o identifica com o nmero 3500; 11 R recebe a mensagem e tambm envia para T um datagrama, identificando-o com o nmero 7290 e preenchendo o campo de nmero de recebimento com o identificador de T + 1.

l
Cada host utiliza sua prpria sequncia de identificao, mas a resposta a cada datagrama pode carregar tambm uma confirmao de recebimento que utiliza a sequncia do outro host.

Nvel de transporte
11 TCP x UDP. 11 Se o TCP to bom, por que usar o UDP? 11 Resoluo de nomes (DNS) com UDP. 22 Dois pacotes. 22 Se fosse utilizado TCP, sete pacotes seriam usados s para abrir e fechar a conexo. 11 Transferncia de arquivos. 22 Se fosse utilizado UDP, como seriam ordenados os pacotes? E quanto s perdas? A principal diferena entre esses protocolos que o TCP orientado conexo, ou seja,

possui vrios mecanismos para corrigir e retransmitir pacotes corrompidos ou perdidos. O UDP, por sua vez, no realiza a checagem nem a confirmao de recebimento: os dados so transmitidos uma nica vez e os pacotes corrompidos so simplesmente descartados. Ento, se o TCP to bom, por que usar o UDP? O problema consiste simplesmente na
Administrao de Sistemas Linux: Redes e Segurana

quantidade de pacotes utilizados pelo TCP para garantir a entrega dos dados. No UDP, como a transmisso realizada utilizando o maior desempenho possvel, uma grande quantidade de informaes de controle eliminada dos pacotes, com enfoque apenas na transmisso dos dados. A correo de erros deve ser realizada pela aplicao que usa esse tipo de protocolo (UDP).

Arquitetura cliente/servidor
Quem o cliente? 11 O que inicia a conexo. Quem o servidor? 11 O que escuta em uma porta e aguarda conexes. No Unix/Linux, servidores tambm so chamados de daemons.

O modelo TCP/IP baseado na arquitetura cliente/servidor. O cliente envia uma requisio 36

O modelo TCP/IP baseado no conceito de portas e conexes para assegurar que dados recebidos por uma mquina sejam corretamente repassados aos processos de destino.

l
ao servidor, que por sua vez processa essa requisio e retorna o resultado ao cliente. Nessa arquitetura, um servidor pode atender, simultaneamente, a diversas requisies de diferentes clientes. Um servidor oferece seu servio em uma porta padro conhecida. Aps ser inicializado, o servidor aguarda por requisies na sua porta. Por outro lado, o Sistema Operacional de um cliente escolhe uma porta aleatria no utilizada e solicita uma conexo com a porta padro do servidor (no caso do TCP) ou envia diretamente pacotes para a porta do servidor (no caso do UDP). Uma conexo identifica de forma nica o canal de comunicao estabelecido entre um processo cliente e um processo servidor. A conexo identificada pelos endereos IP e pelas portas do cliente e do servidor. Os servidores so implementados atravs de processos especiais conhecidos como

Daemons Em Unix e outros sistemas operacionais multitarefas, um daemon, acrnimo de Disk And Execution MONitor (Monitor de Execuo e de Disco) um programa que roda de forma independente em background, em vez de ser controlado diretamente por um usurio.

daemons. Em geral os daemons so conhecidos pelo nome do servio acrescido da letra d. Principais daemons ou portas: 11 21/tcp: ftp: usado para transferncia de arquivos entre mquinas. 11 23/tcp: telnet: servio de terminal remoto. 11 22/tcp: ssh: permite comunicao segura entre duas mquinas, utilizando meca nismos de criptografia. 11 25/tcp: smtp: servio de envio e recebimento de e-mails. 11 53/udp: dns: servio de resoluo de nomes. 11 80/tcp: www: servidor web http. 11 110/tcp: pop3: permite leitura e transferncia remota de e-mails.

(RFCs), que descrevem os diferentes tipos de mensagens suportados pelos protocolos. A especificao de um protocolo assegura a compatibilidade das diversas implementaes. Algumas portas so padronizadas. 11 Exemplo: portas 21, 23, 80 e 110. No Linux/Unix: 11 Portas baixas: 0 a 1023, s o root pode us-las. 11 Portas altas: 1024 a 65535. As portas no intervalo de 0 a 1023 so conhecidas como portas restritas ou portas baixas. Os servios que rodam nessas portas precisam ter permisso SUID = 0 (root), o que pode gerar graves consequncias caso algum deles tenha qualquer problema de segurana. Atual mente, os programas que usam tais portas procuram iniciar como root, apenas para ganhar acesso porta e depois mudar o processo para um usurio sem tantos poderes. Por isso existem usurios chamados www, FTP, postmaster, Squid, Samba etc. As portas de 1024 at 65535 so conhecidas como portas altas e so geralmente as portas aleatrias utilizadas pelos clientes. Como tais portas podem ser abertas por qualquer usurio, tornou-se comum us-las tambm para servios experimentais. No entanto, alguns desses servios podem ser padronizados posteriormente e continuar a utilizar as portas

Captulo 2 - Introduo administrao de redes e arquitetura TCP/IP


(parte 2)

Uma vantagem das RFCs que elas so debatidas em fruns de discusso que tornam pblica a opinio dos profissio nais mais importantes nesses assuntos: os implementadores.

11 443/tcp; https: www seguro, permite transferncia de pginas do servidor ao cliente sem que possam ser lidas por terceiros. Acima podemos ver uma lista dos daemons, protocolos mais conhecidos e suas portas. Os protocolos so especificados em documentos denominados Request for Comments

37

altas. Por exemplo: Squid (proxy), ICQ ou VNC. Um aplicativo cliente/servidor muito conhecido o Telnet, usado para obter uma sesso interativa com outro host. O protocolo bastante simples e consiste basicamente no envio de comandos pelo cliente e no envio dos resultados dos comandos pelo servidor. A simplicidade do protocolo permite sua utilizao para testar outros protocolos. Por exemplo, pode-se testar um servidor web sem utilizar um browser. Para isso, basta saber os tipos de mensagens do protocolo a ser testado. A seguir, dois exemplos: no primeiro, o Telnet usado para leitura de e-mails, via Pop; no segundo, para uma requisio de pgina a um servidor web: Exemplo 1:

# telnet 10.4.0.1 110 .Trying 10.4.0.1... Connected to 10.4.0.1. Escape character is ^]. +OK QPOP (version 2.53) at localhost starting. USER cristina +OK Password required for cristina. PASS supersenha +OK cristina has 2 messages (8614 octets). LIST +OK 2 messages (8614 octets) 1 886 2 7728 DELE 1 +OK Message 1 has been deleted. QUIT
Exemplo 2:

# telnet www.rnp.br 80 Trying 200.130.25.20... Connected to jupiter.sso.rnp.br. Escape character is ^]. GET /index.html
Administrao de Sistemas Linux: Redes e Segurana

<!DOCTYPE HTML PUBLIC -//IETF//DTD HTML 2.0//EN> <HTML><HEAD> ... Connection closed by foreign host.
Os comandos digitados dentro do Telnet (em destaque) so as mensagens especficas dos protocolos. Os clientes oferecem uma interface com o usurio e, internamente, trocam men sagens do protocolo especfico com o servidor. A padronizao dos protocolos viabiliza a existncia de diversas implementaes de clientes e servidores. Por exemplo, web browsers e servidores de e-mail. Dessa forma, os usurios tm total liberdade para escolher as imple mentaes que melhor atendam s suas necessidades.

38

Roteiro de Atividades 2
Atividade 2.1 Roteamento
Considere a seguinte topologia:

Internet

R1

R2

R3

R4

Rede 10.0.2.0\24

Rede 10.0.0.0\24

Rede 10.0.1.0\24

H1

1. Atribua endereos s interfaces de conexo entre os roteadores R1, R2, R3 e R4, com

prefixo 192.168.0.X. Utilize a menor mscara de rede possvel e atribua endereos para as interfaces das redes 10.0.X.0/24.
2. Construa a tabela de rotas dos roteadores R1, R2, R3, R4 e do host multi-homed H1;

tambm atribua endereos para as suas interfaces.


3. Construa a tabela de rotas do host 10.0.0.34. 4. Suponha que os roteadores R3 e R4 foram conectados um ao outro atravs de novas

interfaces de rede. O que mudar nas tabelas de roteamento?


5. Suponha que o roteador R2 parou de funcionar devido a um problema de hardware.

O que poderia ser feito para resolver o problema?

Atividade 2.2 Problema na tabela de roteamento


Suponha que voc o administrador da rede 10.0.0.0 e, ao investigar um problema com o host 10.0.0.5, descobre que ele est recebendo vrios pacotes com diferentes endereos IP de destino e IP de origem 10.0.0.12. Qual seria a causa desse problema?
Captulo 2 - Roteiro de Atividades

Atividade 2.3 Problema na tabela de roteamento


Observe a tabela de rotas a seguir: Destino 192.168.0.0/24 192.168.0.7/32 0.0.0.0 Rota interface eth0 interface PPP0 10.0.0.1

Ela est correta? Caso no esteja, o que h de errado com ela? Como resolver o problema? 39

Atividade 2.4 Protocolo ICMP


Alguns administradores de rede costumam configurar um firewall de modo a no permitir a sada e a entrada de pacotes do tipo ICMP. Voc concorda com isso? O que pode acontecer se isso for feito?

Atividade 2.5 Comandos ping e traceroute


O comando traceroute utiliza pacotes UDP. Seria possvel implementar uma espcie de traceroute com pacotes TCP?

Atividade 2.6 Cabealho TCP


Sobre o cabealho do TCP, responda:
1. O cabealho possui tamanho fixo? Quais so as consequncias disso? 2. O que voc poderia dizer de um pacote TCP com os bits ACK, FIN e SYN ligados? 3. E com os bits SYN e ACK ligados?

Atividade 2.7 Daemons


Voc conseguiria descobrir os daemons que esto rodando em sua mquina? Utilize o comando netstat.

Atividade 2.8 Testando a conexo


Utilize o comando nc (netcat) para estabelecer uma conexo com a mquina de outro aluno (dica: nc -l). Voc conseguiria descobrir as portas de origem e destino dessa conexo?

Atividade 2.9 Conexes virtuais


possvel realizar vrias conexes para uma mesma porta de destino em um nico servidor? Por qu?

Atividade 2.10 Testando servios


Como administrador de uma rede, voc deve garantir que os servios oferecidos estejam
Administrao de Sistemas Linux: Redes e Segurana

sempre funcionando. O que voc poderia fazer para verificar se o servidor POP3 e o servidor web esto funcionando? Dica: man nc.

40

3
Configurando uma rede TCP/IP
objetivos
Entender como funcionam os principais equipamentos de rede e conseguir diferenci-los, configurar interfaces de rede e rotas, entender a resoluo de nomes para endereo IP e o modo de fazer atribuies dinmicas de endereos.

conceitos

Equipamentos de rede, configurao de interfaces de rede e rotas, formas de conexo internet e configurao de conexo discada, resoluo de nomes para endereos IP e atribuio dinmica de endereos.

Equipamentos de rede
A finalidade dos dispositivos de redes de computadores servir como mediadores de dados em uma rede ou simplesmente como equipamentos de rede. Neste captulo sero vistos os tipos de equipamentos mais comuns encontrados em redes locais.

Hub
O hub, ou concentrador, um dispositivo de conexo que transmite a mesma informao a mltiplos receptores, atuando como um barramento nico que conecta todos os hosts. O hub funciona como um repetidor com diversas portas, no qual o sinal recebido em uma porta repetido para as demais. Ao utilizar um hub, cada host conectado compartilha o mesmo domnio de broadcast e de coliso. Apesar de os hubs serem equipamentos de baixo custo, no devem ser utilizados. Por se portas. Com isso, frequentemente ocorrem colises quando dois ou mais hosts tentam transmitir simultaneamente. Como o mesmo dado enviado a todas as portas, a utilizao de um Hub facilita a captura de pacotes por hosts no autorizados, comprometendo a segurana de uma rede.
Captulo 3 - Configurando uma rede TCP/IP

tratar de um repetidor em meio compartilhado, um quadro fsico enviado para todas as

Switch
A funo de um switch, ou comutador de pacotes, semelhante do hub. A diferena que, no caso do switch, um quadro recebido em uma porta no repetido em todas as outras portas, mas apenas na porta onde a mquina destino do quadro est conectada. Dessa forma possvel diminuir, ou at mesmo eliminar (para enlaces full duplex), as colises

41

quando dois ou mais hosts tentam transmitir ao mesmo tempo. Para tal, o switch armazena na tabela Content Addressable Memory (CAM) o endereo fsico dos hosts conectados em cada porta. Aps receber um quadro, o switch recupera da tabela o identificador da porta (cujo endereo fsico associado igual ao endereo fsico de destino do quadro) e, ento, retransmite o quadro apenas na porta identificada. O switch repete o quadro em todas as portas, exceto a porta de entrada do quatro, em duas situaes: 11 Quando ainda no conhece a porta associada ao endereo fsico de destino; 11 Quando um quadro transmitido em broadcast. Existem switches gerenciveis, que permitem maior controle por parte dos administradores no que diz respeito ao uso do equipamento. Isso possibilita a diviso do domnio de broadcast em VLANs (virtual LAN), em que um grupo de portas participando de uma VLAN no se comunica diretamente (nvel 2, modelo ISO/OSI) com outra VLAN. Alm de fazer a funo no nvel 2, alguns switches tambm trazem funes de outras camadas.

importante salientar que um switch analisa apenas os endereos fsicos e no os endereos IP. Roteador Os roteadores so os equipamentos responsveis pela interconexo de redes IP, fazendo a passagem de um pacote IP entre as redes. Com vrios tipos de interface, pode ligar vrias redes IP que funcionam sobre Ethernet, Fiber Distributed Data Interface (FDDI), Asynchronous Transfer Mode (ATM) etc. Em geral, um roteador no suporta todas as tecnologias de rede simultaneamente, mas apenas um subconjunto. Em adio, diversos roteadores so modulares, permitindo ao administrador selecionar e adquirir apenas os mdulos que suportam as tecnologias de rede a serem utilizadas. Caso no esteja disponvel um roteador que suporte dois tipos especficos de tecnologia de rede, pode-se utilizar mais de um roteador para conectar essas redes. Um roteador possui pelo menos duas interfaces de rede, e, em geral, pelo menos um endereo IP por interface, j que cada interface pode estar conectada a uma rede ou a outro rote ador. So equipamentos gerenciveis (o que permite sua administrao ou configurao) que utilizam um Sistema Operacional prprio.
Administrao de Sistemas Linux: Redes e Segurana

Devido ao alto preo dos roteadores, comum usar equipamentos mais simples para fazer a interconexo de duas ou mais redes. Hoje, o prprio Linux possui suporte no Sistema Operacional para tal funo.

Hub

Switch

Roteador

Figura 1.1 Alguns equipamentos de rede bastante comuns.

42

Configurando endereos e rotas


O dispositivo de rede possui suporte no sistema? 11 lsmod 11 modprobe <nomedomodulo> 11 modinfo Aps o Sistema Operacional obter suporte: 11 Comando ifconfig.

Configurando endereos IP
Antes de configurar um endereo IP em uma interface de rede, necessrio que o Sistema Operacional saiba conversar com o dispositivo (placa de rede) instalado no equipamento. Para isso so utilizados os drivers. Para saber os mdulos (drivers) que j foram carregados pelo kernel, utilizamos o comando lsmod:

# lsmod Module Size Used by Not tainted

pcnet32 29828 1
Para carregar um mdulo, basta utilizar o comando insmod ou o comando modprobe. A diferena entre os dois que o modprobe resolve e carrega as dependncias do mdulo que estamos tentando carregar. Por exemplo, se o mdulo A necessita de que o mdulo B esteja carregado, o uso de modprobe A carregar ambos.

# modprobe pcnet32
Alguns mdulos aceitam parmetros ao serem carregados, como, por exemplo, IRQ, I/O, opes de velocidade etc. Para obter mais informaes sobre um mdulo, utilize o comando modinfo. Por exemplo, para obter a lista de parmetros de um mdulo, use modinfo -p mdulo. O comando rmmod serve para remover um mdulo que no est mais em uso. Para obter um efeito anlogo ao carregamento de mdulos com dependncias (para remover, claro), tambm podemos usar o comando modprobe com a opo r.

Configurando uma interface de rede


Comando ifconfig: 11 Atribuir um endereo IP:

q
Captulo 3 - Configurando uma rede TCP/IP

# ifconfig <interface> <endereo IP> netmask <mscara> up


11 Desabilitar ou habilitar uma interface:

# ifconfig <interface> down # ifconfig <interface> up


11 Configurando um IP-Aliasing:

# ifconfig <interface_real>:<digito> <endereo_IP> netmask <mscara>

43

Aps o Sistema Operacional obter suporte para o dispositivo de rede utilizado, podemos empregar o comando ifconfig para atribuir um endereo IP para esse dispositivo. O ifconfig o principal comando para configurao de interfaces em sistemas Unix ou Linux. A sua sintaxe :

ifconfig [interface] ifconfig interface [aftype] options | address ...


Alguns exemplos so destacados, embora seja aconselhvel a leitura do manual (man ifconfig).

Exemplos do comando ifconfig


Para listar as interfaces e seus endereos:

# ifconfig eth0 Link encap:Ethernet HWaddr 02:60:8C:F1:EB:CF

inet addr:10.10.10.1 Bcast:10.255.255.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:11 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:858 (858.0 b) TX bytes:0 (0.0 b) Interrupt:5 Base address:0x2440 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:55870 errors:0 dropped:0 overruns:0 frame:0 TX packets:55870 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1245405 (118.7 MiB) TX bytes:1245405 (118.7 MiB)
Administrao de Sistemas Linux: Redes e Segurana

Para atribuir um endereo IP e ativar uma interface:

# ifconfig <interface> <endereo IP> netmask <mscara> up


Para desabilitar uma interface:

# ifconfig <interface> down


O Linux possibilita que uma interface tenha vrios endereos IP. Isso chamado de IP-Aliasing, ou seja, uma interface de rede ganha outro IP e passa a agir como se fossem duas placas de rede distintas. Os comandos utilizados para configurar ou manipular interface de rede (como ifconfig, route e tcpdump) podem usar essa interface virtual.

44

Uma interface virtual (apelido ou alias) identificada com o formato:

interface_real:id.
Para criar uma interface virtual e configurar para ela um endereo IP, utilizamos o comando ifconfig. Sua sintaxe :

# ifconfig <interface_real>:<id> <endereo_ip> netmask <mscara>


Para mudar a MTU de uma interface:

# ifconfig <interface> mtu <valor>


Para configurar uma interface com uma conexo ponto-a-ponto:

# ifconfig <interface> <ender_local> netmask <mscara> pointopoint <ender_remoto>


Para colocar e retirar uma interface do modo promscuo:

# ifconfig <interface> promisc # ifconfig <interface> -promisc


O comando ifconfig tambm pode ser utilizado para alterar o endereo fsico da placa. Para isso, necessrio que a placa esteja inativa. Exemplo:

# ifconfig <interface> down # ifconfig <interface> hw ether <endereo_fsico> # ifconfig <interface> up


Agora sero destacadas as principais utilizaes do comando ip. Utilizado com mais frequncia desde a verso do kernel 2.4 no Linux, tal comando faz parte do pacote iproute2 e resume funcionalidades tanto do ifconfig quanto do route e do ARP, alm de trazer outros comandos para tratar de configuraes mais avanadas. O comando ip utilizado junto a um objeto relacionado a determinadas funes. Sua forma bsica :

ip [ OPES ] OBJETO { COMMAND | help }

address neighbour route rule maddress

Gerenciamento de endereos IP. Gerenciamento de tabelas ARP. Gerenciamento da tabela de roteamento. Gerenciamento do banco de dados da poltica de roteamento. Gerenciamento de endereos multicast. Gerenciamento de roteamento multicast. Configuraes de tneis.

Tabela 3.1 Objetos do comando ip e suas descries.

mroute tunnel

Captulo 3 - Configurando uma rede TCP/IP

Mais detalhes sobre o comando ip podem ser encontrados na sua documentao (geralmente em /usr/ share/doc/iproute/ ).

l
Objeto link Descrio Configurao de dispositivos de rede.

45

Para obter ajuda simplificada para cada objeto, basta usar a palavra help aps o nome do objeto:

# ip link help
Basicamente, todos os objetos possuem a opo show (ou list ) para mostrar mais detalhes. Muitos comandos tambm podem ser abreviados. No exemplo a seguir, os dois comandos possuem o mesmo significado:

# ip l h # ip link help
A seguir veremos alguns exemplos de utilizao do comando ip, equivalentes aos comandos do ifconfig vistos anteriormente. Exemplos do comando ip para listar as interfaces e seus endereos:

# ip addr show 1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:0c:29:95:b4:b7 brd ff:ff:ff:ff:ff:ff inet 10.211.8.2/16 brd 10.211.255.255 scope global eth0 inet6 fe80::20c:29ff:fe95:b4b7/64 scope link valid_lft forever preferred_lft forever 3: sit0: <NOARP> mtu 1480 qdisc noop link/sit 0.0.0.0 brd 0.0.0.0
Administrao de Sistemas Linux: Redes e Segurana

Para ativar ou desativar uma interface:

# ip link set <interface> up # ip link set <interface> down Para atribuir/remover um endereo IP: # ip addr add <ip>/<mscara> dev <interface> # ip addr del <ip>/<mscara> dev <interface>
Ao contrrio do ifconfig, ao atribuir um endereo IP, a interface no fica ativa automaticamente. O comando ip permite a configurao de mais de um endereo IP por interface, sem a necessidade da criao de uma interface virtual. O comando ip tambm pode funcionar como o

46

ifconfig, configurando endereos IPs adicionais em interfaces virtuais. Um cuidado adicional dever ser tomado quando o comando ip for utilizado para adicionar endereos IP sem a criao de interfaces virtuais, j que esses endereos no sero listados pelo comando ifconfig. Para adicionar um endereo IP a uma interface de rede, sem a criao de uma interface virtual:

# ip addr add <ip>/<mscara> brd + dev <interface>


Para criar uma interface virtual, alm de adicionar um endereo IP, acrescentamos a opo label:

# ip addr add <ip>/<mscara> brd + dev <interface> label <interface>:<id>


O exemplo seguinte cria uma interface virtual chamada eth0:link, com endereo 192.168.0.1/24:

# ip addr add 192.168.0.1/24 brd + dev eth0 label eth0:link


Para trocar a MTU de uma interface:

# ip link set <interface> mtu <valor>


Para alterar o endereo fsico da placa:

# ip link set <interface> down # ip link set <interface> address <endereo fsico> # ip link set <interface> up

Configurando uma interface de rede


Comando ifconfig : 11 Colocar ou remover modo promscuo:

# ifconfig <interface> prspaomisc # ifconfig <interface> -promisc


11 Mudar o valor da MTU:

# ifconfig <interface> mtu <valor>


Comando ip:

ip [ OPES ] OBJETO { COMMAND | help }


11 Onde:
Captulo 3 - Configurando uma rede TCP/IP

22 Objeto = { link | addr | route | rule | neigh | tunnel | maddr | mroute | monitor } 22 Opes = { -V[ersion] | -s[tatistics] | -r[esolve] | -f[amily] { inet | inet6 | ipx | dnet | link } | -o[neline] } Mais ajuda:

# ip <objeto> help

47

Configurando uma interface de rede. Comando ip: 22 Para listar a interface e seus endereos:

# ip addr show
22 Para habilitar ou desabilitar uma interface:

# ip link set <interface> up # ip link set <interface> down


22 Para atribuir um endereo IP:

# ip addr add <ip>/<mscara> dev <interface>


Configurando rotas. 11 Pode ser usado o comando route ou o comando ip . Listar as rotas:

# route # ip route show


Adicionar uma rota default:

# route add default gw <gateway> # ip route add default via <gateway>


Rotas para redes:

# route add -net <rede> netmask <netmask> gw <gateway> # ip route add <rede>/<mascara> via <gateway>
Para adicionar, remover ou listar as rotas, so usados o comando route ou o comando ip.

Exemplos dos comandos route e ip


Para listar as rotas com o comando route:

# route Kernel IP routing table Destination


Administrao de Sistemas Linux: Redes e Segurana

Gateway Genmask

Flags Metri Ref

Use face 10.0.0.0 * 255.255.255.0 U 0 0 0 eth0 Default 10.0.0.1 0.0.0.0 UG 0 0 0 eth0


Ou com o comando ip:

# ip route show 10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.1 default via 10.0.0.1 dev eth0
Para adicionar a rota default com o comando route:

# route add default gw <gateway>

48

Ou com o comando ip:

# ip route add default via <gateway>


Para alcanar uma rede, ao adicionar rotas para redes, especifique o endereo IP da rede de destino e do gateway a ser utilizado com o comando route:

# route add -net <rede> netmask <netmask> gw <gateway>


Ou com o comando ip:

# ip route add <rede>/<bits_mask> via <gateway>


Para criar rotas para hosts com o comando route:

# route add -host <iphost> gw <gateway>


Com o comando ip, basta utilizar o valor /32:

# ip route add <ip>/32 via <gateway>

Configurando endereos e redes


Para automatizar a configurao de rotas, cada distribuio possui locais diferentes. 11 No Debian: 22 Arquivo /etc/network/interfaces. 22 Arquivo /etc/resolv.conf At aqui estudamos a configurao manual de interfaces, endereos e rotas. Obviamente, isso tambm pode ser feito automaticamente. Porm, cada distribuio Linux coloca seus arquivos de configuraes de rede em locais um pouco diferentes. Confira a seguir.

Slackware
Definio de interfaces, endereos e rotas feita em um nico arquivo:

/etc/rc.d/rc.inet1

Red Hat/Fedora e CentOS


Configurao de interfaces:

/etc/sysconfig/network-scripts/ifcfg-*
Nome do host e rota padro (gateway):
Captulo 3 - Configurando uma rede TCP/IP

/etc/sysconfig/network
Rotas estticas:

/etc/sysconfig/static-routes

Automatizando a configurao de redes e rotas no Debian


Apesar de existirem ferramentas grficas para a configurao de interfaces de rede e de rotas, importante que o administrador de redes saiba efetuar essas configuraes sem utilizar tais ferramentas. Veremos agora como configurar interfaces de rede e rotas estticas atravs de arquivos de configurao.

49

O primeiro arquivo a ser configurado o /etc/network/interfaces. Ele possui, basicamente, dois parmetros (auto e iface):

auto < interface> iface < interface> inet <static ou dhcp>


O parmetro auto utilizado apenas para indicar ao sistema que a interface de rede deve ser ativada. O parmetro iface utilizado para configurar as informaes da interface. Por padro, uma interface pode estar em modo dinmico (dhcp) ou fixo (static). No primeiro caso todas as configuraes IP so recebidas atravs de um servidor DHCP. J no segundo caso as configuraes de endereamento so informadas manualmente pelo administrador. Na tabela a seguir vemos os parmetros que devem ser informados quando for configurada a interface em modo esttico. Parmetro address netmask broadcast network gateway Descrio Endereo de rede IP. Mscara de rede. Endereo de broadcast. Endereo que identifica a rede. Endereo do roteador default da mquina.
Tabela 3.2 Parmetros de configurao da interface em modo esttico.

Um exemplo completo desse arquivo de configurao em modo esttico:

auto eth0 iface eth0 inet static address 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255 network 192.168.0.0 gateway 192.168.0.254
Administrao de Sistemas Linux: Redes e Segurana

Interfaces de rede virtuais podem ser configuradas da mesma maneira que as interfaces reais. Basta utilizar o nome da interface virtual (por exemplo, eth0:0) no lugar do nome do DEVICE. Por exemplo:

auto eth0:0 iface eth0:0 inet static


Para configurar as rotas estticas necessrio adicionar a seguinte linha no arquivo /etc/network/interfaces :

post-up route add -net <rede>/<bits_mask> gw <gateway>


As configuraes das interfaces podem ser iniciadas, removidas ou reiniciadas atravs do script de inicializao /etc/init.d/network seguido das opes start, stop ou restart, respectivamente. Exemplo:

# /etc/init.d/networking restart
50

Formas de conexo internet


Diversas formas de conexo: 11 Links dedicados, Frame Relay, ADSL, linha discada (exemplo: 3G) etc. Protocolo PPP (Point-to-Point Protocol). Existem muitas formas de se conectar um host ou uma rede internet. As formas de conexo mais populares, para redes pequenas e redes domsticas, so feitas atravs de
DSL Digital Subscriber Line (ou ainda xDSL) uma famlia de tecnologias que fornecem um meio de transmisso digital de dados, aproveitando a prpria rede de telefonia que chega na maioria das residncias.

DSL , cable modem, rdio (wireless) ou conexes discadas (exemplo: 3G). Para redes maiores, so mais populares outras formas de conexo, como Frame Relay, links seriais dedicados e at mesmo links com fibras ticas.
Roteador

Host
Rota padro: ip_roteador Modem

Internet

Figura 3.2 Equipamentos necessrios para conexo.

Host
Rota padro: Interface ppp

Internet

Do ponto de vista do administrador de um sistema Unix ou Linux, a forma de conexo pouco determina a maneira como o sistema deve ser configurado, pois basicamente existem dois cenrios, conforme ilustrado na figura anterior. 11 Conexo feita via rede Ethernet a um roteador: a configurao simples e consiste, basicamente, em se acrescentar a rota default para o roteador (Asymetric Digital Subscriber Line ADSL); 11 Conexo feita atravs de um modem: alm da configurao do modem, necessria a utilizao de programas como o PPPD e o chat para fazer a inicializao do modem, a autenticao e o estabelecimento da conexo.

Protocolo PPP
O protocolo ponto a ponto, o PPP e seus protocolos auxiliares so capazes de negociar endereos IP, tamanhos de datagramas e autenticao. Para cada uma dessas capacidades Control Protocol (LCP) e o Password Authentication Protocol (PAP) ou Challenge-Handshake Authentication Protocol (CHAP), estes ltimos para autenticao. No Linux, parte do PPP implementada no kernel, como os protocolos de nvel mais baixo, como o High Level Data Link Control (HDLC). A outra parte implementada no daemon pppd, responsvel pela autenticao, entre outras funes.
Captulo 3 - Configurando uma rede TCP/IP

empregado um protocolo especfico como o HDLC (sinalizao e correo de quadros), o Link

51

Resoluo de nomes
Biblioteca resolver (libresolv). Arquivos: 11 /etc/nsswitch.conf 11 /etc/host.conf 11 /etc/resolv.conf 11 /etc/hosts

Com frequncia, os diversos programas que utilizam a rede (navegadores e ferramentas como o ping) precisam converter nomes de hosts ou domnios em endereos IP e vice-versa. Nos sistemas Unix ou Linux, essas funes so feitas por meio da biblioteca resolver (libresolv). A biblioteca libresolv pode utilizar arquivos contendo endereos e nomes de hosts, bases de dados como NIS e servidores de nomes (DNS), que so mais utilizados. Ela configurada atravs de alguns arquivos que indicam o modo como a resoluo de nomes deve ser feita. Eles so os seguintes:

Arquivo /etc/nsswitch.conf
Possui configuraes para uma srie de funes da biblioteca C do sistema (libc) e da biblio teca libresolv. Esse arquivo lista bases de dados do sistema e servios. A linha contendo a palavra-chave hosts utilizada para especificar como deve ser feita a resoluo de nomes. Em geral, essa linha no precisa ser alterada e seus valores padro so files e dns. Isso significa que a libresolv deve primeiro consultar o arquivo de hosts (/etc/hosts) e, em seguida, caso no encontre o endereo/nome, deve consultar o servidor de DNS. Um trecho do arquivo /etc/nsswitch.conf mostrado a seguir:

passwd: shadow: group: hosts:

files files files dns files

Arquivo /etc/host.conf
Contm algumas configuraes especficas da libresolv. Em geral, utilizado para definir a
Administrao de Sistemas Linux: Redes e Segurana

ordem de consulta que a libresolv utilizar. O exemplo a seguir do arquivo /etc/hosts.conf especifica que a libresolv deve primeiro consultar o arquivo /etc/hosts e, em seguida, os servidores de DNS (opo order). A configurao a seguir tambm especifica que a libresolv deve retornar todos os endereos do arquivo /etc/hosts que combinam com a consulta multi on feita:

order hosts, bind multi on


Em geral, os dois arquivos citados no precisam ser alterados, j que os valores padro do sistema so adequados.

52

Arquivo /etc/hosts
Contm uma lista de endereos e nomes de hosts e, como opo, um apelido para o host. Esse arquivo pode ser configurado para resolver nomes de hosts em uma rede local, sem que seja necessria a configurao de um servidor de nomes para esse propsito. Nos primrdios da internet, quando o sistema de DNS ainda no era utilizado, toda resoluo de nomes era feita por meio desse arquivo, e ele deveria ser atualizado periodicamente para conter os nomes de hosts da internet da poca. Um exemplo de arquivo /etc/hosts :

127.0.0.1 192.168.0.1 192.168.0.2

localhost maquina1.meudominio maquina1 maquina2.meudominio maquina2

Arquivo /etc/resolv.conf
Principal opo o nameserver. 11 nameserver <endereo> Outras opes: 11 Domain. 11 Search. Exemplos: 11 nameserver 60.0.0.1 11 search rnp.br homelinux.org Utilizado para especificar servidores de nomes (DNS). Sua principal palavra-chave nameserver que, seguida de um endereo IP, especifica servidores de nomes. Podem ser

configurados at trs servidores de nomes, cada qual em uma linha iniciada por nameserver. Outras duas opes, domain e search, permitem o uso de nomes curtos ou nomes de hosts (sem um domnio). Quando fornecido um nome curto, a opo domain permite que o domnio informado seja utilizado. A opo search utilizada para especificar uma lista de domnios. Essa lista de domnios ser utilizada quando um nome curto for fornecido, adicionando-se os domnios ao nome do host. Por exemplo, ao se tentar resolver o nome de host teste, se for utilizada a opo search dominio1.com dominio2.com a libresolv vai procurar por teste.dominio1.com e teste.dominio2.com. As entradas domain e search so mutuamente exclusivas, ou seja, apenas uma delas
Captulo 3 - Configurando uma rede TCP/IP

dever ser utilizada no arquivo /etc/resolv.conf.

Um exemplo de arquivo /etc/resolv.conf :

search rnp.br homelinux.org nameserver 60.0.0.1 nameserver 60.0.0.2


Ferramentas de consulta a servidores DNS: 11 Comando host. 11 Comando dig.

53

Ferramentas para resoluo de nomes


O Linux possui dois comandos que permitem fazer consultas a um servidor DNS para a reso luo de nomes e IPs: dig e host. O comando host aceita, como argumento, um nome ou endereo IP e, como opo, um servidor DNS. Se nenhum servidor for especificado, os servidores listados no arquivo /etc/resolv.conf sero utilizados. O exemplo a seguir mostra o comando host sendo utilizado para resolver o nome teste.exemplo.com:

# host www.google.com.br www.google.com.br is an alias for www.google.com. www.google.com is an alias for www.l.google.com. www.l.google.com has address 72.14.205.104 www.l.google.com has address 72.14.205.147 www.l.google.com has address 72.14.205.99 www.l.google.com has address 72.14.205.103
Caso seja fornecido um nmero IP, o comando host retornar o nome ao qual esse IP corresponde (reverso):

# host 192.168.0.3 3.0.168.192.in-addr.arpa domain name pointer teste.empresa.com.br.


O servidor de nomes deve estar corretamente configurado para que a resoluo reversa funcione (de IP para nomes). O comando dig funciona de modo semelhante, ou seja, tambm pode ser utilizado para efetuar consultas em um servidor DNS para resolver nomes ou IPs. O exemplo a seguir utiliza o comando dig para resolver o nome teste.exemplo.com:

# dig www.google.com.br ; <<>> DiG X.X.X <<>> www.google.com.br ;; global options: printcmd
Administrao de Sistemas Linux: Redes e Segurana

;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48575 ;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.google.com.br. ;; ANSWER SECTION: www.google.com.br. www.google.com. www.l.google.com. 234 www.l.google.com. 234 1690 IN 82021 IN IN IN A A CNAME www.google.com. CNAME www.l.google.com. 72.14.205.99 72.14.205.103 IN A

54

www.l.google.com. 234 www.l.google.com. 234 ;; Query time: 10 msec

IN IN

A A

72.14.205.104 72.14.205.147

;; SERVER: 10.1.2.20#53(10.1.2.20) ;; WHEN: Wed Mar 26 18:40:32 2008 ;; MSG SIZE rcvd: 147
A sada do comando traz uma srie de informaes adicionais, como o servidor DNS consultado e detalhes da consulta. Para se obter o nome do host a partir do IP, deve-se utilizar a opo -x do dig. Exemplo:

# dig -x 192.168.0.3 ; <<>> DiG X.X.X <<>> -x 200.238.128.25 ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52866 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;3.0.168.192.in-addr.arpa. IN ;; ANSWER SECTION: 3.0.168.192.in-addr.arpa 10800 IN ;; AUTHORITY SECTION: 0.168.192.in-addr.arpa ;; ADDITIONAL SECTION: ns.empresa.com.br. ;; Query time: 5 msec
Captulo 3 - Configurando uma rede TCP/IP

PTR

PTR

teste.empresa.com.br.

10800 IN

NS

ns.empresa.com.br.

10800 IN

192.168.0.50

;; SERVER: 192.168.0.50#53(192.168.0.50) ;; WHEN: Wed Jul 28 16:03:11 2004 ;; MSG SIZE rcvd: 111

DNSSEC
O DNSSEC um sistema de resoluo de nomes que complementa o DNS. Ele mais seguro, pois garante a origem (autenticidade) e integridade das respostas DNS, reduzindo, assim, o risco de manipulao de dados e informaes. Essa funcionalidade possvel por meio da utilizao de um mecanismo de chaves pblicas, porm o incremento de segurana ainda no cobre questes como confidencialidade e ataques de negao de servio (DOS).

55

Todos os domnios .BR podem utilizar o DNSSEC, porm o uso dele obrigatrio para as extenses .B.BR (bancos) e .JUS.BR (entidades do poder judicirio). A possibilidade de utilizar o DNSSEC no invalida o DNS tradicional, sendo assim esta apenas uma alternativa mais segura. Para se obter o nome do host a partir do IP, deve-se utilizar a opo +dnssec do dig. Exemplo:

# dig +dnssec +multiline +noadditional www.justica.jus.br ; <<>> DiG X.X.X <<>> +dnssec +multiline +noadditional www.justica.jus.br ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 8787 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 6, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags: do; udp: 4096 ;; QUESTION SECTION: ;www.justica.jus.br. ;; AUTHORITY SECTION: jus.br. ( 2012020908 ; serial 1800 900 604800 900 ; refresh (30 minutes) ; retry (15 minutes) ; expire (1 week) ; minimum (15 minutes) 180 IN SOA a.dns.br. hostmaster.registro.br. IN A

) jus.br.
Administrao de Sistemas Linux: Redes e Segurana

180 IN RRSIG SOA 5 2 172800 20120216020000

( 20120209020000 24739 jus.br.

EOiGzzP9it4GzsM6dLtyICW8KMSJMZqXBeTOtvNkUd/X GH9G6tHfARO+Sd/Rdtj7HLVOoJyQ8+4SKQGg6Re8mrXC 9p1lSpY94yuchiN+5PsK2XNE9UhLcVai/S7kRsag7Grz n00sk5QoCANJkICtPaj+FQlW+ADaYL7zkNKve6o= ) jus.br. 180 IN RRSIG NSEC 5 2 900 20120214100000 (

20120207100000 24739 jus.br.

iDWY2n6j7iTwHKiZOw0SjzsDI0+t6mRNPqf6cYUDfQbB lWrUbJUmwlb+FwjhvIjSzbo+JLVf7Pjimu1/QfazPdS1

56

FWuPupIQH+4wJ9zyYh4Pcx3UhIgICzabk5pDDB/MWvwF jfi6ntGYMIT12S2la9ldqU1aVyV4wjxOSAkPLMs= ) jus.br. DNSKEY jttaboaodaserra.jus.br. 180 IN RRSIG NSEC 5 3 900 20120214100000 ( 20120207100000 24739 jus.br. 180 IN NSEC ac-jus.jus.br. NS SOA RRSIG NSEC

UevMhPMDSVL//VanrGLLHHXz0et85aKlvKjBWSbTzMZP fAUx33pOf8e0T0LJwHtZ3vUF6Mo1Jx1xAAhmmdfIofaW DhDyjFpG9GuU03D5sm0Wu2QpIRLHd7AXkGJAI8RbpSU3 E5DmfTts7AuzFCg1AZWcPSGjcpJ5jc+Kn9UpuOo= ) jttaboaodaserra.jus.br. 180 IN NSEC justicadotrabalho.jus.br. NS DS RRSIG NSEC ;; Query time: 17 msec ;; SERVER: 10.15.0.10#53(10.15.0.10) ;; WHEN: Thu Feb 9 00:19:52 2012 ;; MSG SIZE rcvd: 705

Atribuio dinmica de endereos IP


No Linux existem vrios clientes DHCP: 11 DHCP Client da ISC. 11 Pump. DHCP Client: 11 Arquivo de configurao dhclient.conf . 11 Via linha de comando:

# dhclient <interface>
IPv6. Como foi visto anteriormente, para conectar um host rede necessrio que este possua cional j vista, possvel utilizar o protocolo DHCP para essas atribuies. A principal vantagem de se utilizar o DHCP pode ser vista em redes onde existem equipa mentos mveis, tais como notebooks e PDAs, pois a mudana dos hosts da rede constante. Redes com muitos hosts so ambientes onde o uso de DHCP interessante, pois permite que o endereamento seja gerenciado de modo mais centralizado, evitando atribuies duplicadas e outros erros. Para fazer a atribuio dinmica de endereos no Sistema Operacional Linux, existem vrios clientes DHCP, como o DHCP Client, da Internet Systems Consortium (ISC) (http://www.isc.org) e o pump (presente em algumas distribuies de Linux). Aqui, estudaremos a configurao do ISC DHCP Client.
Captulo 3 - Configurando uma rede TCP/IP

um endereo IP, a mscara, a rota default, alm de outras informaes. Alm da forma tradi -

57

ISC DHCP Client


11 Arquivo de posse geralmente em: 22 /var/lib/dhcp3/dhclient.leases 11 Arquivo de configurao com diversas opes (dhclient.conf). O Internet Software Consortium DHCP Client prov um meio para configurar uma ou mais interfaces de rede usando o DHCP, o protocolo BOOTP ou, se estes falharem, atribuir um endereo esttico para a interface.

Quando o daemon dhclient iniciado, atravs da linha de comando ou de algum script de inicializao de interfaces, ele procura no arquivo de configurao dhclient.conf por instrues. Assim, pega a lista de todas as interfaces do sistema e configura cada uma delas usando o protocolo DHCP. Tambm possvel utilizar o dhclient via linha de comando:

# dhclient eth0 Internet Systems Consortium DHCP Client VX.X.X Copyright 20XX-20XX Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/eth0/00:0c:29:95:b4:b7 Sending on Sending on LPF/eth0/00:0c:29:95:b4:b7 Socket/fallback

DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 8 DHCPOFFER from 10.211.2.20 DHCPREQUEST on eth0 to 255.255.255.255 port 67 DHCPACK from 10.211.2.20 bound to 10.211.8.2 -- renewal in 282134 seconds.
O nome da interface que se deseja configurar pode ser especificado na linha comando.
Administrao de Sistemas Linux: Redes e Segurana

l
Para redes IPv6, deve-se acrescentar o parmetro 6, desta forma: dhclient -6 eth0.

Porm, se nenhuma interface informada, o dhclient tentar configurar todas elas. Tambm possvel especificar o nome das interfaces no arquivo de configurao dhclient.conf. Se as interfaces no forem informadas na linha de comando, apenas as listadas no arquivo sero configuradas. Depois de feita a requisio DHCP, as informaes de posse do endereo esto geralmente no arquivo /var/lib/dhcp3/dhclient.leases, que funciona como um banco de dados. As informaes disponveis nesse arquivo podem variar de acordo com a configurao, mas so teis para o administrador de redes investigar algum problema ou simplesmente checar como foram feitas as atribuies. Exemplo:

lease { interface eth1; fixed-address 192.168.0.33;

58

server-name ; option subnet-mask 255.255.255.0; option routers 192.168.0.254; option dhcp-lease-time 259200; option dhcp-message-type 5; option domain-name-servers 192.168.0.254; option dhcp-server-identifier 192.168.0.254; option dhcp-renewal-time 129600; option dhcp-rebinding-time 226800; option host-name dhcppc0; renew 3 2012/1/17 21:23:00; rebind 5 2012/1/19 02:27:20; expire 5 2012/1/19 11:27:20; }
O arquivo de configurao do dhclient (/etc/dhcp3/dhclient.conf) possui muitas opes que permitem customizar a requisio feita ao servidor. Listagem de algumas dessas opes: 11 Send: permite ao cliente enviar informaes para o servidor. O objetivo ajudar o servidor a diferenciar configuraes de diversos clientes; 11 Request: permite que o cliente escolha a quais valores o servidor dever responder; 11 Require: lista as opes que devem ser encaminhas pelo servidor para serem aceitas. Se o servidor no retornar todas as opes listadas, a resposta ser ignorada; 11 Timeout: determina o tempo mximo que o cliente deve esperar por uma resposta do servidor. Caso o tempo expire e nenhum servidor responda, pode ser usada a opo lease (se estiver definida), ou uma requisio j existente e que ainda no expirou; 11 Retry : determina o tempo de espera para uma nova tentativa, quando o servidor no localizado (timeout); 11 Lease: permite que o administrador atribua as informaes que sero utilizadas no host, caso expire o tempo de contatar o servidor (timeout).
Captulo 3 - Configurando uma rede TCP/IP

Exemplo do arquivo de configurao do DHCP Client, com diversas opes (algumas mencio nadas anteriormente):

#send host-name andare.fugue.com; #send dhcp-client-identifier 1:0:a0:24:ab:fb:9c; #send dhcp-lease-time 3600; #supersede domain-name fugue.com home.vix.com; #prepend domain-name-servers 127.0.0.1; request subnet-mask, broadcast-address, time-offset, routers,

59

domain-name, domain-name-servers, host-name, netbios-name-servers, netbios-scope, interface-mtu; #require subnet-mask, domain-name-servers; #timeout 60; #retry 60; #reboot 10; #select-timeout 5; #initial-interval 2; #script /etc/dhcp3/dhclient-script; #media -link0 -link1 -link2, link0 link1; #reject 192.33.137.209; #alias { # interface eth0; # fixed-address 192.5.5.213; # option subnet-mask 255.255.255.255; #} #lease { # interface eth0; # fixed-address 192.33.137.200; # medium link0 link1; # option host-name andare.swiftmedia.com; # option subnet-mask 255.255.255.0; # option broadcast-address 192.33.137.255;
Administrao de Sistemas Linux: Redes e Segurana

# option routers 192.33.137.250; # option domain-name-servers 127.0.0.1; # renew 2 2000/1/12 00:00:01; # rebind 2 2000/1/12 00:00:01; # expire 2 2000/1/12 00:00:01; #}
Para automatizar a configurao de interface no momento do boot do sistema, informe a utilizao de DHCP no arquivo de configurao de interfaces. Nas distribuies Debian, isso feito com a opo iface <interface> inet dhcp no arquivo de configurao da interface. Quando esse parmetro utilizado, os scripts de inicializao da interface utilizam o dhclient para obter e configurar o endereo IP da interface. O exemplo a seguir, do arquivo /etc/network/interfaces, utiliza o protocolo DHCP para a configurao da interface eth0 :

60

auto eth0 iface eth0 inet dhcp


Para redes IPv6, substitua o parmetro inet por inet6 .

IPv6
A internet no foi projetada para ser a grande rede que hoje. Seu projeto inicial previa somente o uso militar, depois foi aberto aos centros universitrios e por fim chegou a ser utilizada comercialmente. Com tamanho crescimento da rede, chegou o esgotamento dos endereos IPs (na verso IPv4).
NAT Permite que redes privadas se comuniquem com a internet atravs de um nico endereo IPv4.

Medidas paliativas como o Network Address Translation (NAT ) adiaram o esgotamento dos endereos IPs, mas ainda sim foi necessria a criao da verso 6 desse protocolo. A principal caracterstica do IPv6 o incremento de 32 para 128 bits nos endereamentos, possibilitando capacidade de 79 trilhes de trilhes de vezes a quantidade disponvel para verso anterior do protocolo. Com isso ser possvel fornecer endereos IPs vlidos a todos dispositivos conectados na rede, de um supercomputador a uma geladeira. Alm das questes do esgotamento, o novo protocolo prover mais segurana a rede com a obrigatoriedade do IPSec, reduzir processamento para os roteadores.

Captulo 3 - Configurando uma rede TCP/IP

61

62

Administrao de Sistemas Linux: Redes e Segurana

Roteiro de Atividades 3
Atividade 3.1 Diferena entre switches e hubs
Com base na descrio de switches e hubs, descreva o que aconteceria com um host conectado a cada um desses equipamentos que utilizasse uma interface de rede em modo promscuo. O que essa interface pode capturar em cada caso?

Atividade 3.2 Comando ifconfig


Para cada item abaixo configure, se necessrio, o dispositivo de rede do host e descreva o comando utilizado para fazer a configurao:
1. Aps verificar o estado da interface, use o comando ifconfig, se necessrio, para desativar

ou remover o endereo do dispositivo de rede.


2. Com o comando ifconfig, ative o dispositivo de rede e atribua o endereo 192.168.0.X/24.

Pergunte ao instrutor qual o valor de X.


3. Crie um IP-Aliasing para o dispositivo usando o IP 10.0.0.X/24.

Atividade 3.3 Comando ip


Refaa os itens da Atividade 3.2, agora com o comando ip.

Atividade 3.4 Comando route


Reinicie a placa de rede com o comando:

# /etc/init.d/networking restart
Baseado no comando route:
1. Liste a tabela de rotas atual. 2. Remova a rota default, se houver. 3. Adicione uma rota default para a sua rede. Pergunte ao instrutor qual o gateway da rede. 4. Adicione uma rota para a rede 10.1.0.0/16 com endereo de gateway 192.168.0.X para a

sua rede. Pergunte ao instrutor qual o valor de X.

Atividade 3.5 Comando ip


Com o comando ip, refaa os itens da Atividade 3.4.
Captulo 3 - Roteiro de Atividades

Atividade 3.6 Rota invlida


Adicione uma rota para outro host da rede (comandos route ou ip) via um endereo IP no utilizado na rede. Verifique o comportamento da rota usando os comandos ping e traceroute.

63

Atividade 3.7 Configurao de rotas


Com o arquivo de configurao de rede ou rotas:
1. Atribua os valores corretos para deixar a configurao automtica. 2. Utilize o script /etc/init.d/networking para parar e iniciar a configurao. 3. Reboot o sistema e verifique se a configurao est funcionando.

Atividade 3.8 Resoluo de nomes


Com o arquivo de resoluo de nomes:
1. Localize o arquivo utilizado para resoluo de nomes, anote o endereo IP do servidor e o

domnio, caso exista.


2. Faa testes de funcionamento do DNS. 3. Verifique o comportamento dos parmetros search ou domain.

Atividade 3.9 DNSSEC


Utilizando o comando dig :
1. Verifique a existncia de um domnio que utilize o DNSSEC. 2. Verifique quais parmetros lhe permitem definir se consultas a esse domnio possuem

garantia de autenticidade e integridade.

Atividade 3.10 Atribuio dinmica de endereos


Com relao atribuio dinmica de endereos:
1. Faa uma requisio DHCP com o daemon dhclient, usando o dispositivo apropriado. 2. Analise o arquivo de posse (lease), geralmente em /var/lib/dhcp3/. 3. Altere as configuraes do arquivo de configurao /etc/dhcp3/dhclient.conf para requi -

sitar apenas mscara de rede e endereo de broadcast.


Administrao de Sistemas Linux: Redes e Segurana

64

4
Verificando a configurao da rede
objetivos
Diagnosticar e solucionar os principais problemas de enlace e roteamento; verificar a configurao das interfaces e entender a correspondncia de cada um dos parmetros apresentados; entender como funciona um sniffer de rede e utiliz-lo para diagnosticar e solucionar problemas da rede; verificar os servios disponveis em um host.

conceitos

Enlace e roteamento, configurao de interfaces, correspondncia de parmetros, sniffer de rede e host Linux.st.

Tabela de roteamento
11 Comando route. 11 Comando ip route. Avaliao da rota: 11 traceroute. 11 ping (opo de gravar rota). 11 mtr. Quando um host consegue acessar normalmente a rede local, mas no consegue acessar

outras redes , o problema pode estar em alguma configurao de sua tabela de rotas, como, por exemplo, a ausncia de uma rota padro. Para resolver problemas desse tipo importante saber como consultar a tabela de rotas da mquina. Como j vimos, o comando route mostra e manipula a tabela de rotamento IP:
Captulo 4 - Verificando a configurao da rede

# route n
Tabela de Roteamento IP do kernel: Destino Roteador MscaraGen. Opes Mtrica Ref Uso Iface

192.168.0.0 0.0.0.0

0.0.0.0 192.168.0.1

255.255.255.0 0.0.0.0 UG

U 0

0 0

0 eth0

0 eth0

O mesmo pode ser feito com o comando ip:

# ip route list

65

192.168.0.0/25 dev eth0 proto kernel scope link src 192.168.0.2 default via 192.168.0.1 dev eth0
Para testarmos se uma rota est funcionando, podemos utilizar comandos (ferramentas) como o ping e o traceroute. Como visto anteriormente, caso ocorra alguma falha, uma mensagem ICMP pode ser retornada:

# ping 10.15.0.55 PING 10.15.0.55 (10.15.0.55) 56(84) bytes of data. From 10.15.0.10 icmp_seq=1 Destination Host Unreachable From 10.15.0.10 icmp_seq=2 Destination Host Unreachable From 10.15.0.10 icmp_seq=3 Destination Host Unreachable
Ou:

# ping 192.168.11.80 ping: sendto: Network is unreachable ping: wrote 192.168.11.80 64 chars, ret=-1 ping: sendto: Network is unreachable ping: wrote 192.168.11.80 64 chars, ret=-1
Algumas opes do comando route tambm podem ser teis para avaliarmos as rotas. As flags podem nos indicar as condies mostradas na tabela seguinte. Flag U H G R D M
Administrao de Sistemas Linux: Redes e Segurana

Descrio Rota est ativa. Alvo um host. Uso de gateway. Restabelecer rota para roteamento dinmico. Dinamicamente instalada por daemon ou ICMP redirect. Modificada pelo daemon de roteamento ou ICMP redirect. Instalada por addrconf. Entrada cache. Rota rejeitada.
Tabela 4.1 Flags e descries.

A C !

O Linux possui uma tabela cache de rotas. Nessa tabela so armazenadas as rotas recente mente usadas, em um formato que permite a consulta de maneira mais rpida. Quando um pacote precisa ser roteado, primeiro o kernel consulta essa tabela. Caso a rota no seja encontrada, consulta as demais tabelas de roteamento. Utilizando o comando route com a opo -C, a tabela cache ser mostrada. Atravs dela, possvel verificar quais rotas foram recentemente utilizadas pelo sistema. O exemplo a seguir utiliza o comando route para mostrar a tabela de roteamento:

66

# route -n C Kernel IP routing cache Source Destination Gateway Flags Metric Ref Use Iface

0.0.0.0 255.255.255.255 255.255.255.255 bl 0 0 4 lo 192.168.0.3 eth0 192.168.0.16 192.168.0.3 192.168.0.5

192.168.0.16 0 4 3

192.168.0.5 0 1 0 eth0 192.168.0.5 2 lo 192.168.0.3 0 7614 lo 192.168.0.16 192.168.0.6 il 0 192.168.0.16 192.168.0.16 il 0 0

Avaliao da rota
Existem alguns comandos que servem para avaliar uma rota entre a origem e o destino de um pacote IP. Eles so muito teis para que se descubra em que ponto da rota pode estar acontecendo um problema.

Comando traceroute
Usado para conhecer por quais roteadores (cada hop) um pacote IP passa at chegar ao seu destino. possvel que os roteadores do caminho possuam filtros ICMP. Por isso, alguns roteadores podem no aparecer na lista. O nico parmetro obrigatrio que o traceroute requer o host de destino. Porm, h outras opes, como -n, que evitam que o traceroute faa a resoluo de nomes, restringindo-se a mostrar o endereo IP.

# traceroute -n 192.168.63.100 traceroute to (192.168.63.100), 30 hops max, 38 byte packets 1 192.168.255.1 1.024 ms 0.636 ms 0.815 ms 2 192.168.253.106 8.893 ms 9.351 ms 25.867 ms 3 192.168.253.102 29.780 ms 15.169 ms 15.195 ms 4 * * * 5 192.168.255.33 56.366 ms 25.732 ms 17.275 ms 6 192.168.63.190 17.239 ms 17.702 ms 17.741 ms 7 192.168.63.100 22.746 ms 20.178 ms 19.162 ms
Captulo 4 - Verificando a configurao da rede

67

Para pensar
No exemplo anterior, observe que, por padro, o traceroute aumenta o TTL dos pacotes at o valor mximo de 30 (identificado na sada do comando por 30 hops max). Observe, tambm, que o quarto hop no respondeu, provavelmente porque possui algum filtro (como um filtro de pacotes UDP ou ICMP, por exemplo), mas que ele est roteando corretamente os pacotes, j que houve resposta do quinto hop.

Comando ping
Ao contrrio do traceroute, para traar rotas o ping utiliza o campo especial opes do cabealho IP. Quando o valor de rota de registro utilizado nesse campo, a origem do pacote IP cria uma lista vazia de endereos IP e faz com que seja acrescentado lista o endereo IP de cada roteador que processe o pacote. Como essa informao armazenada no cabealho do pacote IP, existe um limite de at nove endereos que podem ser armazenados. Outra caracterstica desse comando que ele retorna tanto o caminho de ida quanto o de volta do pacote. O exemplo seguinte mostra a utilizao do comando ping com a opo -R para traar rotas:

# ping -R -n 192.168.25.20 PING (192.168.25.20) 56(124) bytes of data. 64 bytes from 192.168.25.20: icmp_seq=1 ttl=59 time=139 ms RR: 192.168.255.3 192.168.253.105 192.168.253.101 192.168.255.18 192.168.25.161 192.168.25.1 192.168.25.20
Administrao de Sistemas Linux: Redes e Segurana

192.168.25.162 192.168.255.17 64 bytes from 192.168.25.20: icmp_seq=2 ttl=59 time=126 ms (same route) 64 bytes from 192.168.25.20: icmp_seq=3 ttl=59 time=52.8 ms (same route) 64 bytes from 192.168.25.20: icmp_seq=4 ttl=59 time=247 ms (same route) --- www.rnp.br ping statistics --4 packets transmitted, 4 received, 0% packet loss, time 3035ms rtt min/avg/max/mdev = 52.889/141.533/247.658/69.575 ms
Observe que o caminho de ida comea no host 192.168.255.3 e termina no host de destino 192.168.25.20. O caminho de volta no mostrado por inteiro, porque o nmero mximo de endereos armazenados foi atingido.

68

Comando mtr
Combina a funcionalidade tanto do ping quanto do traceroute, o que permite um diagnstico mais preciso. Ao ser iniciado, o mtr traa a rota at o endereo IP de destino e, em seguida, envia pings sequencialmente para cada hop. Isso feito para medir a qualidade do enlace para cada roteador e mostrar tanto a perda quanto o tempo gasto pelos pacotes para percorrer o caminho de ida e volta. O exemplo a seguir mostra a utilizao do comando mtr :

# mtr -n 192.168.25.20 My traceroute [v0.75] Keys: Help Display mode Restart statistics Order of fields quit

Packets Pings Hostname %Loss Rcv Snt Last Best Avg Worst

1. 192.168.255.1 0% 25 25 1 0 1 2 2. 192.168.253.106 0% 25 25 9 8 9 17 3. 192.168.253.102 0% 25 25 15 14 15 15 4. 192.168.255.17 5. 192.168.25.162 6. 192.168.25.20 0% 0% 5% 24 24 23 25 25 25 807 786 749 344 412 365 800 772 759 1667 1078 1057

A sada do comando mtr mostra: 11 Nmero do host; 11 Endereo IP do host; 11 Percentual de perda de pacotes; 11 Quantidade de pacotes enviados; 11 Quantidade de pacotes recebidos; 11 Round Trip Time (RTT) do ltimo pacote; 11 Menor tempo observado; 11 Mdia de tempo; 11 Pior tempo observado.

Verificao do estado do link


11 Problema associado com equipamentos. 11 Comando arp pode ser til. 11 Configuraes de velocidade de operao da interface e modo half ou full duplex. 22 Ferramenta mii-tool. 33 Hardware pode no ter suporte.

Captulo 4 - Verificando a configurao da rede

69

Quando h um host isolado na rede, o primeiro ponto a ser observado se o problema est relacionado ao link. Alguns exemplos de problemas com o link: 11 Cabo mal conectado; 11 Porta de switch com defeito; 11 Problema na negociao da velocidade do enlace entre um host e um switch. Os comandos a seguir podem ser teis na identificao desses problemas.

Comando arp
Pode ajudar na identificao e localizao de um possvel problema com o cabeamento ou equipamento de rede. Se a entrada na tabela ARP para uma determinada mquina est vazia, provavelmente esta mquina tem um problema na configurao da interface ou no cabeamento fsico. Se as tabelas ARP de todas as mquinas esto vazias, provavelmente existe um problema no hub ou switch da rede. Alguns problemas podem ocorrer quando se negocia a velocidade da interface de um host com um switch. Nesse caso, o comando mii-tool pode servir para verificar e alterar o estado Media-Independent Interface (MII) de uma interface. Para verificar o estado de uma interface, basta usar o comando sem parmetros. Exemplo:

# mii-tool eth0: negotiated 100baseTx-FD, link ok


Para forar que uma placa anuncie somente certas capacidades ou para desabilitar completamente a autonegociao e forar uma certa velocidade, use os parmetros -A e -F, respectivamente. Exemplos: Anuncia que a placa entende 100 Mbit/s half e full duplex:

# mii-tool -A 100BaseTx-FD,100BaseTx-HD eth0


Fora a placa a entrar no modo 10 Mbit/s full duplex:

# mii-tool -F 10BaseT-FD eth0

Administrao de Sistemas Linux: Redes e Segurana

Verificao da configurao das interfaces


Comando ifconfig : Observar todas as informaes: 11 Erros ou pacotes descartados. 11 Flags (UP, PROMISC etc.).

70

Os comandos ifconfig e ip mostram as configuraes da interface. Algumas informaes sobre a interface podem ser observadas ao se utilizar o comando ifconfig :

# ifconfig eth0 Encapsulamento do Link: Ethernet Endereo de HW

00:0C:29:95:B4:B7 inet end.: 10.211.8.2 Bcast:10.211.255.255 Masc:255.255.0.0 endereo inet6: fe80::20c:29ff:fe95:b4b7/64 Escopo:Link UP BROADCASTRUNNING MULTICAST MTU:1500 Mtrica:1 RX packets:1021 errors:0 dropped:0 overruns:0 frame:0 TX packets:890 errors:0 dropped:0 overruns:0 carrier:0 colises:0 txqueuelen:1000 RX bytes:98100 (95.8 KiB) TX bytes:96686 (94.4 KiB) IRQ:185 Endereo de E/S:0x1080 lo Encapsulamento do Link: Loopback Local inet end.: 127.0.0.1 Masc:255.0.0.0 endereo inet6: ::1/128 Escopo:Mquina UP LOOPBACKRUNNING MTU:16436 Mtrica:1 RX packets:66 errors:0 dropped:0 overruns:0 frame:0 TX packets:66 errors:0 dropped:0 overruns:0 carrier:0 colises:0 txqueuelen:0 RX bytes:5104 (4.9 KiB) TX bytes:5104 (4.9 KiB)
As estatsticas de utilizao tambm podem ser teis ao administrador, para avaliar o uso do dispositivo e como esse uso afeta o resto da rede. Taxas de erros altas, por exemplo, podem indicar algum problema com o adaptador ou com o cabeamento. Os parmetros errors e dropped devem ser observados, pois podem indicar algum problema no cabeamento, switch/hub ou configurao de velocidade da interface. As flags tambm
Captulo 4 - Verificando a configurao da rede

indicam o estado do dispositivo. Lista de flags: 11 UP: dispositivo est funcionando; 11 BROADCAST: dispositivo pode enviar trfego para todos os hosts localizados na mesma rede; 11 RUNNING: dispositivo est operacional; 11 MULTICAST: dispositivo pode atuar e receber pacotes multicast; 11 ALLMULTI: dispositivo pode receber todos os pacotes multicast presentes na rede em que ele se encontra; 11 PROMISC: dispositivo pode receber pacotes com qualquer endereo MAC.

71

Sniffers
BSD Packet Filter (BPF): 11 Facilidade para capturar pacotes em espao de usurio, permitindo o uso de estaes de trabalho para monitoramento da rede de forma eficiente. libpcap: 11 Interface independente de sistema para capturar pacotes em user-level que suporta mecanismos de filtragem baseados em BPF. 11 tcpdump e Ethereal so os principais sniffers que a suportam. Sniffers so softwares que capturam o trfego de rede, extremamente teis para que o administrador possa depurar problemas e analisar o trfego. Quando um quadro enviado por um determinado host em uma rede Ethernet , ele pode

ser capturado por outros hosts, mesmo que esses hosts no sejam o destino desse quadro. Basta configurar a interface de rede no modo promscuo, que ela processar no apenas os quadros enviados para o endereo fsico da interface, mas tambm qualquer outro quadro no barramento. Para que seja possvel capturar pacotes, eles devem atravessar o mesmo meio fsico em que o host est conectado. Em geral, a forma mais simples de se fazer isso atravs da utilizao de um hub. Antes de falarmos dos principais sniffers, iremos verificar uma funcionalidade disponvel no kernel dos principais Sistemas Operacionais: o Berkeley Packet Filter (BPF).

Ethernet Protocolo de interconexo para redes locais Rede de rea Local (LAN) baseado no envio de pacotes.

BPF
O BPF uma facilidade para capturar pacotes em espao de usurio (user-level), permi tindo o uso de estaes de trabalho para monitoramento da rede de forma eficiente. Como monitores de rede rodam no espao de processos user-level, os pacotes devem ser copiados para um limite permitido, para que possam ser manipulados pelos monitores. Essa cpia feita por um agente do kernel chamado packet filter. O BPF permite que essa cpia seja feita de forma muito eficiente, j que no funciona sobre a pilha de protocolos TCP/IP como os antigos packet filters, mas sim baseado num novo registro e com um bom sistema de rea de armazenamento (buffer) que permite que seja muitas vezes mais rpido.

libpcap
Administrao de Sistemas Linux: Redes e Segurana

Interface independente de sistema para capturar pacotes em user-level, que suporta mecanismos de filtragem baseados em BPF. A seguir, veremos os principais sniffers que suportam a libpcap, como o tcpdump e o Wireshark.

tcpdump
Imprimir todos os pacotes na interface eth1 sem resoluo de nomes de hosts e portas:

# tcpdump -n -i eth1
Imprimir todo o trfego entre a rede local e a rede 192.168.0.0/24

# tcpdump dst net 192.168.0.0/24

72

Poderosa ferramenta de monitoramento e sniffer de rede, que suporta muitos protocolos como Ipv4; ICMPv4; IPv6; ICMPv6; UDP; TCP; BGP; OSPF; SNMP; AFS; RIP; PIM; DVMRP; IGMP; SMB; NFS; entre outros tipos. O tcpdump imprime o cabealho de pacotes que casam com uma expresso (filtros BPF) booleana. Exemplos de utilizao do tcpdump. Para imprimir todos os pacotes da interface eth1, sem resoluo de nomes de hosts e portas:

# tcpdump -n -i eth1
Para imprimir trfego do host diablo:

# tcpdump host diablo


Para imprimir todos os pacotes IPs entre o host maverick e qualquer host, exceto a galaxie:

# tcpdump ip host maverick and not galaxie


Para imprimir todo o trfego entre a rede local e a rede 10.0.0.0/24:

# tcpdump dst net 10.0.0.0/24


Para imprimir todos os pacotes ICMP que no so echo request ou reply:

# tcpdump icmp[icmptype] != icmp-echo and icmp[icmptype] != icmpechoreply

Ethereal (Wireshark)
O Wireshark antigo (Ethereal) um analisador de trfego de rede (sniffer), que possui uma interface GUI e captura pacotes no formato libpcap. O Ethereal mostra trs janelas de visua lizao de um pacote: 11 Uma janela contendo uma lista de pacotes capturados (1); 11 Uma janela com detalhes de um pacote selecionado (2); 11 Uma janela que mostra o contedo do pacote selecionado no formato hexadecimal e ASCII (3).
Figura 4.1 Wireshark: interface com trs janelas.

A figura a seguir mostra a interface do Ethereal para configurar a captura de pacotes. Filtros BPF podem ser criados e salvos para uso futuro.

Captulo 4 - Verificando a configurao da rede

73

Verificao de servios
Processo associado ao daemon. Sockets: 11 Utilizados na implementao de um servio para que um processo tenha acesso pilha de protocolos de rede que so implementados no kernel do Sistema Operacional. Alguns comandos so teis para a verificao de servios, como, por exemplo, o netstat, o

lsof e o nmap. Antes de verificar o estado de um servio, necessrio verificar se o processo que oferece o servio est ou no sendo executado. Para isso, basta utilizar o comando ps e procurar pelo processo em questo. O exemplo a seguir utiliza o comando ps para listar processos e o comando grep para selecionar as linhas que contm a string named, que nome de um daemon.

# ps xuaw | grep named root root 2336 0.0 1.3 2981 0.0 0.7 2864 1320 ? 3096 672 pts/0 Ss R+ 12:42 13:01 0:00 /usr/sbin/named 0:00 grep named

A interface de socket do Linux baseada na interface criada pelo sistema BSD, e, por isso mesmo, tambm conhecida como BSD socket. As opes xuaw do comando ps especificam que todos os processos de todos os usurios devem ser listados no formato wide.

l Para mais detalhes,


consulte a pgina de manual do comando ps (man ps).

Sockets
TCP: 11 Famlia: 22 PF_INET ou PF_INET6. 11 Socket: 22 SOCK_STREAM. UDP: 11 Famlia: 22 PF_INET ou PF_INET6.
Administrao de Sistemas Linux: Redes e Segurana

11 Socket: 22 SOCK_DGRAM. Para saber mais detalhes dos servios, necessrio ter noo de como eles so implemen tados em sistemas Unix ou Linux. Os protocolos de rede como o IP, o TCP e o UDP so implementados diretamente no kernel do Linux. Para que uma aplicao possa se comunicar utilizando esses protocolos, necessrio utilizar uma Aplication Programing Interface (API), que no Linux chamada de socket. Nos sistemas Unix ou Linux, quando uma aplicao precisa se comunicar com outra (na mesma mquina ou em uma mquina remota), ela utiliza um socket. Nos sistemas Unix ou Linux, um socket tratado de maneira bastante similar a um arquivo, aceitando chamadas de sistema como read e write (ler e escrever), abstraindo para o programador detalhes dos protocolos de comunicao. Sockets entendem diversas famlias de protocolos e podem ser divididos em vrios tipos:

74

Famlia PF_INET PF_INET6 PF_IPX PF_PACKET Socket SOCK_STREAM


Tabela 4.2 Sockets.

Descrio Protocolo Internet IPv4. Protocolos Internet IPv6. Protocolos Novell. Protocolos no nvel 2. Descrio Utiliza o protocolo TCP. Utiliza o protocolo UDP.

SOCK_DGRAM

Para verificar um servio, importante ter noo de como ele foi implementado. Ou seja, se foram utilizados a famlia PF_INET e o socket do tipo SOCK_STREAM, possvel deduzir que esse um servio sobre IPv4 que utiliza TCP. Se o servio foi implementado utilizando PF_INET6 e SOCK_DGRAM, sabemos que um servio sobre IPv6 que usa o protocolo de transporte UDP.

Comando netstat
# netstat an Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address tcp tcp tcp 0 0 0 0 0 0 0.0.0.0:110 192.168.0.2:53 127.0.0.1:53 Foreign Address 0.0.0.0:* 0.0.0.0:* 0.0.0.0:* State LISTEN LISTEN LISTEN

O comando netstat fornece vrias informaes relacionadas com a rede, como, por exemplo, quantas portas esto aguardando conexes; qual o protocolo de transporte utilizado; qual o status das conexes etc.

# netstat an Conexes Internet Ativas (servidores e estabelecidas) Proto Recv-Q Send-Q Endereo Local tcp 0 tcp 0 tcp 0 tcp 0 tcp 0 tcp 0 tcp 0 udp 0 udp 0 udp 0 0 0 0 0 0 0 0 0 0 0 0.0.0.0:110 Endereo Remoto 0.0.0.0:* Estado LISTEN LISTEN LISTEN LISTEN LISTEN
Captulo 4 - Verificando a configurao da rede

192.168.02:53 0.0.0.0:* 127.0.0.1:53 0.0.0.0:22 0.0.0.0:25 192.168.02:22 0.0.0.0:* 0.0.0.0:* 0.0.0.0:*

192.168.05:40162 ESTABLISHED

192.168.02:110 10.0.0.3:39297 ESTABLISHED 192.168.02:53 0.0.0.0:* 127.0.0.1:53 0.0.0.0:3797 0.0.0.0:* 0.0.0.0:*

75

No exemplo anterior, possvel identificar vrios servios aguardando conexes (estado LISTEN): POP3 (porta 110); DNS (porta 53); SSH (porta 22); SMTP (porta 25). Tambm possvel verificar que existem duas conexes estabelecidas (ESTABLISHED); um SSH; outra POP3; e que alguns servios tambm esto abrindo portas usando o protocolo de transporte UDP. Estado ESTABLISHED SYN_SENT SYN_RECV FIN_WAIT1 FIN_WAIT2 TIME_WAIT CLOSE CLOSE_WAIT LAST_ACK LISTEN CLOSING UNKNOW Descrio O socket tem uma conexo estabelecida. O socket est tentando estabelecer uma conexo. A requisio de conexo foi recebida da rede. O socket est fechado e a conexo est sendo finalizada. A conexo est fechada e o socket est aguardando finalizar o lado remoto. O socket est esperando para tratar pacotes que ainda esto na rede aps o socket ter fechado. O socket no est sendo usado. O lado remoto finalizou, aguardando o socket fechar. O lado remoto finalizou e fechou o socket, aguardando apenas o reco nhecimento (fin-ack). O socket est escutando por conexes. Ambos os sockets esto finalizando, mas ainda no se tem todos os dados enviados. O estado do socket no conhecido.
Tabela 4.3 Comando netstat.

A tabela anterior mostra uma lista de estados possveis para uma conexo. Argumento -l Descrio Listas apenas sockets em estado LISTEN (observe que os sockets para o protocolo UDP, apesar de no possurem estado LISTEN, tambm so listados). Mostra em forma numrica, ao invs de tentar resolver nomes e portas. Mostra uma sumarizao para cada protocolo. A cada segundo a sada ser continuamente atualizada. Ser mostrado o PID e o nome do programa ao qual o socket pertence. Mostra a tabela de rotas do kernel.

-n -s
Administrao de Sistemas Linux: Redes e Segurana

-c -p -r

Tabela 4.4 Argumentos comuns.

A utilizao do comando netstat bastante ampla.

76

Comando lsof
Um socket tratado pelo SO como um arquivo:

q
DEVICE SIZE NODE

# lsof -n -P -i COMMAND PID USER FD TYPE

NAME ssh 1569 ruth 3u IPv4 5421 TCP 192.168.0.5:33508->192.168.0.6:22 (ESTABLISHED) mozilla 2662 ruth 17u IPv4 72753 TCP 192.168.0.5:40852->192.168.0.6:80 (CLOSE_WAIT) ssh 26746 ruth 3u IPv4 72446 TCP 192.168.0.5:40782->192.168.0.2:22 (ESTABLISHED) ssh 26830 ruth 3u IPv4 72582 TCP 192.168.0.5:40809->192.168.0.2:22 (ESTABLISHED)

Outro comando que pode ser til para verificar o estado de um servio o lsof, que lista todos os arquivos abertos em diversos sistemas Unix ou Linux. Visto que, em um sistema Unix ou Linux, um socket tratado como um arquivo, ele pode ser listado. A seguir veremos algumas formas de utilizao do comando lsof, que podem ser teis para a monitorao de servios: 11 -n inibe a converso de endereos de redes para nome de hosts, permitindo uma exe cuo mais rpida. 11 -P inibe a converso de nmeros de portas para nomes de portas. 11 -i [i] seleciona os arquivos que pertencem ao endereamento internet, que casam com o padro especificado em i. Onde i pode ser especificado da seguinte forma: [protocolo][@nomehost|endere ohost][:servi o|porta] Isso significa que possvel selecionar arquivos com eficcia, usando o protocolo (TCP ou UDP); o nome ou endereo do host; o nome do servio ( /etc/services) ou a porta. Para listar todos os sockets que pertencem ao endereamento internet sem qualquer tra duo de nomes:

# lsof -n -P i COMMAND portmap portmap PID 1376 1376 USER daemon daemon statd statd statd zabbix zabbix zabbix FD TYPE DEVICE SIZE/OFF NODE NAME 4680 4691 4748 4758 4761 5642 5642 5642 0t0 UDP *:111 0t0 TCP *:111 (LISTEN) 0t0 UDP *:720 0t0 UDP *:39841 0t0 TCP *:42243 (LISTEN) 0t0 TCP *:10050 (LISTEN) 0t0 TCP *:10050 (LISTEN) 0t0 TCP *:10050 (LISTEN)
Captulo 4 - Verificando a configurao da rede

4u IPv4 5u IPv4 4u IPv4 6u IPv4 7u IPv4 5u IPv4 5u IPv4 5u IPv4

rpc.statd 1392 rpc.statd 1392 rpc.statd 1392 zabbix_ag 1735 zabbix_ag 1754 zabbix_ag 1755

77

Para listar os arquivos associados a uma conexo TCP na porta 22:

# lsof -i tcp:22 -n P COMMAND PID USER sshd sshd sshd 1873 root 1873 root 9810 root FD TYPE DEVICE SIZE/OFF NODE NAME 5937 5939 0t0 TCP *:22 (LISTEN) 0t0 TCP *:22 (LISTEN) 0t0 TCP 10.15.0.10:22-

3u IPv4 4u IPv6

3r IPv4 265866299

>10.15.104.151:43170 (ESTABLISHED) sshd 9868 root 3r IPv4 265866690 0t0 TCP 10.15.0.10:22-

>10.15.105.226:49255 (ESTABLISHED)
Para listar os sockets que utilizam o protocolo UDP no servio DNS (porta 53) para o localhost:

# lsof -i udp@localhost:domain -n P COMMAND named named named PID USER FD TYPE DEVICE SIZE/OFF NODE NAME 0t0 UDP 127.0.0.1:53 0t0 UDP 127.0.0.1:53 0t0 UDP 127.0.0.1:53

31642 bind 513u IPv4 166390003 31643 bind 513u IPv4 166390003 31644 bind 513u IPv4 166390003

Comando nmap
11 Scanners (varredores). 11 Usar com cuidado. 11 Pode ser utilizado para identificar portas ou estados. 22 Open. 22 Filtered. 22 Unfiltered ou Closed. Ferramenta de explorao de servios na rede, que pode ser utilizada para monitorar ser-

vios. As ferramentas que fazem explorao de servios, checando os servios no hosts da rede, so conhecidas como scanners (varredores) de rede.
Administrao de Sistemas Linux: Redes e Segurana

Essas ferramentas devem ser utilizadas com cuidado, pois podem ferir as polticas de segurana de alguma instituio. Isso porque elas podem ser usadas por algum mal-intencionado para checar os servios ativos, obtendo assim informaes que podem ser utilizadas para alguma ao maliciosa. O resultado de um nmap retorna uma lista de portas e o seu estado, que pode ser: 11 Open: significa que a porta varrida aceitar conexes; 11 Filtered: significa que um roteador ou firewall no permitiu que o nmap determinasse o estado de open na porta; 11 Unfiltered ou closed: significa que a porta parece estar fechada e nenhum conjunto de regras ou firewall no caminho est interferindo.

l Para conhecer outras


combinaes de utilizao do comando lsof, verifique o manual (man lsof ).

78

# nmap 10.15.0.10 -p20-30 Starting Nmap 5.00 ( http://nmap.org ) at 2012-03-07 16:30 BRT Interesting ports on 10.15.0.10: PORT STATE SERVICE

20/tcp closed ftp-data 21/tcp open 22/tcp open ftp ssh

23/tcp closed telnet 24/tcp closed priv-mail 25/tcp closed smtp 26/tcp closed rsftp 27/tcp closed nsw-fe 28/tcp closed unknown 29/tcp closed msg-icp 30/tcp closed unknown Nmap done: 1 IP address (1 host up) scanned in 0.18 seconds
Para varrer um host, basta informar o endereo IP. Por padro, o nmap no varrer todas as 65.536 portas, mas apenas aquelas com servios conhecidos no seu arquivo de servios (geralmente em /usr/share/nmap/nmap-services).

# nmap 127.0.0.1 Starting Nmap 5.00 ( http://nmap.org ) at 2012-03-07 16:31 BRT Interesting ports on localhost (127.0.0.1): Not shown: 988 closed ports PORT 21/tcp 22/tcp 25/tcp 53/tcp 80/tcp STATE SERVICE open ftp open ssh open smtp open domain open http
Captulo 4 - Verificando a configurao da rede

111/tcp open rpcbind 139/tcp open netbios-ssn 389/tcp open ldap 445/tcp open microsoft-ds 631/tcp open ipp

79

3306/tcp open mysql 5666/tcp open nrpe Nmap done: 1 IP address (1 host up) scanned in 0.20 seconds
O exemplo seguinte pode ser utilizado para localizar os hosts dentro da rede 10.15.0.0/27 que aceitam conexes na porta 22 (SSH):

# nmap 10.15.0.0/27 -p 22 Starting Nmap 5.00 ( http://nmap.org ) at 2012-03-07 16:32 BRT Interesting ports on 10.15.0.9: PORT STATE SERVICE

22/tcp open ssh MAC Address: 00:22:19:55:AB:27 (Dell) Interesting ports on 10.15.0.21: PORT STATE SERVICE

22/tcp open ssh MAC Address: 00:40:F4:F0:1F:36 (Cameo Communications) Nmap done: 32 IP addresses (9 hosts up) scanned in 1.58 seconds
Para varrer as portas entre 20 e 30, o intervalo pode ser informado da seguinte forma:

# nmap 10.15.50.13 -p 20-30 Starting Nmap 5.00 ( http://nmap.org ) at 2012-03-07 16:33 BRT Interesting ports on 10.15.50.13: PORT STATE SERVICE

20/tcp closed ftp-data 21/tcp open 22/tcp open


Administrao de Sistemas Linux: Redes e Segurana

ftp ssh

23/tcp closed telnet 24/tcp closed priv-mail 25/tcp closed smtp 26/tcp closed rsftp 27/tcp closed nsw-fe 28/tcp closed unknown 29/tcp closed msg-icp 30/tcp closed unknown MAC Address: 00:0C:29:86:A5:F3 (VMware) Nmap done: 1 IP address (1 host up) scanned in 0.43 seconds

80

Roteiro de Atividades 4
Atividade 4.1 Tabela de Roteamento
Instalar o pacote mtr :

# apt-get install mtr


A partir dos conceitos estudados para avaliar a tabela de roteamento:
1. Descreva quais so as informaes relevantes ao se consultar a tabela de roteamento.

Use o comando route.


2. Adicione uma rota para um host local e descreva o que aconteceu com a tabela de rotea-

mento. Verifique as flags.


3. Utilize o comando ping para enviar pacotes ICMP para o host que foi adicionado rota e

com a opo -C do comando route. Verifique a utilizao da rota.


4. Utilize as ferramentas route, ping -R e mtr para avaliar a rota apresentada e explique a

sada de cada uma. Como destino, utilize um endereo fornecido pelo instrutor.

Atividade 4.2 Comando ifconfig e/ou ip link


Com os comandos ifconfig e ip link :
1. Descreva as informaes observadas. 2. Usando apenas o comando ifconfig, configure a interface para modo promscuo. Quais

flags foram alteradas (verifique com os comandos ip e ifconfig )? O que isso significa?
3. Retire a interface do modo promscuo.

Atividade 4.3 Comando tcpdump


Instalar o pacote tcpdump:

# apt-get install tcpdump


Com o sniffer tcpdump:
1. Com o trfego observado, possvel concluir se existe na rede um switch ou um hub? 2. Utilize a opo do tcpdump para no resolver nomes. possvel notar alguma diferena
Captulo 4 - Roteiro de Atividades

de desempenho? Justifique.
3. Quais protocolos podem ser identificados? 4. Escolha um host na rede e monitore seu trfego com os parmetros apropriados no tcpdump. 5. Faa um ping para um host na rede. Use o tcpdump com os parmetros apropriados para

monitorar apenas os pacotes relacionados com o ping.

81

Atividade 4.4 Wireshark (Ethereal)


Instalar o pacote Ethereal:

# apt-get install ethereal


Com o Wireshark, repita os passos da Atividade 4.3. Que vantagens podem ser observadas ao utilizar o Wireshark?

Atividade 4.5 Comandos netstat e/ou lsof


Use os comandos netstat e/ou lsof para monitoramento de servios:
1. Identifique os servios que esto no estado LISTEN. 2. Use o comando nc como servidor (nc -l -p <porta>) para escutar em uma porta qualquer. 3. Verifique novamente os servios em estado LISTEN. 4. Use o comando nc como cliente (nc <ip> <porta>) para conectar ao servidor e verifique o

estado das conexes continuadamente. O que pode ser observado?

Atividade 4.6 Servios


Faa testes rodando dois ou mais servios sobre a mesma porta. Primeiro, use somente o TCP; em seguida, somente o UDP; por fim, TCP e UDP. Justifique o comportamento.

Atividade 4.7 Comando nmap


Instalar o pacote nmap:

# apt-get install nmap Com o comando nmap, responda:


1. Quais so as portas abertas no endereo 127.0.0.1? 2. Procure os hosts na sua rede que esto com a porta 22 aberta. 3. Localize nos hosts de IP, com o ltimo octeto variando de 1 a 100 (X.X.X.1-100), os servios

que rodam entre as portas 20 e 50.

Administrao de Sistemas Linux: Redes e Segurana

Atividade 4.8 Identificando servios com o nmap


Use o comando nc como servidor (nc -l -p <porta>) em portas com servios conhecidos (TCP e UDP). Solicite que outro aluno em outro host descubra e classifique as portas e servios utilizando o nmap.

82

Atividade 4.9 Monitoramento de trfego de rede


Para resolver esta atividade, aguarde o instrutor iniciar o exerccio. O instrutor coordenar a diviso da turma em duas equipes. Durante um perodo determinado pelo instrutor, as equipes devero atuar como geradores de trfego e, depois, como monitores de trfego. Durante o perodo de gerao de trfego, utilize os comandos ping, nc e nmap para gerar trfego com destino s mquinas dos outros alunos. Durante o perodo de monitorao de trfego, utilize o sniffer Wireshark para capturar pacotes. Ao final da atividade, utilize o Wireshark para analisar o trfego de rede capturado. Liste a maior quantidade de trfego que conseguir, bem como a maior quantidade possvel de deta lhes, como hosts de origem do trfego capturado, tipo de trfego gerado etc. Exemplo: host x.x.x.x efetuou requisies ICMP (pings); host x.x.x.y tentou uma conexo TCP na porta ZZ.

Captulo 4 - Roteiro de Atividades

83

84

Administrao de Sistemas Linux: Redes e Segurana

5
Segurana Introduo
objetivos
Gerenciar e controlar o acesso aos servios, configurar e utilizar o shell seguro (SSH), entender como os arquivos de log podem ser teis na deteco de uma invaso, saber como agir em caso de incidentes de segurana e conhecer medidas preventivas de segurana.

conceitos

Atividades associadas administrao de redes.

Segurana
Envolve o conhecimento de vrios assuntos. 11 Administrao de sistemas. 11 Sistemas Operacionais. 11 Sistemas de arquivos. 11 Protocolos de rede. Para ter um ambiente seguro necessrio observar, no mnimo, cinco princpios: 11 Confidencialidade. 11 Integridade. 11 Disponibilidade. 11 No repdio (irretratabilidade). 11 Autenticidade.

teo de ativos contra acessos no autorizados e alteraes indevidas. De forma geral, um sistema computacional sempre estar vulnervel e poder ser comprometido, seja por uma falha recm-descoberta ou por desleixo de um administrador descuidado. Para se manter um ambiente computacional seguro necessrio que o administrador possua conhecimentos sobre o Sistema Operacional, protocolos de rede e sistemas de arquivos dos servidores e equipamentos utilizados. De forma geral, o objetivo de um administrador de rede garantir para todo o ambiente:

Captulo 5 - Segurana Introduo

A segurana da informao pode ser definida como a rea de conhecimento dedicada pro -

85

11 Confidencialidade: proteger as informaes contra o acesso de pessoas no explicita mente autorizadas pelo dono da informao. Computacionalmente, para se garantir esse princpio pode-se fazer uso de criptografia ou de regras simples de acesso; 11 Integridade: evitar que os dados sejam apagados ou de alguma forma alterados, sem a permisso do proprietrio da informao. Para cumprir esse objetivo, pode-se fazer uso de algoritmos de hash que, ao processarem uma determinada informao, fornecem um nmero nico que identifica aquela poro de bits. Qualquer alterao nos bits originais vai gerar um nmero totalmente diferente permitindo, assim, identificar claramente quando a informao foi alterada; 11 Disponibilidade: proteger os recursos de forma que no fiquem indisponveis sem a devida autorizao. Em termos gerais, esse princpio pode incorporar a duplicao do ativo ou o uso de equipamentos de tolerncia a falhas; 11 Autenticao: capacidade de garantir que um usurio, sistema ou informao seja mesmo quem alega ser. Esse princpio pode ser garantido utilizando os trs pilares de identificao: o que eu sei (exemplo: senhas), o que eu tenho (exemplo: carto, token etc.) e o que eu sou (exemplo: biometria). Um sistema definido como forte se combinar dois ou mais desses fatores no seu processo de autenticao; 11 No repdio ou irretratabilidade: capacidade do sistema de provar que um usurio executou determinada ao no sistema. Esse talvez seja o princpio mais complicado de implementar no mundo computacional. Como garantir que nenhuma das partes poder negar a realizao de uma determinada transao, j que os usurios envolvidos podem estar a quilmetros de distncia um do outro? A resposta a esse questionamento vem da aplicao da criptografia assimtrica filiada ao uso de certificados digitais; 11 Legalidade: aderncia de um sistema legislao. O sistema deve estar em conformi dade com a poltica de segurana interna da organizao, bem como com as normas e legislaes pertinentes da nao. Baseado no princpio da legalidade, um administrador no poderia, por exemplo, realizar o monitoramento do correio eletrnico de um usurio sem o conhecimento deste. Tal ao fere diretamente os direitos fundamentais (sigilo) do cidado, garantidos pela Constituio Federal; 11 Privacidade: capacidade de um sistema de manter incgnito um usurio, impossibili tando a ligao direta da identidade do usurio com as aes por ele realizadas; 11 Auditoria: capacidade do sistema de auditar tudo o que foi realizado pelos usurios, detectando fraudes ou tentativas de ataque.
Administrao de Sistemas Linux: Redes e Segurana

Conexes de entrada: gerncia e controle de acesso


Um servio pode: 11 Estar acessvel para qualquer mquina. 11 Estar acessvel apenas para algumas mquinas. 11 No estar acessvel. Um sistema Linux capaz de oferecer vrios servios atravs da rede. Para cada servio h pelo menos um processo (um daemon) escutando em alguma porta TCP e/ou UDP.

Dependendo do servio e da mquina onde ele oferecido, trs tipos de situao podem ser desejadas: 11 Que o servio esteja acessvel de qualquer local da internet; 11 Que o servio esteja disponvel apenas para alguns hosts; 11 Que o servio no esteja acessvel.

86

Para melhor ilustrar essas trs situaes, considere o exemplo: Deseja-se oferecer um servidor web onde os usurios atualizem seus contedos via NFS. Em tal sistema, o servio web deve ser acessado de qualquer local da internet; o servio NFS deve estar acessvel apenas para a intranet. Qualquer outro servio deve estar desligado, como, por exemplo, mail, finger ou ident.

Figura 5.1 O sistema Linux: da intranet internet.

Internet

www

Servidor

NFS, www

Intranet

Veremos, a seguir, como proceder em cada uma dessas trs situaes.

Iniciar e parar servios


/etc/init.d/<servio> start|stop
Como um servio iniciado durante o boot do sistema? 11 Para cada run-level so executados os scripts do /etc/rcN.d. 22 S20ssh (inicia o servio SSH com prioridade 20). 22 K20ssh (interrompe o servio SSH com prioridade 20).

Uma das regras mais importantes da segurana de redes de computadores : no oferecer servios de rede desnecessrios. Ou seja, o administrador deve desabilitar todos os servios de rede que no sero utilizados, j que tais servios podem ser explorados por um ata cante remoto. Esses comandos param servios em execuo ou iniciam servios de maneira manual. Aps um reboot, pode ser que esses servios sejam iniciados automaticamente. Para parar um servio em execuo, basta utilizar os scripts de controle do servio, em geral localizados em /etc/init.d. Por exemplo: Para parar o servidor web Apache:

# /etc/init.d/apache stop
Para inici-lo:

# /etc/init.d/apache start
A maioria das distribuies atuais de Linux utiliza a inicializao do sistema com base no System V. Nesse sistema, para cada nvel de execuo h um diretrio /etc/rcN.d formato XYYservio, onde: 11 X pode ter o valor K, que indica que o servio deve ser finalizado, ou S, indicando que o servio deve ser iniciado; 11 YY so dois dgitos e servem para indicar a prioridade com que os servios sero iniciados. 11 Pode-se manipular esses scripts ou utilizar programas ou scripts para isso, como o update-rc.d e rcconf (Debian), ntsysv (Red Hat) e chkconfig.
Captulo 5 - Segurana Introduo

que contm links para os scripts de controle dos servios em /etc/init.d. Cada link tem o

87

Caso no haja um link para um servio especfico, no haver alterao no estado desse servio ao entrar nesse nvel de execuo. Para iniciar ou no um servio, necessrio manipular esses links na inicializao do sistema. Isso pode ser feito manualmente ou com o auxlio de scripts ou programas especiais, como, por exemplo, linuxconf, webmin, ntsysv, rcconf, chkconfig ou update-rc.d. Para utilizar o rcconf em uma mquina Debian, necessrio instal-lo:

Figura 5.2 Utilizando o rcconf.

#apt-get install rcconf

Daemon inetd
11 Capaz de iniciar vrios servios de modo dinmico. 11 Configurado pelo inetd.conf. 11 Formato das linhas:

<porta> <socket> <protocolo> <wait/nowait> \ <usurio[.grupo]> <programa> <opes do \ programa>


11 Exemplo:
Administrao de Sistemas Linux: Redes e Segurana

smtp stream tcp nowait mail /usr/sbin/exim \ exim -bs


O inetd um daemon especial, porque, ao contrrio dos outros, no oferece um servio especfico. Ele pode ser configurado para escutar em determinadas portas e iniciar outros programas quando uma conexo iniciada em uma dessas portas. Em geral, o inetd utilizado em servios com uma taxa de solicitao baixa, para evitar que os daemons ou processos desses servios sejam mantidos em memria o tempo todo. Por uma questo de desempenho, no se recomenda a utilizao do inetd nos servios que recebem muitas solicitaes em intervalos curtos de tempo, j que para cada solicitao o inetd atender requisio e chamar o programa para atender ao servio, criando uma carga adicional e desnecessria de trabalho. O daemon inetd configurado atravs do arquivo /etc/inetd.conf. Cada linha desse arquivo (exceto as linhas vazias e de comentrios) descreve um servio e possui o seguinte formato:

l
Nos sistemas baseados na distribuio Debian, o administrador poder utilizar o comando rcconf para selecionar os servios que devem ser iniciados durante a inicializao do sistema. O padro do rcconf alterar os servios apenas para o run-level atual (normalmente o run-level 3).

88

<porta> <tipo de socket> <protocolo> <wait/nowait> < usurio[. grupo]> <programa> <opes do programa>
11 O parmetro <porta> indica em que porta esse servio ser executado; possvel usar um valor numrico ou o nome do servio, desde que ele esteja descrito no arquivo /etc/services; 11 O <tipo de socket> pode ser stream, dgram, raw, rdm ou seqpacket. Em geral, utilizado o tipo stream para servios que usam o protocolo TCP e o dgram para servios que utilizam o UDP; 11 O campo <protocol> indica o tipo de protocolo de transporte; 11 O campo seguinte pode conter os valores wait ou nowait e indica se o daemon inetd deve continuar escutando nessa porta ou se deve esperar a finalizao da conexo em andamento; 11 O inetd pode executar processos com permisses de outro usurio ou grupo; 11 Por fim, os dois ltimos campos indicam o programa que deve ser executado e as opes que devem ser passadas para ele. O exemplo a seguir configura o servio de e-mail (porta 25) com o programa exim:

smtp

stream tcp nowait mail /usr/sbin/exim exim bs

Para desabilitar um servio no inetd, basta remover ou comentar sua linha no arquivo /etc/inetd.conf e reiniciar o inetd (/etc/init.d/inetd restart ). Veremos a seguir como controlar o acesso de mquinas a um servio.

tcpwrapper
11 Duas formas: daemon tcpd e biblioteca libwrap. 11 tcpd + inetd. 11 smtp stream tcp nowait mail \ /usr/sbin/tcpd /usr/sbin/exim exim -bs 11 Daemon sshd: linkado com a libwrap. 11 Controle de acesso feito pelos arquivos hosts.allow e hosts.deny. 11 hosts.allow : 22 Lista o que pode ser acessado e consultado primeiro. 11 hosts.deny : 22 Lista o que deve ser negado e consultado aps o hosts.allow. Cada linha tem a forma: 11 <daemon>: <hosts / redes>

cionar quem pode ter acesso ao servio. Para resolver esse problema, foi criado o tcpwrapper. Existem duas formas de utilizao: 11 O programa tcpd chamado antes do programa que atender a requisio (por exemplo, no inetd); 11 O tcpwrapper utilizado atravs da compilao dos daemons linkados com a biblio teca libwrap.

Captulo 5 - Segurana Introduo

Nos itens anteriores vimos apenas como executar ou no um servio, mas no como sele-

89

Tomando o exemplo do item anterior, para controlar o acesso com o tcpwrapper ao servio de e-mail utilizando o inetd, basta escrever a seguinte linha no inetd.conf :

smtp stream tcp nowait mail /usr/sbin/tcpd /usr/sbin/exim exim -bs


Para os daemons que no utilizam o inetd , mas so linkados com a libwrap , no necessrio utilizar o programa tcpd. Basta utilizar o comando ldd </caminho/binario_daemon> para verificar se um daemon foi linkado com a libwrap. O exemplo a seguir mostra que o daemon sshd foi linkado com a libwrap:

# ldd /usr/sbin/sshd linux-gate.so.1 => (0x00156000) libwrap.so.0 => /usr/lib/libwrap.so.0 (0x007c3000) < - libpam.so.0 => /lib/libpam.so.0 (0x007b9000) libdl.so.2 => /lib/libdl.so.2 (0x007b3000) [...]
Em ambos os casos de utilizao (via libwrap ou tcpd), o controle de acesso aos servios configurado atravs dos arquivos /etc/hosts.allow e /etc/hosts.deny.

/etc/hosts.allow e hosts.deny
O arquivo /etc/hosts.allow lista os hosts que podem acessar determinados servios protegidos pelo tcpwrapper. Cada linha de configurao tem a forma:

<servio>: <hosts e/ou redes>.


O exemplo a seguir permite o acesso ao daemon SSH para os hosts 192.168.0.1 e 10.0.0.2:

sshd: 192.168.0.1 10.0.0.2


De maneira anloga, o arquivo /etc/hosts.deny nega o acesso de hosts a servios e a sua sintaxe igual sintaxe do arquivo /etc/hosts.allow. Ambos os arquivos aceitam algumas palavras-chave com significados especiais, sendo as principais as palavras ALL, que significa qualquer servio ou qualquer host, e EXCEPT, para excluir algum servio ou algum host. Segue um exemplo utilizando essas palavras:

ALL: 127.0.0.1
Administrao de Sistemas Linux: Redes e Segurana

ALL EXCEPT sshd: 192.168.0. 10.0.0.0/255.255.255.0 EXCEPT 10.0.0.1


Observe que foram utilizadas duas formas de designar redes: a primeira simplesmente terminando a rede com .; e a segunda, usando uma mscara de rede. O tcpwrapper consulta primeiro o arquivo /etc/hosts.allow e, em seguida, o arquivo /etc/hosts.deny. Para uma configurao bem restritiva, poderamos colocar somente os servios ou hosts desejados no arquivo hosts.allow e inserir uma linha ALL: ALL no hosts.deny.

90

Exemplo de configurao
sshd: 192.168.0.1 10.0.0.
Palavras-chaves especiais: 11 ALL, EXCEPT 11 ALL: 127.0.0.1 11 ALL EXCEPT sshd: 10.0.0. EXCEPT 10.0.0.1 11 ALL: ALL Como liberar o SSH e negar todos os outros servios? Testando a configurao: 11 tcpdmatch e tcpdchk 22 tcpdchk v 22 tcpdmatch sshd 192.168.0.3

tcpdmatch e tcpdchk
Aps efetuar alteraes nos arquivos de controle do tcpwrapper, para verificar eventuais erros de configurao o administrador pode testar esses arquivos com o comando tcpdchk. Ao executar o comando tcpdchk com a opo v, sero listadas as regras contidas nos arquivos de configurao e tambm avisos de erro, quando eles existirem. Para testar o comportamento do tcpwrapper, o administrador de redes pode usar o comando tcpdmatch, que simula o que o tcpwrapper faria ao receber uma determinada conexo. Na sua forma mais bsica, o comando espera dois argumentos: o daemon e o cliente da conexo. Por exemplo, para testar o que aconteceria ao tentar acessar o daemon SSH a partir do cliente 192.168.0.3, basta usar o seguinte comando:

# tcpdmatch sshd 192.168.0.3

Daemon xinetd
eXtended inetd: verso estendida do inetd: 11 J vem linkado com a libwrap (dispensa o uso do tcpd). 11 Cada servio pode ser configurado em um arquivo separado dentro do diretrio /etc/xinet.d/. Sintaxe:

service <nome_servio>
Captulo 5 - Segurana Introduo

{ <atributos> = <valor> [<valor2>...] ... }


O daemon xinetd (eXtended inetd) uma espcie de daemon inetd mais poderoso. Ele j vem linkado com a libwrap e capaz de prover controle de acesso aos servios iniciados por ele. A forma de configurao tambm diferente, embora ele possua um aplicativo para converter para o seu formato o arquivo inetd.conf.

91

A configurao dos servios oferecidos pelo xinetd feita atravs do arquivo /etc/xinetd.conf. No entanto, algumas distribuies utilizam arquivos de configuraes adicionais (um por servio), pois isso facilita a criao de scritps que manipulam essas configuraes de forma automtica. Esses arquivos ficam no diretrio /etc/xinet.d/ e so includos a partir da opo includedir/etc/xinetd.d do arquivo /etc/xinetd.conf. A sintaxe para servios iniciados pelo xinetd :

service <nome_servio> { <atributos> = <valor> [<valor2>...] }


Lista de atributos, seus valores e significados: 11 socket_type (valores stream, dgram, raw, seqpacket): tipo de socket de rede. O stream usado para os servios que utilizam o protocolo TCP, e dgram para os servios que utilizam o UDP. 11 type (valores RPC, INTERNAL, TCPMUX, TCPMUXPLUS, UNLISTED): tipo de servio. O valor INTERNAL utilizado para servios providos pelo prprio xinetd, como por exemplo o servio echo. UNLISTED deve ser usado quando o servio no est listado em /etc/services. 11 yser (valor <user>): ao ser executado, o servidor assumir as permisses de <usurio>. 11 server (valor </caminho/programa>): especifica o programa que ser executado para atender o servio. 11 server_args (valor <args>): argumentos passados ao programa definido em server. 11 wait (valores yes, no): especifica se o servio single-threaded ou multi-threaded, ou seja, se capaz de atender apenas a uma conexo por vez ou a vrias ao mesmo tempo. 11 port (valor <port>): especifica a porta do servio. Se o servio estiver listado em /etc/services, o valor da porta deve ser o mesmo nos dois locais. 11 only_from (valor <ip>): permite acesso apenas a partir de <ip>. Aceita os mesmos formatos dos arquivos hosts.deny/hosts.allow. 11 no_access (valor <ip>): bloqueia o acesso a partir de <ip>. 11 log_on_success (valores PID, HOST, USERID, EXIT, DURATION, TRAFFIC): registra os acessos bem-sucedidos ao servio. Mltiplos valores podem ser utilizados, especificando a informao que deve ser logada.
Administrao de Sistemas Linux: Redes e Segurana

11 log_on_failure (valores HOST, USERID, ATTEMPT): registra as falhas de acesso a um servio. Uma falha pode ocorrer devido a um controle de acesso ou a um problema com o servio. 11 disable (valores yes, no): desabilita (yes) ou habilita (no) o servio.

92

Exemplo de configurao do servio Telnet: 11 Arquivo /etc/xinetd.d/telnet :

service telnet { socket_type wait user server = stream

= no = root = /usr/sbin/in.telnet += USERID

log_on_failure disable } = no

O exemplo a seguir configura o servio Telnet no xinetd (arquivo /etc/xinetd.d/telnet ):

service telnet { flags = REUSE socket_type = stream

wait = no user = root server log_on_failure disable } = /usr/sbin/in.telnetd += USERID = no

Secure shell (SSH)


Permite login remoto e cpia de arquivos entre mquinas. Vantagens: 11 Autenticao com chaves criptogrficas. 11 Conexo criptografada. 11 Pode ser utilizado para tunelar outras conexes.

Secure shell (SSH) um programa que permite o login remoto e a cpia de arquivos de modo seguro. Para isso, usa criptografia e, opcionalmente, autenticao baseada em chaves pblicas. O SSH substitui com vantagens os chamados R comandos, utilizados para acessar ou efetuar operaes em mquinas Linux remotas. Entre eles, temos: 11 rsh: executa um comando numa mquina remota; 11 rlogin: utilizado para iniciar uma sesso em modo terminal, em outra mquina; 11 rcp: utilizado para copiar arquivos entre uma mquina remota e a mquina local.

Captulo 5 - Segurana Introduo

22 Exemplo: X11.

93

Alm desses, o SSH pode substituir com vantagens o Telnet e, em muitos casos, at mesmo o FTP, j que todos esses programas utilizam protocolos no criptografados. O SSH composto pelo daemon sshd, pelo cliente SSH e por programas auxiliares, como o ssh-keygen, o ssh-add e o ssh-agent. Veremos, a seguir, como instalar, configurar e usar o SSH. SSH pode substituir outros comandos ou protocolos. 11 R* comandos: 22 rsh: execuo de comandos remotos. 22 rlogin: shell remoto. 22 rcp: cpia de arquivos. 11 FTP. 11 Telnet. Daemon. 11 sshd. Clientes: 11 ssh, scp e sftp. 11 Existem clientes para vrias plataformas, inclusive Windows (winscp e putty).

Configurando o daemon sshd


Arquivo de configurao: 11 /etc/ssh/sshd_config Principais palavras-chave: 11 ListenAddress <ip> 11 Protocol<1,2,2,1, 1,2> 11 PermitRootLogin <yes|no> 11 PermitEmptyPasswords <yes|no> 11 X11Forwarding <yes|no> O daemon sshd configurado atravs do arquivo /etc/ssh/sshd_config. Sua configurao

padro suficiente para sua utilizao. Porm, o administrador pode desejar alterar alguns
Administrao de Sistemas Linux: Redes e Segurana

parmetros. Cada linha do arquivo de configurao contm uma palavra-chave seguida de um valor. Linhas comentadas iniciam com o caractere #. Principais palavras-chaves, valores possveis e comentrios: 11 ListenAddress (<IP>): faz com que o daemon apenas escute no endereo configurado. Deve ser um endereo IP de uma interface ou o endereo 0.0.0.0 para escutar em todas as interfaces da mquina. 11 Protocol (1; 2; 2,1; 1,2): verso do protocolo SSH. D preferncia pela utilizao do protocolo 2. 11 PermitRootLogin (yes, no): permite ou no o login do usurio root. Alguns administra dores no permitem o login de root remotamente. 11 PermitEmptyPasswords (yes, no): permite o uso de senhas vazias. Usado principalmente para se logar com uma chave pblica sem senha. 11 X11Forwarding (yes, no): permite que o protocolo X11 seja tunelado via SSH, permitindo a execuo remota de aplicaes grficas.

94

11 AllowTcpForwarding (yes, no): permite o tunelamento de portas TCP para outros hosts. 11 AllowUsers (<padro>): se especificado, permite o acesso apenas aos usurios que com binem com os padres configurados. Caracteres * e ? so curingas. Por exemplo: aluno* combina com os logins aluno1, alunoabc etc. O padro root@host1 combina com o login root, feito a partir de host1. 11 PasswordAuthentication (yes, no): permite o login com senhas (semelhante ao telnet). 11 PubkeyAuthentication (yes, no): permite a autenticao com chaves pblicas (aplica-se apenas na verso 2 do protocolo). 11 RSAAuthentication (yes, no): permite autenticao com chaves do tipo RSA (apenas protocolo 1). 11 StrictModes (yes, no): faz com que o daemon sshd verifique algumas configuraes de segurana (por exemplo, permisses no $HOME do usurio). 11 UsePrivilegeSeparation (yes, no): aps a autenticao de um usurio, o sshd lana um processo-filho, para atender a conexo que tem apenas os privilgios do usurio conectado. Isso impede que um usurio malicioso explore o sshd para ganhar privilgios de root. 11 Subsystem (<nome> </caminho/ programa>): configura um subsistema externo, como por exemplo o sftp - server (necessrio para a utilizao do comando sftp). Principais palavras-chave: 11 AllowTcpForwarding <yes|no> 11 AllowUsers <padro> 11 PasswordAuthentication <yes|no> 11 PubkeyAuthentication <yes|no> 11 RSAAuthentication <yes|no> 11 UsePrivilegeSeparation <yes|no>

Chaves pblicas
Chaves compartilhadas x chaves pblicas. 11 A chave pblica mais segura? Por qu? 22 Protocolo SSH v1: RSA. 22 Protocolo SSH v2: RSA ou DSA. Gerando uma chave RSA:

$ ssh-keygen -t rsa Generating public/private rsa key pair. rsa): <enter para aceitar o\ padro> Enter passphrase (empty for no passphrase): <senha> Enter same passphrase again: <senha> Your identification has been saved in\ /home/usuario/.ssh/id_rsa. Your public key has been saved in\ /home/usuario/.ssh/id_rsa.pub. The key fingerprint is: c8:fd:83:c3:f5:b1:e4:cd:4e:2b:a9:1a:29:af:d2:ed\ usuario@teste.com $ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
Captulo 5 - Segurana Introduo

Enter file in which to save the key\ (/home/usuario/.ssh/id_

95

Cliente SSH
Formas de uso: 11 ssh maquina 11 ssh usuario@maquina 11 ssh -i <chave> usuario@maquina 11 ssh -X usuario@maquina 11 ssh usuario@maquina <comando>

Uso de chaves pblicas com o SSH


O SSH capaz de utilizar chaves pblicas para autenticao. Mas o que vem a ser isso? Em criptografia h, basicamente, dois tipos de chaves (ou segredos ou senhas): 11 No primeiro tipo: uma nica chave utilizada para criptografar e descriptografar um conjunto de dados; 11 No segundo tipo: chamado de chave assimtrica; utilizado um par de chaves, onde uma chave apenas criptografa dados e a outra apenas descriptografa dados. Assim, se criptografamos um dado com a chave A, ser necessrio usar a chave B para descripto grafar, e vice-versa. Uma dessas chaves denominada chave pblica, e pode ser distribuda vontade; a outra denominada chave privada, e deve ser mantida segura. Na autenticao com chaves pblicas, uma das pontas da comunicao (por exemplo, o servidor) possui a chave pblica do usurio e a utiliza para criptografar um desafio. Esse desafio enviado outra ponta (o cliente), que dever ser capaz de descriptograf-lo utilizando sua chave privada, para provar que ele o dono da chave pblica em questo. Para utilizar chaves pblicas com o SSH, primeiro necessrio gerar o seu par de chaves. Isso pode ser feito com o comando ssh-keygen. necessrio informar o tipo de chave que se deseja criar. Ou seja, RSA1 para o protocolo 1 do SSH, e RSA ou DSA para o protocolo 2. Exemplo:

$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/usuario/.ssh/id_rsa): <enter para aceitar o padro>
Administrao de Sistemas Linux: Redes e Segurana

Enter passphrase (empty for no passphrase): <senha> Enter same passphrase again: <senha> Your identification has been saved in /home/usuario/.ssh/id_rsa. Your public key has been saved in /home/usuario/.ssh/id_rsa.pub. The key fingerprint is: c8:fd:83:c3:f5:b1:e4:cd:4e:2b:a9:1a:29:af:d2:ed usuario@teste.com
Observe que o comando solicita uma frase-senha (passphrase). Por padro, o comando gera suas chaves e as coloca no diretrio .ssh do $HOME do usurio. O usurio deve, ento, inserir sua chave pblica (no exemplo anterior, est contida no arquivo id_rsa.pub) no arquivo $HOME/.ssh/authorized_keys dos hosts onde deseja se logar. Uma ateno especial deve ser dispensada s permisses do diretrio .ssh e seus arquivos. O diretrio e o arquivo que contm a chave privada devem ter permisses de leitura e escrita apenas para o usurio. O usurio deve copiar sua chave privada para os hosts onde pretende se conectar.

96

Gerando uma chave RSA, o uso do cliente SSH bastante simples e ser demonstrado em alguns exemplos. Efetuando um login no host teste.com com o usurio-exemplo e usando a autenticao por senha:

$ ssh exemplo@teste.com exemplo@teste.com password: <senha>


Efetuando o login no host teste.com , utilizando uma chave pblica e permitindo o tunelamento de conexes X11. A opo -i especifica o arquivo que contm a chave privada, e a opo -X habilita o X11 Forwarding:

$ ssh -i minhachave -X usuario@teste.com


SSH tambm pode ser utilizado de maneira no interativa. Basta acrescentar linha de comando o(s) comando(s) que se deseja executar no host remoto. O exemplo a seguir executa o comando ls la no host e finaliza a conexo:

$ ssh usuario@teste.com ls -la


SSH tambm pode ser utilizado para a cpia de arquivos. Nesse caso, utilizado o comando SCP. A especificao do destino ou da origem remota assume o formato <usuario>@<host>:<caminho>. Para copiar o arquivo1 para /home/usuario do host exemplo. com, possvel usar:

$ scp arquivo1 usuario@exemplo.com:/home/usuario


Para utilizar o SCP, necessrio conhecer previamente a localizao do arquivo na mquina remota. Outra opo para a cpia de arquivos o comando sftp (o servidor SSH deve suportar esse subsistema). O sftp funciona da mesma maneira que o comando ftp, mas com as vantagens do SSH, como a criptografia e a autenticao com chave pblica. Aps iniciar uma conexo com sftp, possvel usar os comandos ls, cd, get, put, mkdir de forma semelhante a uma sesso FTP. O exemplo a seguir mostra o comando sftp sendo utilizado para a transferncia de um arquivo para a mquina local (comando get ) e, em seguida, para a transferncia de um arquivo para a mquina remota (comando put ):

$ sftp usuario@exemplo.com sftp> cd /tmp sftp> get arquivo1 arquivo1 100% 1044 79.7KB/s 00:00 sftp> put arquivo2 arquivo2 100% 990 75.3KB/s 00:00 sftp> bye
Captulo 5 - Segurana Introduo

Um recurso bastante poderoso do SSH a possibilidade de se usar uma conexo segura para tunelar portas TCP. Isso permite utilizar conexes SSH para proteger conexes que, de outra forma, seriam inseguras. Imagine fazer o download de e-mails atravs do protocolo POP3 (que roda na porta 110 do servidor). Pode-se criar um tnel com o SSH da mquina cliente para o servidor com o comando:

$ ssh usuario@exemplo.com -L 1100:servidor:110


Com esse comando, qualquer conexo feita na porta 1100 do cliente seria tunelada para a porta 110 do servidor. Observe que se o servidor POP3 e a mquina para onde est sendo feita a conexo SSH forem os mesmos, possvel utilizar a opo -L 1100:localhost:110.

97

SSH tambm permite o tunelamento de portas ou conexes TCP:

ssh usuario@maquina -L <porta_local>:<host>:<porta> ssh usuario@maquina -L 1100:localhost:110 O que isso faz? ssh usuario@maquina -L 3128:proxyweb:3128

Logs
11 Contam a histria do sistema. 11 Contm registros de eventos, avisos e erros. 11 Auxiliam na deteco de problemas. 11 So administrados pelo syslog. 22 Embora alguns daemons no utilizem o syslog. 11 necessrio analisar logs se o sistema est funcionando corretamente? Por qu?

Os logs do sistema so importantes aliados do administrador de redes. Os logs contam a histria do sistema. Neles encontramos eventos normais (e tambm avisos e erros) registrados pelo kernel e por outros daemons e programas. Os logs devem ser utilizados pelo administrador no s na resoluo de problemas, mas tambm para acompanhar a sade do sistema. Principais arquivos: 11 /var/log/messages 11 /var/log/auth.log 11 /var/log/daemon.log Alguns arquivos so binrios, como lastlog e faillog. Utilize os comandos: 11 last. 11 lastlog. 11 faillog.

Anlise de arquivos de log


Administrao de Sistemas Linux: Redes e Segurana

Em geral, os arquivos de log ficam no diretrio /var/log. O nmero de arquivos e seu contedo variam de acordo com os daemons ou processos que a mquina executa e da configurao do programa syslog. No entanto, alguns programas podem criar seus arquivos de log diretamente (geralmente no arquivo /var/log ) sem o auxlio do syslog. Os arquivos que devem merecer mais ateno do administrador variam de acordo com os servios oferecidos pelo sistema. H os que devem sempre receber ateno: 11 /var/log/messages: contm mensagens diversas do sistema; 11 /var/log/auth.log : contm informaes relacionadas a autenticaes; 11 /var/log/daemon.log : contm informaes de daemons diversos. Em vez de texto, alguns arquivos dentro do /var/log mantm informaes em modo binrio, como os arquivos lastlog e faillog. Para a leitura do contedo desses arquivos, so utilizados

98

os comandos: lastlog, que lista o ltimo login de cada usurio; last, que lista os ltimos logins feitos no sistema; e faillog, que lista as tentativas malsucedidas de logins no sistema. Ao analisar os logs, o administrador deve procurar por eventos que normalmente no deveriam ocorrer, como, por exemplo: logins de root vindos de mquinas estranhas e em horrios que normalmente o administrador no logaria no sistema; daemons que morrem sem razo aparente; interfaces de rede colocadas em modo promscuo. A tarefa de anlise de logs pode ser bastante complexa em um sistema que gera uma grande quantidade de logs. Para facilitar essa tarefa, o administrador pode escrever scripts que procurem por determinados padres dentro dos arquivos, ou utilizar um dos muitos analisadores de log disponveis, como o swatch (http://sourceforge.net/projects/swatch/) e o logcheck (http://sourceforge.net/projects/sentrytools/). O que procurar nos logs? 11 Logins remotos de mquinas desconhecidas. 11 Logins em horrios no usuais. 11 Daemons morrendo. 11 Interfaces colocadas em modo promscuo. 11 Uploads annimos no FTP. 11 Entre outras informaes. 11 Logs remotos ou Logs hosts. De fcil implementao: 11 syslogd -r no log host. 11 <facility.priority> @<hosts> 22 No arquivo /etc/syslog.conf das outras mquinas.

Logs remotos
Alm dos hosts, roteadores e at mesmo switches podem ser configurados para fazer o log remoto. A centralizao dos logs facilita no s a segurana, mas a prpria administrao da rede. Como os logs guardam muitas evidncias de aes maliciosas de um ataque, bastante comum que um atacante, aps invadir uma mquina, apague ou altere os logs do sistema para esconder seus rastros. Para evitar isso, possvel configurar o sistema para que ele efetue os seus logs pela rede em um outro sistema. A mquina responsvel por receber os logs atravs da rede denominada loghost e, em geral, essa sua nica funo.
Captulo 5 - Segurana Introduo

A configurao bsica para que o syslogd receba logs pela rede feita acrescentando a opo -r ao comando de inicializao do daemon. Nos hosts que vo gerar os logs necessrio editar o arquivo de configurao do syslog. E para cada priority ou facility que se deseje registrar, deve-se acrescentar @<log host> lista de aes. O exemplo a seguir, uma linha do arquivo /etc/syslog.conf, faz com que o daemon syslog registre os eventos de logins na mquina lhost .exemplo:

authpriv.* @lhost.exemplo
Observe que o servio syslog deve ser reiniciado aps uma alterao na configurao.

99

Analisadores de logs
11 A atividade de ler logs difcil, repetitiva e com poucos resultados visveis. 11 Necessidade de associar registros entre os diversos equipamentos da rede. 11 Exemplos: logcheck, swatch e log-analysis.

Logcheck
Projetado para executar automaticamente e verificar o sistema de arquivos de log em busca de registros que permitam identificar violaes de segurana e atividades incomuns. 11 Instalao:

#apt-get install logcheck logcheck-database logtail


11 Arquivo de configurao: 22 /etc/logcheck/logcheck.conf 11 Paranico (paranoid). 11 Servidor (server). 11 Estao de trabalho (workstation). Em muitos ambientes computacionais a tarefa de ler logs um atividade difcil, repetitiva e com poucos resultados visveis. Um anlise aprofundada exige que o usurio possua grandes conhecimentos do sistema, pois os logs registram tudo que acontece com o kernel, com os daemons e demais utilitrios. No arquivo /var/log/syslog, por exemplo, so gravadas automaticamente entradas e sadas de usurios ou invasores, comandos efetuados, mensagens, etc. Outro problema em acompanhar diariamente os logs est relacionado com a necessidade de associar registros entre os diversos equipamentos da rede, buscando, por exemplo, rastrear os passos de uma possvel invaso. Um exemplo seria a necessidade de, ao verificar o log de um servidor web e encontrar um registro suspeito, ter de cruzar essa informao com o log de um roteador ou firewall. Infelizmente no existe uma norma que defina um padro nico e uniforme para o registro de logs em qualquer sistema ou aplicao. Dessa forma, cada desenvolvedor constri o seu prprio padro, dificultando, ainda mais, sua associao com outro registro. Nesse cenrio aparecem ferramentas como o binrio logcheck , que permite filtrar e asso Administrao de Sistemas Linux: Redes e Segurana

l
Por padro, o logcheck executado de hora em hora ou aps um reboot da mquina. Seu funcionamento consiste, basicamente, em comparar as linhas dos arquivos de log do sistema com sua base de informaes. Quando uma linha possui um correspondente com a base de dados, uma mensagem enviada para o administrador informando o problema.

ciar registros de forma simples e rpida. O logcheck foi projetado para executar automa ticamente e verificar o sistema de arquivos de log em busca de registros que permitam identificar violaes de segurana e atividades incomuns. O logcheck utiliza um programa chamado logtail, que lembra da ltima posio lida (linha) em um arquivo de log. Dessa forma ele evita registrar um mesmo evento vrias vezes.

Instalao
Para instalar o logcheck em um ambiente Debian, execute:

#apt-get install logcheck logcheck-database logtail

100

Configurao
As configuraes do logcheck esto disponveis no arquivo /etc/logcheck/logcheck.conf. Os principais parmetros so o usurio padro para o qual sero enviados os relatrios de alerta (SENDMAILTO) e o nvel de detalhe da anlise (REPORTLEVEL). Os trs nveis de detalhe possveis so: workstation , server e paranoid. O nvel server (servidor) o nvel padro, o paranoid (paranico) recomendado apenas para mquinas de alta segurana executando poucos servios e workstation (estao de trabalho), para mquinas relativa mente no crticas. Se desejar adicionar novos arquivos de logs, adicione-os em /etc/logcheck/logcheck.logfiles . Esse arquivo j est configurado para utilizar o syslog. Para executar o logcheck, basta digitar no shell:

#su s /bin/bash c /usr/sbin/logcheck logcheck


O que o atacante faz aps invadir uma mquina? 11 Apagar logs. 11 Instalar rootkits. 22 Modificam binrios e/ou mdulos do kernel. Por mais atento que seja, nenhum administrador est totalmente livre de ter uma de suas mquinas invadidas. Embora raro, pode acontecer de um atacante explorar uma vulnerabi lidade ainda no conhecida ou divulgada de algum daemon, para a qual ainda no h uma correo disponvel. Ao invadir um sistema, o atacante vai, inicialmente, tentar apagar seus rastros e garantir uma forma de controlar a mquina, para permitir que ele se logue novamente. Uma forma de fazer isso atravs dos chamados rootkits, que so conjuntos de programas para esses objetivos. Em geral, os rootkits sobrescrevem binrios do sistema (por exemplo, init , ls , netstat) e, em alguns casos, carregam mdulos no kernel. A seguir sero apresentadas algumas aes que podem ser tomadas para detectar um sistema comprometido, alm de dicas sobre como proceder no caso de o sistema ter sido invadido.

Detectando uma invaso


11 Logs. 11 Arquivos escondidos. 11 Binrios modificados (soma MD5). 11 Arquivos de histrico de shell. 11 Estado das interfaces.

O grau de facilidade ou dificuldade em se detectar um sistema invadido vai depender da habilidade do atacante. Indcios de invaso podem ser obtidos: atravs dos logs do sistema; do arquivo de histrico do shell do root e/ou de usurios; de logs do firewall; de falhas (segmentation fault) em comandos do sistema; de arquivos escondidos (como binrios dentro

w
Baixe o rkhunter no site http://sourceforge.net

do /dev ); comparando a soma MD5 dos principais binrios do sistema com os valores con tidos nos arquivos de informaes do pacote ao qual o binrio pertence; e atravs de alguns programas especficos para esse fim, como o rkhunter, o tripwire, OSSEC, Snort e o samhain. O tripwire, o OSSEC, o Snort e o samhain so utilizados para verificao da integridade de arquivos. J o rkhunter uma ferramenta que verifica uma srie de vulnerabilidades do sistema em busca de indcios de invaso.

101

Captulo 5 - Segurana Introduo

11 Trfego de rede.

RootKit Hunter
Rootkit Hunter, normalmente chamado de RKH, uma ferramenta de segurana para anlise e monitoramento para sistemas POSIX. Ajuda na deteco de rootkits, malwares e aponta falhas nas prticas de segurana. Rootkits tm estruturas e arquivos que so simi lares s assinaturas dos vrus. Tambm oferece alguns tipos de busca que podem ser de grande valia para o administrador. Uma dessas buscas a busca por arquivos que tenham tido as suas propriedades alteradas. A melhor forma de trabalhar fazer a instalao do rkh logo aps a instalao do Sistema Operacional. Rootkit Hunter no uma ferramenta reativa, ele apenas informa as ameaas encontradas. A investigao e tomada de aes funo do Administrador de Sistemas. O rkh inclui: 11 Documentao em cada distribuio, que tambm pode ser acessada on-line, 11 Lista de discusso rkhunter-users; 11 FAQ; 11 Arquivo de configurao: /etc/rkhunter.conf ou /usr/local/etc/rkhunter.conf. Rkhunter verifica o sistema em busca de anomalias. Procedimentos ao se detectar uma invaso: 11 Conter a ao do atacante (exemplo: regras de firewall). 11 Levantar provas. 11 Avaliar a extenso do que foi comprometido. 11 Verificar o backup (pode estar comprometido tambm). 11 Se for possvel, reinstalar o sistema. 11 Notificar um Centro de Segurana e Resposta a Incidentes (CSIRT). Os procedimentos ps-invaso vo variar de acordo com a importncia do sistema comprometido e com a quantidade de informaes que se deseja levantar da mquina compro metida. Alguns sistemas podem ser simplesmente retirados de operao, enquanto outros devem permanecer em operao sem interrupo. Caso deseje obter mais informaes da mquina comprometida, uma srie de passos necessria:
Administrao de Sistemas Linux: Redes e Segurana

11 Salvar a lista de conexes abertas da mquina. Isso deve ser feito com um binrio do netstat que no tenha sido comprometido; 11 Impedir que o atacante tenha acesso ao sistema ou que o sistema seja utilizado para atacar outros sistemas. Isso pode ser feito tirando a mquina da rede ou criando regras no firewall que impeam essas conexes. Caso deseje obter o mximo de informaes do sistema comprometido e usar essas informaes como provas contra um invasor, necessrio seguir um conjunto de passos que vo alm do objetivo desse item, mas que incluem: criao de imagens dos sistemas de arquivos comprometidos com somas de verificao MD5; imagens do swap e da memria da mquina etc. Todos esses passos devem ser rigorosamente documentados. Para colocar o sistema novamente em operao, recomendvel que se faa uma nova instalao do sistema, j que pode ser difcil determinar exatamente o que foi comprometido e

102

instalar o rkhunter. Tambm devem ser verificados os backups da mquina, j que ela pode ter sido comprometida h tempos e os backups terem guardado binrios comprometidos. Por fim, se sua instituio possui um grupo de segurana, notifique-o da invaso. Caso contrrio, notifique um Centro de Segurana e Resposta a Incidentes (CSIRT), que pode ser encontrado em Informaes de Contato de Grupos de Segurana Brasileiros no site do CERT.br.

Procedimentos de deteco de invaso


Anlise forense: 11 Requer conhecimento especializado e procedimentos padronizados. 11 Coleta de evidncias: 11 Imagens dos sistemas de arquivos. 11 Imagens do swap e da memria. 11 Lista de conexes abertas. 11 Medidas preventivas teis: 11 Manter os relgios das mquinas sincronizados; a anlise de logs depende de logs com horrios corretos. 11 Desabilitar servios no utilizados e restringir o acesso a outros servios que no devem ser pblicos. 11 Substituir programas ou protocolos sem criptografias (exemplo: SSH em vez de Telnet, https em vez de http). 11 Manter backups das mquinas, principalmente das configuraes e dados de usurios. 11 Manter os sistemas atualizados. 11 Anlisar logs e sempre que possvel concentrar os logs num loghost. 11 Estabeler procedimentos de armazenamento e monitoramento dos logs. Algumas medidas simples podem tornar um sistema mais seguro, como por exemplo: 11 Manter os relgios das mquinas sincronizados. A anlise de logs depende de informa es com horrios corretos. Uma dica usar o ntpdate;

11 Desabilitar servios no utilizados e restringir o acesso a outros servios que no devem ser pblicos; 11 Substituir programas e protocolos sem criptografia. Por exemplo, SSH em vez de Telnet; https em vez de http;

11 Manter-se sempre atualizado. Uma forma participar das listas de discusso sobre os principais softwares e sistemas utilizados na rede; 11 Analisar logs e, sempre que possvel, concentrar os logs num loghost ; 11 Estabelecer procedimentos de armazenamento e monitoramento dos logs. Finalmente, importante ressaltar que o administrador deve se manter atualizado atravs de boletins, mailing lists e outras fontes de informao.

103

Captulo 5 - Segurana Introduo

Leia a RFC 2196, que trata de polticas de segurana para redes conectadas internet, e os documentos do NBSO no site do CERT. br, em Prticas de Segurana para Administradores de Redes Internet .

11 Manter backups das mquinas, principalmente das configuraes e dados de usurios; 11 Executar periodicamente o rkhunter; 11 Manter os sistemas atualizados;

104

Administrao de Sistemas Linux: Redes e Segurana

Roteiro de Atividades 5
Atividade 5.1 Run Level
Descubra o atual nvel de execuo (run level) do sistema atravs do comando runlevel. Para esse run level, que daemons esto sendo executados e em que ordem eles so iniciados?

Atividade 5.2 Run Level (continuao)


Interrompa o daemon sshd. Em seguida:
1. Remova-o da inicializao do sistema. 2. Configure a inicializao de modo que o daemon ssh seja iniciado com prioridade 60 nos

run levels 2, 3, 4 e 5, e encerrado com prioridade 25 nos run levels 0, 1 e 6.


3. Reinicie o daemon sshd.

Atividade 5.3 XInetd


Sobre o daemon xinetd:
1. Descubra quais servios so iniciados por esse daemon. 2. Edite os arquivos de configurao do daemon xinetd, de modo que apenas o servio echo

continue ativo.

Atividade 5.4 tcpwrapper


Sobre o tcpwrapper:
1. Configure o servio telnetd no xinetd. 2. Restrinja o acesso ao servio telnet, de modo que apenas o localhost (127.0.0.1) possa

acess-lo.
3. Permita que apenas o servio sshd seja acessado pelo host 192.168.200.3 e pelo localhost

(127.0.0.1). Verifique se o sshd foi linkado com a libwrap.

Atividade 5.5 sshd


Configure o daemon sshd para que apenas o usurio root e mais um usurio (a sua escolha) possam efetuar logon. Teste sua configurao.

Atividade 5.6 sshd: chave RSA


Crie uma chave RSA para o seu usurio e a utilize para se logar no sistema. Crie uma chave sem senha e configure o daemon sshd para que ele aceite esse tipo de login.

105

Captulo 5 - Roteiro de Atividades

Atividade 5.7 SCP


Crie um pequeno script que faa o backup de um diretrio qualquer e o copie atravs do comando scp para o diretrio /backup de outra mquina. Utilize a chave RSA criada na ativi dade anterior.

Atividade 5.8 Logs


Descubra quantas vezes o usurio root efetuou login, de acordo com o registrado nos logs atuais. Descubra, tambm, a que horas e de onde esses logins foram feitos.

Atividade 5.9 syslogd


Configure o seu syslog para que ele aceite logs de outras mquinas. Configure, tambm, para que a facility auth seja logada na mquina de outro aluno ou equipe. Dica: combine essa atividade com outras equipes ou alunos.

Atividade 5.10 Procurando por indcios de invaso


Procure por indcios de invaso na sua mquina. Para isso, verifique:
1. Se a interface de rede est em modo promscuo; procure tambm nos logs; 2. Verifique a soma MD5 dos binrios netstat e ifconfig. Dica: md5sum. 3. Verifique se o usurio root utilizou os comandos ftp e/ou wget para baixar algum arquivo.

Dica: procure no .bash_history.


4. Instale e execute o rkhunter.

Instalao do rkh:

# aptget update # aptget install rkhunter


Execuo do rkh (veja no man as diversas opes de execuo). Lembrar sempre de fazer as atualizaes da base de dados.

# rhkhunter --check ou
Administrao de Sistemas Linux: Redes e Segurana

# rkhunter -c
O aluno troca o proprietrio de um dos binrios. Use o comando kill.

# chown aluno:aluno kill


Rode o rkh de novo e verifique os binrios que foram adulterados.

# rkhunter -c
No se esquecer de voltar com o owner :

# chown root:root kill

106

6
Segurana Sistema Operacional
Elaborar poltica de segurana utilizando como referncia as Security Polices do SANs;

objetivos

entender os principais problemas de segurana antes, durante e depois da instalao de um sistema Linux; implementar configuraes que aumentem sensivelmente o nvel de segurana do Sistema Operacional Linux; instalar e configurar alguns aplicativos que buscam aumentar a segurana do Sistema Operacional e identificar possveis ataques.

conceitos

Poltica de segurana; problemas de segurana do sistema Linux; configuraes e aplicativos de segurana do Sistema Operacional Linux; identificao de ataques.

Procedimentos para instalao


Segundo o manual de segurana do Debian, so tarefas que devem ser realizadas para garantir um ambiente seguro: 11 Decidir de quais servios voc necessita e limit-los. 11 Restringir usurios e permisses no sistema. 11 Proteger os servios oferecidos pelo sistema. 11 Utilizar ferramentas para garantir que o uso desautorizado seja detectado. As ltimas dcadas foram marcadas pela integrao dos computadores no mundo e na vida das pessoas. Para isso, foram criados servios baseados em nosso modelo social, o que permitiu a conexo entre redes financeiras, supermercados, lojas, clnicas, postos de sade e at mesmo hospitais. Hoje, podemos comprar qualquer objeto pela rede de

computadores, manipular informaes bancrias, acessar diversos bancos de dados que contm grande parte do conhecimento humano e, se necessrio, at anunciar um produto pessoal em um site de trocas. Tanta informatizao e facilidade de comunicao trouxeram para as organizaes uma nova preocupao: como anda a segurana de seus sistemas e informaes neste novo mundo digital? Proteger-se contra invasores passou a ser um grande diferencial estratgico e de competitividade medido e acompanhado por clientes e fornecedores. O processo de segurana de um ambiente computacional deve partir de um bom mecanismo de segurana fsica que consiga restringir e limitar ao mximo o acesso de pessoas estranhas ao ambiente. So exemplos de controles de segurana fsica o uso de circuitos internos de TV, guarda armada, diviso da empresa em permetros, controles biomtricos de acesso etc. Bons

107

Captulo 6 - Segurana Sistema Operacional

controles fsicos tendem a provocar uma falsa sensao de segurana, pois esto muito mais evidentes do que os controles lgicos implementados pela organizao. Neste Captulo sero vistos os principais aspectos lgicos que devem ser considerados para que um sistema Debian possa ser classificado como seguro. Observe que a palavra seguro encontra-se em destaque. Isso acontece porque, por mais esforo que se faa, nunca poderemos garantir que um sistema seja 100% seguro. As configuraes e recomen daes aqui descritas foram baseadas no manual de segurana do Debian e em um artigo de Antonio Cludio Sales Pinheiro. Antes de comear, importante refletir sobre os servios que sero disponibilizados pelo novo servidor que est sendo adicionado rede interna da empresa. Essa reflexo torna-se necessria, j que grande parte dos controles e servios a serem instalados dependem dire tamente da destinao que ser dada ao equipamento. Entre os pontos a serem analisados nesse momento encontram-se: 11 Decidir de quais servios voc necessita e limit-los; 11 Restringir usurios e permisses no sistema; 11 Proteger os servios oferecidos pelo sistema; 11 Utilizar ferramentas para garantir que o uso desautorizado seja detectado. Configurando a BIOS e protegendo fisicamente o hardware. Particionando o sistema: 11 /tmp: no permitir que arquivos sejam executados a partir desse diretrio. 11 /var: colocar em partio separada. 11 /etc, /bin e /sbin: montar em um CD-ROM. 11 /home: ativar opo de quota. Grande parte dos controles de segurana podem ser superados caso o atacante tenha acesso fsico mquina. Isso acontece porque um atacante poderia, simplesmente, carregar um Sistema Operacional utilizando uma unidade de mdia externa (CD, pendrive ou disquete) e, com isso, contornar qualquer restrio de permisso configurada no Linux. Na prtica, apenas os arquivos cifrados dentro do disco estaro protegidos (desde que a chave no esteja no mesmo local). Em um servidor de produo, recomendado que o administrador remova qualquer possi Administrao de Sistemas Linux: Redes e Segurana

bilidade de realizar a carga do Sistema Operacional utilizando uma mdia externa. Para confi gurar essa opo necessrio acessar o Setup (normalmente s apertar a tecla del aps o sinal de post) e modificar a sequncia de boot definindo o disco rgido como o primeiro mecanismo de carga. Para que o atacante no consiga modificar essa opo, necessrio proteger o sistema configurando, tambm, uma senha para acesso ao BIOS. Se um atacante conseguir roubar o disco rgido do servidor e instal-lo em outro equipa mento, ele conseguir remontar, sem problemas, os arquivos disponveis no disco. Como os discos rgidos so hardwares pequenos, provvel que um atacante consiga retir-lo da empresa sem ser notado, devendo o administrador, portanto, instalar trancas e cadeados no gabinete do servidor.
BIOS Basic Input/Output System (Sistema Bsico de Entrada/Sada). um programa de computador pr-gravado em memria permanente (firmware) executado por um computador quando ligado. Ele responsvel pelo suporte bsico de acesso ao hardware, bem como por iniciar a carga do Sistema Operacional.

108

Particionando o sistema
A escolha do modo como o disco rgido do servidor ser dividido entre os diversos diret rios de um Linux depender, exclusivamente, dos servios que esse servidor disponibilizar para a rede (exemplo: um servidor de arquivos teria, normalmente, grande parte do disco rgido destinado partio /home, enquanto um firewall possuir uma partio /var maior). Basicamente, os diretrios listados a seguir devem estar instalados em parties diferentes e com permisses prprias. Ao lado de cada diretrio esto comentrios que explicam as abordagens de acordo com os servios disponibilizados. 11 /tmp: responsvel por armazenar os arquivos que sero manipulados temporariamente no ambiente. Na prtica, qualquer usurio do sistema pode escrever arquivos nesse dire trio, compil-los e execut-los sem nenhum tipo de restrio. 11 /var: responsvel por armazenar os logs e registros do sistema. Um problema comum em mquinas Linux est associado ao fato de que, quando o espao no disco termina (muitas vezes provocado pelo crescimento excessivo do log), o Sistema Operacional para de fun cionar. Um atacante poderia provocar um ataque de negao de servio simplesmente enviando uma grande quantidade de pacotes que fossem registrados pelo sistema. Separar o diretrio /var minimizar os ataques de negao de servio, porm poder dificultar a identificao do atacante, j que alguns logs podero ser perdidos. 11 /etc , /bin, /sbin: responsveis, respectivamente, por armazenar os arquivos de confi gurao do ambiente, os binrios de uso geral e os binrios de uso exclusivo do admi nistrador. Em sistemas onde exista uma grande necessidade de segurana, pode ser interessante armazenar e disponibilizar esses diretrios em um CD-ROM. Esse procedimento evitar que um atacante, ao comprometer um sistema, modifique algum arquivo de configurao ou binrio que possa lhe garantir o retorno ao ambiente sem ser detectado. 11 / home: responsvel por armazenar os arquivos dos usurios. Qualquer diretrio que um usurio possa escrever deve estar em uma partio separada e usar quotas de disco. Isso reduz o risco de um usurio encher o sistema de arquivos e provocar uma negao de servio. Regras importantes para o usurio root: 11 Utilize uma senha de difcil deduo. 11 Crie um usurio simples para o administrador do sistema e adicione-o ao grupo wheel. 11 No execute o ambiente X ou qualquer outra aplicao de usurio como root. 11 Nunca permita ao usurio root logar diretamente no sistema.
Captulo 6 - Segurana Sistema Operacional

11 Sempre use caminhos completos quando logado como root. 11 Se um usurio s precisa rodar alguns comandos como root, considere usar o comando sudo. 11 Nunca deixe o terminal quando voc estiver logado como root. O usurio root o principal usurio do sistema e deve ser utilizado somente quando for estritamente necessrio. Por padro, esse usurio no possui nenhum tipo de restrio e, caso um atacante consiga acesso como root em um servidor, a nica forma de confiar nova mente no sistema reinstalando-o completamente.

109

Quando falarmos em usurio root, devem ser seguidas algumas regras: 11 Utilize uma senha de difcil deduo, que combine letras, nmeros e caracteres especiais e tenha mais de 8 caracteres; 11 Crie um usurio simples para o administrador do sistema e o adicione-o ao grupo wheel para que este possa se tornar root sempre que for necessrio executar alguma atividade administrativa complexa; 11 No execute o ambiente X ou qualquer outra aplicao de usurio como root. Observe que se uma vulnerabilidade existir em uma aplicao executada com as permisses do usurio root e for explorada com sucesso, permitir que sejam executados comandos sem nenhum tipo de controle ou restrio; 11 Nunca permita ao usurio root logar diretamente no sistema; 11 Sempre use caminhos completos quando logado como root (exemplo: o caminho completo do binrio ifconfig /sbin/ifconfig ). Se uma varivel PATH for comprometida, o root pode acabar executando uma aplicao sem notar o comportamento suspeito do ambiente; 11 Se um usurio s precisa rodar alguns comandos como root, considere usar o comando sudo; 11 Nunca deixe o terminal quando voc estiver logado como root.

Execute o mnimo de servios


# rcconf # dpkg l #apt-get remove

No captulo anterior foi explicada a importncia da remoo de todos os servios desnecessrios do servidor. Lembre-se, apenas, de que quanto maior for a quantidade de servios, maior ser o nvel de risco. Afinal, um atacante pode explorar vulnerabilidades de um servio para comprometer a segurana do Sistema Operacional. No se esquea de desativar todos os servios desnecessrios utilizando o binrio rcconf e, sempre que possvel, substitua o inetd pelo xinetd.

Instale o mnimo de softwares


Removendo o compilador Perl:
Administrao de Sistemas Linux: Redes e Segurana

# for i in /bin/* /sbin/* /usr/bin/* /usr/sbin/*; do [ -f $i ] && { type=`file $i | grep -il perl`; [ -n $type ] && echo $i; }; done
Ao realizar a instalao de um servidor Linux, selecione o modo de instalao mnima e adicione, apenas, os binrios ou programas que voc vai utilizar. Essa recomendao evitar que um atacante explore alguma vulnerabilidade em algum binrio desnecessrio e com prometa a segurana do Sistema Operacional. Para listar todos os pacotes ou programas instalados em um Sistema Operacional Debian, execute:

# dpkg l
Para remover um determinado pacote poder ser utilizado o binrio APT:

# apt-get remove <pacote>

110

Tambm devem ser removidos todos os compiladores instalados, evitando que o atacante possa compilar alguma aplicao na mquina. Observe que em um sistema Debian existe um grande problema quando se tenta remover o compilador Perl, pois muitos binrios dependem dessa ferramenta para funcionar. Antes de remov-lo, execute o script a seguir e verifique quais sero as aplicaes que vo deixar de funcionar aps a remoo.

# for i in /bin/* /sbin/* /usr/bin/* /usr/sbin/*; do [ -f $i ] && { type=`file $i | grep -il perl`; [ -n $type ] && echo $i; }; done

Leia as listas de segurana do Debian (security mailing lists)


Mantenha-se sempre atualizado e saiba que os atacantes so criaturas que leem bastante. Assine boas listas de segurana e participe de fruns sobre o assunto. Sempre que possvel, se associe, tambm, a fruns de hackers e crackers, e fique observando as estratgias discutidas para avaliar a melhor forma de proteo. A atividade de administrao requer muita leitura e boa percepo para filtrar os contedos interessantes. Para ajud-lo nessa difcil tarefa destacamos os seguintes fruns, listas e sites: 11 Site do Grupo Percia Forense: http://www.guiatecnico.com.br/periciforense 11 Site SANS: http://www.sans.org/ 11 Site Mdulo: http://www.modulo.com.br 11 Security Focus: http://www.securityfocus.com/ 11 Lista CISSP-BR : http://tech.groups.yahoo.com/group/cisspBR/ 11 Lista Debian: http://lists.debian.org 11 Grupo de Trabalho em Segurana de Redes: http://gts.nic.br 11 Dragon Research Group: http://dragonresearchgroup.org

Poltica de segurana
Toda implementao de novo servio dentro de um ambiente deve possuir poltica aprovada pela alta administrao. A poltica de segurana de uma organizao um conjunto de documentos que desenham a forma como a rede e os servios sero fornecidos. Nela definido o que considerado

como uso aceitvel dos recursos computacionais. Em alguns ambientes, a poltica pode ser de comandos executados pelos usurios e seus diretrios de pessoal. Essas atividades permitem diagnosticar problemas e servem como guia para as aes de auditorias. Quando realizadas sem o conhecimento dos usurios, podem gerar srios problemas judiciais para a empresa e para o administrador. Toda implementao de um novo servio dentro de um ambiente deve possuir uma poltica associada, aprovada pela alta administrao, documentada e divulgada plenamente. A poltica assegura a tranquilidade que o administrador precisa para impor certas restries e dificuldades de acesso ao ambiente, atendendo aos interesses da empresa. Quando criar polticas, lembre-se de que os textos devem ser fceis de ler. Uma poltica de segurana deve, no mnimo, conter os seguintes assuntos:
Captulo 6 - Segurana Sistema Operacional

utilizada para autorizar a organizao e interceptar trfego de rede, inspecionar o histrico

111

11 Uso aceitvel; 11 Protees de tela e cuidados com senhas; 11 Baixando e instalando software; 11 Informaes a respeito da monitorao dos usurios; 11 Uso de software de antivrus; 11 Cuidados com informaes sigilosas (qualquer forma escrita, papel ou digital); 11 Desligando o PC antes de sair; 11 Uso de criptografia; 11 Cuidados com laptops durante viagens e estadias em hotis. Diferentes usurios podem precisar de diferentes nveis ou tipos de acesso, e assim sua poltica pode variar para acomodar a todos.

w
Para ajud-lo na elaborao das polticas de segurana, verifique alguns exemplos no site do SANS: http://www.sans.org/

Fortalecendo o sistema
Atualizaes de segurana:

# apt-get update # apt-get upgrade


Configurao da senha do Grub: 11 Arquivo /boot/grub/ grub.cfg. Restringindo o uso do console: 11 Remover do arquivo /etc/securetty todas as linhas que contm as palavras vc e tty. Desativando a reinicializao do sistema com as teclas CTRL+ALT+DEL: 11 Comente a seguinte linha no arquivo /etc/inittab:

# ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now


Nesse momento sero realizadas algumas configuraes simples que permitem aumentar de forma significativa a segurana de um Sistema Operacional Linux Debian.

Atualizaes de segurana
Uma das principais tarefas realizadas por um administrador manter atualizados todos
Administrao de Sistemas Linux: Redes e Segurana

os sistemas operacionais da rede. Muitos dos problemas de segurana encontrados em um sistema operacional so corrigidos e disponibilizados para download pelo fabricante. No caso do Linux Debian, por se tratar de um software livre, existe um grupo especiali zado em discutir e fornecer pacotes contendo as correes para os problemas de segurana encontrados: http://security.debian.org. Para atualizar o sistema, necessrio inserir a seguinte linha no arquivo /etc/apt/sources.list. Por padro, este link j est configurado na verso mais recente do Debian. Para realizar a atualizao, execute como root:

# apt-get update # apt-get upgrade

112

Configurar senha do Grub


Boot loader o primeiro programa a ser executado quando um computador ligado. o responsvel por carregar e passar o controle para o kernel do SO escolhido (Debian, no nosso caso). O Grub um boot loader utilizado pelo Linux para gerenciar a carga de um ou vrios sistemas operacionais em um mesmo computador. Ele oferece a possibilidade de uma pessoa no autorizada ter acesso mquina, e atravs de um reboot alterar a senha de root, colocando o sistema em single mode usando apenas o parmetro <name-of-your-bootimage> init=/bin/sh no aviso de boot. Este modo (single) permite controle total do sistema sem a exigncia de senha. Para gerar hash password para o Grub, deve ser utilizado o comando grub-mkpasswd-pbkdf2.

Enter password: Reenter password: Your PBKDF2 is grub.pbkdf2.sha512.10000.86C2D42BDAE707F3C066EB74C809F299091DAE46F6B 519DEF16A74925D0546F6E51A46A11BEF697E0DE88A287334E206D112D48C9137938 B21098C6F4FC0378C.7A9F18E6A832091514368B3847EB767FE3EA9D0B5353894237 E2260F198EE5BA7FE40F395B9BA032AFCF328DE1588C727C493113889B31588B83F 73C19A1BB31 Esse string dever ser colocado no final do arquivo /etc/grub.d/00_ header: cat << EOF set superusers=usuario password_pbkdf2 usuario grub.pbkdf2.sha512.10000.86C2D42BDAE707FC06 6EB74C809F299091DAE46F6B519DEF16A74925D0546F6E51A46A11BEF697E0DE88A2 87334E206D112D48C9137938B21098C6F4FC0378C.7A9F18E6A832091514368B3847 EB767FE3EA9D0B5353894237E2260F198EE5BA7FE40F395B9BA032AFCF328DE1588 C727C493113889B31588B83F73C19A1BB31 EOF
Salve o arquivo e execute o comando update-grub, que vai gerar um novo grub.cfg.
Captulo 6 - Segurana Sistema Operacional

Restringindo o uso do console


O arquivo /etc/securetty permite que voc especifique em que dispositivos tty (terminais) o administrador (root) pode logar. Uma opo interessante remover todas as linhas que contenham as palavras vc e tty, certificando-se de que o root nunca faa login diretamente em um terminal. Para acessar o sistema como root ser necessrio conhecer a senha de um usurio comum (de preferncia membro do grupo wheel) para depois promover a root usando o comando su.

113

Desativando a reinicializao do sistema


Um problema comum em mquinas Debian a possibilidade de reiniciar o sistema utili zando as teclas CTRL+ALT+DEL. Um usurio descuidado poderia reiniciar a mquina de forma intencional ou no. Para remover essa capacidade, comente a seguinte linha no arquivo /etc/inittab:

# ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

Montando parties. 11 nosuid. 11 noexec. 11 nodev. Uma das caractersticas interessantes que fazem do servidor Linux uma tima opo para a instalao em servidores sua capacidade de customizao. No arquivo /etc/fstab esto informados os principais pontos de montagem utilizados pelo sistema. Em uma instalao

l
Infelizmente, esses ajustes podem ser facilmente contornados ao executar um caminho no direto (ver referncias para mais informaes). No entanto, se confi gurarmos /tmp para noexec a maioria dos exploits desenhados para serem executados diretamente de /tmp sero parados.

profissional, ou seja, uma instalao onde os diretrios /tmp, /home e /var foram colocados em parties individuais, possvel customizar e remover alguns atributos evitando problemas de segurana relacionados a, por exemplo, ataques de exploits. Os seguintes atributos podem ser utilizados para montar qualquer partio do tipo ext2, ext3, ou reiserfs: 11 nosuid: ignora o bit de SUID e trata-o como um arquivo normal; 11 noexec: previne a execuo de arquivos da partio; 11 nodev : ignora dispositivos. Exemplo do arquivo /etc/fstab:

# /etc/fstab # Created by anaconda on Mon Jan 14 11:55:25 2013 # # Accessible filesystems, by reference, are maintained under /dev/ disk
Administrao de Sistemas Linux: Redes e Segurana

# See man pages fstab(5), findfs(music), mount(music) and/or blkid(music) for more info #

UUID=2dc8462e-b6fc-47a4-8bbc-9e9a3fac6967 /

ext4 defaults 1 1 ext4 defaults 1 2 swap defaults 0 0

UUID=eecbc4a3-1fdb-4f93-9380-e2a18450538f /home UUID=0b4f6b70-11db-4fbf-a3ff-b37a5f914fb9 swap ######################################## # /etc/fstab # Created by anaconda on Mon Jan 14 11:55:25 2013

114

# # Accessible filesystems, by reference, are maintained under /dev/ disk # See man pages fstab( 5 ), findfs( 8 ), mount( 8 ) and/or blkid( 8 ) for more info #

UUID=2dc8462e-b6fc-47a4-8bbc-9e9a3fac6967 /

ext4 defaults 1 1 ext4 defaults 1 2 swap defaults 0 0

UUID=eecbc4a3-1fdb-4f93-9380-e2a18450538f /home UUID=0b4f6b70-11db-4fbf-a3ff-b37a5f914fb9 swap ######################################## # # /etc/fstab # Created by anaconda on Mon Jan 14 11:55:25 2013 #

# Accessible filesystems, by reference, are maintained under /dev/ disk # See man pages fstab( 5 ), findfs( 8 ), mount( 8 ) and/or blkid( 8 ) for more info #

UUID=2dc8462e-b6fc-47a4-8bbc-9e9a3fac6967 /

ext4 defaults 1 1 ext4 defaults 1 2 swap defaults 0 0

UUID=eecbc4a3-1fdb-4f93-9380-e2a18450538f /home UUID=0b4f6b70-11db-4fbf-a3ff-b37a5f914fb9 swap

Colocar /tmp no modo noexec pode impedir que certos scripts executem
Captulo 6 - Segurana Sistema Operacional

adequadamente.

Implementando quotas de disco


#apt-get install quota
11 Modifique o arquivo /etc/fstab e adicione usrquota e grpquota s parties que deseja ativar quota por usurio e quota por grupo.

/dev/sda6 /home ext3 noatime,nodev,nosuid,noexec,usrquota,grpquota 0 0


11 Crie os arquivos aquota.user e aquota.group nas razes das parties com suporte ativo para quota. 11 Reinicie a mquina para os arquivos serem criados automaticamente.

115

Edite as quotas utilizando o comando edquota:

#edquota u <usuario> #edquota g <grupo>


Colocar quotas em um sistema de arquivos restringe o uso do disco evitando que um nico usurio possa consumir todo o espao fsico reservado a uma partio. As quotas podem ser implementadas com base em usurio ou grupo, e devem ser ativadas no kernel e adicio nadas em um ponto de montagem dentro do arquivo /etc/fstab. Para instalar o suporte a quotas de disco do Debian, execute como root:

# apt-get install quota


Para ativar a quota, modifique o arquivo /etc/fstab e adicione usrquota e grpquota s parties em que voc quer restringir o uso de disco:

/dev/sda6 /home ext3 noatime,nodev,nosuid,noexec,usrquota,grpquota 0 0


Em cada partio que voc ativar quotas, crie os arquivos de quota (aquota.user e aquota.group) e coloque-os na raiz da partio. Exemplo de criao dos arquivos de quota para a partio /tmp:

# touch /home/aquota.user # touch /home/aquota.group # chmod 600 /home/aquota.user # chmod 600 /home/aquota.group
No Debian basta voc adicionar a opo de quota no arquivo /etc/fstab e reiniciar a mquina que os arquivos aquota.user e aquota.group sero criados automaticamente. interessante configurar o sistema para que, automaticamente, seja realizada uma verifi cao da poltica de quota implementada no servidor. Para realizar uma verificao semanal, utilizando o comando #contrab e, adicione ao final do arquivo /etc/crontab: Listagem de cdigo: adicionando verificao de quota ao crontab:

0 3 * * 0 /sbin/quotacheck -avugf.
Administrao de Sistemas Linux: Redes e Segurana

Aps reiniciar o servidor (# shutdown r now), est na hora de configurar as quotas para usurios e grupos. O seguinte comando pode ser utilizado para editar a quota do usurio kn:

# edquota -u kn Disk quotas for user kn (uid 1000): Filesystem blocks soft hard inodes soft hard /dev/sda6 10020 12000 13000 3 5 6

116

Explicando a funo de cada coluna: 11 Filesystem: partio que ter a quota do usurio ou grupo editada. No exemplo: /dev/sda6; 11 blocks: nmero mximo de blocos (especificado em Kbytes) que o usurio possui atual mente. No exemplo: 10020 Kbytes;

A diferena entre o limite soft e hard que, quando o limite soft atingido, o usurio receber um alerta (quota do usurio excedida) e, quando o hard atingido, no ser possvel armazenar novos arquivos.

11 soft: restrio mnima de espao em disco usado. No exemplo: 12000 Kbytes; 11 hard: limite mximo aceitvel de uso em disco para o usurio/grupo editado. O sistema de quotas nunca deixar este limite ser ultrapassado. No exemplo: 13000 Kbytes; 11 inodes: nmero mximo de arquivos (inodes) que o usurio possui atualmente na partio especificada; 11 soft: restrio mnima de nmero de arquivos que o usurio ou grupo possui no disco; 11 hard: restrio mxima de nmero de arquivos que o usurio ou grupo possui no disco. Para editar a conta do grupo kg, execute:

# edquota g kg
Para mais detalhes, leia o manual do comando edquota.

Fornecendo acesso seguro ao usurio


11 Autenticao do usurio: PAM. 11 Garantir que o usurio root autentique apenas em terminais locais. 22 /etc/pam.d/login 11 Restringir o uso de recursos por usurio/aplicao. 22 /etc/pam.d/lul-utem login Plugglabe Authentication Modules (PAM) um conjunto de bibliotecas que fornecem aos

aplicativos Linux um mecanismo integrado de autenticao de usurios. O PAM possui uma srie de arquivos de configurao dentro do diretrio /etc/pam.d/, que so utilizados para modificar seu comportamento. Por exemplo, o mtodo utilizado para gerenciar sesses e definir o critrio para criao de senhas (letras, nmeros e caracteres especiais).Veremos a seguir algumas configuraes.

Ativar o suporte MD5 nas aplicaes de login e SSH


11 /etc/pam.d/login 11 /etc/pam.d/ssh

q
Captulo 6 - Segurana Sistema Operacional

Para adicionar o suporte MD5 nas aplicaes que utilizam o PAM, dificultando dessa forma as chances de um invasor descobrir alguma senha utilizando um ataque de fora bruta, instale a biblioteca libpam-cracklib (#apt-get install libpam-cracklib) e realize as seguintes modificaes no arquivo /etc/pam.d/common-password:

# Comente a linha # password required pam_unix.so nullok obscure min=4 max=8 md5 # Remova os comentrios das linhas

117

Para carregar a cracklib e avaliar a qualidade de novas senhas, exigindo senhas com mais de 12 caracteres, alm de criar um log sem permisso para a reutilizao das ltimas trs senhas usadas:

password required pam_cracklib.so retry=3 minlen=6 difok=3 #


Para ativar o modo de autenticao utilizando o algoritmo MD5:

password required pam_unix.so use_authtok nullok md5 #


Antes de realizar essa alterao, tenha a certeza de instalar primeiro o libpam-cracklib ou ento no ser capaz de se logar no sistema. O Cracklib depende do pacote wordlist (tal como wenglish , wspanish , wbritish). Portanto, tenha a certeza de instalar um que seja apropriado ao seu idioma ou o cracklib pode no ser totalmente til (#apt-get install wbrazilian). Garanta tambm que o usurio root autentique apenas em terminais locais; para isso, a seguinte linha dever ser inserida no arquivo /etc/pam.d/common-auth:

auth requisite pam_securetty.so


Lembre-se de restringir o uso do terminal para o usurio root e de restringir o uso de recursos por usurio ou aplicao. No Linux possvel limitar, por exemplo, o nmero de logins concorrentes (de um determi nado grupo de usurios ou de todo o sistema), nmero de processos, tamanho de memria etc. Essa capacidade pode ser ativada no arquivo /etc/pam.d/su, removendo o comentrio da seguinte linha:

session required pam_limits.so


Adiante ser mostrado como configurar essas limitaes para cada usurio ou aplicao.

Criando o grupo wheel


#groupadd wheel #usermod G wheel <usuario> /etc/pam.d/su
Administrao de Sistemas Linux: Redes e Segurana

Uma opo interessante limitar a quantidade de usurios que podem se tornar root no sistema utilizando o comando su. Esse recurso torna-se interessante, pois um atacante, para conseguir o acesso como root, dever tambm conhecer a senha de um usurio que esteja no grupo wheel. Para ativar essa opo necessrio adicionar o grupo wheel (#groupadd wheel) e adicionar algum usurio ao grupo wheel (#usermod G wheel <usuario> ). Remova o comentrio da linha a seguir no arquivo /etc/pam.d/su e realize as adaptaes:

auth requisite pam_wheel.so group=wheel debug

118

Limitando o uso de recursos: o arquivo /etc/security/limits.conf


Os usurios do PAM podem limitar, para um determinado usurio e/ou aplicao, a quan tidade de CPU, memria, pilhas etc. que o sistema pode fornecer. Esse tipo de comportamento impedir que um determinado usurio possa consumir, de forma indiscriminada, todos os recursos do servidor provocando um ataque de negao de servio. No entanto, ajustes muito restritos atrapalharo o funcionamento de seu sistema, provocando falhas em programas; por isso avalie com cuidado cada ajuste antes de implement-lo. Pequeno exemplo de configurao do arquivo /etc/security/limits.conf :

w
Para saber mais, acesse Entendendo e configurando o PAM- www.ibm.com, Securing Linux, Step by Step - http://seifried.org e Limiting and monitoring users http://seifried.org/lasg/ users/

<domain> <type> <item>

<value>

usuario hard nproc 10 @grupo hard nproc 5

Aes de login do usurio


Edite o arquivo /etc/login.defs : 11 FAILLOG_ENAB 11 LOG_UNKFAIL_ENAB 11 SYSLOG_SU_ENAB 11 MD5_CRYPT_ENAB 11 PASS_MAX_LEN

O arquivo /etc/login.defs permite ativar, em uma mquina Linux, critrios de autenticao e senha definidos na poltica de segurana da organizao. Observe que esse arquivo no um arquivo de configurao do PAM e, por consequncia, s vale para programas que uti lizem os binrios login ou su. Alguns parmetros importantes que compem esse arquivo:

FAILLOG_ENAB yes
Registra, no syslog, as falhas de login sempre que o usurio erra a senha.

LOG_UNKFAIL_ENAB yes
Registra, no syslog, as falhas de login causadas por usurio no cadastrado no sistema. Observe que, em alguns casos, o usurio poderia trocar o nome de login pela senha. Sempre que ativar essa opo, lembre-se de verificar se os arquivos de logs esto com permisses restritivas (640).
Captulo 6 - Segurana Sistema Operacional

SYSLOG_SU_ENAB yes
Registra as tentativas de uso de binrio su no syslog.

MD5_CRYPT_ENAB yes
Ativa o sistema de hash MD5 para uso nas senhas. Essa opo s deve ser ativada quando o PAM j estiver configurado para usar MD5.

PASS_MAX_LEN 50
Caso o uso de senhas MD5 j esteja ativado na configurao do PAM, essa varivel deve ser setada com o mesmo valor utilizado no arquivo /etc/pam.d/login.

119

Usando o sudo
#apt-get install sudo
Desativando acesso administrativo remoto: 11 Arquivo /etc/security/access.conf Configurando o umask: 11 # umask 022 11 Convertendo 022 em binrio 11 000 010 010 rwx rwx rwx 0 2 2

11 Associando com as permisses 11 ========== 11 Resultado rwx r-x r-x

Algumas vezes necessrio permitir que um usurio comum possa executar algumas tarefas administrativas (exemplo: reiniciar servios ou o servidor). O binrio sudo auxilia nesse processo, permitindo que um usurio qualquer execute comandos utilizando a identi dade de outro usurio. Para instalar o sudo, execute como root:

# apt-get install sudo


O arquivo de configurao do sudo /etc/sudoers. Nesse arquivo deve ser inserido o nome do usurio comum e o comando que ele pode executar. Exemplo:

ROOT

ALL=(ALL)ALL

<usuario> ALL = NOPASSWD: /sbin/shutdown, /sbin/poweroff, /sbin/ halt, /sbin/reboot, /bin/cdrecord, /usr/bin/mount, /sur/bin/smbmount
O parmetro NOPASSWD elimina a necessidade de o usurio digitar a senha do root. Avalie com cuidado essa opo.

Desativao de acesso administrativo remoto


Uma forma de evitar que logins remotos possam ser realizados utilizando a conta do root modificar o arquivo /etc/security/access.conf. Dessa forma, se um usurio desejar acessar o
Administrao de Sistemas Linux: Redes e Segurana

sistema como root, dever realizar uma autenticao com um usurio comum e depois se promover utilizando o su ou executando a aplicao com o sudo. Para configurar essa opo adicione a seguinte linha no arquivo /etc/security/access.conf (no arquivo padro essa linha est comentada):

-:wheel:ALL EXCEPT LOCAL


Lembre-se de ativar o mdulo pam_access para cada servio (ou configurao padro) em /etc/pam.d/ se quiser que suas alteraes em /etc/security/access.conf sejam respeitadas.

Configurando umask
O binrio umask utilizado para definir a mscara da permisso padro a ser utilizada quando o usurio criar novos arquivos e/ou diretrios. Para verificar a mscara atual utili zada pelo sistema, digite:

# umask
120

Para modificar a mscara, basta digitar o comando acompanhado da nova mscara:

# umask 222
Embora o formato de permisso seja semelhante ao do binrio chmod, o umask possui uma frmula especial para calcular a permisso que ser atribuda a novos arquivos e diretrios. Para descobrir como o comando umask funciona, voc deve observar os bits da mscara, e no somente o nmero. Observe o exemplo:

# umask 022 Convertendo 022 em binrio 0 2 rwx 2 rwx 000 010 010 Associando com as permisses dono, grupo e resto rwx ========== Resultado rwx r-x r-x
Note que o bit 1 indica que a permisso no est configurada. Na mscara anterior, todos os novos diretrios criados tero a permisso de leitura, escrita e execuo para o dono; leitura e execuo para o grupo e leitura e execuo para o resto. Para novos arquivos existir uma pequena diferena, pois, por questes de proteo, novos arquivos nunca tero a permisso de execuo definida por padro. Se voc quiser definir um arquivo executvel, dever faz-lo atravs do comando chmod. Para modificar o umask de todos os usurios, edite o arquivo /etc/profile e modifique esse parmetro no final do arquivo.

Limitando o contedo que os usurios podem ver e acessar


Em alguns cenrios pode ser necessrio que usurios comuns possam autenticar no sistema e usar um interpretador de comandos (shell). Nesse caso importante avaliar o Sistema de Arquivos em sua verificao dos diretrios e arquivos que poderiam ser lidos por um usurio qualquer. Por padro, um sistema Debian limita a visualizao de arquivos considerados importantes do ponto de vista da segurana (exemplo: /etc/shadow ). Embora adequado, esse comportamento pode criar uma falsa sensao de segurana. Para avaliar os arquivos que podem ser lidos por usurios comuns, execute:

# find / -type f -a -perm +006 2>/dev/null # find / -type d -a -perm +007 2>/dev/null

Limitando o acesso a outras informaes de usurios


Se voc permite acesso ao shell para os usurios comuns, pode ser interessante limitar a quantidade de informaes que eles podem acessar de outros usurios. No Linux Debian, os diretrios de usurios em $HOME so criados com permisses 0755 (lidos pelo grupo e por todos). Isso permite que um usurio comum possa entrar no diretrio de outros usurios e ler seus arquivos. Para alterar esse comportamento, altere DIR_MODE no arquivo de confi gurao /etc/adduser.conf para 0750 (sem acesso de leitura para todos). Note que a desativao de leitura para todos no diretrio HOME do usurio evitar que o servidor web leia os diretrios de pginas pessoais ~/public_html. Se deseja permitir aos usurios a publicao de pginas HTML em seus diretrios ~/public_html, altere DIR_MODE para 0751.

121

Captulo 6 - Segurana Sistema Operacional

Restringindo o acesso de usurios


Ao adicionar um novo usurio, por padro, o Linux definir um shell vlido para que o usurio possa autenticar e utilizar o servidor. Acontece que em alguns casos esse recurso no necessrio e os usurios criados sero utilizados apenas para autenticao nos servios disponibilizados (servio de mensagens pop3 ou FTP, por exemplo). Para evitar que um usurio possa acessar um terminal em um servidor, basta definir um shell nulo (/dev/null) no arquivo /etc/passwd. Exemplo:

<usuario>:x:1003:1004:,,,:/home/<usuario>:/bin/false

Logout de usurios ociosos


Um usurio descuidado pode se levantar de sua cadeira e acabar deixando a estao de tra balho autenticada com uma seo vlida e ativa. Essa falha, embora momentnea, poder comprometer a segurana do ambiente, j que um intruso com acesso fsico organizao poderia ter acesso ao servidor simplesmente sentando na frente da mquina autenticada. Uma forma de definir o timeout para sees inativas adicionar ao arquivo /etc/profile a varivel TMOUT configurada com o tempo em segundos. Exemplo:

TMOUT=60 # para um minuto export TMOUT

Segurana do kernel
No repositrio Debian GNU/Linux so disponibilizados diversos patches para o kernel, aumentando sensivelmente a segurana do Sistema Operacional. Avalie com cuidado e teste exaustivamente a implementao de cada um antes de utiliz-los, pois algumas aplicaes podem deixar de funcionar. 11 NSA Enhanced Linux (no pacote setools): ferramentas para aumentar a segurana do Linux; 11 kernel-patch-grsecurity2 : implementa controle de acesso mandatrio, oferece proteo contra estouro de buffer, ACLs, network randomness (para tornar OS fingerprint mais difcil), entre outras caractersticas; 11 Kernel-patch-scripts: scripts utilizados para corrigir problemas no kernel;
Administrao de Sistemas Linux: Redes e Segurana

11 Kernel-patch-exec-shield: proteo contra ataques do tipo smashing, entre outros tipos de ataque; 11 Suporte ao kernel IPSec (no pacote kernel-patch-freeswan): para uso com o protocolo IPSec.

Proteo da Libsafe
A biblioteca Libsafe, quando instalada, evita que alguns ataques do tipo buffer overflow sejam realizados com sucesso. Para carregar globalmente essa biblioteca execute, como root:

#apt-get install libsafe-hole-perl.

Algumas aplicaes podem no funcionar aps a instalao dessa biblioteca (em geral todas aquelas que fazem uso da libc5 ).

122

Removendo funcionalidades
Uma caracterstica interessante no Linux, mas pouco utilizada, a capacidade de customi zao do kernel do Sistema Operacional removendo o suporte de drivers de hardwares no instalados no servidor. Como regra bsica, na hora de configurar o kernel, remova tudo o que voc no precisar. Isso no s criar um kernel menor, mas tambm poder remover as vulnerabilidades que podem residir dentro de drivers e outras funes. Essa tarefa no ser realizada nesse curso por se tratar de uma atividade demorada e que exige um bom conhecimento de hardware por parte do administrador. Mais informaes podem ser encontradas nas referncias bibliogrficas.

Sistema de arquivos proc


Muitas caractersticas do kernel podem ser modificadas com comandos echo no sistema de arquivos /proc ou usando o arquivo /etc/sysctl. O script a seguir mostra e comenta algumas dessas caractersticas:

# proteo contra broadcast de ECHO (evita ataques do tipo smurf) echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts # Evita que um mquina com duas placas de rede (uma interna e outra externa) seja utilizada como roteador por um usurio malicioso. echo 0 > /proc/sys/net/ipv4/ip_forward # Proteo contra syn cookies ativada echo 1 > /proc/sys/net/ipv4/tcp_syncookies # Registra pacotes estranhos # (isto inclui pacotes falsos, pacotes com a rota de origem alterada e pacotes redirecionados) echo 1 > /proc/sys/net/ipv4/conf/all/log_martians # opo de desfragmentao sempre echo 1 > /proc/sys/net/ipv4/ip_always_defrag # proteo ativada contra mensagens ICMP echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
Captulo 6 - Segurana Sistema Operacional

# proteo contra ip spoofing echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter # No aceita redirecionamento de ICMP echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects # Desativa pacotes com rota de origem echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route echo 1 > /proc/sys/net/ipv4/conf/all/log_martians

123

No se esquea de colocar todas essas opes em um arquivo que seja executado sempre que o sistema for reiniciado. Todas essas alteraes sero apagadas caso essa tarefa no seja realizada. Uma forma simples de resolver esse problema utilizar o arquivo /etc/sysctl.conf. Sua configurao bastante simples; basta tirar o /proc/sys/ dos caminhos mencionados anteriormente e substituir / por .. Exemplo:

/bin/echo 0 > /proc/sys/net/ipv4/ip_forward (Automaticamente em sysctl.conf:) net.ipv4.ip_forward = 0

Fazendo uma cpia de segurana do sistema


Aps realizar todas as configuraes e testes no servidor e antes de coloc-lo em pro duo, interessante que seja realizada uma cpia de segurana externa de todo o sistema (principalmente do diretrio /etc ). Essa cpia deve ser realizada, preferencialmente em CD ou DVD e dever ser utilizada sempre que o sistema for comprometido. Existem ferramentas interessantes que realizam, inclusive, a cpia binria do sistema. Um exemplo o ghost ou o binrio dd. A seguir veremos algumas ferramentas de segurana.

chroot
Instalando e configurando o chroot :

# apt-get install chrootuid # ldd /bin/bash e # ldd /bin/ls


11 Copiar binrios e bibliotecas. Iniciando e testando o funcionamento.

# chroot /chroot/bash /bin/bash

O chroot permite limitar o ambiente de um determinado usurio ou servio modificando o


Administrao de Sistemas Linux: Redes e Segurana

seu diretrio raiz (/). Essa configurao envia o usurio para um ambiente controlado onde ele ter acesso somente a arquivos e executveis definidos pelo administrador.

Instalao e configurao
Para ativar o chroot no Debian, execute:

# apt-get install chrootuid


Vamos criar um exemplo de como funciona o aplicativo chroot. Neste exemplo, o usurio ser direcionado para um ambiente shell (bash) onde existir apenas o comando ls e nada mais. Antes de iniciarmos, temos de descobrir as bibliotecas dinmicas que foram utilizadas para compilar os binrios /bin/bash e /bin/ls. Para isso ser utilizado o binrio ldd. Execute:

# ldd /bin/bash # ldd /bin/ls

124

Vamos agora criar os diretrios e copiar os binrios e bibliotecas necessrias:

# mkdir -p /chroot/bash/bin # mkdir -p /chroot/bash/lib # cp /bin/bash /chroot/bash/bin # cp /bin/ls /chroot/bash/bin # cp /lib/libncurses.so.5 /chroot/bash/lib # cp /lib/libdl.so.2 /chroot/bash/lib # cp /lib/ld-linux.so.2 /chroot/bash/lib # cp /lib/librt.so.1 /chroot/bash/lib # cp /lib/libacl.so.1 /chroot/bash/lib # cp /lib/libselinux.so.1 /chroot/bash/lib # cp /lib/libattr.so.1 /chroot/bash/lib # cp /lib/libsepol.so.1 /chroot/bash/lib # cp /lib/libpthread.so.0 /chroot/bash/lib

Iniciando e testando o funcionamento


Para ativar o chroot, execute:

# chroot /chroot/bash /bin/bash


Se voc receber um prompt dizendo /, ele est funcionando. Caso contrrio, ele dir que algum arquivo est faltando. Lembre-se de que algumas bibliotecas compartilhadas dependem umas da outras. Observe que quando estiver dentro do chroot nada funcionar, exceto talvez o echo e o comando cd. PortsentryPermite identificar quando um invasor est realizando um port scanning no servidor. Instalao e configurao:

# apt-get install portsentry


11 Arquivo /etc/portsentry.conf Iniciando e testando o servio:
Captulo 6 - Segurana Sistema Operacional

# /etc/init.d/portsentry restart
O aplicativo portsentry permite identificar quando um invasor est realizando um port scanning no servidor. Para realizar seu trabalho ele abre vrias portas, de acordo com seu arquivo de configurao, e monitora as tentativas de acesso a essas portas. Ao identificar uma tentativa de acesso s portas por ele monitoradas, o portsentry pode bloquear o ende reo IP do atacante e enviar, inclusive, uma mensagem dizendo que ele foi detectado. Avalie com cuidado essa opo para no acabar negando acesso para mquinas vlidas.

Instalao e configurao
Para instalar o portsentry, execute como root:

# apt-get install portsentry

125

O arquivo de configurao do portsentry ( /etc/portsentry.conf ) dividido em sees, sendo que a principal refere-se s portas que ele vai monitorar. Observe, logo a seguir, que existem trs tipos de linhas TCP_PORTS e UDP_PORTS. O modelo mais utilizado o que no est comentado.

# Un-comment these if you are really anal: #TCP_POR TS=1,7,9,11,15,70,79,80,109,110,111,119,138,139,143,512,513,[...] #UDP_PORTS=1,7,9,66,67,68,69,111,137,138,161,162,474,513,517,518,[...] # Use these if you just want to be aware: TCP_PORTS=1,11,15,79,111,119,143,540,635,1080,1524,[...] UDP_PORTS=1,7,9,69,161,162,513,635,640,641,700,37444,[...] # Use these for just bare-bones #TCP_PORTS=1,11,15,110,111,143,540,635,1080,1524,2000,[...] #UDP_PORTS=1,7,9,69,161,162,513,640,700,32770,32771,[...]
No se esquea de remover do arquivo as portas de servios vlidos instalados no servidor. Agora vamos definir as aes que sero realizadas pelo portsentry quando detectar um ata cante realizando um port scanning. Essa configurao realizada na seo Dropping Routes:

# iptables support for Linux KILL_ROUTE=/usr/local/bin/iptables -I INPUT -s $TARGET$ -j DROP


Remova o comentrio da linha KILL_ROUTE referente ao suporte a iptables. Lembre-se de que caso uma mquina vlida tente acessar um servio invlido disponibilizado pelo portsentry, ela ser automaticamente bloqueada para qualquer servio vlido. Caso deseje, possvel enviar uma mensagem de aviso para o intruso. Para habilit-la, basta retirar o comentrio da linha:

PORT_BANNER=** ACESSO PROIBIDO *** INTRUSION DETECTION SYSTEM


Administrao de Sistemas Linux: Redes e Segurana

Para finalizar, possvel configurar o portsentry para realizar um contra-ataque. Aqui vale a sua imaginao. Observe que pode ser executado um script qualquer:

KILL_RUN_CMD=/some/path/here/script $TARGET$ $PORT$

Iniciando e testando o servio


Para reiniciar o portsentry execute:

# /etc/init.d/portsentry restart
Para testar o funcionamento do portsentry, a partir de uma mquina remota tente se conectar a uma porta invlida. Exemplo:

# telnet 192.168.1.2 1080 Trying 192.1.1.2...

126

Connected to 192.1.1.2 Escape character is ?^ ]? .****Acesso Proibido **** Intrusion Detection System
Se foram realizadas as configuraes descritas, sero feitas as seguintes atividades pelo portsentry: 11 Sero registradas em portsentry.blocked.tcp algumas informaes do atacante. Vale lembrar que esse arquivo tem a mesma funo do hosts.deny, porm fornece uma sada mais detalhada. 11 Posteriormente o portsentry far o iptables negar as conexes vindas da mquina remota.

Tripwire
Ferramenta desenvolvida para monitoramento das modificaes ocorridas no sistema de arquivos.

#apt-get install tripwire


11 Editando e gerando o arquivo de configurao. 11 Editando e gerando o arquivo de polticas. 11 Criando a base de dados inicial. Iniciando e testando o servio:

#adduser marcelo # tripwire --check

Integridade do sistema de arquivos com Tripwire


O Tripwire um monitor de integridade para sistemas Unix desenvolvido por Gene Kim com a orientao de Gene Spafford (diretor do projeto na Universidade de Purdue). Ele usa diversas rotinas de checksum/message-digest /secure-hash /signature para detectar alte raes nos arquivos, bem como para monitorar determinados itens da informao mantida pelo sistema. A configurao do Tripwire permite ao administrador especificar facilmente os arquivos e diretrios a serem monitorados e a especificar arquivos para os quais so permi tidas alteraes limitadas, sem gerar um aviso de alerta.

Instalao e configurao
devem ser por ele monitorados. Esse banco de informaes armazenado de forma cifrada utilizando uma passphrase. Para instalar o Tripwire no Debian, execute:
Captulo 6 - Segurana Sistema Operacional

Ao instalar o Tripwire criado um banco de dados com informaes dos arquivos que

#apt-get install tripwire


Sero realizadas algumas perguntas pelo Debconf (veja as respostas default): 11 Voc deseja criar a chave do site durante a instalao? Sim 11 Voc deseja criar a chave local durante a instalao? Sim 11 Voc deseja reconstruir o arquivo de configurao do Tripwire? Sim 11 Voc deseja reconstruir o arquivo de polticas do Tripwire? Sim 11 Informe a senha para a chave do site: 123456

127

11 Repita a senha: 123456 11 Informe a senha para a chave local: 123456 11 Repita a senha: 123456

Editando e gerando o arquivo de configurao


O arquivo /etc/tripwire/twcfg.txt um arquivo texto comum que lista as principais opes e atributos dessa ferramenta. Aps realizar uma leitura e posterior customizao desse arquivo, ser necessrio gerar o arquivo /etc/tripwire/tw.cfg para o Tripwire com as novas configuraes; para isso, usaremos o comando:

# twadmin --create-cfgfile --site-keyfile /etc/tripwire/site.key twcfg.txt


aconselhvel que aps a gerao do arquivo /etc/tripwire/tw.cfg seja apagado o arquivo texto.

Editando e gerando o arquivo de polticas


O arquivo /etc/tripwire/twpol.txt contm a lista de diretrios e arquivos que sero monitorados pelo Tripwire, bem como as polticas e regras utilizadas para o monitoramento dos arquivos. Assim como o arquivo de configurao, necessrio cifrar esse arquivo e gerar o arquivo /etc/tripwire/tw.pol para o Tripwire com a nova poltica a ser usada nas checagens. Para isso usaremos o comando:

# twadmin --create-polfile /etc/tripwire/twpol.txt


Da mesma forma que o arquivo texto usado para criar o arquivo de configuraes, devemos apagar tambm o arquivos de texto usados para a gerao das polticas, pelas mesmas razes.

Criando a base de dados inicial


O comando a seguir poder ser utilizado para construir a base de dados:

# tripwire --init

Iniciando e testando o servio


Aps a construo da base de dados inicial, o Tripwire estar preparado para realizar
Administrao de Sistemas Linux: Redes e Segurana

checagens de integridade. Essa verificao feita atravs da verificao do estado atual do sistema de arquivos e da comparao com os dados armazenados na base de dados. Dessa forma, o Tripwire poder ser capaz de determinar alguma modificao sofrida pelos arquivos monitorados. A verificao de integridade pode ser feita com o comando:

# tripwire --check
Para testar o funcionamento, basta adicionar um novo usurio e realizar, novamente, a verificao de integridade.

128

Roteiro de Atividades 6
Atividade 6.1 Elaborando uma poltica de segurana
Utilizando como referncia a poltica de segurana disponvel no site do SANS sobre o uso aceitvel dos recursos computacionais (http://www.sans.org/resources/policies/Acceptable_ Use_Policy.doc), elabore uma pequena verso (de 5 a 10 pontos) adequando-a para a realidade de sua organizao. Prepare-se para apresentar a sua poltica no final dessa atividade.

Atividade 6.2 Antes e durante a instalao


O servidor web Apache deve estar instalado no sistema. Verifique se foi instalado o servidor web Apache na mquina virtual Linux disponibilizada no laboratrio. Em caso afirmativo:
1. Interrompa o servio em execuo; 2. Remova o servio Apache da inicializao com rcconf ; 3. Localize o nome do pacote de instalao do servidor web Apache e remova esse aplicativo; 4. Identifique trs aplicativos que dependem do compilador Perl para funcionar.

Atividade 6.3 Fortalecendo a segurana


Para cada tpico abaixo, implemente e crie alguma forma de demonstrar a importncia dessa configurao para a segurana do ambiente:
1. Atualize o Sistema Operacional; 2. Configure a senha do Grub:

11 Crie a senha criptografada com o comando: # grub-mkpasswd-pbkdf2 22 Ser solicitada senha, entre com a senha rnpesr; 22 Ser gerado um hash no formato (grub.pbkdf2.sha512.10000.XXXXXXXXX...); 11 Copie e cole o hash montando a estrutura parecida com a que est abaixo no arquivo /etc/grub.d/00_header.

cat << EOF set superusers=usuario password_pbkdf2 usuario grub.pbkdf2.sha512.10000.XXXXXXXXX...


Captulo 6 - Roteiro de Atividades

EOF
11 Salve o arquivo e saia; 11 Execute o comando # update-grub; 11 Reinicie e teste a edio do Grub durante o boot do sistema.
3. Restrinja o uso do console para o usurio root (dica: lembre-se de criar um usurio, seno

voc no vai mais conseguir se autenticar no sistema);


4. Desative a reinicializao do sistema com as teclas CTRL+ALT+DEL; 5. Desative, na partio /tmp, a opo de executar arquivos a partir dessa pasta;

129

6. Implemente, para o usurio alunoesr, uma quota de disco na pasta /home (instale o

winscp e utilize algum arquivo com mais de 5 Mb). O sistema de quotas deve ser instalado:

#apt-get install quota

Atividade 6.4 Fornecendo acesso seguro ao usurio


Utilizando como referncia o manual da RNP, implemente e crie alguma forma de demonstrar a importncia das configuraes do PAM para a segurana do ambiente:
1. Ative o suporte MD5 nas aplicaes de login e SSH; 2. Garanta que o usurio root autentique apenas em terminais locais; 3. Crie o grupo wheel.

Atividade 6.5 Utilizando sudo


Instale e configure o sudo para permitir que o usurio alunoesr possa executar o aplicativo passwd como se fosse o root e, dessa forma, trocar a senha de qualquer usurio do sistema (pesquise no Google uma forma de bloqueio caso o usurio alunoesr tente trocar a senha do usurio root).

Atividade 6.6 Calculando e testando umask


Utilizando o manual da RNP como referncia, modifique o umask dos usurios para que novos arquivos sejam criados com as seguintes permisses:
1. Leitura e escrita para o dono, leitura e escrita para o grupo e leitura para o resto; 2. Leitura para o dono, sem acesso para o grupo e sem acesso para o resto.

Atividade 6.7 Limitando o acesso a outras informaes de usurios


Utilizando o manual da RNP como referncia, modifique o arquivo de configurao /etc/adduser.conf evitando que, ao criar novos usurios, estes possam acessar o diretrio de outros usurios. Demonstre que essa configurao est funcionando perfeitamente.

Atividade 6.8 Restringindo o acesso de usurios


Administrao de Sistemas Linux: Redes e Segurana

Crie um usurio chamado fulano e no permita que esse usurio possa se autenticar no sistema ou acessar um shell vlido. Demonstre que essa configurao est funcio nando perfeitamente.

Atividade 6.9 Implementando o logout automtico de usurios ociosos


Utilizando como referncia o manual do curso, implemente algum mecanismo que desco necte automaticamente o usurio caso ele fique mais de 1 minuto sem digitar um comando no console.

130

Atividade 6.10 Utilizando o chroot


Utilizando o aplicativo chroot, implemente um ambiente onde um usurio s poder exe cutar o comando ls e os comandos bsicos disponveis no shell bash.

Atividade 6.11 Utilizando o portsentry


Instale e configure o portsentry para identificar possveis tentativas de invaso. Para testar o funcionamento, remova o comentrio da linha PORT_BANNER no arquivo de configurao /etc/portsentry/portsentry.conf e tente se conectar na porta 11 utilizando a mquina Windows. Acesse o log e verifique se as tentativas esto sendo logadas pelo portsentry.

Atividade 6.12 Utilizando o tripwire


Instale e configure o tripwire em sua mquina Linux. Crie um breve roteiro que mostre seu funcionamento caso um novo usurio seja adicionado ao sistema.

131

Captulo 6 - Roteiro de Atividades

132

Administrao de Sistemas Linux: Redes e Segurana

7
Segurana Firewall
objetivos
Entender o funcionamento de um firewall, seus tipos e conceitos associados; saber como instalar, configurar e testar um firewall em um ambiente Linux.

conceitos

Firewall para host e para rede, stateless e stateful; netfilter (regras, estados, chains e tabelas); configurao do firewall (polticas, mdulos e comandos do iptables).

Firewall
11 Filtro de pacotes. 11 Atua principalmente nos nveis 3 e 4 do modelo ISO/OSI. 11 uma importante ferramenta de segurana, mas no deve ser a nica.

Um firewall, ou filtro de pacotes, um recurso utilizado para proteger uma mquina ou uma rede atravs do controle e filtragem dos pacotes/datagramas que entram ou que saem. Um firewall bem configurado capaz de controlar com preciso o que entra e o que sai de uma rede e/ou host. No entanto, mesmo bem configurado, um firewall no garantia de segurana total. Por isso o administrador de redes consciente deve considerar o firewall como uma ferramenta a mais para tornar sua rede segura, e no como a nica ferramenta. Tradicionalmente, um firewall atua nas camadas 3 e 4 do modelo ISO/OSI. Alguns so capazes de tambm atuar na camada de aplicao, mas so menos comuns devido sua complexidade. Neste Captulo, trataremos apenas do primeiro tipo de firewall. Firewalls podem: 11 Proteger apenas um host.
Captulo 7 - Segurana Firewall

11 Implementados na prpria mquina. 11 No exigem mudanas na topologia da rede. 11 Proteger uma ou mais redes. 11 Atuam como roteador. 11 Exigem mudanas na topologia da rede: o trfego da rede deve passar por ele.

133

Firewalls para host e para rede


Um firewall pode ser utilizado para proteger uma nica mquina (host) ou uma rede inteira. No primeiro caso, o firewall apenas examina os pacotes com origem ou destino ao host em questo. Sua configurao , em geral, mais simples e no h necessidade de nenhuma modificao na topologia da rede. J o firewall para uma rede exige que passem atravs dele todos os pacotes que entram ou saem da rede que est protegendo. Para isso, so necessrias alteraes na topologia da rede para acomodar o firewall, que tambm poder funcionar como um roteador para essa rede.

Tipos de firewalls
Stateless: 11 Cada pacote analisado sem levar em conta outros pacotes. 11 No existe conexo (controle sobre o fluxo). Stateful: 11 Guardam atributos de conexes. 11 Reconhecem estados. 11 No Linux: kernel > 2.4.x. Os firewalls podem ser classificados em duas grandes categorias: stateless e stateful.

Stateless
Firewalls que analisam cada pacote de maneira isolada, levando em conta apenas atributos dos cabealhos, como, por exemplo, endereos e portas de origem e destino. Esse tipo de firewall no tem como reconhecer se um determinado pacote est tentando estabelecer uma nova conexo ou se faz parte de uma conexo j estabelecida. Alm da necessidade de se criar duas regras, um atacante malicioso poderia acessar hosts atrs do firewall simplesmente utilizando conexes originadas na porta 80. No Linux, kernels at a verso 2.2.x implementavam apenas firewalls do tipo stateless. A partir da verso 2.4.x do kernel, o Linux tambm passa a suportar firewalls do tipo stateful. A criao de regras para firewalls desse tipo mais complexa e menos precisa, porque o
Administrao de Sistemas Linux: Redes e Segurana

administrador precisa criar pares de regras para cada situao. Por exemplo, supondo que o administrador precise permitir que hosts de sua rede acessem pginas web na internet, seria necessrio: 11 Criar uma regra que permitisse pacotes com endereos de sua rede e portas de origem quaisquer (>1023), e destino qualquer e porta de destino 80. 11 Criar uma regra com origem qualquer e porta de origem 80, com destino de sua rede e porta de destino qualquer (>1023).

Stateful
Firewalls capazes de reconhecer e armazenar estados de conexes que passam por ele, como, por exemplo, fluxos TCP. Um firewall desse tipo pode decidir o que fazer com um pacote, baseado no estado desse pacote em relao a uma conexo. Utilizando o exemplo anterior, o administrador teria de criar apenas a primeira regra e uma segunda regra genrica que permita a passagem dos pacotes que faam parte das conexes estabelecidas.

134

Netfilter
Nome do cdigo do firewall no Linux. Conceitos: 11 Regras. 11 Estados. 11 Chains. 11 Tabelas. Netfilter o nome do cdigo presente no kernel do Linux (>2.4.x), que implementa as funes de firewall. Para entender melhor como o netfilter funciona, ser necessrio estudar alguns conceitos utilizados por ele.

Regras
Possui um padro de casamento (match) e um alvo (target). 11 Padres de casamento (match): 22 Campos de cabealho. 22 Estados de conexes. 11 Alvos (target): 22 Aceitar, rejeitar, ignorar, modificar, logar, chains. Basicamente, uma regra uma descrio do que fazer com que tipo de pacote. Cada regra possui um padro de procura e uma ao, tambm chamada de alvo. Na criao de um

padro, utiliza-se praticamente qualquer campo dos cabealhos dos protocolos IP, ICMP, TCP e UDP. Alm disso, dentro de uma conexo nesses padres, possvel utilizar tambm os estados de um pacote. Cada tipo de regra aceita um conjunto de aes possveis. Pode-se aceitar, rejeitar, ignorar, modificar, registrar, marcar pacotes ou at mesmo fazer com que os pacotes sejam avaliados por outros conjuntos de regras. Veremos mais adiante algumas aes possveis e como construir padres para serem utilizados nas regras.

Estados
Relao do pacote com um fluxo. Netfilter reconhece os seguintes estados: 11 NEW. 11 ESTABLISHED. 11 RELATED.

Como foi dito anteriormente, o netfilter capaz de reconhecer o estado de uma conexo. Alm de facilitar a configurao de regras, isso permite maior controle sobre o que passa pelo firewall. O netfilter pode atribuir quatro estados para um pacote: 11 NEW: pacotes iniciais de um fluxo; 11 ESTABLISHED: quando a resposta ao pacote inicial (NEW) chega ao firewall, os prximos pacotes desse fluxo passam a ser identificados como ESTABLISHED; 11 RELATED: pacotes que de alguma maneira se relacionam a uma conexo j estabelecida. Ao se fazer uma conexo FTP, por exemplo, so abertas duas conexes: uma em que tra -

135

Captulo 7 - Segurana Firewall

11 INVALID.

fegam dados; e outra em que trafegam informaes ou controle. Essa segunda conexo poderia ser vista pelo netfilter como sendo RELATED; 11 INVALID: pacotes que, por alguma razo, no foram identificados. importante ressaltar que mesmo protocolos no orientados conexo, como UDP e ICMP, podem ser tratados pelo firewall de modo similar aos pacotes de protocolos com conexo. Vejamos o caso do ping, por exemplo. Quando o firewall recebe um pacote ICMP echo request com um determinado IP de origem ou destino, esse pacote marcado como NEW. Ao receber o pacote ICMP echo reply correspondente, os pacotes passam a ser classificados como ESTABLISHED. O kernel armazena os estados das conexes em memria, e permite que essas conexes sejam visualizadas em um arquivo especial dentro do diretrio /proc. Esse arquivo o /proc/net/ip_conntrack , que lista, para cada conexo, o protocolo; o nmero do protocolo; o tempo at a conexo expirar (caso fique inativa); o estado da conexo; e, em seguida, a origem/destino/portas da conexo nos dois sentidos (isto , primeiro a origem/destino e em seguida o destino/origem).

Chains
11 Conjuntos (cadeias) de regras. 11 Chains do sistema x Chains do usurio. 11 Chains do sistema esto ligadas a pontos especiais que os pacotes percorrem no kernel. 11 Regras nas chains do sistema podem ter como alvo as chains do usurio. Uma chain uma estrutura que contm regras. O netfilter possui dois tipos de chains: as chains do sistema e as chains criadas pelo usurio. 11 Chains do sistema: denominadas PREROUTING, INPUT, FORWARD, OUTPUT e

POSTROUTING, esto ligadas a pontos especiais no caminho que os pacotes percorrem ao entrar e sair da mquina. 11 Chain de usurio: s ser percorrida se alguma chain do kernel encaminhar pacotes para ela. Ao contrrio das chains do kernel, as chains de usurio no fazem parte do caminho que os pacotes percorrem no kernel.

Interface de Entrada
Administrao de Sistemas Linux: Redes e Segurana

PREROUTING

FORWARD

POSTROUTING

Interface de Sada

INPUT

OUTPUT

Figura 7.1 Chains do sistema.

A figura mostra como as chains esto organizadas no kernel. Um pacote pode percorrer trs caminhos dentro do netfilter: 11 Pacotes que venham da rede com destino mquina percorrem as chains PREROUTING e, em seguida, a chain INPUT. 11 Pacotes que tenham origem na mquina percorrem a chain OUTPUT e, em seguida, a chain POSTROUTING. 11 Pacotes que venham de uma rede com destino a outra rede (o firewall est atuando como

136

um roteador) percorrem as chains PREROUTING, FORWARD e, em seguida, a POSTROUTING. Quando um pacote entra em uma chain, cada regra dessa chain sequencialmente avaliada em duas situaes:

l
A chain PREROUTING recebe esse nome porque ela avaliada antes que o kernel tome as decises de roteamento. A chain POSTROUNTING percorrida aps ser feita a deciso de roteamento e logo antes dos pacotes deixarem o netfilter. Essas duas chains so principalmente utilizadas por regras que de alguma maneira alteram o cabealho dos pacotes. As chains INPUT, FORWARD e OUTPUT so utilizadas principalmente para as regras que filtram pacotes.

11 At que o pacote combine com uma regra que contenha um alvo do tipo ACCEPT, DROP ou REJECT; 11 At que o pacote atinja o final da chain. Nesse segundo caso, quando um pacote atinge o final de uma chain sem que tenha casado com alguma regra, aplicada, ento, a poltica padro da chain.

Tabelas
11 Estruturas onde so armazenadas as chains. 11 Possuem funes especficas. 11 H trs tipos de tabelas: 22 Filter: filtra pacotes (observao: nico tipo a ser estudado aqui). 22 Mangle: altera e marca pacotes. 22 Nat: traduz endereos de rede. Tabelas so as estruturas onde as chains so armazenadas. O Linux possui apenas trs tabelas, e as chains dessas tabelas contm regras com funes especficas:

11 Filter: tabela em que so colocadas as regras que filtram pacotes. Essa tabela possui as chains INPUT, OUTPUT e FORWARD. 11 Mangle: utilizada por regras que alteram ou marcam pacotes. Possui as cinco chains: INPUT, OUTPUT, FORWARD, PREROUTING e POSTROUTING. 11 Nat : utilizada para as regras de traduo de endereos de rede. Possui as chains PREROUTING, OUTPUT e POSTROUTING.

Configurao do firewall
O que filtrar? Duas abordagens: 11 Poltica padro DROP e regras especficas para os servios permitidos. 11 Poltica padro ACCEPT e regras para bloquear servios especficos. Em geral, a configurao de um firewall envolve trs passos: 11 Decidir o que vai ser filtrado; 11 Carregar os mdulos do kernel necessrios para as tarefas a serem feitas; 11 Criar as regras e os scripts para carreg-las no kernel. A seguir, veremos cada um desses passos.

Polticas de firewall
A deciso sobre o que filtrar vai depender da rede ou mquina que se deseja proteger. Cada cenrio exige uma configurao de firewall prpria. No entanto, podemos ter duas aborda gens bsicas ao criar um firewall. Alguns firewalls so criados com uma poltica padro de DROP. O firewall descarta todos

137

Captulo 7 - Segurana Firewall

os pacotes para os quais no existem regras especficas que os aceitem. Em geral esses firewalls so mais restritivos na filtragem de pacotes. Outros firewalls seguem o princpio oposto: deixam passar qualquer pacote, e as regras so criadas para bloqueio de determi nados tipos de pacote. A escolha por uma ou outra abordagem vai depender do que se deseja proteger e da poltica de segurana adotada pela instituio. Em geral os firewalls que protegem intranets so do primeiro tipo, enquanto que o segundo tipo utilizado em roteadores de borda para conter determinados ataques e/ou worms.

Internet

Servidor web - DMZ

Firewall
Figura 7.2 DMZ (Zona Desmilitarizada).

Em algumas situaes, tambm desejvel oferecer alguns servios para a internet e, ao mesmo tempo, proteger a intranet. Nesses casos comum a criao das chamadas zonas desmilitarizadas ou DMZ. Uma DMZ uma sub-rede, na qual so colocadas as mquinas que oferecem servios para a internet, como servidores web e de e-mail. Ao se configurar um firewall com uma DMZ, o administrador cria regras especficas de acesso para a DMZ e para a intranet.

Mdulos do kernel
Principais mdulos: 11 ip_tables 11 iptables_filter
Administrao de Sistemas Linux: Redes e Segurana

11 iptables_mangle 11 iptables_nat 11 ip_conntrack 11 ip_conntrack_ftp 11 ipt_state 11 ipt_LOG 11 ipt_REJECT Para criar um firewall no Linux necessrio que o kernel tenha suporte ao netfilter. O netfilter tanto pode ser compilado embutido (built-in) no kernel, como em forma de mdulos. Se o netfilter estiver na forma de mdulos, pode ser necessrio carreg-los com o comando modprobe antes de inserir as regras no kernel. Alguns kernels tm suporte ao carregamento automtico de mdulos.

138

O kernel que acompanha a maioria das distribuies traz o netfilter compilado na forma de mdulos. Alguns administradores argumentam que o netfilter compilado built-in tem uma performance ligeiramente melhor e mais seguro, j que possvel compilar o kernel sem suporte a mdulos. Isso evita que um invasor carregue mdulos maliciosos no kernel. Outros administradores argumentam que um kernel modular permite que somente os mdulos necessrios sejam carregados, o que evita desperdcio de memria, alm de permitir que um mesmo kernel possa ser utilizado em mquinas com funes diferentes (servidor, firewall, desktop etc.). Principais mdulos do netfilter e suas funes: 11 ip_tables: habilita o suporte ao netfilter; 11 iptables_filter: habilita o suporte tabela filter; 11 iptables_mangle: habilita o suporte tabela mangle; 11 iptables_nat: habilita o suporte tabela NAT; 11 ip_conntrack : habilita o suporte ao reconhecimento de conexes; 11 ip_conntrack_ftp: habilita o suporte ao reconhecimento das conexes do FTP ativo (conexes RELATED); 11 ipt_state: habilita a permisso para regras baseadas no estado da conexo; 11 ipt_LOG: habilita o suporte ao alvo LOG (veja as tabelas de alvos no item seguinte); 11 ipt_REJECT: habilita o suporte ao alvo REJECT.

Manipulao de regras
11 Feita com o comando iptables. 11 Cada tipo de regra admite opes diferentes. 11 Sintaxe para criao ou remoo de regras:

# iptables [-t TABLE] -[AID] CHAIN [N] MATCH -j TARGET


11 Comando iptables O comando iptables utilizado para a manipulao de regras e chains dentro do kernel. Esse comando admite uma grande variedade de opes. A seguir as mais comuns: 11 Manipulao de regras; 11 Criar e remover regras. Opes para criao e remoo de regras: 11 -A Append, adiciona regras ao final da chain. 11 -I Insert, insere a regra na posio N; se no for indicada a posio, insere no comeo da chain. 11 -D Delete, remove uma regra. H dois modos: 22 Indicando o nmero da regra. 22 Usando as mesmas opes (padro e alvo) com as quais a regra foi criada. 11 -t admite as tabelas filter, mangle e nat. Caso a tabela no seja definida, o iptables considera que a escolhida a filter.
Captulo 7 - Segurana Firewall

139

No slide so mostradas as opes utilizadas para criar e remover regras do firewall iptables. importante destacar que a opo t deve ser informada sempre que a tabela a ser utilizada for diferente da filter.

Padres de casamento
11 -s ou --src <IP>[/bits] casa com a origem do pacote. 11 -d ou --dst <IP>[/bits] casa com o destino do pacote. 11 -i ou --in-interface <interface> interface de entrada. 11 -o ou --out-interface <interface> interface de sada. 11 Dica: use ! para negar uma opo: iptables -A INPUT -i eth0 ! -s 192.168.0.1 j\ ALVO So muitas as opes que definem o padro de casamento (MATCH) de uma regra, como pode ser verificado a seguir (no esto listadas todas as opes): Opo -s -d -i -o -p --sport Opo (longa) --src --dst -in-interface --out-interface --protocol --source-port Valor <IP>[/bits] <IP>[/bits] <interface> <interface> tcp,udp,icmp <porta>[:porta] Significado Casa com o endereo de origem do pacote. Casa com o endereo de destino do pacote. Casa com a interface pela qual o pacote chegou. Casa com a interface pela qual o pacote vai sair. Casa com o protocolo do pacote ou datagrama. Casa com a porta (ou intervalo) de origem do pacote; precisa ser usado com a opo -p (tcp/udp). Casa com a porta (ou intervalo) de destino do pacote; necessita ser usado com a opo -p (tcp/udp). Casa com o tipo/cdigo de um pacote icmp. Habilita o modo de opes entendido.

l
Uma opo pode ser negada se a precedermos com um !. Assim, ! -s 192.168.0.1/32 casa com qualquer origem, menos com 192.168.0.1/32.

--dport

--destination-port <porta>[:porta]

--icmp -m
Administrao de Sistemas Linux: Redes e Segurana

-type - -match

<tipo/cdigo> <mdulo>

11 p ou protocol <tcp,udp,icmp> protocolo do pacote. 11 --sport ou --source-port <porta>[:porta] porta(s) de origem do datagrama. 11 --dport ou --destination-port <porta>[:porta] porta(s) de destino do datagrama. Exemplo:

iptables -A FORWARD -p tcp --dst 192.168.0.1 --dport 80 -j ALVO


11 -m ou --match <mdulo> habilita novas opes. Exemplo: 11 -m state carrega o mdulo de estados. 11 -m state --state <NEW, ESTABLISHED, RELATED,INVALID> casa com o estado da conexo. Alm das opes da tabela anterior, outras mais podem ser usadas ao se especificar a

140

opo --match: 11 --limit (valor X/time): limita a mdia de matchs (o que exceder esse nmero descartado). Time pode ser /second, /minute, /hour ou /day. Essa opo e a seguinte so, em geral, utilizadas com o alvo LOG, para limitar o nmero de pacotes logados. 11 --limit-burst (valor X): nmero mximo inicial de matchs. Esse valor recarregado em 1 a cada intervalo de tempo em que o limite no foi alcanado, at chegar ao valor especifi cado. Utilize essa opo para permitir rajadas. 11 --state (valores NEW, ESTABLISHED, RELATED, INVALID): casa com o estado de uma conexo (utilize com a opo -m state). 11 --tcp-flags (valor MASK FLAGS): examina as flags de um pacote TCP. MASK define o que deve ser examinado e FLAGS define quais bits devem estar ligados. Exemplo: SYN, ACK ACK = examina SYN e ACK, e casa com pacotes que tenham SYN desligado e ACK ligado. 11 --tos (valor name): casa com o campo type of service. Para ver os nomes e valores, use o comando iptables -m tos h. 11 --ttl: casa com o valor do campo TTL do pacote. 11 -- syn: casa com pacotes do tipo SYN do protocolo TCP. 11 --tcp-flags <mask, flags> examina as flags definidas em mask e casa com flags ligadas (bit 1). 22 Exemplo: iptables -A FORWARD -p tcp --tcp-flags SYN,ACK SYN -j ALVO 33 Examina as flags SYN e ACK. A flag SYN deve estar ligada. Definio de alvo de uma regra (exemplo tabela filter). 11 ACCEPT: aceita um pacote. 11 REJECT: rejeita um pacote e, opcionalmente, envia um ICMP tipo <type> para a origem do pacote. 11 DROP: descarta silenciosamente os pacotes. 11 LOG: registrar o pacote. 11 RETURN: reenvia o pacote para a sua chain de origem. Por fim, devemos especificar o alvo de uma regra. Como cada tabela possui alvos diferentes e com opes diferentes, veremos apenas os alvos da tabela filter: 11 ACCEPT: aceita um pacote. 11 REJECT --reject-with <type>: rejeita um pacote e, opcionalmente, envia um ICMP tipo <type> para a origem do pacote. 11 DROP: descarta silenciosamente os pacotes. 11 LOG --log-level X log-prefix Y: loga os headers de um pacote e, opcionalmente, utiliza o ajudar a identificar o pacote de regra. 11 <chain>: envia o pacote para uma chain do usurio. 11 RETURN: reenvia o pacote para a sua chain de origem. Os dois ltimos alvos (<chain> e RETURN) merecem uma explicao adicional. Suponha que foi criada uma chain para tratar apenas de pacotes ICMP, e que essa regra foi chamada de ICMP_ FILTER . possvel ter, ento, uma regra na chain FORWARD do tipo:
Captulo 7 - Segurana Firewall

priority X (veja syslogd.conf) e o prefixo Y, que uma string de at 29 letras utilizada para

# iptables -A FORWARD -p icmp -j ICMP_FILTER

141

Pacotes que casem com a regra anterior seriam jogados na chain ICMP_FILTER. O alvo RETURN usado para fazer com que um pacote retorne chain de onde foi encaminhado. Por exemplo, para que os pacotes com origem em 192.168.1.1 retornem chain FORWARD, basta criar a regra:

# iptables -A ICMP_FILTER -s 192.168.1.1 -j RETURN


Outros exemplos de regras: 11 Dropa (DROP) tudo que chega ao firewall com destino ao host 192.168.0.3:

# iptables -A FORWARD -d 192.168.0.3/32 -j DROP


11 Remove a regra anterior:

# iptables -D FORWARD -d 192.168.0.3/32 -j DROP


11 Bloqueia a porta 23 da mquina local para acessos vindos pela interface eth0:

# iptables -A INPUT -i eth0 -p tcp --dport 23 -j REJECT


11 Loga (LOG) tentativas de acesso porta 161 UDP vindas de fora da rede 192.168.0.0/24, limitando o nmero de match para no encher rapidamente o log:

# iptables -A FORWARD -p udp --dport 161 ! -s 192.168.0.0/24 -j LOG --limit 1/second


Observe que uma regra de LOG no terminal, ou seja, o pacote continua a percorrer as regras da chain. As regras a seguir logam pacotes TCP SYN com destino porta 445, acrescendo o prefixo SCAN entrada do log e, em seguida, descartam o pacote:

# iptables -A FORWARD -p tcp --dport 445 --syn -j LOG log- prefix SCAN # iptables -A FORWARD -p tcp --dport 445 --syn -j DROP

Listagem de regras
Formato:

# iptables -L [ CHAIN ] [ -t table]


Exemplos: 11 # iptables L
Administrao de Sistemas Linux: Redes e Segurana

11 # iptables -L -t mangle 11 # iptables -L FORWARD -t filter Para listar o contedo de uma chain, basta utilizar o comando:

iptables -L [ CHAIN ] [ -t table]


Lembrando que quando no especificada nenhuma tabela, o padro mostrar a tabela filter. Exemplos: 11 Mostra todas as chains da tabela filter:

# iptables -L
11 Mostra todas as chains da tabela mangle:

# iptables -L -t mangle
11 Mostra a chain FORWARD da tabela filter:

142

# iptables -L FORWARD -t filter


Duas opes muito teis ao se listar chains so -v e -x. Elas permitem saber quantos pacotes e quantos bytes percorreram cada chain/regra.

Manipulao de chains
Ajuste da poltica padro de uma chain (o que fazer caso nenhuma regra se aplique ao pacote):

# iptables -t filter -P FORWARD DROP


Criar e remover chains:

# iptables -t filter -N servicos_tcp


Utilizar chains de usurio:

# iptables -A INPUT -p tcp --dport 80 -j servicos_tcp


Limpar chains:

# iptables -t table -F <chain>


possvel utilizar apenas as chains do sistema para construir um firewall. Porm, nem sempre isso desejvel. Isso porque, medida que cresce o nmero de regras, o desem penho pode diminuir (um pacote precisa ser avaliado por um nmero maior de regras), e pode aumentar a complexidade de sua manuteno. Para reduzir esses problemas, possvel criar chains novas. Veja as vantagens nesse exemplo: imagine um firewall que possua 50 regras para pacotes TCP, 10 regras para pacotes UDP, e mais 10 regras para pacotes ICMP. Se todas essas regras fossem aplicadas em uma nica chain, um pacote que atravessasse essa chain poderia ser avaliado por at 70 regras. Para evitar isso, poderiam ser criadas chains especficas para tratar de cada protocolo, e, opcionalmente, dividir em mais de uma chain o tratamento das regras TCP. Isso diminuiria as regras pelas quais um pacote seria avaliado, alm de tornar mais fcil a leitura e manu teno do firewall.

Ajuste da poltica padro de uma chain


As chains de sistema possuem polticas padro, isto , especificaes das aes que devem ser tomadas caso nenhuma regra da chain case com o pacote. O valor padro para as chains do sistema ACCEPT, o que faz com que qualquer pacote que no tenha sido negado ou rejeitado seja automaticamente aceito. Esse valor pode ser alterado para DROP ou REJECT com a opo -P <chain> <poltica> do comando iptables. No exemplo seguinte, a poltica padro da chain FORWARD da tabela filter ser alterada para DROP:

Normalmente, a poltica padro altera o modo como sero escritas as regras. Em uma chain com poltica padro DROP, em geral so escritas regras com alvos ACCEPT; e para chains com poltica ACCEPT, regras com alvos DROP ou REJECT.

Criar e remover chains


Para criar uma chain, basta utilizar o comando iptables com a opo -N <nome>. necessrio tambm informar em qual tabela ser criada a chain. Exemplo:

# iptables -t filter -N servicos_tcp


143

Captulo 7 - Segurana Firewall

# iptables -t filter -P FORWARD DROP

Para remover uma chain, a opo utilizada -X. Ao utilizar essa opo, possvel indicar a chain que desejamos remover. Se utilizarmos apenas X, sero removidas todas as chains de usurio. Exemplos:

# iptables -t filter -X servicos_tcp # iptables -X

Utilizar chains de usurio


Como j foi citado, para que um pacote atravesse uma chain de usurio necessrio que em alguma chain do sistema haja uma regra que tenha como alvo uma chain de usurio. Exemplo:

# iptables -A INPUT -p tcp --dport 80 -j servicos_tcp


As regras dessa chain podero aceitar, descartar ou rejeitar um pacote como as outras regras. Ao chegar ao fim da chain sem que haja um casamento com alguma regra, o pacote retornar chain de origem. Tambm possvel utilizar o alvo RETURN com esse objetivo. Exemplo:

# iptables -A servicos_tcp -s 192.168.0.1 -j RETURN

Limpar chains
J foi visto como remover uma regra de uma chain. Mas muitas vezes pode ser necessrio remover todas as regras de uma chain. Em vez de remover regra por regra, pode-se utilizar a opo -F para limpar (flush) todas as regras de uma s vez. Exemplo:

# iptables -t table -F <chain>


Comandos muito utilizados quando precisamos manipular um grande conjunto de regras: 11 iptables-save: 22 L todas as regras no kernel e exibe na sada padro do shell. 22 Exemplo:

# iptables-save > regras_firewall


11 Iptables-restore:
Administrao de Sistemas Linux: Redes e Segurana

22 Executa a operao inversa, ou seja, recebe a entrada padro do shell e insere no kernel. 22 Exemplo:

# iptables-restore <regras_firewall
Embora bastante poderoso, o comando iptables apresenta algumas desvantagens ao lidar com um grande nmero de regras. Para cada regra removida ou inserida, o comando iptables precisa consultar todas as regras j existentes na chain que ele est manipulando. E quanto mais regras h, mais lenta se torna essa operao. Para resolver esse problema possvel utilizar os comandos iptables-save e iptables-restore, capazes de salvar e inserir regras com mais eficincia. O comando iptables-save l todas as regras armazenadas no kernel e as exibe na sada padro do shell em um formato similar ao utilizado pelo comando iptables, prprio para a

144

insero das regras em bloco. Para salvar as regras em um arquivo, basta direcionar a sada do comando para um arquivo. Exemplo:

# iptables-save > regras_firewall


O comando iptables-restore executa a operao inversa, ou seja, recebe pela entrada padro do shell um conjunto de regras no formato do iptables-save e as insere no kernel. Para uti lizar o arquivo do exemplo anterior como entrada padro, basta utilizar o comando:

# iptables-restore <regras_firewall
Outras opes: 11 Habilitando o repasse de pacotes. 11 Ajuste do nmero de conexes registradas. Dicas: 11 Liberar a interface de loopback. 11 Pacotes que atravessam a mquina devem ser filtrados na chain FORWARD, e pacotes que tenham origem ou destino na prpria mquina devem ser filtrados nas chains OUTPUT e INPUT. 11 As regras de uma chain so avaliadas em sequncia. 11 Sempre que possvel, insira antes na chain as regras que casaro com mais pacotes. Alm da criao das regras e chains, muitas vezes necessrio ajustar outros parmetros do kernel e do netfilter para obter o resultado desejado para o firewall. Veremos alguns desses parmetros a seguir.

Habilitando o repasse de pacotes


Por padro, o Linux no faz o repasse de pacotes entre suas interfaces, ou seja, ele no atua como um roteador. Quando construmos um firewall para uma rede, necessrio que o sistema seja capaz de encaminhar pacotes vindos de uma rede para outra. Para isso, necessrio habilitar essa funo, chamada de IP forwarding. Para habilit-la, necessrio mudar o valor do arquivo /proc/sys/net/ipv4/ip_forward para 1:

# echo 1 > /proc/sys/net/ipv4/ip_forward


O Debian permite tornar essa configurao permanente. Basta alterar a seguinte linha do arquivo /etc/sysctl.conf :

net.ipv4.ip_forward = 1

Ajuste do nmero de conexes registradas


O nmero mximo de conexes que o kernel pode acompanhar (connection tracking) definido por padro, em funo da quantidade de memria da mquina. Esse valor fica armazenado no arquivo /proc/sys/net/ipv4/ip_conntrack_max. Caso o firewall seja colocado em uma rede com muitos hosts/conexes, esse valor pode no ser suficiente. Podemos alterar esse valor da seguinte maneira:
Captulo 7 - Segurana Firewall

# echo 65535 > /proc/sys/net/ipv4/ip_conntrack_max


Esse comando pode ser includo em um script de firewall. Outra forma de alterar esse valor atravs da incluso da linha a seguir no arquivo /etc/sysctl.conf :

145

net.ipv4.ip_conntrack_max=65535
O valor 65535 o valor mximo para os kernels da srie 2.4.x.

Dicas
Ao se escrever regras para um firewall, as seguintes dicas podem ser teis: 11 Como o sistema usa a interface de loopback para a comunicao de alguns processos, pode ser necessrio liberar o trfego de pacotes nessa interface. 11 Pacotes que atravessam a mquina devem ser filtrados na chain FORWARD, e pacotes que tenham origem ou destino na prpria mquina devem ser filtrados nas chains OUTPUT e INPUT. 11 As regras de uma chain so avaliadas em sequncia. Logo, a ordem na qual elas so inse ridas influencia no resultado final. 11 Sempre que possvel, insira antes na chain as regras que casaro com mais pacotes. Isso evita que um pacote tenha que percorrer um grande nmero de regras.

146

Administrao de Sistemas Linux: Redes e Segurana

Roteiro de Atividades 7
Atividade 7.1 Mdulo ip_conntrack
Verifique os mdulos carregados no kernel. Caso o mdulo ip_conntrack no esteja carre gado, carregue-o com o comando modprobe. Em seguida:
1. Verifique o contedo do arquivo /proc/net/ip_conntrack. 2. Estabelea uma conexo qualquer com outra mquina. Por exemplo, telnet

www.google.com 80. Em outro shell, verifique o estado do arquivo ip_conntrack. Como essa conexo mostrada?
3. Tente estabelecer uma conexo com um IP no utilizado da sua rede. Como essa tentativa

de conexo mostrada?

Atividade 7.2 Poltica padro


Mude a poltica padro da chain de OUTPUT para DROP. Em seguida:
1. Tente estabelecer uma conexo http. possvel? Por qu? 2. Crie uma regra para permitir que sua mquina estabelea conexes http. 3. Mude a poltica padro da chain INPUT tambm para DROP. ainda possvel estabelecer

conexes http?
4. Crie uma regra na chain INPUT para tornar as conexes http possveis. No utilize regras

com estado.

Atividade 7.3 Firewall Stateful


Continuando a atividade anterior:
1. Remova as regras da chain INPUT. 2. Crie uma regra genrica para permitir conexes j estabelecidas (utilizando estados).

Verifique se possvel estabelecer conexes http.


3. Remova todas as regras criadas e altere as polticas padro para ACCEPT.

Atividade 7.4 Firewall de host


Crie um pequeno firewall para a sua mquina com as seguintes caractersticas:
1. Trfego liberado atravs da interface de loopback. 2. Permisso a qualquer conexo feita a partir da sua mquina. 3. Bloqueio (DROP) a conexes externas com destino sua mquina.
Captulo 7 - Roteiro de Atividades

147

Atividade 7.5 Liberando servios no firewall


Altere o firewall da atividade anterior, para permitir que o servio SSH seja acessado de qual quer mquina. E tambm para que pacotes ICMP sejam permitidos, se vierem de mquinas da sua rede.

Atividade 7.6 Criando chain


Ainda utilizando o firewall da Atividade 7.4, crie uma chain chamada log. Para essa chain, crie:
1. Uma regra para logar pacotes TCP com a flag syn ligada, que deve ter o prefixo TCP. 2. Uma regra para logar pacotes ICMP, que deve logar com o prefixo ICMP. 3. Crie as regras necessrias nas outras chains, para que todos os pacotes percorram a

chain log.
4. Teste as regras e verifique se o firewall est logando pacotes TCP e ICMP.

Atividade 7.7 Firewall de rede


Antes de iniciar esta atividade, remova todas as regras criadas nas atividades anteriores. Nas atividades anteriores foram feitos firewalls apenas para o host. Nesta atividade e nas prximas ser criado um firewall para uma rede. Para tanto, considere que sua mquina possui duas interfaces de rede. Mantenha o endereo ou gateway da interface eth0 da mquina que voc est utilizando. Considere que ela a sua interface de acesso internet. Imagine que sua mquina possui uma interface eth1 com endereo 192.168.200.1/24, e que essa a interface de acesso a intranet. Veja a figura a seguir:

Internet

Eth1: 192.168.200.1/24 Eth0: x.x.x.x/y

Intranet (192.168.200.0/24)

Figura 7.3 Interface de acesso internet.

Leve em conta o cenrio da figura e, nesse momento, apenas o acesso ao firewall. Faa:
1. Regras para liberar o acesso atravs da interface de loopback;
Administrao de Sistemas Linux: Redes e Segurana

2. Regras para evitar o IP spoofing (falsificao do IP de origem do pacote) na chain INPUT; 3. Permita que os hosts da intranet possam acessar o servio SSHD do firewall; 4. Bloqueie qualquer acesso a outros servios/portas da mquina do firewall.

Atividade 7.8 Firewall de rede (continuao)


Continuando a atividade anterior:
1. Habilite o IP forwarding; 2. Crie regras para evitar o IP spoofing (use a chain FORWARD); 3. Crie regras que permitam conexes TCP da intranet para a internet. Utilize a poltica

DROP na chain FORWARD;


4. Permita conexes UDP apenas com origem na intranet e com destino para a porta 53 (DNS).

148

Atividade 7.9 Worm


Suponha que exista um novo worm na internet. Ele infecta mquinas e, em seguida, tenta infectar outras mquinas na internet atravs da porta TCP 31337. Crie regras para bloquear as conexes de sada da sua intranet e logue as tentativas de conexo a essa porta com o prefixo WORM.

Atividade 7.10 DMZ


Para resolver esta atividade, remova todas as regras criadas nas atividades anteriores. Para esta atividade, considere que o firewall possui trs interfaces de rede: eth0, com ende reo 10.0.0.1/30; eth1, com endereo 192.168.0.1/24; e eth2, com endereo 192.168.1.1/24. A interface eth0 est conectada ao roteador de borda (internet). A eth1 est conectada na sua intranet, e a eth2 est conectada a uma rede com os seus servidores de web e e-mail (considere-a como a sua DMZ). A figura a seguir resume a topologia da rede.

Internet Eth0: 10.0.0.1/30 Eth2: 192.168.1.1/24 Eth1: 192.168.0.1/24

Figura 7.4 Topologia da rede da Atividade 7.10.

DMZ

Intranet

Considerando este cenrio:


1. Crie um par de chains para a comunicao entre cada dupla de redes (isto , internet-intranet,

internet-DMZ e intranet-DMZ). Cada chain de um par conter regras para conexes em uma nica direo (por exemplo, intranet -> dmz e dmz -> intranet).
2. Crie as regras na chain FORWARD necessrias para encaminhar os pacotes para cada uma das

chains criadas no item anterior. Apenas pacotes no estado NEW devem ser encaminhados.
3. Crie uma regra genrica na chain FORWARD, para permitir que sejam aceitos pacotes de

conexes estabelecidas ou relacionadas. Mude a poltica da chain de FORWARD para DROP.

149

Captulo 7 - Roteiro de Atividades

150

Administrao de Sistemas Linux: Redes e Segurana

8
Interconexo de redes
objetivos
Entender os conceitos e os tipos de traduo de endereos de rede (NAT); configurar os tipos de NAT em uma rede; aprender o conceito e os tipos de tneis; configurar tneis; entender e aplicar os conceitos de polticas de roteamento e de mltiplas tabelas de roteamento.

conceitos

Traduo de endereos de rede (tipos de NAT, SNAT e DNAT); roteamento avanado atravs de tneis (comando ip tunnel; tneis IPIP, GRE e SIT); tabelas de roteamento (RPDB).

Traduo de endereos de redes


Network Address Translation (NAT): 11 Tambm conhecido como IP-Masquerading. 11 Permite alterar campos do cabealho IP. 11 Frequentemente usado quando no h endereos pblicos para todos os hosts de uma rede. 11 Viabiliza a conexo de toda uma rede internet com apenas um endereo pblico. Ao tratarmos do tema firewall, vimos como uma mquina Linux pode se transformar em um roteador. Basicamente, ao habilitar o IP Forward possvel transformar o host em um

roteador. Neste captulo sero estudadas algumas funcionalidades mais avanadas de rotea mento, como a traduo de endereos de rede ou Network Address Translation (NAT). NAT composto de tcnicas que consistem na alterao dos endereos IP de origem e/ou destino de pacotes que atravessam um roteador ou firewall. Ele contrrio a alguns dos prinno caminho entre a origem e destino. No entanto, o NAT tem sido utilizado com bastante frequncia em certos cenrios. O principal deles quando no h endereos IP vlidos isto , nicos e roteados na internet disponveis para todos os hosts de uma rede. Utilizando tcnicas de NAT, possvel conectar toda uma rede internet a partir de um nico IP vlido.
Captulo 8 - Interconexo de redes

cpios da internet, como o da conectividade fim-a-fim e o da alterao mnima dos pacotes

Tipos de NAT
NAT: 11 Tambm chamado de NAT esttico. 11 Faz a traduo 1:1 (de um endereo IP para outro).

151

NAPT: 11 Traduo de endereos e portas de rede. 11 Usado quando mais de um host precisa utilizar um nico endereo IP. 11 Tambm pode ser classificado em dois outros tipos. 11 Source NAT (SNAT). 22 Destination NAT (DNAT). As tcnicas de NAT podem ser classificadas em dois tipos bsicos: 11 NAPT: em geral chamado apenas de NAT, se refere traduo de endereo e portas de

rede. utilizado quando h mais de um host compartilhando um nico endereo IP vlido. 11 NAT esttico: outra forma de NAT, simplesmente faz a traduo 1:1 de um endereo vlido para um invlido, sem haver mapeamento de portas. O NAPT tambm pode ser classificado em dois outros tipos: 11 Source NAT (SNAT): so alterados o endereo e a porta de origem. 11 Destination NAT (DNAT): so alterados o endereo e a porta de destino. A seguir, ser detalhado o funcionamento desses dois tipos de NAT e o modo como eles podem ser configurados no Linux.

Source NAT (SNAT)


Uso frequente para conectar redes/hosts internet. Como uma rede com endereo privado acessa a internet? 11 Com endereo privado, o pacote geralmente no atinge o destino (filtros). 11 Se atingir, impossvel enviar uma resposta de volta.

Source NAT utilizado, principalmente, para conectar redes ou hosts com endereos IP privados internet. Isso feito atravs da alterao dos endereos IP de origem dos pacotes.
Intranet com Endereos Privados Gateway

Internet 200.0.0.1
Figura 8.1 Source NAT (SNAT).

Administrao de Sistemas Linux: Redes e Segurana

192.168.0.1

Considere o exemplo ilustrado na figura acima. Deseja-se permitir que uma intranet com endereos 192.168.0.0/24 acesse hosts na internet. Para tanto, suponha que exista uma mquina gateway que possui duas interfaces: uma com endereo 192.168.0.1; e outra conectada internet com o endereo IP pblico 200.0.0.1.

152

No exemplo, se o host 192.168.0.5 tentar se conectar a um servidor web da internet sem usar o NAT, ocorrer o seguinte: 11 Os pacotes com destino ao servidor sero rejeitados por algum roteador no meio do caminho, pois comum roteadores da internet no aceitarem pacotes com origem ou destino de endereos IP privados; 11 O servidor web no poder enviar a resposta por no saber como rotear pacotes com endereos de destino privado. Em ambos os casos a conexo no ser possvel. Para evitar essa situao, a soluo usar o SNAT no gateway da rede. Ocorrer o seguinte: 11 Quando os pacotes originrios do host 192.168.0.5 chegarem ao gateway NAT, eles tero seu endereo de origem alterado para o endereo pblico (200.0.0.1 no nosso exemplo), e o gateway passar a armazenar informaes sobre essa conexo; 11 O servidor web utilizar o endereo pblico do gateway NAT para estabelecer a conexo; 11 Ao chegarem ao gateway, os pacotes tero o endereo de destino alterado para o ende reo do host que iniciou a conexo (ou seja, 192.168.0.5).

Em geral, o gateway NAT no altera a porta de origem do pacote. No entanto, se existirem duas conexes com a mesma porta de origem, o gateway NAT ter de alterar a porta de origem de uma dessas conexes.

Configurao do SNAT
11 No Linux, tambm feita pelo netfilter atravs do comando iptables. 11 As regras para SNAT so aplicadas na chain POSTROUTING. No Linux, o NAT feito atravs do netfilter e configurado com o comando iptables. As regras de NAT so aplicadas nas chains da tabela NAT.

As regras para o SNAT devem ser aplicadas na chain POSTROUTING, que percorrida aps o
Kernel Ncleo ou cerne (em ingls: kernel) o componente central do sistema operativo da maioria dos computadores. Ele serve de ponte entre aplicativos e o processamento real de dados em nvel de hardware.

kernel tomar a deciso de roteamento. O alvo para essas regras o SNAT e ele deve ser uti lizado com a opo --to-source indicando o endereo IP para o qual os endereos de origem devem ser alterados. O exemplo a seguir faz o SNAT de todos os pacotes que deixam a mquina atravs da interface eth1 ao utilizar o IP pblico 200.0.0.1:

# iptables -t nat -A POSTROUTING -o eth1 -j SNAT -- to-source 200.0.0.1


A opo --to-source aceita intervalos de IP e intervalos de portas. Para tal, a sintaxe utilizada :

--to-source IP[-IP]:[porta-porta]
Quando um intervalo de endereos IP especificado, o kernel alterna os endereos utilizado, o netfilter o utilizar para as portas de origem dos pacotes de sada. O netfilter possui um modo especial de SNAT, chamado masquerade, que utiliza o alvo MASQ. Esse modo utilizado quando a interface de sada no possui um IP fixo. Na utili zao do alvo MASQ, o netfilter automaticamente usa o endereo IP da interface de sada. De maneira anloga ao alvo SNAT, possvel especificar o intervalo das portas de sada com a opo --to-ports <porta-porta>. O exemplo a seguir faz o SNAT, utilizando a interface ppp0:
Captulo 8 - Interconexo de redes

de origem que sero trocados nos pacotes de sada. Quando um intervalo de portas

# iptables -t nat -POSTROUTING -o ppp0 -j MASQ

153

Assim como as outras regras do netfilter, tambm possvel especificar padres de casamento mais especficos para as regras de NAT. No exemplo seguinte ser feito o SNAT apenas para conexes vindas do host 192.168.0.5 e com destino porta 80 TCP:

# iptables -t NAT -A POSTROUTING -s 192.168.0.5 -p tcp --dport 80 -j SNAT --to-source 200.0.0.1


Exemplos de pacotes que deixam o host com a interface eth1 trocando a origem para 200.0.0.1: # iptables -t nat -A POSTROUTING -o eth1 j\ SNAT --to-source 200.0.0.1

A opo - -to-source aceita um intervalo de IP e porta: --to-source IP[-IP]:[porta-porta] Masquerade um modo especial de SNAT, que usa o alvo MASQ e, automaticamente, o IP da interface de sada: # iptables -t nat -POSTROUTING -o ppp0 -j\ MASQ [--to-ports porta[-porta]] Tambm possvel especificar padres especficos: # iptables -t NAT -A POSTROUTING -p tcp --\ dport 80 -j SNAT --to-source 200.0.0.1 DNAT manipula endereos e portas de destino. Uso comum: 11 Permitir que hosts na internet acessem hosts de uma rede com endereos privados. 11 Balanceamento de servios (balancear requisies com destino porta 80, por exemplo).

Cuidado: no Linux, o DNAT altera os pacotes em apenas um nico sentido (ao contrrio do SNAT). O destination NAT, como o prprio nome indica, manipula os cabealhos dos pacotes ou datagramas e altera os seus IPs ou portas de destino. Uma situao comum em seu uso quando se quer permitir que hosts na internet acessem servios em hosts dentro de uma intranet com endereos IP privados. Em tal cenrio, a conexo entre intranet e internet feita, em geral, atravs de um gateway que possui um endereo vlido e um invlido. Esse gateway pode encaminhar requisies feitas ao seu endereo IP vlido para hosts na intranet. Outra situao comum de uso do DNAT no balanceamento de conexes destinadas a um determinado servio. Por exemplo, um gateway DNAT poderia receber requisies http (porta 80) e balancear essas conexes entre um conjunto de servidores web.
Administrao de Sistemas Linux: Redes e Segurana

l
Um cuidado adicional deve ser tomado ao se utilizar o DNAT. No Linux, o DNAT altera apenas os endereos (e, opcionalmente, portas) de destino dos pacotes em um nico sentido da conexo. J o SNAT altera os pacotes nos dois sentidos da conexo. Logo, comum a utilizao do DNAT associado com o SNAT.

Configurao do DNAT
A configurao do DNAT anloga ao SNAT: 11 As regras devem ser aplicadas na tabela PREROUTING. 11 Exemplo de uso para trocar o destino de pacotes que chegam da interface eth0, com o destino de 200.0.0.1 para 192.168.0.1 # iptables -t nat -A PREROUTING -i eth0 -d \ 200.0.0.1 -j DNAT --to-destination 192.168.0.1 11 Exemplo de balanceamento da porta 80 para conexes vindas pela interface ppp0, para os servidores de 192.168.0.3 a 192.168.0.5:  # iptables -t nat -A PREROUTING -i ppp0 p \ tcp --dport 80 -j DNAT --to-destination \ 192.168.0.3-192.168.0.5

154

Caso especial do DNAT usado para redirecionar pacotes com destino de uma porta para uma porta local (por exemplo, para fazer proxys transparentes). Similar ao SNAT, a configurao do DNAT feita com o comando iptables, para inserir regras em uma chain da tabela NAT. As regras de DNAT devem ser aplicadas na chain PREROUTING, que percorrida logo que os pacotes chegam interface de rede, e antes da tomada de deciso de roteamento. O alvo utilizado nas regras o DNAT, que deve ser utilizado com a opo --to-destination seguida do(s) IP(s) ou porta(s) a serem utilizados no DNAT. Alguns exemplos: 11 Fazendo o DNAT dos pacotes que chegam com destino ao endereo; 11 200.0.0.1, da interface eth0, para o endereo 192.168.0.10:

# iptables -t nat -A PREROUTING -i eth0 -d 200.0.0.1 -j DNAT todestination 192.168.0.10


11 Balanceando requisies porta 80, que chegam pela interface ppp0 para os servidores 192.168.0.3 a 192.168.0.5:

# iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j \ DNAT to-destination 192.168.0.3-192.168.0.5


11 Fazendo o DNAT de conexes com destino ao endereo 200.0.0.1, porta 2222, para o endereo 192.168.0.10, porta 22:

# iptables t nat -A PREROUTING -p tcp -d 200.0.0.1 --dport 2222 -j DNAT --to-destination 192.168.0.10:22
H um caso especial de DNAT, os chamados proxys transparentes. Neles, conexes de sada com destino porta 80 so redirecionadas para um proxy local, sem que haja necessidade de o usurio configurar o seu navegador para isso. No netfilter, para esse tipo de DNAT uti lizado o alvo REDIRECT com a opo --to-ports. Note que necessrio indicar para esse alvo apenas a porta ou os intervalos de portas, j que o IP de destino sempre ser o endereo local 127.0.0.1. O exemplo seguinte poderia ser utilizado para implementar um proxy transparente, redirecionando conexes remotas com destino porta 80 para a porta local 3128:

# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j \ REDIRECT --to-ports 3128

Roteamento avanado
11 Enlaces virtuais ponto-a-ponto. 11 Encapsulamento de protocolo. 11 No Linux, h os seguintes modos:

q
Captulo 8 - Interconexo de redes

22 IPIP: IP sobre IP. 22 SIT: IPv6 sobre IP. 22 GRE: qualquer protocolo sobre IP. Tneis so enlaces virtuais ponto-a-ponto, onde feito o encapsulamento de pacotes, com o mesmo protocolo ou com protocolos diferentes, que so enviados sobre a infraestrutura IP. O uso de tneis permite o fluxo de pacotes entre hosts, independente do protocolo usado para conect-los.

155

No Linux, desde a verso 2.2 do kernel, h os seguintes modos de tneis: Modo ipip sit gre Descrio IP sobre IP IPv6 sobre IP Qualquer protocolo GRE sobre IP Tnel
Tabela 8.1 Modos de tneis.

Rede usando Protocolo X Roteador Multiprotocolo Roteador Multiprotocolo

Rede usando Protocolo X

Tneis
So divididos em duas classes: 11 Point-to-point: 22 Possuem o endereo remoto e encaminham todos os pacotes para esse destino. 11 Non-Broadcast Multi-Access (NBMA): 22 No necessitam de um endereo remoto. 22 Uma rota adicionada para a interface do tnel, informando o gateway. Tneis so divididos em duas classes: 11 Point-to-point: tneis que possuem um endereo remoto, destino para onde encaminham todos os pacotes; 11 Non-Broadcast Multi-Access (NBMA): tneis que no possuem um endereo remoto. Depois que um tnel point-to-point configurado, deve-se configur-lo como se fosse um

Figura 8.2 Rede usando o Protocolo X e roteadores Multiprotocolo.

dispositivo qualquer de rede. J para fazer roteamento com tneis NBMA, preciso informar para aonde os pacotes devem ser encaminhados, ou seja, so criadas rotas com outro gateway informado para usar o tnel.

Administrao de Sistemas Linux: Redes e Segurana

Comandos de configuraes
Utilizao do comando ip: 11 Utiliza-se o objeto tunnel. Sintaxe: ip tunnel add <NOME> mode <MODO> [local <S>] \ [remote <D>] 11 Com o comando ip, o modo do tnel informado como parmetro.

Comando ip tunnel
Desde a verso 2.2 do kernel do Linux, os modos de tneis devem ser criados com o comando ip. O uso do comando ip permite informar o modo do tnel como um parmetro.

156

A seguir so apresentadas as formas de se manusear tneis.

# ip tunnel help Uso: ip tunnel { add | change | del | show } [ NAME ] [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ] [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ] [ ttl TTL ] [ tos TOS ] [ [no]pmtudisc ] [ dev PHYS_DEV ]
Onde:5

NAME := STRING ADDR := { IP_ADDRESS | any } TOS := { NUMBER | inherit } TTL := { 1..255 | inherit } KEY := { DOTTED_QUAD | NUMBER }
O comando seguinte permite criar os diversos tipos de tneis, usando o comando ip:

# ip tunnel add <NOME> mode <MODO> [local <S>] [remote <D>]


11 Este comando cria um novo tnel denominado de <NOME>, onde <NOME> uma string arbitrria; 11 O <MODO> seta o modo do tnel. Atualmente os trs modos so ipip, sit e gre; 11 Para informar o endereo local do tnel, aps local usado o endereo IP <S>; 11 Para informar dados do endpoint do tnel, aps remote usado o endereo IP <D>. Aps ser criado, o tnel torna-se uma interface do host. E da mesma forma que ocorre com uma interface, interessante testar a sua conectividade antes de se adicionar uma rota. Isso pode ser feito acrescentando endereos para a interface do tnel e aps executar um ping. Exemplo:

# ip addr add <ip>/30 dev <NOME>

Tnel IP sobre IP (IPIP)


11 Suporte no kernel (mdulo IPIP).

Como fazer um tnel entre a rede A e B da figura abaixo? O pr-requisito para utilizar tneis no modo IPIP ter suporte no kernel. Para isso, certifique-se de que o kernel do Linux tenha sido compilado com essa opo. Caso esteja compilado como mdulo, deve-se adicionar o
Captulo 8 - Interconexo de redes

seguinte mdulo:

# modprobe ipip

157

Uso do tnel IPIP


H duas redes, A e B. Ambas utilizam IP e no caminho delas h outra rede, por exemplo, a internet. possvel fazer um tnel entre a rede A e a rede B, para que os pacotes entre elas sejam encapsulados pelo tnel e as redes fiquem conectadas com possibilidade de uso da internet. Como mostra a figura, suponha que a rede A tenha o prefixo 10.0.0.0/24, um gateway com endereo local 10.0.0.1 e um endereo na internet 172.10.11.12. Suponha, ainda, que a rede B tenha o prefixo 192.168.0.0/24, um gateway com endereo local 192.168.0.1 e um endereo na internet 172.22.33.44. Ser utilizado o prefixo 192.10.10.0/30 para enderear o tnel. Para que toda a rede A tenha acesso rede B atravs do tnel, o gateway da rede A deve ser configurado da seguinte forma:

Figura 8.3 Tunelamento IPIP/GRE

#ip tunnel add redeb mode ipip remote 172.22.33.44 local 172.10.11.12 ttl 255 #ip link set redeb up
Administrao de Sistemas Linux: Redes e Segurana

#ip addr add 192.10.10.1/30 dev redeb #ip route add 192.168.0.0/24 dev redeb O gateway da rede B deve ter configurao anloga: #ip tunnel add redea mode ipip remote 172.10.11.12 local 172.22.33.44 ttl 255 #ip link set redea up #ip addr add 192.10.10.2/30 dev redea #ip route add 10.0.0.0/24 dev redea

158

O exemplo a seguir criar o tnel da figura anterior, utilizando o comando ifconfig : Gateway da rede A:

# ip tunnel add redeb mode ipip remote \ 172.22.33.44 local 172.10.11.12 ttl 255 # ip link set redeb up # ip addr add 192.10.10.1/30 dev redeb # ip route add 192.168.0.0/24 dev redeb
Como ficaria a configurao do gateway da rede B?

Tnel GRE
11 O tnel Generic Routing Encapsulation foi originalmente desenvolvido pela Cisco. 11 Tornou-se um padro RFC1701/1702. 11 Usado largamente por permitir tunelamento de uma grande variedade de protocolos. 11 Tambm necessita de suporte no kernel (mdulo ip_gre).

Como fazer um tnel entre as redes A e B da figura anterior? Da mesma forma que o modo de tnel IPIP, o pr-requisito para utilizao do modo GRE no Linux ter suporte no kernel. Para isso, certifique-se de que o kernel tenha sido compilado com essa opo. Caso esteja compilado como mdulo, deve-se adicionar o seguinte mdulo:

# modprobe ip_gre
Use o mesmo exemplo do item anterior. Para criar um tnel modo GRE entre as redes A e B, usando o comando ip, a configurao do gateway da rede A ser feita da seguinte forma:

#ip tunnel add redeb mode gre remote 172.22.33.44 local 172.10.11.12 ttl 255 #ip link set redeb up #ip addr add 192.10.10.1/30 dev redeb #ip route add 192.168.0.0/24 dev redeb
O gateway da rede B deve ter configurao anloga:

#ip tunnel add redea mode gre remote 172.10.11.12 local 172.22.3 3.44 ttl 255 #ip link set redea up
Captulo 8 - Interconexo de redes

#ip addr add 192.10.10.2/30 dev redea #ip route add 10.0.0.0/24 dev redea

159

O exemplo a seguir vai criar o tnel da figura anterior, utilizando o comando ip: 11 Gateway da rede A:

#ip tunnel add redeb mode gre remote\ 172.22.33.44 local 172.10.11.12 ttl 255 #ip link set redeb up #ip addr add 192.10.10.1/30 dev redeb #ip route add 192.168.0.0/24 dev redeb
11 Gateway da rede B:

#ip tunnel add redea mode gre remote\ 172.10.11.12 local 172.22.33.44 ttl 255 #ip link set redea up #ip addr add 192.10.10.2/30 dev redea #ip route add 10.10.0.0/24 dev redea

Tnel SIT
11 Utilizado para conectar domnios IPv6 atravs do protocolo IPv4. 11 Necessidade de suporte IPv6 no kernel para fazer tneis SIT. 11 Uso semelhante aos modos IPIP e GRE, mas prefixo da rede de destino IPv6 ao invs de IPv4. Os tneis no modo SIT conectam ilhas que operam com o novo protocolo IPv6 atravs do

protocolo IPv4. Isso ocorre porque tneis precisam ser criados em domnios que utilizem o novo protocolo para se comunicar com os demais domnios IPv6 no mundo, porm utilizando o protocolo IP atual (IPv4). Diferente dos outros modos de tneis, o modo SIT est disponvel no Linux se o kernel possuir suporte para IPv6. Da mesma forma que os outros modos, o suporte ao IPv6 pode ser um mdulo ou estar construdo junto ao kernel. Nas verses mais recentes do Linux (>2.4) o suporte ao IPv6 est disponvel no mdulo denominado IPv6:

# modprobe ipv6
Administrao de Sistemas Linux: Redes e Segurana

160

Rede (IPv6)

Rede (IPv6)

Tnel SIT - IPv6 sobre IPv4

Internet (IPv4)

Gateway: Local: 10.0.0.1 Internet: 172.10.11.12

Gateway: Local: 192.168.0.1 Internet: 172.22.33.44

Figura 8.4 Uso do tnel SIT.

A configurao dos tneis SIT anloga aos modos IPIP e GRE j vistos, mas as rotas que vo utilizar o tnel devem possuir o prefixo da rede em IPv6 em vez de em IPv4:

# ip tunnel add <nome> mode sit remote <endereoV4remoto> local <endereoV4local> # /sbin/ip link set dev <nome> up # ip -6 route add <prefixoV6> dev <nome>

Tabelas de roteamento
11 O Linux tem suporte a mltiplas tabelas de roteamento. 11 Permite criar polticas de roteamento. 11 Informaes sobre as tabelas (/etc/iproute2/rt_tables). O suporte para as mltiplas tabelas de roteamento existe desde a verso 2.2 do kernel do

Linux. O sistema de mltiplas tabelas de roteamento permite ao administrador uma infraestrutura flexvel para implementar polticas de roteamento. O uso de tabelas de roteamento extras utilizado junto com Routing Policy Database (RPDB), que ser visto adiante. Isso permite, por exemplo, fazer roteamento pela origem do endereo IP ou por diversos outros critrios de escolha. As informaes sobre as tabelas de roteamento esto descritas no arquivo /etc/iproute2/rt_tables. As tabelas so identificadas por um valor entre 1 e 255 e por um nome. O contedo do arquivo /etc/iproute2/rt_tables :

# # reserved values # 255 local

161

Captulo 8 - Interconexo de redes

254 m ain 253 default 0 unspec # # local # 1 inr.ruhep

l
Caso esteja implementando alguma poltica de roteamento que necessite de alguma tabela extra, para que ela seja adicionada basta editar o arquivo rt_tables e adicionar uma nova linha, um identificador e um nome. possvel adicionar at 252 tabelas de roteamento.

Na tabela seguinte so explicadas as linhas desse arquivo. Identificador 255 254 Nome local main Descrio Tabela de roteamento especial mantida pelo kernel. Usu rios no podem adicionar novas entradas nessa tabela. A principal tabela de roteamento. Nela ficam as rotas quando adicionadas com o comando route ou ip route (sem especificar a tabela). Tabela especial utilizada pelo kernel. Operaes sobre essa tabela se refletem em todas as demais tabelas. Essa tabela um exemplo indicando que a tabela 1 tem o nome inr.ruhep.

253 0 1

default unspec Inr.ruhep

Tabela 8.2 Linhas do arquivo /etc/iproute2/ rt_tables.

Entradas na tabela de roteamento


Cada tabela pode ter vrias entradas, manipuladas com o comando ip route: 11 unicast. 11 broadcast. 11 local. 11 nat.
Administrao de Sistemas Linux: Redes e Segurana

11 unreachable. 11 prohibit. 11 blakchole. 11 throw. Cada tabela de roteamento pode ter vrias rotas que podem ser manipuladas pelo administrador com o comando ip route. Cada rota na tabela de roteamento possui caractersticas prprias que permitem diferentes comportamentos e funcionalidades. 11 Rota unicast: a mais comum na tabela de roteamento. Ela assumida sempre que no informado o tipo de rota ao comando ip. Exemplos:

# ip route add unicast 192.168.0.0/24 via 192.168.100.5 # ip route add default via 193.7.255.1

162

11 Rota broadcast: usada pelos dispositivos da camada de enlace. usada na tabela local e tipicamente manuseada pelo prprio kernel. Exemplo:

# ip route add table local broadcast 10.10.20.255 dev eth0 proto kernel scope link src 10.10.20.67
11 Rota local: o kernel adicionar uma entrada para a tabela de roteamento local quando o endereo IP for adicionado para uma interface. Exemplo:

# ip route add table local local 10.10.20.64 dev eth0 proto kernel scope host src 10.10.20.67
11 Rota nat: adicionada ao kernel quando configurado stateless NAT (trocar o destino do pacote). Exemplo:

# ip route add nat 192.168.0.1 via 172.16.82.184


11 Rota unreachable: diz que o destino da rota inalcanvel e vai gerar um ICMP unreachable para o remetente. Exemplo:

# ip route add unreachable 172.16.82.184


11 Rota prohibit: funciona de modo semelhante rota unreachable, mas gera um ICMP prohibit para o remetente. Exemplo:

# ip route add prohibit 10.21.82.157


11 Rota blackhole: descarta os pacotes que a utilizarem. Exemplo:

# ip route add blackhole 202.143.170.0/24


11 Rota throw : til quando utilizada com uma poltica de roteamento, pois faz com que o pacote que a use falhe e continue sendo analisado pelo RPDB. Exemplo:

# ip route add throw 10.79.0.0/16


Como j visto, possvel manipular as rotas da tabela de roteamento com o comando ip route. Quando no informada uma tabela de roteamento, ao se adicionar uma rota utilizada a tabela main. Porm, pode ser necessrio informar ao comando a tabela de roteamento. Por exemplo, suponha que no arquivo /etc/iproute2/rt_tables/ foi adicionada uma nova tabela, chamada cliente1 e identificada por 252. Para adicionar uma rota default nesta tabela, usado o seguinte comando:

# ip route add table cliente1 default via <IP>


Ao se consultar a tabela de roteamento com o comando ip, a tabela exibida a main. Portanto, para se consultar uma outra tabela de roteamento (a tabela cliente1 do exemplo
Captulo 8 - Interconexo de redes

anterior), necessrio informar a tabela:

# ip route show table cliente1


No Linux, um cache de roteamento implementado no kernel armazena as consultas recentes feitas nas tabelas de roteamento. Este cache permite que as demais consultas feitas sejam referenciadas mais rapidamente. Para consultar este cache, pode ser utilizado o comando:

# ip route show cache

163

Este cache expira periodicamente. Para adiantar esse processo e garantir o comportamento esperado, ao se fazer uma alterao nas tabelas de roteamento importante limpar este cache, com o seguinte comando:

# ip route flush cache

Routing Policy Database (RPDB)


11 Usada pelo kernel para controlar a ordem de consulta nas diversas tabelas. 11 O RPDB manipulado pelo comando ip rule. 11 Cada regra possui uma prioridade, que examinada sequencialmente (0 a 32767). O banco de dados da poltica de roteamento (Routing Policy Database RPDB) utilizado

pelo kernel para controlar a ordem de consultas nas diversas tabelas de roteamento. Antes de um pacote ser roteado por uma entrada de alguma tabela, o pacote consulta o RPDB para decidir a poltica de roteamento. O administrador pode querer manipular a RPDB para adicionar regras que faam com que um determinado pacote IP utilize uma tabela de roteamento diferente. Estas regras so manuseadas com o comando ip rule. Cada regra adicionada possui uma prioridade: so examinadas sequencialmente, da regra identificada com 0 at a regra 32767.

# ip rule show 0: from all lookup local

32766: from all lookup main 32767: from all lookup default
Note que a tabela de roteamento main possui prioridade 32766. As regras que o administrador vai inserir devero ter uma prioridade maior (identificador menor) para que tenham efeito. Portanto, quando uma regra adicionada, por padro ela possui prioridade maior (identificador menor) do que uma regra que j existe no RPDB. Podemos, contudo, informar a preferncia de uso da regra da seguinte forma:

# ip rule add unicast from 10.0.0.0/24 table cliente1 pref <valor>


Administrao de Sistemas Linux: Redes e Segurana

Semelhantes s do comando ip route, as regras que podem ser adicionadas pelo administrador possuem caractersticas prprias. Essas caractersticas permitem diferentes comportamentos e funcionalidades. 11 Regra unicast: tipo mais comum, informa o kernel para usar uma determinada tabela de acordo com a regra. Exemplo:

# ip rule add unicast from 192.168.100.0/24 table 5


11 Regra nat: corrige operaes de stateless NAT (rescrever a origem do pacote). Exemplo:

# ip rule add nat 192.168.0.1 from 172.16.82.184


11 Regra unreachable: torna inatingvel qualquer pacote que case com ela, gerando um ICMP unreachable. Exemplo:

# ip rule add unreachable from 192.168.7.0/25

164

11 Regra prohibit: funciona de forma semelhante regra unreachable, mas gera um ICMP prohibit para o remetente. Exemplo:

# ip rule add prohibit from 192.168.12.0


11 Regra blackhole: descarta qualquer pacote que case com ela. Exemplo:

# ip rule add blackhole from 209.10.26.51


Aps ter sido estudado como adicionar tabelas, rotas e regras de roteamento, possvel, por exemplo, utilizar uma tabela de roteamento selecionada por uma regra do RPDB para fazer um roteamento pela origem. A regra do RPDB informar ao kernel que os pacotes com uma determinada origem utilizam uma tabela de roteamento adicionada pelo administrador:

# ip rule add from 10.0.0.0/24 table <tabela>


A tabela de roteamento adicionada deve possuir alguma rota que informe para onde enviar o pacote:

# ip route add default via <gateway> table <tabela>


Para que a configurao comece a funcionar sem precisar aguardar o cache expirar, o admi nistrador pode expirar a cache do kernel manualmente:

# ip route flush cache

Tipos de regras
11 unicast. 11 nat. 11 unreachable. 11 prohibit. 11 blackhole. A ltima regra adicionada possui mais prioridade. Pode-se informar o valor da priori dade explicitamente.

# ip rule add unicast from 10.0.0.0/24 table\ cliente1 pref <valor>


Com RPDB e mltiplas tabelas, como podemos fazer roteamento pela origem?

# ip rule add from 10.0.0.0/24 table \ <tabela> # ip route add default via <gateway> table \ <tabela> # ip route flush cache

165

Captulo 8 - Interconexo de redes

166

Administrao de Sistemas Linux: Redes e Segurana

Roteiro de Atividades 8
Atividade 8.1 SNAT
Crie uma regra de SNAT para que os pacotes do tipo ICMP saiam da sua mquina com o endereo de origem trocado para 10.0.0.1. Utilize os comandos ping e tcpdump para verificar o que acontece ao se tentar pingar um host. Remova a regra aps terminar a atividade.

Atividade 8.2 SNAT (continuao)


Utilize dois terminais ou consoles para esta atividade. Em um deles, execute um tcpdump; em outro, faa o seguinte:
1. Um telnet para a porta 80 de um site qualquer. Qual foi a porta de origem utilizada

pelo sistema?
2. Crie uma regra de SNAT para que os pacotes com destino porta 80 saiam com a porta

de origem entre os valores 6000 e 7000.


3. Repita o item (a). Qual foi a porta de origem dos pacotes que saram da mquina local? 4. Remova as regras de NAT.

Atividade 8.3 DNAT


As Atividades 8.3, 8.4, 8.5, 8.6 e 8.7 devem ser feitas em duplas, com cada aluno ou grupo em uma mquina. Utilize dois terminais ou consoles para esta atividade. Em um deles, execute um tcpdump; em outro, faa o seguinte:
1. Crie uma regra de DNAT para que todos os pacotes com origem na mquina de sua dupla,

e com endereo de destino, IP e porta de destino 8080, sejam redirecionados para o endereo de um servidor http na porta 80 (por exemplo, <ip_google>:80). No se esquea de habilitar o IP forward.
2. A partir de outra mquina, execute um telnet para o endereo de sua mquina, na porta

8080. O que acontece? possvel completar a conexo? Explique.

Atividade 8.4 DNAT (continuao)


O que necessrio fazer para permitir que as conexes do item (b) da Atividade 8.3 sejam
Captulo 8 - Roteiro de Atividades

completadas? Teste a sua soluo.

167

Atividade 8.5 Redirect


Nesta atividade ser explorado o alvo REDIRECT do netfilter. Combine com o seu colega quem ser o servidor e quem ser o cliente. Execute:
1. No servidor, execute o comando nc no modo listen na porta 3000. A partir da mquina

cliente, teste com o comando nc se possvel conectar na porta 3000 do servidor.


2. No servidor, crie uma regra para redirecionar para a porta 3000 as conexes com destino

porta 6000. A partir do cliente, teste uma conexo com destino porta 6000 do servidor.

Atividade 8.6 Tnel IPIP


Combine com a sua dupla quem ser a ponta A e quem ser a ponta B:
1. Carregue o mdulo IPIP. Em seguida, da mquina A para B (e vice-versa), crie um tnel

chamado meutunel com o comando ip tunnel.


2. Adicione o endereo 10.0.0.1/30 mquina A, e o endereo 10.0.0.2/30 mquina B.

Utilize o comando ip addr.


3. Levante as interfaces do tnel com o comando ip link. 4. A partir da mquina A, faa um ping para 10.0.0.2. Utilize o tcpdump e verifique como

esses pacotes so vistos nas interfaces meutunel e eth0.

Atividade 8.7 MTU


Sobre o tnel feito na atividade anterior, responda:
1. Qual a MTU utilizada na interface do tnel? 2. O que pode acontecer com pacotes de tamanho maior que a MTU do tnel? 3. Onde esses pacotes sero remontados?

Atividade 8.8 Tabela de Roteamento


Sobre tabelas de roteamento, verifique:
1. Quais tabelas de roteamento existem na sua mquina?
Administrao de Sistemas Linux: Redes e Segurana

2. As rotas da tabela main (dica: use o comando ip route). 3. As rotas da tabela local.

168

Atividade 8.9 Testando rotas


As atividades 8.9 e 8.10 devem ser feitas em duplas, com cada aluno ou grupo em uma mquina. Uma mquina far o papel de roteador e outra ser utilizada para testar as rotas. Utilize o comando ip route para:
1. Criar no roteador uma rota do tipo unreachable para o destino 10.0.100.0/24. Na outra

mquina, crie uma rota para essa rede utilizando como gateway o endereo do roteador. Execute um ping para o endereo 10.0.100.1 e verifique o comportamento com o tcpdump.
2. Criar uma rota do tipo prohibit para o destino 10.0.101.0/24. Na outra mquina, crie uma

rota para essa rede utilizando como gateway o endereo do roteador. Execute um ping para o endereo 10.0.101.1 e verifique o comportamento com o tcpdump.
3. Criar uma rota do tipo blackhole para o destino 10.0.102.0/24. Na outra mquina, crie uma

rota para essa rede utilizando como gateway o endereo do roteador. Execute um ping para o endereo 10.0.102.1 e verifique o comportamento com o tcpdump.

Atividade 8.10 Roteamento pela origem


Esta atividade utiliza uma tcnica chamada roteamento pela origem. Uma mquina far o papel de roteador e outra ser utilizada para testar as rotas.
1. No roteador, crie duas tabelas de roteamento: a tabela buraconegro, com prioridade 5,

e a tabela proibida, com prioridade 6. Dica: edite o arquivo /etc/iproute2/rt_tables.


2. No roteador, acrescente uma rota default do tipo blackhole na tabela buraconegro. 3. No roteador, acrescente uma rota default do tipo prohibit na tabela proibida. 4. Na outra mquina, acrescente uma rota para 10.0.200.0/24 via <ip_roteador>. 5. No roteador, acrescente uma regra para que tudo que venha do outro host seja roteado

utilizando-se a tabela buraconegro. No host, execute um ping 10.0.200.1. O que acontece?


6. No roteador, remova a regra do item (e) e acrescente uma regra para que tudo que venha

do host seja roteado com a tabela proibida. Execute o comando ip route flush cache em ambas as mquinas. No host, execute um ping 10.0.200.1. O que acontece?

169

Captulo 8 - Roteiro de Atividades

170

Administrao de Sistemas Linux: Redes e Segurana

9
VPN e protocolos de tunelamento de nvel 2
objetivos
Entender o conceito de Virtual Private Network (VPN) e sua aplicao; entender o que tunelamento, e configurao e instalao de OpenVPN.

conceitos

VPN, pacotes LCP, protocolos SLIP, GRE, PPTP, L2F, L2TP, IPSec e tunelamento.

Virtual Private Network (VPN)


Dividida em duas categorias: 11 Acesso remoto. 11 Intranet ou extranet. Vantagens: 11 Custo mais baixo que em redes privadas. 11 Flexibilidade maior. 11 Menor esforo de gerenciamento.

VPN uma forma de comunicao utilizada por uma rede corporativa apoiada numa infraestrutura pblica compartilhada, empregando a mesma segurana, gerenciamento e polticas de desempenho aplicadas numa rede privada. Pode ser dividida em duas categorias, cada uma com diferentes caractersticas de segurana e desempenho: 11 Acesso remoto (remote access): conectam usurios mveis com uma quantidade pequena de trfego para a rede corporativa; 11 Intranet ou extranet : conecta locais fixos, filiais e escritrios pertencentes a uma WAN corporativa. Vantagens de uma VPN para uma rede corporativa: 11 Custo mais baixo do que o de redes privadas: reduz o custo de operao, o equipamento de backbone e a largura de banda da rede de transporte. 11 Flexibilidade maior: permite aproveitar a economia da internet, oferecendo maior flexibilidade s mudanas necessrias para acompanhar a demanda e a evoluo dos negcios.

171

Captulo 9 - VPN e protocolos de tunelamento de nvel 2

11 Simplicidade de topologia de rede.

11 Menor esforo de gerenciamento: VPN mais simples de operar e gerenciar do que uma rede privada proprietria. 11 Simplicidade de topologia de rede: a utilizao de um backbone IP elimina a necessi dade de uso de protocolos orientados conexo, tais como Frame Relay e ATM.

Proteo da VPN
11 Tneis e encriptao. 11 Autenticao de pacotes. 11 Firewall e deteco de intrusos. 11 Autenticao de usurios.

A utilizao de infraestrutura de rede WAN pblica compartilhada traz alguns problemas de segurana bastante complexos. As empresas precisam garantir que suas VPNs so seguras contra ataques, tentativas de invaso e acessos no autorizados. Para proteo adequada da VPN devemos ter: 11 Tneis e encriptao: tneis criptografados protegem os dados de interceptao e visualizao por usurios no autorizados, executando encapsulamento multiprotocolo, quando necessrio; 11 Autenticao de pacotes: a integridade dos dados numa rede compartilhada tambm um requisito de segurana. Numa rede insegura, pacotes podem ser interceptados e seu contedo alterado. A autenticao de pacotes protege contra esse tipo de violao de segurana utilizando cabealhos adicionais ao pacote IP (o AH do IPSec, por exemplo); 11 Firewall e deteco de intrusos: o firewall monitora o trfego que cruza o permetro da rede e impe restries de acordo com uma poltica de segurana, alm de proteger contra ataques de rede. O sistema de deteco de intruso opera em conjunto com o firewall analisando o contedo e o contexto dos pacotes para determinar se o trfego autorizado e para verificar se a poltica de segurana est sendo cumprida no mbito da rede corporativa; 11 Autenticao de usurio: permite que apenas usurios autorizados tenham acesso aos recursos da rede, enquanto os no autorizados devem ser banidos; Uma VPN deve assegurar o uso eficiente da largura de banda e desempenho confivel para dados importantes. A natureza do trfego de dados, devido sua caracterstica de rajadas, tende a deixar ociosos os enlaces por alguns perodos de tempo e em outros momentos cria
Administrao de Sistemas Linux: Redes e Segurana

congestionamentos pelo envio excessivo de pacotes de uma s vez.

Arquitetura VPN de acesso remoto


VPN de acesso remoto estende as facilidades de rede corporativa a usurios remotos em geral. Os usurios podero se conectar s intranets ou extranets quando e como quiserem. Numa arquitetura VPN de acesso remoto, tunelamento e encriptao podem ser iniciados no cliente PC ou no Network Access Server (NAS). No primeiro caso, o tnel criptografado estabelecido no cliente, usando IPSec, L2TP ou PPTP. No caso do NAS, no existem requisitos especiais no software do cliente. O usurio remoto disca para o Ponto de Presena (POP) do provedor de servio usando uma conexo PPP/SLIP, autenticado pelo provedor do servio e inicia um tnel seguro do POP at a rede corporativa onde o usurio novamente autenticado. A desvantagem que o trecho entre o cliente e o POP no seguro.
Extranet a poro da rede de computadores de uma empresa que faz uso da internet para partilhar com segurana parte do seu sistema de informao.

172

Empresa

IPSec

/PPTP

/L2TP

Figura 9.1 A Arquitetura VPN de acesso remoto.

L2TP/L2F

PSTN NAS

Roteador VPN

Arquitetura VPN intranet e extranet


VPNs intranet/extranet substituem as linhas privadas ou outra infraestrutura de WAN por infraestrutura de rede compartilhada (como a internet) ou fornecida por provedores de servio, tais como redes IP, Frame Relay ou ATM. VPNs intranet usam IPSec ou GRE para a criao de tneis seguros atravs da rede. Quando a internet usada, preciso lembrar que no h garantia de QoS, embora os custos sejam relativamente mais baixos.

Empresa Filial NAS

IPSec

GRE

IPSec GRE

Roteador VPN

NAS

Figura 9.2 Arquitetura VPN intranet e extranet.

173

Captulo 9 - VPN e protocolos de tunelamento de nvel 2

Filial

Protocolos de tunelamento PPP/SLIP


11 Linhas seriais ponto-a-ponto. 11 Encapsulam pacotes IP em linhas seriais. 11 Componentes do PPP: 22 High-Level Data Link Control (HDLC). 22 Link Control Protocol (LCP). 22 Network Control Protocol (NCP). 11 lnterfaces DTE/DCE, circuitos duplex.

Protocolo PPP
A grande maioria dos hosts na internet era conectada atravs de redes locais de vrios tipos, sendo a Ethernet a mais comum. Outros hosts eram conectados atravs de redes X.25 e relativamente poucos atravs de linhas seriais ponto-a-ponto. Uma razo para isso era a falta de um protocolo padro de encapsulamento internet. O PPP foi concebido para resolver esse problema. Assim, o PPP prov um padro de encapsulamento do protocolo IP sobre linhas seriais. Alm disso, ele permite atribuio e gerenciamento de endereos IP, encapsulamento assncrono (startlstop) e sncrono orientado a bit (bit-oriented), multiplexao de protocolos de rede, configurao de linhas, teste da qualidade da linha, deteco de erros e, opcionalmente, negociao de endereos da camada de rede e compresso de dados. Componentes do PPP: 11 HDLC para encapsulamento de datagramas sobre linhas seriais; 11 LCP para o estabelecimento, configurao e teste da conexo de Enlace de Dados; 11 NCP para negociao das opes de mltiplos protocolos de camada de rede.

01111110 Flag

11111111 Endereo

00000011 Controle

Protocolo 1 ou 2 bytes

Informao Comp. varivel

Vericao 1 ou 2 bytes

01111110 Flag
Figura 9.3 Formato do quadro PPP.

Administrao de Sistemas Linux: Redes e Segurana

O protocolo PPP capaz de operar com qualquer interface DTE/DCE. Exemplos: RS-232-C, RS-422, RS-423 e V.35. A nica exigncia absoluta a proviso de um circuito duplex, dedicado ou comutado, que possa operar no modo bit-serial sncrono ou assncrono, transparente para os quadros de Enlace de Dados PPP. No h restrio quanto velocidade dos enlaces, exceto a limitao das interfaces. O quadro PPP mostrado na figura composto pelos seguintes campos: 11 Flag : 1 byte que indica o incio e o fim do quadro; sequncia binria 01111110; 11 Address: 1 byte com a sequncia binria 11111111 (endereo broadcast padro); o proto colo PPP no atribui endereo individual estao; 11 Control: 1 byte com a sequncia binria 00000011, que sinaliza transmisso de dados de usurio em quadro no sequenciado; um servio de Enlace de Dados sem conexo similar ao LLC tipo 1;

174

11 Protocol : 2 bytes que identificam o protocolo encapsulado no campo de informao do quadro; 11 Data: zero ou mais bytes que contm o datagrama do protocolo (PDU) especificado no campo de protocolo; o final do campo de dados indicado pelo campo Flag e permite ainda 2 bytes para o campo FCS; o tamanho mximo default do campo de dados 1.500 bytes, embora implementaes PPP possam usar outros valores, atravs de negociao; 11 Frame Check Sequence (FCS): 2 bytes por default; podem ser usados 4 bytes para melhor deteco de erros. O PPP Link Control Protocol (LCP) fornece um mtodo para o estabelecimento, manuteno e terminao das conexes ponto-a-ponto. O LCP tem 4 fases: 11 Estabelecimento do enlace e negociao da configurao: antes de iniciar a transmisso de qualquer PDU do protocolo da camada de rede (exemplo: IP), LCP precisa abrir a conexo e negociar os parmetros de configurao; essa fase se encerra quando um quadro de reconhecimento de configurao enviado e recebido. 11 Determinao da qualidade do enlace: LCP permite uma fase opcional de determi nao da qualidade do enlace aps a fase anterior; nessa fase o enlace testado para determinar se a qualidade suficiente para atender ao protocolo da camada de rede; 11 Negociao da configurao do protocolo da camada de rede: aps o LCP encerrar a fase anterior, os protocolos da camada de rede podem ser configurados separadamente e ativados ou desativados a qualquer tempo; se o LCP encerrar o enlace, ele informa ao protocolo da camada de rede para que possa tomar as aes apropriadas; 11 Terminao do enlace: o LCP pode terminar o enlace a qualquer tempo; o encerra mento normalmente feito a pedido do usurio, mas pode ser feito devido ocorrncia de anormalidades. O LCP possui 3 classes de quadros: 11 Quadros de estabelecimento do enlace;

w
Consulte o RFC 1661 na internet e saiba mais tambm em Internetworking Technology Hand book, no site da Cisco.

11 Quadros de terminao do enlace; 11 Quadros de manuteno do enlace. O Network Control Protocol (NCP) especfico para cada protocolo de camada de rede e permite que as solicitaes de configurao a serem feitas sejam especficas para o pro possibilidade mais importante.
Captulo 9 - VPN e protocolos de tunelamento de nvel 2

tocolo em questo. No caso do IP, por exemplo, a atribuio dinmica de endereo IP a

Dead

UP

Establish

OPENED

Authenticate

Figura 9.4 Protocolo PPP: usurio remoto com um computador.

FAIL SUCCESS /NONE DOWN CLOSING

Terminate

Network

175

Pacotes LCP
Onze tipos de pacotes LCP so definidos na RFC 1661 e esto na tabela a seguir: Nome Configure-request Configure-ack Configure-nak Configure-reject Terminate-request Terminate-ack Code-reject Protocol-reject Echo-request Echo-reply Discard-request Direo IR IR IR IR IR IR IR IR IR IR IR Descrio Lista de opes e valores propostos. Todas as opes so aceitas. Algumas opes no so aceitas. Algumas opes no so negociveis. Solicita a desativao da linha. Solicita a desativao da linha. Solicitao desconhecida recebida. Protocolo desconhecido solicitado. Favor enviar este quadro de volta. Aqui est o quadro de volta. S descarta este quadro (para fins de teste).
Tabela 9.1 Os pacotes LCP: onze no total.

Os quatro tipos de pacotes Configure permitem que o iniciador (I) proponha valores de opo e que o respondedor (R) os aceite ou rejeite. Nesse ltimo caso, o respondedor poder fazer uma proposta alternativa ou informar que no deseja negociar determinadas opes. As opes que estiverem sendo negociadas e seus valores propostos fazem parte do LCP. Os cdigos de Terminate so utilizados para encerrar uma linha quando ela no mais necessria. Os cdigos de Code-reject e Protocol-reject so utilizados pelo respondedor para indicar que ele recebeu algo que no consegue entender. Essa situao pode significar que ocorreu um erro de transmisso no detectado, mas provavelmente significa que o iniciador e o respondedor esto executando diferentes verses do protocolo LCP. Os tipos de Echo so utilizados para testar a qualidade da linha. Por fim, utiliza-se o Discard-request para depurao de erros. Se uma das extremidades estiver tendo pro blemas em obter bits do cabo, o programador poder utilizar esse tipo para teste.
Administrao de Sistemas Linux: Redes e Segurana

Se conseguir terminar, ele ser simplesmente descartado pelo receptor e no ser executada qualquer outra ao. As opes que podem ser negociadas incluem a definio do tamanho mximo da carga til (payload) para os quadros de dados, a ativao da autenticao e a escolha do protocolo a ser utilizado, a ativao da monitorao da qualidade da linha durante a operao normal e a seleo de diversas opes de compactao de cabealhos. De modo geral, h muito pouco a ser dito sobre os protocolos NCP. Cada um deles espec fico para algum protocolo de camada de rede e permite que as solicitaes de configurao a serem feitas sejam especficas para o protocolo em questo. No caso do IP, por exemplo, a atribuio dinmica de endereos IP a possibilidade mais importante.

176

Protocolo SLIP
Serial Line Internet Protocol (SLIP): 11 Conexes seriais ponto-a-ponto. 11 Coloca o datagrama IP em quadros com trailer END. 11 Enlaces seriais dedicados ou discados de baixa velocidade. 11 Pacotes no mximo de 1006 bytes. 11 Simples e sem recursos. 22 Integra a RFC 1055.

A famlia de protocolos TCP/IP opera sobre uma grande variedade de sub-redes: IEEE 802.3 (Ethernet), 802.5 (Token Ring), linhas X.25, enlaces de satlite e linhas seriais. Existiam padres para o encapsulamento de pacotes IP para todas essas sub-redes, exceto para linhas seriais. O primeiro protocolo definido para o encapsulamento de datagramas IP foi o SLIP Serial Une IP, comumente usado para conexes seriais ponto-a-ponto rodando TCP/IP. SLIP simplesmente um protocolo de insero de pacotes IP em quadros. SLIP define uma sequncia de caracteres no quadro que carrega o pacote IP e nada mais. No prov endereamento, identificao do tipo de pacote ou mecanismos de deteco ou correo de erros ou de compresso. Por fazer to pouco, to fcil de implementar. Em princpio, o SLIP envia um pacote com um caracter END no final. As implementaes do SLIP existentes limitam-se a pacotes de at 1006 bytes, sendo esse o tamanho mximo de datagrama recomendado. O RFC 1055 de 01/06/1988 define as caracte rsticas do SLIP e ainda mostra um cdigo em C como exemplo de implementao. Operao: 11 Caracteres end (192) e slip esc (219). 11 Envia o datagrama, termina com end . 11 Se aparecer um end, envia ESC+220 . 11 Se aparecer um ESC, envia ESC+221. Problemas: 11 Endereos conhecidos nas pontas.
Captulo 9 - VPN e protocolos de tunelamento de nvel 2

11 Somente um protocolo de cada vez. 11 Sem deteco ou correo de erros. 11 Sem compresso. O protocolo SLIP define dois caracteres especiais: END e ESC. END decimal 192 e ESC decimal 219. Note que o caractere ESC nada tem a ver com ASCII ESC; para nossos prop sitos chamaremos de SLIP ESC. Para enviar um pacote, SLIP simplesmente inicia enviando os dados do pacote. Se um byte de dados for igual a um caracter END, ele envia uma sequncia de dois bytes: ESC e decimal 220. Se um byte de dados for igual a ESC, ele envia uma sequncia de dois bytes: ESC e decimal 221. Aps o ltimo byte do pacote, um caracter END enviado.

177

Na poca de sua definio o SLIP foi bastante til. Hoje em dia foi largamente superado pelo protocolo PPP, principalmente devido s seguintes deficincias: 11 Ambos os hosts nas duas pontes precisam conhecer o endereo um do outro; numa linha dedicada no h problema, mas numa linha discada ser preciso implementar um sistema para a troca de informaes de endereos, porque o SLIP no possui mecanismo para isso. 11 No existe campo para tipo de protocolo, assim apenas um protocolo de cada vez pode ser encaminhado na conexo serial, no sendo possvel multiplexar protocolos no enlace. 11 No existem mecanismos de deteco ou correo de erros. 11 No existem mecanismos de compresso.

Protocolo GRE
Generic Routing Encapsulation (GRE): 11 Procotolo utilizado, normalmente, em roteadores de borda; 11 Desvantagens: 22 Configurado manualmente. 22 Quanto maior for a quantidade de tneis, maior ser o consumo de banda. Protocolo de tunelamento projetado para encapsular uma grande variedade de pacotes

da camada de rede do protocolo IP. O GRE foi desenvolvido pela Cisco e projetado para ser stateless. Comparado a outros protocolos de tunelamento, como o IPSec, o GRE possui a habilidade de trabalhar com protocolos multicast. Um exemplo a utilizao do OSPF em um tnel GRE.

0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 C R K S s Recur Flags Ver Protocol Type Oset (optional)

Checksum (optional) Key (optional) Sequence Number (optional)


Administrao de Sistemas Linux: Redes e Segurana

Routing (optional)

Figura 9.5 Protocolo Generic Routing Encapsulation (GRE).

Tneis GRE so normalmente configurados nos roteadores de borda (configurao ponto-a-ponto). Os pacotes a serem enviados atravs do tnel so encapsulados por um novo cabealho (cabealho GRE) e colocados no tnel com o endereo de destino do final do tnel. Ao chegar a esse final, os pacotes so desencapsulados (retira-se o cabealho GRE) e continuaro seu caminho para o destino determinado pelo cabealho original. Desvantagens: 11 Os tneis GRE so geralmente configurados manualmente; 11 Quanto maior a quantidade de tneis, maior ser o consumo da banda de rede e do pro cessamento dos roteadores.

178

Na figura anterior pode ser observado o datagrama do protocolo GRE. Explicao de cada campo: 11 C, Checksum Presente (1 bit): ativa a verificao do campo Checksum. 11 R, Routing Presente (1 bit): ativa a verificao do campo Routing. 11 K, Key Presente (1 bit): informa que o campo Key possui informaes vlidas. 11 S, Number Sequence Presente (1 bit): informa que o campo Sequence Number possui informaes vlidas. 11 s, Strict Source Route (rota de origem restrita 1 bit): bit reservado para implementaes futuras. 11 Recur Recursion Control (controle de reincidncia 3 bits): contm o nmero adicional de encapsulamentos permitidos; 0 o padro. 11 Flags (5 bits): bits reservados que devem ser transmitidos como 0. 11 Ver (verso 3 bits): verso do protocolo GRE; deve ser setado para 0. 11 Type Protocol (tipo do protocolo 16 bits): contm o tipo do protocolo utilizado pelo payload. Em geral, o valor ser o definido para o protocolo Ethernet. Valores adicionais podem ser definidos em outros documentos. 11 Checksum (16 bits; opcional): cdigo utilizado para verificar erros de transmisso. 11 Offset (16 bits; opcional): indica o byte offset de incio do campo Routing e o primeiro byte da entrada ativa do roteamento de origem para ser examinado. 11 Key (chave 32 bits): contm a chave definida pelo encapsulator, que pode ser usada pelo receptor para autenticar a fonte dos dados. 11 Sequence Number (nmero sequencial): contm um nmero inserido pelo encapsulator, que pode ser usado pelo receptor para estabelecer a ordem em que os pacotes foram transmitidos. 11 Routing (roteamento): esse campo uma lista de SREs.

Protocolo PPTP
O Point-to-Point Tunneling Protocol (PPTP) foi desenvolvido como uma extenso do proto colo ponto-a-ponto (PPP). Ele encapsula os protocolos IP, NetBEUI ou IPX em datagramas do PPP dentro de um cabealho GRE. Na prtica, por se tratar de um protocolo baseado na camada 2 do modelo OSI (enlace), voc pode executar remotamente aplicativos que efetua todas as verificaes e validaes de segurana, alm de permitir a criptografia de dados, o que torna mais seguro o envio de informaes em redes que no sejam seguras. O protocolo PPTP tambm pode ser utilizado entre redes locais privadas.
Captulo 9 - VPN e protocolos de tunelamento de nvel 2

dependem de determinados protocolos de rede privada. O servidor de encapsulamento

192.168.254.200

192.168.254.201

192.168.0.0/24 Rede

Internet

192.168.2.0/24 Rede

Figura 9.6 O Point-to-Point Tunneling Protocol.

Roteador R1 Tnel 131.193.50.165

R2 131.193.50.184

179

PPTP um protocolo proprietrio da Microsoft que tem como principal desvantagem o fato de no implementar o uso de criptografia de forma nativa.

Protocolo L2F
11 Protocolo de camada 2 criado pela Cisco. 11 Permite o tunelamento de um link de comunicao encapsulando o PPP/SLIP. O protocolo Layer-2 Forwarding (L2F) usado para estabelecer um tnel seguro em uma infraestrutura pblica (como a internet) que liga um POP ISP a um gateway interno de uma empresa. Isso cria um tnel virtual ponto-a-ponto entre o usurio e a rede interna da empresa em que o cliente trabalha.

Por ser um protocolo de camada 2, o L2F permite o tunelamento de um link de comunicao (exemplo: HDLC, async HDLC ou frames SLIP) encapsulando o PPP/SLIP dentro de um pacote L2F. O NAS ISP e o home gateway exigem um entendimento comum de modo a permitir a transmisso e recepo com sucesso em toda a internet dos pacotes encapsulados SLIP/PPP. As principais funes do protocolo Cisco L2F foram cobertas pelo protocolo L2TP, atual mente o protocolo padro utilizado para tunelamento.

1 1 1 1

1 1 1 1

1 1 1

16 Version

24 Protocol

32 bits Sequence

F K P S O O O O O O O O C

Multiplex ID Multiplex ID Key

Client ID Oset
Figura 9.7 Protocolo L2F (Layer-2 Forwarding).

Administrao de Sistemas Linux: Redes e Segurana

A estrutura bsica do protocolo pode ser observada na Figura 9.7. Principais atributos do cabealho: 11 Version: verso do software que criou o pacote; 11 Protocol: determina o tipo do protocolo utilizado para transportar os pacotes L2F; 11 Sequence: o nmero de sequncia est presente se o bit S estiver configurado para 1 no cabealho L2F; 11 Multiplex ID: o pacote multiplex ID identifica um tipo particular de conexo no interior do tnel; 11 Client ID: o Cliente ID auxilia os endpoints nos tneis de multiplexing; 11 Length: determina o tamanho total do pacote em octetos, incluindo o cabealho, todos os campos e o payload; 11 Offset: esse campo identifica o nmero de bytes antes do cabealho L2F e aps o incio do payload de dados. Esse campo est presente se o bit F estiver setado no cabealho L2F;

180

11 Key : o campo chave est presente se o bit K estiver setado no cabealho L2F; faz parte do processo de autenticao; 11 Checksum: o checksum do pacote. O campo checksum est presente se o o bit C estiver configurado no cabealho L2F.

Protocolo L2TP
O Layer 2 Tunnel Protocol (L2TP) um protocolo definido pelo Internet Engineering Task Force (IETF), que combina as caractersticas de dois protocolos existentes no mercado: Cisco L2F (Layer 2 Forwarding) e Microsoft PPTP (Point-to-Point Tunneling Protocol). L2TP uma extenso do protocolo Point-to-Point Protocol (PPP), que um importante componente das VPNs.

ISP ou Rede Pblica

Tnel L2TP

Cliente Dial (Ponto PPP) Servidor AAA (RADIUS/TACACS+) Servidor AAA (RADIUS/TACACS+)

Figura 9.8 Arquitetura do Protocolo L2TP.

Na imagem, temos os seguintes objetos envolvidos no protocolo L2TP: 11 Cliente Dial: sistema final ou roteador que origina uma sesso PPP e que est conectado a uma RTPC ou RDSI, podendo ser o iniciador ou o terminador da chamada. 11 L2TP Access Concentrator (LAC): dispositivo L2TP ao qual o cliente conecta direta mente e atravs do qual quadros PPP so tunelados para o L2TP Network Server (LNS); qualquer protocolo transportado pelo PPP pode ser tunelado; o LAC o iniciador das chamadas de entrada e o recebedor das chamadas de sada; anlogo ao NAS. 11 L2TP Network Server (LNS): ponto de terminao do tnel L2TP e ponto de acesso onde os quadros PPP so processados e entregues para os protocolos das camadas superiores; terminar chamadas de qualquer interface PPP; o LNS o iniciador das chamadas de sada e o recebedor das chamadas de entrada; anlogo ao HGW. 11 Servidor AAA : servidor de autenticao de clientes que usa os protocolos Radius ou TACACS+; fornece o servio AAA (Authentication, Authorization, Accounting).
Captulo 9 - VPN e protocolos de tunelamento de nvel 2

o LNS o lado servidor do protocolo L2TP, suportando interfaces LAN ou WAN e podendo

Tunelamento L2TP
Usando L2TP, um provedor de servios internet (ISP) pode criar um tnel virtual que conecta sites remotos de clientes ou usurios remotos s redes corporativas. O L2TP Access Concen trator (LAC) localizado nos pontos de presena (POP) do ISP troca mensagens PPP com os usurios remotos e se comunica via protocolo L2TP com o L2TP Network Server (LNS) para estabelecer os tneis. O L2TP encaminha os pacotes atravs do tnel virtual criado entre os pontos finais da conexo ponto-a-ponto. Os quadros originados pelos usurios remotos so aceitos no POP

181

do ISP; so retirados os bytes de controle do quadro, encapsulados no L2TP e enviados pelo tnel. O home gateway do cliente aceita os quadros L2TP, retira o encapsulamento L2TP e processa os quadros para a interface adequada.

PSTN

Internet

Cliente Dial (Ponto PPP)

IP PPP L2TP

Servidor AAA (RADIUS/TACACS+)

Servidor AAA (RADIUS/TACACS+)

Na imagem vemos que os quadros PPP (transportando pacotes IP) originados no usurio passam pela RTPC sem proteo (supe-se que o nvel de segurana da RTPC adequado, alm de ser certamente maior do que o nvel de segurana da internet) e so tunelados no trecho entre o POP do ISP (onde fica o LAC) at a rede corporativa (onde fica o LNS), que o trecho dentro da internet onde o nvel de segurana tem de ser maior.

Figura 9.9 Estrutura e encapsulamento do tnel L2TP.

Protocolo IPSec
11 Os protocolos PPTP, L2F e L2TP no incluem recursos de criptografia ou processa mento para chaves criptogrficas. 11 IPSec (IP Security) foi criado para suprir tais necessidades.

Os protocolos PPTP, L2F e L2TP no incluem criptografia ou processamento para tratar chaves criptogrficas, o que bastante recomendado para garantir a segurana dos pacotes. Por isso, surgiu um dos mais importantes protocolos, criado para garantir a segurana da prxima gerao de pacotes IP (IPv6) e que, no momento, vem sendo utilizado com protocolos IPv4. O IPSec permite ao usurio ou ao gateway seguro que est agindo em seu favor autentificar ou criptografar cada pacote IP, ou ainda fazer os dois processos simultaneamente.
Administrao de Sistemas Linux: Redes e Segurana

VLAN
11 A Virtual LAN (VLAN) resolve problemas de coliso e broadcast em redes internas com muitos hosts. 11 Isso ocorre atravs do desenvolvimento de switchs que permitam dividir uma rede em vrios segmentos. 11 O protocolo utilizado normalmente o IEEE 802.1q. 11 As VLANs podem ser configuradas com base no protocolo, no endereo MAC, no endereo IP, na porta do switch ou na marcao e filtragem do quadro (tagging). 11 Implementao: Esttica x Dinmica.

182

As VLANs surgiram para resolver problemas relacionados ao constante crescimento das redes internas. Nesse cenrio, a grande quantidade de equipamentos (hosts) em um mesmo segmento de rede tende a provocar colises constantes e perda de tempo processando grandes quantidades de pacotes de broadcast (mesmo domnio de broadcast). A soluo para esse problema desenvolver comutadores (switchs) que permitam criar redes virtuais independentes que operem na camada 2 do modelo OSI. Essa implementao permite dividir uma rede em segmentos menores diminuindo, por consequncia, a quantidade de colises e broadcast. No entanto, uma VLAN geralmente configurada para mapear diretamente uma rede ou subrede IP, o que d a impresso de que a camada 3 est envolvida.

E1 E2

Ethernet

Porta 1 Porta de alta velocidade

Figura 9.10 VLAN (Virtual LAN).

183

Captulo 9 - VPN e protocolos de tunelamento de nvel 2

VLAN 20 Sexto andar

100 Mbps

1
VLAN 10 Mbps

Switch A

VLAN 10

1 Gbps Switch B

VLAN 20 VLAN 10 VLAN 20 Mbps

1 2 3

Switch C

2/2

Mbps Switch E

Switch D
Administrao de Sistemas Linux: Redes e Segurana

Mbps

Uma rede local virtual (VLAN) uma rede logicamente independente com a possibilidade de coexistir em um mesmo comutador (switch). As VLANS podem ser configuradas de vrias formas: 11 Nvel do protocolo, IP, IPX, LAT etc. 11 Baseada no endereo MAC. 11 Baseada na sub-rede IP.

Figura 9.11 Switchs: soluo para casos de grande quantidade de equipamentos (hosts) em um mesmo segmento de rede.

184

11 Baseada na porta do switch, ou seja, voc pode representar as VLANs informando que as portas 1, 2, 5 e 8 pertencem ao segmento (VLAN) A, e 3, 6 e 9 pertencem ao segmento

O protocolo utilizado para gerncia de VLAN , atualmente, o IEEE 802.1Q. Esse protocolo introduz a tcnica conhecida como tagging e o conceito de VLAN nativa.

(VLAN) B. Essa representao possui uma relao direta com o mundo real, pois voc pode separar a empresa por departamentos. Por exemplo: departamento de finanas do departamento de recursos humanos. 11 Baseada em marcao de quadro (frame-tagging) e filtragem de quadro (frame-filtering). A marcao de quadro modifica a informao contida dentro do quadro da camada 2, de modo que os switchs possam encaminhar o trfego da VLAN para as suas VLANs de destino e voltar o quadro ao seu formato normal. As VLANs podem ser Estticas ou Dinmicas: 11 VLAN Estticas: baseadas na configurao das portas, ou seja, voc informa que qual quer dispositivo conectado a uma determinada porta do comutador pertence a uma determinada VLAN. 11 VLAN Dinmicas : baseadas em endereos MAC, endereo IP, tipo de protocolo ou frame-tagging tag. O administrador da rede deve previamente cadastrar os endereos nos parmetros a serem utilizados pelo comutador e associ-los s suas respectivas VLANs. Com isso, quando o usurio plugar seu micro na rede, independente da porta, ele ser alocado para a VLAN correta.

Qualidade de Servio (QoS) MPLS


11 O objetivo inicial do MPLS foi melhorar a velocidade de encaminhamento dos pacotes pela rede IP. 11 Em resumo, o MPLS gera uma etiqueta de comprimento fixo reduzido que atua como uma forma abreviada do cabealho IP. 11 Somente os roteadores de borda analisam o cabealho IP. 11 Possibilita estabelecer QoS (Quality of Services) em redes IP. 11 Possibilita VPNs multimdia. 11 Protocolo padronizado pelo IETF. O Multiprotocol Label Switching (MPLS) foi apresentado, inicialmente, como uma soluo que possibilita melhorar a velocidade de encaminhamento dos pacotes por uma rede IP, mas agora est sendo considerado uma tecnologia de grande importncia, que oferece novas potencialidades. Duas aplicaes principais para a tecnologia MPLS esto ligadas engenharia de trfego e suporte VPN. A essncia do MPLS a gerao de uma etiqueta de comprimento fixo reduzido que atua

como uma forma abreviada do cabealho IP. Esse mesmo conceito utilizado nos correios, onde a rua e a cidade so representados por um endereo postal, de tamanho fixo reduzido, que o CEP. Atravs do uso dessas etiquetas criadas no MPLS so tomadas as decises no encaminhamento do pacote. Os pacotes IP possuem um campo em seu cabealho que contm o endereo para o qual o pacote ser encaminhado. No roteamento tradicional, esse campo verificado e processado em cada roteador da rede at que ele atinja seu destino (roteamento hop by hop). No MPLS, os pacotes IP so encapsulados, atravs do uso de etiquetas, pelos dispositivos que se encontram na entrada da rede (roteador de borda). O roteador de borda do MPLS analisa os ndices do cabealho IP e seleciona uma etiqueta apropriada com que o pacote ser encapsulado. Grande parte do poder do MPLS vem do fato de que, em contraste

185

Captulo 9 - VPN e protocolos de tunelamento de nvel 2

ao roteamento tradicional IP, esta anlise pode ser baseada no apenas no endereo de destino que ele carrega dentro do cabealho, mas tambm pelo QoS (Qualidade de Servio) requerido. Em todos os ns subsequentes dentro da rede MPLS, a etiqueta utilizada pelos roteadores para realizar a deciso de encaminhamento dos pacotes na rede. Em nenhum momento os roteadores pertencentes ao ncleo da rede analisam o cabealho IP. Finalmente, medida que os pacotes deixam a rede, as etiquetas so retiradas pelos roteadores de borda da rede. Os roteadores IP convencionais contm tabelas de roteamento onde so feitas buscas referentes informao do cabealho IP de um pacote para que a deciso de encaminhamento seja tomada. Estas tabelas so construdas pelos protocolos de distribuio do IP (por exemplo, RIP ou OSPF). O roteamento em geral engloba o plano de encaminhamento e o plano de controle. No roteamento IP, a anlise do cabealho feita no plano de encaminhamento, e no plano de controle gerada a tabela de roteamento. No MPLS, possvel separar o plano de encaminhamento do plano de controle. Com isso, possvel modificar cada um separadamente. Devido essa caracterstica, no necessrio, por exemplo, mudar os dispositivos de encaminhamento caso se deseje mudar a estratgia de roteamento da rede. Existem duas categorias de roteadores no MPLS. Na borda da rede, os classificadores de pacote precisam de um desempenho elevado no processo de aplicao (e retirada) das etiquetas: eles so conhecidos como roteadores de borda (Edge Label Switching Label ELSR). A outra classe composta pelos roteadores de ncleo. Uma de suas caractersticas principais encaminhar os pacotes etiquetados de forma rpida. Por isso h necessidade de um grau de processamento elevado. Diversos conceitos bsicos que se aplicam tecnologia de comutao precisam ser revistos antes de descrever como o MPLS trabalha.

l
Na terminologia do MPLS, os roteadores so chamados de Roteadores de Comutao por Etiquetas (Label Switched Routers LSR). Os roteadores MPLS encaminham os pacotes tomando as decises de encaminhamento com base na etiqueta MPLS.

Roteamento
um termo usado para descrever as aes feitas pela rede para mover os pacotes atravs dela. Nos referimos a pacotes roteados de a para b: ou esto sendo roteados em uma rede ou em uma rede interna. Os pacotes seguem atravs da rede, sendo enviados de uma mquina a outra at atingir seu destino. O protocolo de roteamento (por exemplo: RIP, OSPF) capacita cada mquina a compreender a outra mquina, que o prximo hop
Administrao de Sistemas Linux: Redes e Segurana

que um pacote deve fazer para atingir seu destino. Os roteadores usam os protocolos de roteamento para construir as tabelas de roteamento. Quando recebem um pacote e tm de tomar uma deciso de encaminhamento, os roteadores procuram na tabela de roteamento usando o endereo IP do destino no pacote, obtendo desse modo a identidade da mquina pertencente ao prximo hop. A construo das tabelas e seu uso para o encaminhamento podem ser separados por operaes lgicas. A figura mostra essas funes, medida que ocorrem no roteador.

186

Address Prex
128.89 171.69

I/F
1 1

Address Prex
128.89 171.69

I/F
0 1

Address Prex
128.89

I/F
0

...

...

...

1 1

128.89

Voc pode chegar a 128.89 e 171.69 por mim Atualizaes de roteamento (OSPF, EIGRP, ...) Voc pode chegar a 171.69 por mim

Voc pode chegar a 128.89 por mim

Figura 9.12 Como funciona o roteamento.

171.69

Encaminhamento dos pacotes


A figura a seguir ilustra o encaminhamento de um pacote baseado apenas no endereo IP de destino, depois que os roteadores aprenderam as rotas atravs da troca de informaes entre os protocolos de roteamento.

Address Prex
128.89 171.69

I/F
1 1

Address Prex
128.89 171.69

I/F
0 1

Address Prex
128.89

I/F
0

...

...

...

1
128.89.25.4 Data 128.89.25.4 Data

0 1
128.89.25.4 Data

0
128.89.25.4

128.89
Data

Pacote encaminhado baseado no endereo IP

Figura 9.13 Encaminhamento de pacotes.

171.69
187

Captulo 9 - VPN e protocolos de tunelamento de nvel 2

Comutao
11 Transferncia de dados de uma porta de entrada para uma porta de sada. Componente de controle: 11 Constri e mantm em uso a tabela de encaminhamento do n. Componentes de encaminhamento: 11 Executam o encaminhamento dos pacotes. Processo geralmente usado para descrever a transferncia de dados de uma porta de entrada para uma porta de sada, onde a escolha da porta de sada baseada em informao da camada 2 (por exemplo, ATM VPI/VCI).

Componente de controle
Constri e mantm em uso a tabela de encaminhamento do n. O roteador trabalha com componentes de controle de outros ns para distribuir informao de roteamento de forma consistente e precisa, e tambm assegura procedimentos locais usados nas tabelas de encaminhamento. Protocolos de roteamento padro (por exemplo OSPF, BGP e RIP) so usados na troca de informaes de roteamento entre os componentes de controle. O componente de controle precisa reagir quando ocorrem mudanas na rede (como a falha de um link), mas no envolvido no processamento individual dos pacotes.

Componentes de encaminhamento
Executam o encaminhamento dos pacotes. Eles usam as informaes a partir da tabela de encaminhamento (mantido pelo roteador); essa informao carregada no prprio pacote; um conjunto de procedimentos locais faz a deciso de encaminhamento. No roteamento convencional, um algoritmo compara o endereo de destino no pacote com uma entrada na tabela de roteamento at que seja encontrado um valor vantajoso. Todo esse processo repetido em cada n da origem at ao destino. Nos LSR, algoritmos de troca de etiquetas usam as etiquetas dos pacotes e a tabela de encaminhamento baseada em etiquetas para obter uma nova etiqueta e uma interface de sada para o pacote.

Label Switching
As etiquetas so colocadas pelo LSR, que enviar o pacote. O LSR que recebe esse pacote eti Administrao de Sistemas Linux: Redes e Segurana

quetado precisa saber o que fazer com ele. de responsabilidade do componente de controle assumir essa tarefa. Ele usa como guia o contedo de entrada da tabela de encaminhamento. O estabelecimento e a manuteno da entrada da tabela de encaminhamento so funes essenciais desenvolvidas pelo LSR. O componente de controle responsvel por distribuir a informao de forma consistente entre os LSRs e executar os procedimentos usados pelos mesmos para converter essas informaes para uma tabela de encaminhamento.

188

Roteamento Convencional Anlise do cabealho IP por completo Suporte unicast e multicast


Tabela 9.2 Convencional e Comutao de Etiqueta.

Comutao de Etiqueta Ocorre somente na borda da rede quando a etiqueta determinada. Necessita de um algoritmo de encaminhamento. Inmeros parmetros podem ser usados como base, tais como: QoS, VPN, membership.

Ocorre em todo n.

Necessita de muitos algoritmos complexos de encaminhamento. Baseia-se somente no endereo.

Deciso de roteamento

In Label

Out Address Out Interface Label Prex


128.89 171.69 1 1

In Label

Address Out Out Prex Interface Label


128.89 171.69 0 1

In Label

Address Out Out Prex Interface Label


128.89 0

...

...

...

...

...

...

1 1

128.89

Atualizaes de roteamento (OSPF, EIGRP, ...)

Voc pode chegar a 128,89 e 171,69 por mim

Voc pode chegar a 128,89 por mim

Voc pode chegar a 171,69 por mim

Figura 9.14 Label Switching.

171.69
Os componentes de controle da comutao de etiquetas incluem todos os protocolos convencionais de distribuio (por exemplo: OSPF, BGP, PIM e assim por diante). Esses protocolos de distribuio fornecem aos LSRs informaes sobre como fazer o mapea mento entre o FEC e os endereos dos equipamentos referentes ao prximo salto. Alm disso, o LSR deve: 11 Criar a ligao entre as etiquetas e os FECs; 11 Distribuir estas ligaes para outros LSRs; 11 Construir sua prpria tabela de encaminhamento. A ligao entre uma etiqueta e um FEC pode ser orientada a dados (resultado da presena de tipos especficos de fluxo de trfego) ou orientada a controle (orientao pela topologia referente s atualizaes de roteamento ou outras mensagens de controle).
Captulo 9 - VPN e protocolos de tunelamento de nvel 2

189

Cada uma dessas tcnicas de ligao possui numerosas opes. A deciso para estabelecer o fluxo pode ser baseada em vrios critrios. A ligao da etiqueta, no caso de orientao a dados, estabelece etiquetas ativas somente quando existe uma necessidade imediata (isto , quando o trfego apresentado para o encaminhamento). Informaes sobre mudana de topologia ou mudana de trfego precisam ser distribudas.

No caso da orientao a controle, a ligao baseada no conhecimento resultante do procedimento de roteamento e da reserva de recursos.

Informao de distribuio das etiquetas


A entrada de uma tabela de encaminhamento fornece, no mnimo, informaes sobre a interface de sada e a nova etiqueta, mas tambm contm outras informaes. Pode, por exemplo, indicar o mtodo de enfileiramento na sada a ser aplicado ao pacote. Cada etiqueta distribuda deve ser limitada a uma entrada na tabela do encaminhamento. Essa ligao pode ser executada no LSR local ou ser fornecida por um LSR remoto. A arquitetura MPLS usa um controle local (o LSR pode criar e anunciar uma ligao sem esperar uma comunicao do vizinho sobre o mesmo FEC) e controle de sada (o LSR espera uma comunicao de seu vizinho antes de alocar uma etiqueta).

In Label

Address Out Out Prex Interface Label


128.89 171.69 1 1 4 5

In Label

Out Address Out Interface Label Prex


128.89 171.69 0 1 9 7

In Label
9

Address Out Out Prex Interface Label


128.89 0

...

...

...

...

...

...

1 1

128.89

Use label 4 para 128.89 Use label 5 para 171.69


Administrao de Sistemas Linux: Redes e Segurana

Use label 9 para 128.89

Label Distribuition Protocol (LDP) Use label 5 para 171.69

171.69

Figura 9.15 Distribuio das etiquetas.

190

O conhecimento entre as ligaes localmente escolhidas e os FECs associados deve ser disseminado aos LSRs adjacentes para que essas informaes sejam usadas na construo das tabelas de encaminhamento. A informao na tabela de encaminhamento deve seguir tambm as mudanas na rede. Depois de tudo, a etiqueta no pacote de entrada usada para descobrir as regras para o encaminhamento do pacote. A informao da etiqueta pode ser distribuda de duas maneiras: 11 Adicionando nos protocolos de roteamento: as informaes podem ser adicionadas nos protocolos tradicionais de roteamento, embora somente os esquemas orientados a controle possam suportar esse mtodo. A troca em operaes normais dos protocolos assegura a consistncia na informao de encaminhamento e evita a necessidade de outros protocolos. 11 Uso do protocolo de distribuio de etiqueta: seguindo o modelo Tag Switching da Cisco, o grupo que trabalha na definio do MPLS criou um novo protocolo especfico para a distribuio de etiquetas, chamado Protocolo de Distribuio de Etiquetas (Label Distribution Protocol LDP), que pode ser usado nos esquemas de orientao a dados e tambm de controle. A desvantagem do LDP que ele mais complexo.

In Label -

Out Address Out Interface Label Prex


128.89 171.69 1 1 4 5

In Label
4 5

Out Address Out Interface Label Prex


128.89 171.69 0 1 9 7

In Label
9

Address Out Out Prex Interface Label


128.89 0

...

...

...

...

...

...

1
128.89.25.4 Data 4 128.89.25.4 Data Pacote encaminhado baseado no label

0 1
9 128.89.25.4 Data

128.89

128.89.25.4 Data

Figura 9.16 Encaminhamento do pacote.

171.69

Roteador de Borda
11 Edge Label Switching Router (ELSR). 11 Responsvel por classificar o trfego e aplicar e remover etiquetas dos pacotes. 11 Determina se o trfego um fluxo estvel. 11 Implementa polticas de gerncia e controle de acesso.

191

Captulo 9 - VPN e protocolos de tunelamento de nvel 2

de responsabilidade dos Edge Label Switching Router ou Roteadores de Borda (ELSRs) classificar o trfego e aplicar ou remover (entrada/sada) etiquetas aos pacotes. Como foi visto anteriormente, as etiquetas podem ser atribudas tomando como base requisitos de QoS e no o seu endereo de destino, como feito no roteamento tradicional. O ELSR determina se o trfego um fluxo estvel e implementa polticas de gerncia e controle de acesso. Assim, a capacidade dos ELSRs a chave para o sucesso de um ambiente de comutao de etiquetas. tambm um ponto do controle e gerncia dos provedores do servio. Novas geraes de ELSR precisam ter as seguintes capacidades: 11 Potencialidade de classificao do fluxo IP: permitir que esses equipamentos atri buam valores de QoS e apliquem etiquetas ao IP sem nenhuma degradao no desempenho do encaminhamento; 11 Potencialidade extensiva a VPN: esses equipamentos precisam rodar mltiplas tabelas de roteamento para que os clientes das VPN possam separar seu trfego. 11 Roteamento explcito. 11 Redes privadas virtuais. 11 Suporte a mltiplos protocolos e a mltiplos links. 11 Facilidade de evoluo. 11 Roteamento inter-domnio. 11 Suporte a todos os tipos de trfego.

Vantagens do MPLS
Uma das principais vantagens do MPLS que ele a base do padro para a tecnologia de comutao por etiqueta. O desenvolvimento de um padro resulta em um ambiente aberto com vrios fabricantes produzindo equipamentos interoperveis. A competio tambm resulta em preos mais baixos e conduz a uma maior inovao.

Roteamento explcito
O roteamento explcito uma tcnica poderosa, podendo ser aplicada para vrios prop sitos. O roteamento implcito baseado na anlise dos datagramas (pacote a pacote) para muitas aplicaes gera uma sobrecarga muitas vezes inaceitvel. O MPLS permite que os
Administrao de Sistemas Linux: Redes e Segurana

pacotes sejam classificados a partir de etiquetas atribudas na admisso dos ns MPLS, e encaminhados, dentro de uma mesma classe, num caminho virtual, sem a necessidade de ser analisado n a n. O roteamento explcito tem tambm a vantagem de criar tneis transparentes por onde passa qualquer tipo de trfego (por exemplo: SNA e IPX). Os LSRs enxergam apenas as etiquetas dos pacotes enviados pelo tnel.

Redes Privadas Virtuais (Virtual Private Netwoks VPN)


Muitas empresas constroem redes privadas para conectar vrios locais. O objetivo ter uma rede de transporte que oferea segurana, confiana, comportamento previsvel e que seja mais barata. VPN uma emulao dessa rede privada. MPLS um ingrediente -have na construo dessas redes; as etiquetas do MPLS podem ser usadas para isolar o trfego entre VPNs.

192

Suporte a mltiplos protocolos e a mltiplos links


O componente de encaminhamento no especfico a uma camada da rede. Por exemplo, o mesmo componente de encaminhamento poderia ser usado para fazer a comutao de etiqueta no IP assim como a comutao de etiqueta no IPX. A comutao por etiquetas pode operar sobre todos os protocolos da camada de enlace de dados, embora a nfase inicial estivesse no ATM.

Facilidade de evoluo
A comutao de etiquetas tem a vantagem de prover uma separao entre as funes de controle e encaminhamento. Cada parte pode evoluir sem impactar a outra parte, o que faz a evoluo da rede ser mais fcil, de menor custo e menos propensa a erros.

Roteamento Inter-Domnio
A comutao de etiquetas fornece uma separao mais completa entre a distribuio intradomnio e interdomnio. Isso melhora a escalabilidade no processo de roteamento e, de fato, reduz o conhecimento requerido de uma rota dentro de um domnio. Esse um benefcio aos ISPs (Internet Service Providers) e aos portadores que podem ter uma quantidade grande de trfego em trnsito, isto , o trfego cuja fonte e destino no esto na mesma rede.

Suporte a todos os tipos de trfego


Outra vantagem da comutao de etiqueta que geralmente no visvel ao usurio o suporte a todos os tipos de encaminhamento: unicast, unicast com tipo de servio e pacotes multicast. O suporte pode ser usado com atributos de QoS que, por sua vez, permitem que sejam definidas diferentes classes de servios de acesso aos ISPs.

193

Captulo 9 - VPN e protocolos de tunelamento de nvel 2

194

Administrao de Sistemas Linux: Redes e Segurana

Roteiro de Atividades 9
Atividade 9.1 Instalao do OpenVPN
Pr-condio
1. As interfaces de rede nas mquinas virtuais devem estar configuradas como placa em

modo BRIDGE.
2. Nesta atividade, os alunos devem trabalhar em dupla. Uma mquina virtual dever ser con-

figurada como servidor (Matriz), enquanto a outra dever ser o cliente (Filial). Para permitir o roteamento entre diferentes redes utilizando o tnel, ser necessrio criar uma interface de rede virtual adicional em cada mquina virtual. Como regra, a mquina servidora OpenVPN dever ser configurada com uma interface de rede adicional, cujo endereo ser 11.X.0.1 / 255.255.0.0, e a mquina cliente com o endereo 11.Y.0.1 / 255.255.0.0. Pergunte ao instrutor os valores de X e Y. Observe que esses valores devem ser exclusivos para cada dupla em laboratrio.
3. Para configurar uma interface de rede virtual, edite o arquivo /etc/network/interfaces e

adicione ao final:

auto eth0:0 iface eth0:0 inet static address 11.X.0.1 netmask 255.255.0.0 broadcast 11.X.255.255 network 11.X.0.0
4. Reinicie a interface de rede:

#/etc/init.d/networking restart

Configurao
1. Para instalar o OpenVPN em uma mquina Debian, basta executar:

# apt-get install openvpn


2. Aps instalar o pacote, verifique se o mdulo tun foi carregado pelo kernel do sistema:

# modprobe tun # lsmod | grep tun


3. Vamos gerar a chave de encriptao para uso nos tneis VPN. Lembre-se de que essa

chave deve ser transferida para a mquina cliente. Para isso execute:

#cd /etc/openvpn #openvpn --genkey --secret vpnsenha

195

Captulo 9 - Roteiro de Atividades

4. Vamos configurar o servidor. Para isso crie o arquivo /etc/openvpn/matriz.conf com o

seguinte contedo (obs.: o arquivo segue com comentrios):

# configura o modulo para a interface dev tun0 # primeiro ip local tunelado e segundo ip tunelado ifconfig 172.16.0.1 172.16.0.2 # configura para o modo servidor proto tcp-server # define a chave de criptografia secret /etc/openvpn/vpnsenha # define a porta a ser utilizada por esse tunel. # Diferentes tuneis exigem diferentes portas port 5003 # Testar a conexao ping 3 ping-restart 120 persist-tun persist-key link-mtu 1500 float # Nivel de log # 0 - modo quieto exceto para errros fatais # 1 - parcialmente quieto, mas ira mostrar erros nao fatais # 3 - saida media, bom para operacao normal
Administrao de Sistemas Linux: Redes e Segurana

# 9 - verbose ativo, bom para descobrir erros verb 3 # Ativar compactacao comp-lzo # Definir a rota para uma determinada interface de rede route 11.2.0.0 255.255.0.0 172.16.0.2
5. Agora vamos configurar a mquina cliente; para isso ser necessrio transferir a chave da

mquina servidora. Execute:

# scp <ip_servidor>:/etc/openvpn/vpnsenha /etc/openvpn/vpnsenha

196

6. Vamos configurar o cliente, para isso crie o arquivo /etc/openvpn/cliente.conf com o

seguinte contedo (o arquivo segue com comentrios):

# configura o modulo para a interface dev tun0 # chamando o servidor remote <IP_DO_SERVIDOR> # primeiro ip local tunelado e segundo ip tunelado ifconfig 172.16.0.2 172.16.0.1 # configura para o modo servidor proto tcp-client # define a chave de criptografia secret /etc/openvpn/vpnsenha # define a porta a ser utilizada por esse tunel. # Diferentes tuneis exigem diferentes portas port 5003 # Testar a conexao ping 3 ping-restart 120 persist-tun persist-key link-mtu 1453 float # Nivel de log # 0 - modo quieto exceto para errros fatais # 1 - parcialmente quieto, mas ira mostrar erros nao fatais # 3 - saida media, bom para operacao normal # 9 - verbose ativo, bom para descobrir erros verb 3 # Ativar compactacao comp-lzo # Definir a rota para uma determinada interface de rede route 11.1.0.0 255.255.0.0 172.16.0.1
Captulo 9 - Roteiro de Atividades

197

7. Para finalizar, reinicie o OpenVPN na mquina servidor e na mquina cliente:

#/etc/init.d/openvpn restart

Testando a configurao
Para testar o funcionamento, basta executar um ping na interface virtual da outra mquina. Por exemplo, a partir do console do servidor, execute:

# ping <Endereo ETH0:0 da mquina cliente/servidora>

Atividade 9.2 Utilizando certificados digitais


O OpenVPN implementa o recurso de criptografia utilizando certificados digitais SSL/TLS. Vejamos a seguir a implementao dessa funcionalidade.

Instalao e configurao da Autoridade Certificadora (CA)


1. Primeiro vamos instalar o OpenSSL:

#apt-get install openssl


2. Crie em /etc/openvpn/ os diretrios:

# mkdir /etc/openvpn/demoCA # mkdir /etc/openvpn/demoCA/certs # mkdir /etc/openvpn/demoCA/newcerts # mkdir /etc/openvpn/demoCA/crl # mkdir /etc/openvpn/demoCA/private
3. Dentro do diretrio demoCA, crie os seguintes arquivos:

# pwd /etc/openvpn/demoCA # touch index.txt #echo 01 > serial


4. Ajuste a permisso do diretrio da Autoridade Certificadora (CA):
Administrao de Sistemas Linux: Redes e Segurana

# chmod -R 700 /etc/openvpn/demoCA


5. Gere a chave privada da CA com validade de 10 anos; execute os comandos dentro do

diretrio da demoCA: /etc/openvpn/demoCA:

# openssl req -nodes -new -x509 -keyout cakey.pem out cacert.pem days 3650 Generating a 1024 bit RSA private key ...........++++++ ......++++++ writing new private key to cakey.pem -----

198

You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter ., the field will be left blank. ----Country Name (2 letter code) [AU]:BR State or Province Name (full name) [Some-State]:Rio de Janeiro Locality Name (eg, city) []:Rio de Janeiro Organization Name (eg, company) [Internet Widgits Pty Ltd]:RNP Organizational Unit Name (eg, section) []:ESR Common Name (eg, YOUR name) []:ca.rnp.br Email Address []:admin@rnp.br
6. Verifique se a chave ca.key foi gerada com sucesso:

# cat /etc/openvpn/demoCA/cakey.pem Mova a chave [cakey.pem] para o diretrio private: # pwd /etc/openvpn/demoCA/ # mv cakey.pem ./private

Gerar Certificado/Chave da Matriz


# cd /etc/openvpn # openssl req -nodes -new -keyout matriz.key -out matriz.csr Generating a 1024 bit RSA private key ...........++++++ ......++++++
Captulo 9 - Roteiro de Atividades

writing new private key to matriz.key


----You are about to be asked to enter information that will be incorporated into your certificate request.

199

What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter ., the field will be left blank. ----Country Name (2 letter code) [AU]:BR State or Province Name (full name) [Some-State]:Rio de Janeiro Locality Name (eg, city) []:Rio de Janeiro Organization Name (eg, company) [Internet Widgits Pty Ltd]:RNP Organizational Unit Name (eg, section) []:ESR Common Name (eg, YOUR name) []:matriz.rnp.br Email Address []:admin@rnp.br

Assinar o certificado da Matriz


# openssl ca -out matriz.crt -in matriz.csr Using configuration from /usr/lib/ssl/openssl.cnf Check that the request matches the signature Signature ok Certificate Details: Serial Number: 1 (0x1) Validity Not Before: May 13 14:41:05 2008 GMT Not After : May 13 14:41:05 2009 GMT
Administrao de Sistemas Linux: Redes e Segurana

Subject: countryName stateOrProvinceName organizationName organizationalUnitName commonName emailAddress X509v3 extensions: X509v3 Basic Constraints: CA:FALSE = BR = Rio de Janeiro = RNP = ESR = matriz.rnp.br = admin@rnp.br

200

Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 81:A7:06:D3:C0:3B:7C:4B:17:71:FD:A6:CA:07:AA:CB:44:16: 7F:2A X509v3 Authority Key Identifier: keyid:1B:F7:17:4E:0E:0D:EE:68:AA:8F:15:62:23:30:61:D8: B3:0C:2A:B1

Certificate is to be certified until May 13 14:41:05 2009 GMT (365 days) Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated

Gerar Certificado/Chave do Cliente


#cd /etc/openvpn # openssl req -nodes -new -keyout cliente.key -out cliente.csr Generating a 1024 bit RSA private key ..++++++ .++++++ writing new private key to cliente.key ----You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter ., the field will be left blank. ----Country Name (2 letter code) [AU]:BR State or Province Name (full name) [Some-State]:Rio de Janeiro
201
Captulo 9 - Roteiro de Atividades

Locality Name (eg, city) []:Rio de Janeiro Organization Name (eg, company) [Internet Widgits Pty Ltd]:RNP Organizational Unit Name (eg, section) []:ESR Common Name (eg, YOUR name) []:cliente.rnp.br Email Address []:admin@rnp.br

Please enter the following extra attributes to be sent with your certificate request A challenge password []: An optional company name []:

Assinar chave do Cliente


ads003:/etc/openvpn# openssl ca -out cliente.crt -in cliente.csr Using configuration from /usr/lib/ssl/openssl.cnf Check that the request matches the signature Signature ok Certificate Details: Serial Number: 2 (0x2) Validity Not Before: May 13 14:48:03 2008 GMT Not After : May 13 14:48:03 2009 GMT Subject: countryName stateOrProvinceName
Administrao de Sistemas Linux: Redes e Segurana

= BR = Rio de Janeiro = RNP = ESR = cliente.rnp.br = admin@rnp.br

organizationName organizationalUnitName commonName emailAddress X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment:

OpenSSL Generated Certificate X509v3 Subject Key Identifier:

202

28:D4:60:A8:5C:96:86:1E:24:CF:3E:F3:41:A5:92:33:1C:CA :B1:61 X509v3 Authority Key Identifier: keyid:1B:F7:17:4E:0E:0D:EE:68:AA:8F:15:62:23:30:61:D8: B3:0C:2A:B1

Certificate is to be certified until May 13 14:48:03 2009 GMT (365 days) Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated

Gerar o protocolo DH Diffie Hellman


Algoritmo usado para a troca de chaves criptogrficas durante a execuo do OpenVPN. Utilize no comando a criptografia que consta no arquivo openssl.cnf, no caso de 1024 bits:

# openssl dhparam -out dh1024.pem 1024 Generating DH parameters, 1024 bit long safe prime, generator 2 This is going to take a long time ...................................

Configurao do OpenVPN Matriz


Para cada tnel dever ser criado um arquivo de configurao. Este arquivo openvpn vai ler/ executar quando for iniciado, configurando os IPs que sero assumidos na Matriz e no Cliente.

# mcedit /etc/openvpn/matriz.conf # configura o modulo para a interface dev tun0 # primeiro ip local tunelado e segundo ip tunelado ifconfig 172.16.0.1 172.16.0.2 #Ativa e configura o protocolo TLS --tls-server dh /etc/openvpn/dh1024.pem # protocolo DH ca /etc/openvpn/demoCA/cacert.pem # Certificado CA cert /etc/openvpn/matriz.crt # Certificado Matriz
Captulo 9 - Roteiro de Atividades

203

key /etc/openvpn/matriz.key # chave certificado Matriz

# define a porta a ser utilizada por esse tunel. # Diferentes tuneis exigem diferentes portas port 1194 --proto tcp-server # Testar a conexao ping 3 ping-restart 120 persist-tun persist-key --tun-mtu 1500 float # Nivel de log # 0 - modo quieto exceto para errros fatais # 1 - parcialmente quieto, mas ira mostrar erros nao fatais # 3 - saida media, bom para operacao normal # 9 - verbose ativo, bom para descobrir erros verb 3 # Ativar compactacao comp-lzo # Definir a rota para uma determinada interface de rede route 11.2.0.0 255.255.0.0 172.16.0.2
Administrao de Sistemas Linux: Redes e Segurana

Configurao do OpenVPN Filial


1. Copie atravs de um canal seguro o certificado da CA, chave e certificado do cliente e o

protocolo DH gerados no servidor (arquivos: cacert.pem, cliente.key, cliente.crt e dh1024.pem). Use o comando scp (mais detalhes com man scp) para copiar os arquivos mencionados do servidor da Matriz para o servidor Cliente.

2. Ajuste as permisses da chave (filial.key):

# chmod 600 cliente.key

204

3. O arquivo de configurao do cliente bem parecido com o arquivo de configurao da

Matriz; no entanto, preste ateno nos detalhes:

#mcedit /etc/openvpn/filial.conf

# configura o modulo para a interface dev tun0 # chamando o servidor remote <IP_DO_SERVIDOR> # primeiro ip local tunelado e segundo ip tunelado ifconfig 172.16.0.2 172.16.0.1 #Ativa e configura o protocolo TLS --tls-client dh /etc/openvpn/dh1024.pem # protocolo DH ca /etc/openvpn/cacert.pem # Certificado CA cert /etc/openvpn/cliente.crt # Certificado Matriz key /etc/openvpn/cliente.key # chave certificado Matriz

# define a porta a ser utilizada por esse tunel. # Diferentes tuneis exigem diferentes portas port 1194 --proto tcp-client # Testar a conexao ping 3 ping-restart 120 persist-tun persist-key --tun-mtu 1500 float # Nivel de log # 0 - modo quieto exceto para errros fatais # 1 - parcialmente quieto, mas ira mostrar erros nao fatais # 3 - saida media, bom para operacao normal # 9 - verbose ativo, bom para descobrir erros
Captulo 9 - Roteiro de Atividades

205

verb 3 # Ativar compactacao comp-lzo # Definir a rota para uma determinada interface de rede route 11.1.0.0 255.255.0.0 172.16.0.1# configura o modulo para a interface
4. Para finalizar, reinicie o OpenVPN na mquina servidor e na mquina cliente:

#/etc/init.d/openvpn restart

Testando a configurao
Para testar o funcionamento, basta executar um ping na interface virtual da outra mquina. Por exemplo, a partir do console do servidor, execute:

# ping <Endereo ETH0:0 da mquinacliente/servidora>

206

Administrao de Sistemas Linux: Redes e Segurana

10
IPSec
objetivos
Introduzir a necessidade de utilizao do IPSec em redes IP; apresentar o funcionamento, explicando o modo de trabalho dos protocolos AH, ESP e IKE; definir o uso do IPSec para criao de VPNs em modo tnel e modo transporte; introduzir os problemas relacionados ao uso de NAT em redes VPN IPSec e discutir as solues utilizadas.

conceitos

IPSec e VPN; instalao e configurao do servidor Shorewall.

Introduo ao IPSec
11 Desenvolvido pelo IETF, agrega conceitos de autenticao e privacidade, de maneira transparente, a todas as aplicaes que fazem uso da pilha TCP/IP. 11 Elevado nvel de independncia e modularidade entre os protocolos. 11 Os principais protocolos responsveis por garantir nveis de segurana so: 22 Authentication Header (AH). 22 Encapsulating Security Payload (ESP).

Arquitetura IP Security

Protocolo ESP

Protocolo IKE

Protocolo AH

Figura 10.1 A Arquitetura IP Security.

Algoritmo de Encriptao

Domnio de Interpretao

Algoritmo de Autenticao

O Internet Protocol Security (IPSec) uma especificao desenvolvida pela Internet Engineering Task Force (IETF) com o objetivo de prover uma arquitetura segura na camada de rede dos protocolos IPv4 e IPv6. Sua principal vantagem refere-se ao fato de prover (de maneira transparente) autenticao, integridade, controle de acesso e confidencialidade s aplicaes j desenvolvidas pela organizao.
Captulo 10 - IPSec

207

Outra caracterstica importante o elevado nvel de independncia e modularidade entre os protocolos. Os algoritmos de criptografia utilizados nos protocolos (RSA, DES etc.) e os mecanismos de distribuio de chaves (IKE) so independentes entre si. Tal caracterstica permite o aperfeioamento e a substituio de novos protocolos e algoritmos sem, no entanto, comprometer a arquitetura j definida. A negociao pelo transmissor e receptor dos proto colos que sero utilizados na comunicao conhecida como Associao de Segurana AS (Security Association SA) e identificada de forma nica por trs parmetros: o Security Parameter Index (SPI), o endereo IP de destino e o identificador do protocolo (AH ou ESP). Os dois protocolos responsveis por garantir nveis de segurana no IPSec so: 11 AH (Authentication Header): oferece integridade e autenticao, sem se preocupar com questes de privacidade; 11 ESP (Encapsulating Security Payload): oferece primordialmente privacidade. Naturalmente os protocolos AH e ESP podem ser utilizados em conjunto, se necessrio, ou separadamente. Para os dois cabealhos, o IETF no determina os algoritmos de segurana que devem ser utilizados. De forma geral, so recomendados os algoritmos MD5 e SHA para integridade e autenticao, e o DES para encriptao.

Associaes de segurana
Uma associao de segurana definida pelo algoritmo, modo de operao, chave e demais propriedades de segurana.

Uma vez que existe um elevado nvel de independncia e modularidade entre os protocolos (AH e ESP), alguma forma de associao deve existir entre eles para permitir que o emissor e o receptor saibam quais sero os mecanismos e chaves utilizados para a comunicao. Para este fim criada uma associao de segurana que define, basicamente, o algoritmo, o modo de operao, a chave e as demais propriedades aplicadas sobre os pacotes processados. Uma associao de segurana identificada de forma nica e composta, basicamente, por trs parmetros: o Security Parameter Index (SPI), o endereo IP de destino e o identificador do protocolo (AH ou ESP): 11 SPI: trata-se de um nmero nico que identifica a AS gerada durante a fase de nego ciao que antecede o estabelecimento da conexo. Todos os membros envolvidos no
Administrao de Sistemas Linux: Redes e Segurana

processo de comunicao devem conhecer esse nmero e utiliz-lo sempre que trans mitirem uma informao. 11 Endereo IP do destino: pode ser unicast, broadcast ou ainda multicast. No entanto, para a definio dos mecanismos de gerenciamento de AS, o IPSec assume um endereo de destino unicast, estendendo as definies para os casos de broadcast e multicast. 11 Identificador do protocolo: trata-se de um nmero que identifica se o protocolo utili zado o AH (nmero 51) ou o ESP (nmero 50). Observe que a negociao para criao de um AS entre emissor e receptor envolve, tambm, a definio das chaves, dos algoritmos e dos padres utilizados por estes algo ritmos. As associaes so unidirecionais; dessa forma, sesses de comunicao entre duas mquinas tero normalmente um SPI para cada direo de trfego.

208

Camada de Aplicao

Encriptao na aplicao

Encriptao na camada de rede

Figura 10.2 Associaes de segurana.

Camada de Enlace

Camada de Rede

Encriptao no enlace

Modos de operao
11 Modo Transporte (host host). 11 Modo Tnel (host gateway gateway host). Uma AS pode ser estabelecida de dois modos diferentes: transporte ou tnel. 11 Modo Transporte: a Associao de Segurana estabelecida entre dois hosts preser-

vando, dessa forma, o cabealho IP original. No caso do ESP, uma AS em modo transporte prov servios de segurana somente para os protocolos de nvel mais alto, no incluindo o cabealho IP ou os cabealhos de extenso que precedem o ESP. No entanto, o AH estende a proteo a esses cabealhos. Isso se deve ao fato de o ESP cifrar os dados que o sucedem no pacote, alm de autenticar apenas a poro ESP do pacote, enquanto que o AH autentica o pacote todo.

Figura 10.3 Modo transporte (host host).

PC Transporte seguro Servidor de Banco de Dados

209

Captulo 10 - IPSec

11 Modo Tnel: trata-se de uma associao aplicada a um tnel IP. Neste modo os pacotes de uma rede so totalmente encapsulados pelo gateway IPSec, ou seja: um pacote TCP/ IP de um host da rede interna, com destino a um host de uma rede remota, recebe um novo cabealho TCP/IP como endereo de origem do gateway interno, e como destino o gateway IPSec do receptor.
Figura 10.4 Modo Tnel (host gateway gateway host).

Internet

PC

PC

PC

PC

Tnel seguro PC Switch Roteador IPSec Roteador IPSec Switch PC

Protocolo AH (IP Authentication Header)


Objetivo: garantir a autenticidade do pacote e que ele no foi alterado durante a transmisso Previne ataques como: 11 Replay: quando o atacante intercepta um pacote vlido e autenticado pertencente a uma conexo, replica-o e reenvia-o. 11 Spoofing: quando o atacante assume o papel de uma mquina confivel para o destino e, dessa forma, ganha privilgios na comunicao. 11 Roubo de conexes (connection hijacking): quando o atacante intercepta um pacote no contexto de uma conexo e passa a participar da comunicao.

O objetivo do AH oferecer autenticao e integridade aos datagramas IP, ou seja, garantir a autenticidade do pacote e que ele no foi alterado durante a transmisso. Independentemente do algoritmo utilizado, o hash da mensagem calculado sobre todo o datagrama IP. Isso inclui no apenas o cabealho IP, mas tambm todos os demais cabealhos de outros protocolos e os dados transportados.
Administrao de Sistemas Linux: Redes e Segurana

Para evitar possveis erros, os campos e opes do cabealho IP, que podem ser modificados ao longo do caminho entre sua origem e destino, so preenchidos com zeros pelo algoritmo para efeito de clculo. O uso do AH previne ataques do tipo: 11 Replay : quando o atacante intercepta um pacote vlido e autenticado pertencente a uma conexo, replica-o e o reenvia, entrando na conversa. A utilizao do campo Sequence Number ajuda na preveno a esse tipo de ataque, pois permite numerar os pacotes que trafegam dentro de uma determinada associao de segurana. 11 Spoofing : ocorre quando o atacante assume o papel de uma mquina confivel para o destino e, dessa forma, ganha privilgios na comunicao. A utilizao de mecanismos de autenticao previne este tipo de ataque.

210

11 Roubo de conexes (connection hijacking): ocorre quando o atacante intercepta um pacote no contexto de uma conexo e passa a participar da comunicao. A utilizao de mecanismos de autenticao previne este tipo de ataque.

Formato do AH (Authentication Header)


AH deve estar localizado logo aps os cabealhos que so examinados por cada roteador intermedirio entre uma origem e um destino qualquer, ou seja, aps o prprio cabealho do protocolo IPv4. A figura a seguir ilustra o cabealho de autenticao, cujos campos transportam informao necessria autenticao de datagramas IP. Os seus campos so: 11 Prximo cabealho (Next Header): identifica o cabealho agregado a este; 11 Tamanho do mdulo (Payload Length): contm o tamanho do mdulo dos dados; 11 ndice de parmetros de segurana (Security Parameter Index): nmero arbitrrio de 32 bits que indica ao receptor o conjunto de informao necessria para estabelecer um canal de comunicao seguro; 11 Nmero de sequncia (Sequence Number): contador incrementado cada vez que um pacote enviado para o mesmo endereo, com o mesmo SPI. Permite identificar o pacote e o nmero de pacotes enviados com os mesmos parmetros de segurana. Permite assim evitar ataques replay, ou seja, cpias de pacotes e envio fora de sequncia que pode confundir a comunicao; 11 Dados de autenticao (Authentication Data): campo que contm os dados de autenticao.

Prximo Cabealho

Tamanho do mdulo ndice de Parmetros de Segurana (SPI)

Reservado

Figura 10.5 Authentication Header.

Nmero de sequncia Dados de autenticao

Modos de funcionamento do AH
Opera nos dois modos de funcionamento IPSec: 11 Modo Transporte. 11 Modo Tnel. O AH pode ser utilizado nos dois modos de funcionamento do IPSec: modo Transporte ou Tnel, como exemplificado nas figuras a seguir. O modo de transporte usado quando se

pretende ter um canal seguro entre dois sistemas terminais. Apresenta menos overhead de processamento mas no autentica os campos alterveis do datagrama. O modo de tnel usado quando se pretende estabelecer comunicao segura com um sistema intermedirio. Esse modo apresenta maior overhead, mas permite autenticar todo o datagrama. O cabealho de autenticao no providencia confidencialidade ou proteo contra ataques de anlise de trfego, e por isso utilizado apenas com o cabealho de encapsulamento de dados de segurana.
Captulo 10 - IPSec

211

Para manter a interoperabilidade entre produtos IPSec de diferentes fabricantes, so recomendados como algoritmos de cabealho o HMAC-MD5 e HMAC-SHA1.

Endereo IP

AH

TCP

Dados
Figura 10.7 Modo tnel.

Autenticado, exceto campos alterveis

Novo Endereo IP

AH

Endereo IP

TCP

Dados
Figura 10.6 Modo de transporte.

Autenticado, exceto campos alterveis

Protocolo ESP (IP Encapsulating Security Payload)


O objetivo primordial do ESP oferecer privacidade ao contedo dos dados encapsulados em um datagrama IP. Dependendo do algoritmo e do seu modo de operao (transformao), tambm podem ser oferecidas autenticao e integridade. No entanto, ser mostrado adiante que tais transformaes no so necessariamente seguras. Portanto, sempre que for requerida autenticao e/ou integridade, o AH deve ser utilizado em conjunto com o ESP.

Formato do ESP
O ESP deve estar localizado logo aps os demais cabealhos IP, incluindo o prprio AH. O cabealho de Encapsulamento de Dados de Segurana implementa integridade e confi dencialidade aos datagramas IP, atravs da cifra dos dados contidos no datagrama. Pode ainda garantir autenticao, dependendo do algoritmo e do modo utilizados. No entanto, no garante a irretratabilidade.

ndice de Parmetros de Segurana (SPI) Cabealho Nmero de sequncia Dados Campo de Preenchimento
Administrao de Sistemas Linux: Redes e Segurana

Tamanho do Campo de Preenchimento Dados de Autenticao 32 bits

Prximo Cabealho

Trailer

Aut.
Figura 10.8 Formato do ESP.

O ESP constitudo por seis campos, conforme a figura anterior: 11 ndice de parmetros de segurana (Security Parameter Index): nmero arbitrrio de 32 bits que diz ao receptor o grupo de protocolos de segurana que o emissor est utilizando para estabelecer uma comunicao segura; 11 Nmero de sequncia (Sequence Number): contador usado para proteo de replay; 11 Dados (Payload Data): contm os dados transportados pelo datagrama;

212

11 Campo de preenchimento (Padding): representa o preenchimento necessrio a determinados tipos de algoritmos de cifra, que podem necessitar que o tamanho de dados seja mltiplo de um certo nmero de bytes; 11 Tamanho do campo de preenchimento (Pad Length): indica a quantidade de dados que simplesmente de preenchimento; 11 Prximo cabealho (Next Header): identifica o tipo do prximo cabealho; 11 Dados de autenticao (Authentication Data): esse campo contm a assinatura digital calculada sobre os dados restantes do cabealho. O seu tamanho varia, dependendo do tipo de algoritmo de autenticao utilizado.

Modos de funcionamento do ESP


Pode ser tambm utilizado nos dois modos de funcionamento da IPSec: 11 Modo Transporte. 11 Modo Tnel. O cabealho de encapsulamento de dados de segurana pode ser tambm utilizado nos

dois modos de funcionamento da IPSec, como representado nas figuras a seguir, e ainda em conjunto com o cabealho de autenticao de dados. medida que a cifra envolve clculos computacionais mais complexos, a utilizao desse cabealho introduz maior overhead de processamento nos sistemas terminais do canal seguro. No entanto, no afeta possveis sistemas intermedirios. O custo da utilizao desse cabealho varia com as especificidades das implementaes, como algoritmo de cifra utilizado ou tamanho da chave. As implementaes em hardware do algoritmo de cifra sero teis em casos em que se pretenda obter melhor desempenho.
Figura 10.9 O modo Transporte.

Endereo IP

ESP

TCP
Cifrado

Dados

Trailer

Aut

Autenticado

Figura 10.10 O modo Tnel.

Novo Endereo IP

ESP

Endereo IP

TCP
Cifrado

Dados

Trailer

Aut

Autenticado

O ESP foi desenhado para utilizar qualquer tipo de protocolo de criptografia. No entanto, o IPSec define padres de uso para os protocolos: DES-Cipher Block Chaining Mode para a cifra e HMAC-SHA1 e o HMAC-MD5 para a autenticao, de modo a garantir interoperabilidade mnima entre diferentes implementaes.

Gerenciamento de chaves
Fornece o mecanismo necessrio para negociar os algoritmos de criptografia e as chaves que sero utilizadas na troca de dados. Pode ser realizado das seguintes formas: 11 Gesto manual. 11 Gesto automtica.

213

Captulo 10 - IPSec

Os protocolos AH e ESP so a base do IPSec e permitem proteger os dados. No entanto, para que exista comunicao segura, necessrio existir um terceiro mecanismo que permita negociar os algoritmos e as chaves de criptografia que sero utilizados por esses protocolos para transferir os dados. O grupo de trabalho do IETF responsvel por definir o padro determinou que os sistemas compatveis devem suportar tanto uma Associao de Segurana manual como uma automatizada. Dessa forma, a gesto de chaves pode ser implementada: 11 Gesto manual: o administrador configura manualmente cada sistema, fornecendo as chaves e as informaes para o gerenciamento da AS relevantes em uma comunicao segura com os outros sistemas. As tcnicas manuais tm seu uso recomendado para ambientes estticos pequenos, mas esse mtodo no muito prtico em redes maiores; 11 Gesto automtica: utiliza protocolos automatizados de gerenciamento de chave. O gerenciamento automatizado tambm oferece bastante escalabilidade para sistemas distribudos maiores que ainda estejam em desenvolvimento. O usurio pode ainda uti lizar vrios protocolos em um gerenciamento automatizado.

l
Qualquer produto IPSec apresenta a possibilidade de gesto manual de chaves. No entanto, esse um processo moroso e pouco vivel, pois as chaves podero ser facilmente obtidas.

Gerncia automtica de chaves


Internet Key Exchange (IKE) composto pelos seguintes algoritmos: 11 ISAKMP: providencia um framework para autenticao e troca de chaves. 11 Oakley: descreve uma srie de procedimentos para troca de chaves, conhecida como modo. 11 SKEME: descreve um mecanismo verstil para troca de chaves proporcionando anoni mato, no repdio e a atualizao rpida. O conjunto de protocolos Internet Key Exchange (IKE) utilizado pelo IPSec para definir e realizar a troca de chaves de forma automtica e segura, sendo implementado sobre UDP porta 500. composto pelos seguintes algoritmos: 11 ISAKMP: providencia um framework para autenticao e troca de chaves, porm no

define seu funcionamento. O ISAKMP desenhado para possuir um mecanismo de troca independente construdo para fornecer suporte a diferentes tipos de algoritmos. 11 Oakley : descreve uma srie de procedimentos para troca de chaves, conhecida como modo, e detalha os servios fornecidos por eles (exemplo: perfect forward secrecy para chaves, proteo da identidade e autenticao). 11 SKEME: descreve um mecanismo verstil para troca de chaves, proporcionando anoni Administrao de Sistemas Linux: Redes e Segurana

l
Sua principal aplicao estabelecer associaes de segurana (SAs) IPSec para os protocolos AH e ESP.

mato, no repdio e atualizao rpida. O modelo de implantao geral do IKE mostrado na figura a seguir. Os mecanismos IPSec e IKE so separados em mdulos. Quando no existe uma associao de segurana para um pacote que precisa ser processado (enviado ou recebido), o mecanismo IPSec entra em contato com o mecanismo do IKE e solicita que seja estabelecida uma SA adequada. Uma vez terminado o handshake do IKE, registrada a SA no mecanismo IPSec.

214

Key Management process

IKE

Key Management process

AH/ESP
Figura 10.11 Ambiente de operao.

IPsec Stack Initiator

IPsec Stack Responder

Alm disso, o trfego IKE entre os pares (hosts) pode ser utilizado para atualizar o material da chave ou ajustar parmetros de operao, como algoritmos.

Principais conceitos sobre o IKE


11 Inicializador (Initiator) e Respondedor (Responder). 11 Perfect Forward Secrecy. 11 Resistncia ao Denial of Service. 11 Uso de chavespara autenticao. 11 Proteo da identidade.

Inicializador (initiator) e Respondedor (Responder)


Embora o IPsec seja basicamente simtrico, o IKE no . A parte que envia a primeira mensagem chamada de INITIATOR. A outra parte chamada de RESPONDER. No caso de conexes TCP, o INITIATOR ser tipicamente o par que iniciou a conexo (ou seja, o cliente).

Perfect Forward Secrecy


Uma da s principais preocupaes na implementao do IKE que o trfego seja prote gido, mesmo se o material que compe a chave de um dos ns seja comprometido aps o trmino da conexo. Essa propriedade frequentemente conhecida como Perfect Forward Secrecy (PFS).

Resistncia ao Denial of Service


Como o IKE permite aos pares (hosts) inicializar operaes criptogrficas computacional mente caras, existe a possibilidade de que os recursos do par (host) sejam consumidos totalmente, provocando um ataque de negao de servio (DoS). O IKE inclui contramedidas criadas para minimizar este risco.

Chavespara autenticao
Como as Associaes de Segurana so essencialmente simtricas, ambas as partes devem, em geral, ser autenticadas. O IKE precisa ser capaz de estabelecer SAs entre uma grande implementado um modelo flexvel onde os hosts podem se autenticar via compartilhamento da chave e/ou assinaturas digitais.
Captulo 10 - IPSec

quantidade de pares (hosts) com vrios tipos de relacionamento e prioridades. Para isso

215

Proteo da identidade
Embora o IKE obrigue a autenticao mtua entre os pares envolvidos na comunicao, foi considerada importante, pelo grupo de trabalho que especificou o protocolo, que a identidade dos hosts envolvidos fosse protegida em alguns casos. Em particular, os pares devem ser capazes de ocultar a sua identidade para algum observador externo passivo, e um dos pares deve estar em condies de exigir que o autor, para autenticar, autentique a si mesmo. Nesse caso, os desenvolvedores escolheram fazer com que a parte que fala primeiro (INITIATOR) seja a primeira a se identificar. Antes de detalharmos o modo de trabalho do protocolo IKE, vamos entender o funcionamento do algoritmo Diffie-Hellman (DH), que a base para a proteo da identidade.

Algoritmo Diffie-Hellman (DH)


O IPSec utiliza a negociao Diffie-Hellman para criar uma chave de sesso (simtrica) entre os hosts da comunicao segura. O protocolo Diffie-Hellman composto por trs fases: 11 Fase 1: cada host gera uma chave pblica a partir de parmetros pr-combinados (Diffie-Hellman parameters) e um nmero aleatrio secreto. 11 Fase 2: os hosts trocam as chaves pblicas. 11 Fase 3: a chave de sesso calculada a partir das chaves pblicas e dos nmeros aleatrios secretos. O processo matemtico utilizado pode ser resumido em 4 passos (veja a figura): 11 Cada host obtm os parmetros Diffie-Hellman (podem ser hard-coded). Um nmero primo p (> 2) e uma base g (nmero inteiro < p) 11 Cada host gera um nmero privado X < (p 1) 11 Cada host gera sua chave pblica Y: Y = g^X % p 11 Os hosts trocam as chaves pblicas e calculam a chave secreta ZZ. Zr = Yi^Xr % p e Zi=Yr ^Xi % p 11 Matematicamente ZZ idntica para ambos os hosts: Zi = Zr
1. Segredo Pr-Compartilhado (um nmero primo e um nmero inteiro podem estar no cdigo)
Administrao de Sistemas Linux: Redes e Segurana

2a. Gera a chave pblica Yi a partir do segredo e de um nmero aleatrio X

3a. Envia a chave pblica Yi para R

2b. Gera a chave pblica Yr a partir do segredo e de um nmero aleatrio Xr

4a. Gera a chave de sesso ZZ usando Yr e X

3b. Envia a chave pblica Yr para I

4b. Gera a chave de sesso ZZ usando Yi e Xr

Figura 10.12 Algoritmo DiffieHellman (DH).

216

Viso geral do funcionamento do protocolo


De uma forma geral, existem dois tipos de handshake do IKE: 11 Aqueles que estabelecem uma associao de segurana IKE. 11 Aqueles que estabelecem uma associao de segurana AH ou ESP. Quando dois pares que nunca tinham se comunicado antes precisam estabelecer um SA AH / ESP, eles devem primeiro estabelecer uma SA IKE. Isso permitir que eles troquem uma quantidade de dados de forma protegida. Eles podem usar essa SA para fazer um segundo handshake para estabelecer SAs para o AH e o ESP. Esse processo mostrado na figura a seguir. A notao E (SA, XXXX) usada para indicar que o trfego criptografado no mbito de uma dada SA.
Initiator --------Handshake MSG <_ _> Responder --------Handshake MSG /

Fase 1: \ Establish IKE / SA (IKEsa)

Figura 10.13 Viso geral do funcionamento do protocolo (Fase 1 e Fase 2).

[...] _> <_ Fase 2: \ Establish AH/ESP E(IKEsa, Handshale MSG) / SA \

E(IKEsa, Handshale MSG)

Para pensar
A terminologia IKE um pouco confusa, referindo-se a diferentes circunstncias de fases e modos. Para entendermos, vamos definir como Fase 1 o estabelecimento da SA do IKE e de Fase 2 a constituio da SAs AH / ESP. Observe que bem provvel que o handshake da Fase 2 seja executado vrias vezes, j que a Fase 1 foi finalizada. Isto pode ser til para o estabelecimento de mltiplas SAs AH / ESP com diferentes propriedades criptogrficas.

Fase 1
Main Mode: 11 Fornece proteo para a identidade e resistncia a ataques de DoS. Agressive Mode: 11 bem mais rpido que o Main Mode, porm no consegue oferecer os mesmos recurso que este.

H vrias formas de funcionamento do handshake da Fase 1, determinadas de acordo com a utilizao pelos diferentes mecanismos de autenticao. Contudo, em termos gerais, o handshake da Fase 1 pode ser classificado em uma destas duas categorias bsicas: MAIN MODE, que no oferece esses recursos.
Captulo 10 - IPSec

que fornece proteo da identidade e resistncia a ataques de DoS, e AGGRESSIVE MODE,

217

Funcionamento do Main Mode


Initiator --------CookieI, Algorithms _ <_ > Responder --------\ Parameter CookieR, Algorithms / Establishment

CookieR, Nonce, Key Exchange

<_

_> Nonce, Key Exchange \ Establish / Shared Key

E(IKEsa, Auth data)

<_

_> E(IKEsa, Auth data) \ Autenticate / Peers


Figura 10.14 Main Mode.

O handshake do Main Mode composto por seis mensagens (3 round trip). Oferece proteo da identidade e resistncia a ataques de DoS. Uma viso geral dos handshakes pode ser observada acima. No primeiro round trip, o Initiator oferece um conjunto de algoritmos e parmetros. O Responder escolhe um conjunto que atenda a suas polticas pr-configuradas e responde com esse conjunto. Ela tambm fornece um CookieR, que ser utilizado para prevenir ataques DoS. Nesse ponto, ainda no existe uma associao de segurana, mas os pares (hosts) tm provisoriamente acordados os parmetros de funcionamento. Esses parmetros incluem um grupo Diffie-Hellman (DH), que ser utilizado no segundo round trip. No segundo round trip, o Initiator envia informaes para a troca da chave. Isso geralmente constitudo pelo Initiator do Diffie-Hellman (Yi). Ele tambm fornece o CookieR, que foi fornecido pelo Responder. O Responder responde com a sua prpria DH (Yr). Nesse ponto, tanto Initiator e Responder podem calcular a chave partilhada DH (ZZ). No entanto, no houve qualquer autenticao e, portanto, eles no sabem com certeza se a conexo no foi comprometida ou atacada. Observe que, enquanto os pares (hosts) geram uma nova chave DH, o algoritmo PFS acionado para garantir a autenticidade dos pares (hosts). No round trip final, os pares (hosts) estabelecem suas identidades. Como eles compartilham uma chave (no autenticada), podem enviar suas identidades de forma cifrada, fornecendo assim proteo para a sua identidade. O mtodo exato de provar a identidade depende do
Administrao de Sistemas Linux: Redes e Segurana

tipo de credencial que est sendo utilizado (chave assinada, chave cifrada, segredos com partilhados etc.). Portanto, cada um dos lados poderia fornecer seu certificado e verificar a assinatura associada ao certificado da outra parte comunicante. Exemplo: se for utilizado um algoritmo de chaves compartilhadas, a autenticao consiste apenas em verificar uma ID e uma chave MAC. A autenticao com algoritmos de chave pblica segue princpios semelhantes de funcionamento, porm possui algumas caractersticas peculiares. No final do handshake do Main Mode, os pares (hosts) compartilharam: 11 Um conjunto de algoritmos de criptografia para uso no IKE; 11 Trfego cifrado e chaves autenticadas; 11 Conhecimento mtuo da identidade de cada par (host).

218

Funcionamento do Aggressive Mode


Embora o Main Mode do IKE fornea os servios necessrios, existe a preocupao de que um grande nmero de round trips seja exigido para permitir a comunicao, provocando um tempo excessivo de espera. Assim sendo, o Aggressive Mode foi definido utilizando o recurso de enviar mais informaes e menos mensagens (mais dados por pacote). Entretanto, essa caracterstica no permite proteger a identidade dos pares (hosts) envolvidos, deixando o sistema vulnervel a ataques de DoS.
Initiator --------Algorithms, Nonce, Key Exchange,
Figura 10.15 Funcionamento do Aggressive Mode.

Responder --------> _ < _ > _

Algorithms, Nonce, Key Exchange, Auth data

Auth Data

Aps o primeiro round trip, os pares (hosts) tm todas as propriedades necessrias para a comunicao, porm o Initiator e o Responder ainda no se autenticaram mutuamente. A terceira mensagem fecha o ciclo de autenticao do Initiator. Observe que a autenticao dos dados enviada em texto em claro, no sendo possvel, por consequncia, garantir a proteo da identidade. Como o Responder faz o acordo de chaves DH sem o round trip do Initiator, tambm no existe proteo contra ataques DOS.

Fase 2
O objetivo do IKE criar associaes para proteger outros tipos de trfego, no se limitando apenas a estabelecer SAs IKE. A Fase 2 (conhecida como Quick Mode) utilizada para este fim. O handshake base da Fase 2 mostrado na figura a seguir.
Initiator --------AH/ESP parameters, Algorithms, Nonce, Handshake Hash
Figura 10.16 Fase 2.

Responder ---------

<_

_> AH/ESP parameters,Algorithms, Nonce, Handshake Hash

Handshake Hash

_>

Fase 2 com PFS


Na verso anterior do Quick Mode, os pares (hosts) usam o material j definido na Fase 1 para transportar e derivar uma chave temporria, garantindo assim a proteo do trfego. O Mode Quick tambm permite um novo handshake Diffie-Hellman para o trfego PFS. Nesse caso, as duas primeiras mensagens mostradas na imagem incluiriam, tambm, a troca da chave.

AH/ESP parameters, Algorithms, Nonce, Key Exchange, Handshake Hash


Figura 10.17 Fase 2 com PFS.

_> <_

AH/ESP parameters,Algorithms, Nonce, Key Exchange, Handshake Hash

Handshake Hash

_>
219

Captulo 10 - IPSec

Initiator ---------

Responder ---------

Network Address Translation (NAT) Transverso


Definio: no protocolo ESP no possvel fazer a traduo de endereo e utilizar a informao de portas de origem e destino como forma de multiplexao das conexes. NAT ou Network Address Translation a funo de roteamento que permite a traduo de

endereos entre redes pblicas e privadas. Essa traduo torna-se necessria por causa da limitada oferta de endereos pblicos na internet. A principal caracterstica do servio de NAT modificar o endereo de origem do pacote IP trocando-o, normalmente, pelo endereo publicamente conhecido utilizado pelo gateway da rede. Os protocolos de transporte TCP e UDP utilizam o conceito de multiplexao atravs de portas de origem e destino para viabilizar vrias conexes simultneas. O servio de NAT deve utilizar um endereo IP pblico para traduzir vrios endereos privados (NAT Masque rade ou NAT Hide), utilizando portas diferentes e armazenando todas estas informaes em uma tabela de conexes. NAT muda o cabealho IP exterior. 11 IPSec AH no funciona. 11 IPSec ESP depende. 11 Em modo tnel funciona. 11 Em modo transporte no deve funcionar. Checksums UDP ou TCP. 11 Soluo: NAT-T (NAT transversal). 11 Encapsulamento de datagramas IPSec em datagramas UDP. Principais problemas apresentados entre os mecanismos NAT e IPSec: 11 AH incompatvel com NAT (todo o pacote autenticado, HMAC); 11 NATs no podem atualizar checksums de camadas superiores; 11 O nmero da porta UDP utilizada pelo IKE no pode ser alterado; 11 NATs no podem multiplexar streams de dados IPSec; 11 A identificao do bloco IKE contm os endereos IP embutidos. A soluo adotada utilizar o NAT-T (NAT Transversal) que permite encapsular datagramas
Administrao de Sistemas Linux: Redes e Segurana

IPSec em datagramas UDP.

220

Roteiro de Atividades 10
Atividade 10.1 Criando o firewall
IPCop um software livre (cdigo aberto) baseado no GNU/Linux e customizado para funcionar como um firewall e roteador em uma rede de computadores. Trata-se de um poderoso e flexvel firewall, que possibilita maior expanso sem acrescentar potenciais vulnerabilidades de segurana para a distribuio base.

Criando a mquina virtual IPCop


Com a ferramenta VirtualBox, crie uma mquina virtual com as seguintes caractersticas:5 11 Nome: IPCop 11 Tipo: Linux 11 Verso: Other Linux 11 Memria: 1420 MB
1. Crie o disco virtual:

11 Disco VDI 11 HD: 20 GB de espao


2. Nas configuraes, na aba Redes, habilite duas placas de rede com a opo Conectado

a Placa em modo Bridge.


3. Em Armazenamento, escolha a imagem .iso do IPCop.

Instalando o sistema IPCop


Pr-instalao
1. Selecione a linguagem: Brazilian Portuguese. 2. Mapeamento do Teclado: br-abnt2. 3. Fuso Horrio: Brazil/West. 4. Configure a data. 5. Selecione o disco para instalao. 6. Disk Instalation: OK.
Captulo 10 - Roteiro de Atividades

7. Disk Instalation: Hard Disk. 8. Na tela Restaurar ser perguntado sobre opes de backup; pule essa opo (PULE). 9. Parabns. 10. Hostname: ipcop 11. Nome do domnio: localhost 12. Interface RED (Interface da rede externa): 12.1.Marque a opo DHCP.

221

13. Atribuio da placa: 13.1.Aparecero duas placas de rede. 13.2.Selecione a primeira, que ser ETH0 e RED. 13.3.A segunda ser ETH1 e GREEN (Interface da rede interna). 13.4.Depois selecione a opo PRONTO. 14. Interface GREEN: 14.1.Coloque o endereo de sua rede local como indicado no diagrama da Atividade 10.2.

Exemplo: 192.168.X0.1/255.255.255.0
15. Interface RED: PULE. 16. Configuraes de DNS e Gateway: 8.8.8.8 e 4.4.4.4. 17. Configurao de servidor de DNS: PULE. 18. Configure senha para root: rnpesr 19. Configure senha para admin: rnpesr 20. Configure senha para backup: rnpesr 21. OK. 22. Instalao concluda.

Atividade 10.2 Configurando as interfaces de rede


Ps-instalao Essa atividade ser realizada em dupla. As mquinas devem obedecer topologia de rede seguinte, onde as mquinas dos alunos estejam em redes diferentes e as mquinas virtuais IPCop sejam seus gateway default. Para simplificar o entendimento, observe o diagrama de rede a seguir:

Servidor A
Administrao de Sistemas Linux: Redes e Segurana

WAN DHCP (laboratrio) LAN IP: 192.168.x.1 Mscara: 255.255.255.0 ou /24

Servidor B

WAN DHCP (laboratrio) LAN IP: 192.168.x0.1 Mscara: 255.255.255.0 ou /24

Estao A
IP: 192.168.x.2 Mscara: 255.255.255.0 gw: 192.168.x.1 DNS: 192.168.X.1

Estao B
IP: 192.168.x0.2 Mscara: 255.255.255.0 gw: 192.168.x0.1 DNS: 192.168.X0.1

Pergunte ao instrutor o valor de X, no esquecendo de substitu-lo nos endereos das estaes e mquinas virtuais.

222

Configurao da interface LAN do Linux com o IPCop (Servidor A)


1. Configure a interface da estao de trabalho Windows (Estao A). Nas propriedades de

rede da estao de trabalho Windows, selecione a opo Protocolo TCP/IP e configure com os parmetros: 11 Endereo IP: 192.168.X.2 11 Mscara de subrede: 255.255.255.0 11 Gateway padro: 192.168.X.1
2. Marque a opo Usar os seguintes endereos de servidor DNS e informe o servidor de

DNS preferencial: 192.168.X.1


3. Clique em OK.

Neste momento, a mquina Windows deve ser capaz de realizar um ping em qualquer endereo IP externo rede. Isso acontece porque, por padro, o IPCop permite o acesso da rede interna rede externa sem restries e realiza o NAT na interface WAN.
4. Para testar a conectividade, abra o Prompt de Comando (DOS) na mquina Windows

e execute: C:\ping 192.168.X.1 C:\ping www.rnp.br


5. Repita a operao de configurao das interfaces de rede no servidor Linux com IPCop

no servidor B. Lembre-se de que os endereos de rede LAN so diferentes do servidor A (sero fornecidos a resposta e o endereo de acesso).

Configurao da interface da estao de trabalho Windows (Estao B)


1. Nas propriedades de rede da estao de trabalho Windows selecione a opo Protocolo

TCP/IP e configure com os parmetros abaixo: 11 Endereo IP: 192.168.X0.2 11 Mscara de subrede: 255.255.255.0 11 Gateway padro: 192.168.X0.1
2. Marque a opo Usar os seguintes endereos de servidor DNS e informe o servidor de

DNS preferencial: 192.168.X0.1


3. Clique em OK.

Neste momento a mquina Windows deve ser capaz de realizar um ping em qualquer endeinterna rede externa sem restries e realiza o NAT na interface WAN.
4. Para testar a conectividade, abra o Prompt de Comando (DOS) na mquina Windows
Captulo 10 - Roteiro de Atividades

reo IP externo rede. Isso acontece porque, por padro, o IPCop permite o acesso da rede

e execute: C:\ ping 192.168.X0.1 C:\ping www.rnp.br

223

Atividade 10.3 Configurando IPSec no IPCop


IPCop possui vrias funcionalidades, entre elas a criao de tneis VPN utilizando o proto colo IPSec. Nessa atividade ser configurado o tnel utilizando o IPSec.

Servidores A e B
Abra o navegador web na estao de trabalho Windows e acesse o endereo: https://192.168.X.1:8443/. Sero solicitados usurio e senha (usurio = root e senha = a senha de root do servidor Linux).
1. No menu, clique em VPNs e selecione IPSec. 2. Marque a opo IPSec on RED (a interface externa da rede) e clique em Salvar. 3. Clique na opo Adicionar e depois na opo Rede Privativa Virtual Rede--Rede

e Selecionar.
4. No servidor A digite o nome Server A e no B Server B. 5. Marque a opo Habilitado. 6. No Servidor A, na opo Host/IP Remoto: IP da RED do servidor B e vice-versa. 7. Na opo subrede remota: Rede 192.168.X.0/255.255.255.0 do Servidor B. 8. Use uma chave compartilhada rnpesr e clique em Salvar. 9. No menu, clique em VPNs e selecione OpenVPN. 10. Na opo Sub-Rede OpenVPN digite a subrede remota: 192.168.X.0/255.255.255.0 e

clique em Salvar.
11. No menu, clique em Firewall, selecione Firewall Settings e marque as opes Verde,

IPsec-Red, OpenVPN-RW, Show interface colors in rule overview e clique em Salvar. Ao trmino destas configuraes efetivas nos dois servidores, as subredes de ambos devero estar se comunicando.

Teste do Tunnel IPSec


Para testar a conectividade, abra o Prompt de Comando (DOS) na mquina Windows Estao A e execute:
Administrao de Sistemas Linux: Redes e Segurana

C:\ ping 192.168.X0.1

Atividade 10.4 Configurando regras de firewall


Diferente do iptables em texto puro atravs do shell, no IPCop todas as regras de firewall so configuradas em uma interface web muito intuitiva. Por padro, o firewall est con figurado para permitir acesso de qualquer mquina interna para a rede externa e negar qualquer tentativa de acesso de uma mquina externa para a rede interna. O objetivo desta atividade demonstrar o mecanismo de criao e gerncia de regras de acesso. Para isso, configure as seguintes regras: 11 Permitir o acesso ao servio SSH do firewall apenas para a mquina 192.168.X.2. 11 Permitir que a mquina externa 192.168.X0.2 acesse o servio OpenVPN (porta 5003) na mquina local 192.168.X.2. 11 Logar pacotes ICMP saindo da rede local com destino rede externa que passem pelo firewall.

224

Bibliografia
11 TERPSTRA, John H.; LOVE, Paul; RECKS, Ronald P. (et alii). Segurana para Linux. Editora: Campus, 2004. 11 DHANJANI, Nitesh. Hack Notes: Segurana no Linux e Unix. Rio de Janeiro: Editora Campus, 2004. 11 NETO, Urubatan. Dominando Linux Firewall Iptables. Rio de Janeiro: Editora Cincia Moderna, 2004. 11 HUNT, Craig. Linux: Servidores de Rede. Rio de Janeiro: Editora Cincia Moderna, 2004. 11 JAMIL, George Leal; GOUVA, Bernardo Andrade. Linux para profissionais: do bsico conexo em redes. Editora: Axcel Books, 2006. 11 SALMEN, Fadir. IPSec. Monografia apresentada na Universidade Estadual de Londrina (2002). 11 ROTOLE, Erick Dantas. Arquitetura IP Security. Trabalho de curso apresentado na Universidade de Braslia. Disponvel em: http://www.cic. unb.br/~pedro/trabs/ipsec.pdf 11 FILHO, Joo Eriberto Mota. Descobrindo o Linux. 2 ed. Rio de Janeiro: Editora Novatec, 2007. 11 SOARES, Luiz Fernando Gomes; LEMOS, Guido; COLCHER, Srgio. Redes de computadores: das LANs, MANs e WANs s redes ATM. 2 ed. Rio de Janeiro: Editora Campus, 1995. 11 TANENBAUM, A. Redes de Computadores. 3 ed. Rio de Janeiro: Editora Elsevier, 1997. 11 TORRES, Gabriel. Redes de computadores: curso completo. 1 ed. Rio de Janeiro: Editora Axcel Books, 2001. 11 SOUSA, Lindeberg Barros de. Redes de computadores: dados, voz e imagem. 6 ed. So Paulo: Editora rica, 2005.
Bibliografia

11 RIBEIRO, Uira. Certificao Linux. Editora: Axcel Books, 2004. 11 NEMETH, Evi; HEIN, Trent R.; SNYDER, Garth. Manual Completo do Linux: Guia do Administrador. Editora: Prentice Hall, 2007.

225

11 SIEVER, Ellen; WEBER, Aaron; FIGGINS, Stephen (et alii). Linux: o Guia Essencial. Editora: Bookman, 2006. 11 RFC 854 Telnet Protocol Specification 11 RFC 951 The Bootstrap Protocol bootp 11 RFC 1631 The IP Network Address Translator (NAT) 11 RFC 1661 The Point-to-Point Protocol (PPP) 11 RFC 1939 Post Office Protocol (Version 3) 11 RFC 2401 Security Architecture for the Internet Protocol IPSec 11 RFC 2402 IP Authentication Header 11 RFC 2406 IP Encapsulating Security Payload 11 RFC 2407 The Internet IP Security Domain of Interpretation for ISAKMP 11 RFC 2408 Internet Security Association and Key Management Protocol 11 RFC 2409 The Internet Key Exchange (IKE) 11 RFC 2616 Hypertext Transfer Protocol (HTTP/1.1) 11 RFC 2131 Dynamic Host Configuration Protocol 11 RFC 2341 Cisco Layer Two Forwarding Protocol (L2F) 11 RFC 2637 Point-to-Point Tunneling Protocol 11 RFC 2661 Layer Two Tunneling Protocol (L2TP) 11 RFC 4101 Writing Protocol Models 11 Guia Gentoo Linux de Segurana. Disponvel em: www.gentoo.org/doc/ pt_br/security/ 11 Artigo de Antonio Cludio Sales Pinheiro. Disponvel em: http://www. linuxit.com.br/modules.php?name=Sections&op=viewarticle&artid=450
Administrao de Sistemas Linux: Redes e Segurana

11 Manual de Segurana do Debian. Disponvel em: http://www.debian.org/doc/manuals/securing-debian-howto/index. en.html 11 Linux Security. Disponvel em: http://www.linuxsecurity.com/ 11 Linux firewall and security site. Disponvel em: http://www.linux-firewalltools.com/linux 11 Security Debian Manual. Disponvel em: http://www.debian.org/doc/manuals/securing-debian-howto/index.pt-br. html#contents

226

11 Funcionamento do IPSec. Disponvel em: http://www.ciscopress.com/ articles/article.asp?p=24833&seqNum=6 11 Edgard Jamhour. IPSec: IP Seguro. Disponvel em: http://www.ppgia.pucpr. br/~jamhour/Download/pub/Outros/IPsec.ppt http://www.debian.org http://www.tldp.org/LDP/nag/node34.html#SECTION004600000 http://open.nit.ca/wiki/?WvDial http://nmap.org/ http://www.wireshark.org/ http://www.netfilter.org/ http://www.tcpdump.org/ http://focalinux.cipsga.org.br/guia/avancado/ch-fw-iptables.htm http://www.cisco.com/warp/public/537/6.html http://www.cisco.com/univercd/cc/td/doc/cisintwk/idg4/nd2012.htm http://standards.ieee.org/getieee802/download/802.1Q-1998.pdf http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/55168.htm http://www.abusar.org/vpn/vpn2.htm http://mia.ece.uic.edu/~papers/volans/pptpd1.html

227

Bibliografia

228

Administrao de Sistemas Linux: Redes e Segurana

Dbora Pedro R. Christina Torres Jnior Muchaluat professor Saade da professora Universidade associada Federal do Departamento do Paran e de coordenador Cincia da tcnico Computao do ponto da Universide predade senaFederal da RNP Fluminense no estado (UFF). do Paran. engenheira Tambm de atua computao como coordenador formada pela tcPUC-Rio nico do ponto e possui demestrado troca de trfego e doutorado (IXP) em da regio informtica e da Rede pela Metropolitana mesma universide dade. bolsista Curitiba. Possui mais de produtividade de 14 anos de em experincia Desenvolvimento em sistema Tecnolgico e Extenso operacional Linux e mais Inovadora de 12 anos pelo de CNPq experincia e foi Jovem com Cientista do Estado do Rio de Janeiro pela Faperj. Suas reas roteamento IP. de pesquisa so redes de computadores, redes sem fio, sistemas multimdia e hipermdia, TV digital interativa e telemediChristian Lyrade Gomes formado em cina. J coordenou diversos projetos pesquisa financiados Cincias da Computao e tem mespelo CNPq e Faperj e foi coordenadora do projeto piloto Edutrado em de Computadores pela roam-br, financiado pela RNP eRedes realizado em parceria com a Universidade Federal do Paran. Teve UFMS, UFRJ e diversas outras instituies, implantando o serseu primeiro contato com Linux em vio piloto eduroam no Brasil. 1997 e em 2000 trabalhou na Conectiva Linux. Em 2001, foi contratado pelo Ponto de Presena Ricardo da RNP Campanha no Paran Carrano atuando na engerea de gerncia de redes e nheiro sistemas. de telecomunicaes Em 2006 assumiu a formado coordenao administrativa em do PoP-PR, 1995 pela cargo Universidade que exerce at Federal hoje. Fluminense. Em 2008, obteve o ttulo de Mestre em Engenharia de Telecomunicaes pela mesma instituio Francisco Marcelo M. Lima certifi e atualmente cursa o doutorado em cado Project Management Professional Computao, tambm na UFF, onde atua como Professor (PMP) e Modulo Certified Security do Departamento de Engenharia de Mestre Telecomunicaes. Foi Officer (MCSO), em Engenharia empresrio e participou da implantao de provedores de Eltrica pela Universidade de Braslia acesso no incio da Internet comercial Brasil, em 1995. (2009), Mestre em no Liderana pela UniAtuou como Engenheiro de Redes para a Amaro ONG internacioversidade de Santo (2007) e nal One Laptopem perSegurana Child (OLPC) j participou de diversos ps-graduado deeRedes de Computadores projetos de pesquisa financiados pela RNP, peloAtualmente MEC e por pela Universidade Catlica de Braslia (2003). empresas privadas. exerce as funes de Coordenador dos Cursos de Redes de Computadores e Segurana da Informao do IESB, e de Analista em TI do MPOG cedido para a Controladoria-Geral Edelberto Franco Silva se na tornou da Unio/PR. Possui mais de 15 anos de experincia rea Bacharelcom em nfase Sistemas Informao de Cincia da Computao, emde Segurana da Faculdade Metodista Granbery Informao, Redes e pela Construo de Software. em 2006, e obteve o ttulo de Mestre em Computao pela Universidade Luiz Fernando Ramos Costa Federal Fluminense em 2011. AtualPs-graduando em em Engenharia de mente Doutorando Computao Software UNISUL/SC, formado em pela Universidade Federal Fluminense. Participou de diverRedes possuindo de Computadores pela sos projetos de pesquisa, experincia na Estrea cio de S, certificado LPI Linux, Novell de Cincia da Computao, com nfase em redes, atuando CLA, DCTS, analista de do IFSC e anaprincipalmente nos temas relacionados a TI redes sem fio, lisa de suporte na POWERSolutions. Internet do Futuro e segurana. Mais de 13 anos de experincia em administrao de redes, desenvolvimento de softwares e como orientador de cursos para a certificao Linux Professional Institute, atuando principalmente na gerncia de redes em grandes corporaes e com programao de sistemas web.

LIVRO DE APOIO AO CURSO

O curso fornece o conhecimento prtico e terico necessrio para a configurao e manuteno de redes de computadores em ambientes seguros. Apresenta as principais atividades em administrao de redes e sugere polticas de segurana. Sero estudados os fundamentos da arquitetura TCP/IP, sua pilha de protocolos e servios oferecidos. As atividades prticas incluem desde a configurao e monitoramento da rede at a implementao de firewall, NAT, roteamento e tunelamento, utilizando ferramentas como Wireshark, Iptables, IPSec, OpenVPN e rkhunter. Este livro inclui os roteiros das atividades prticas e o contedo dos slides apresentados em sala de aula, apoiando profissionais na disseminao deste conhecimento em suas organizaes ou localidades de origem.

ISBN 978-85-63630-21-6

9 788563 630216