Professional Documents
Culture Documents
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
Redes e Segurana
Pedro R. Torres Jnior Christian Lyra Gomes Francisco Marcelo M. Lima Luiz Fernando Ramos Costa
Redes e Segurana
Pedro R. Torres Jnior Christian Lyra Gomes Francisco Marcelo M. Lima Luiz Fernando Ramos Costa
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
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
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
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
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
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
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
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
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
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
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
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.
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
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;
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.
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.
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
CRC 4 octetos
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.
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)
TTL (8)
Descrio da utilizao do cabealho IP: 11 Vers: verso do protocolo IP (atualmente IPv4); 11 HLEN: comprimento do cabealho em unidades de 32 bits;
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.
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.
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.
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
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 :
17
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
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
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.
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?
21
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
23
24
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.
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.
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
Rede 10.0.0.0
Rede 10.0.10.0
Rede 10.0.20.0
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
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.
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.
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.
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.
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
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:
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
9.339 ms 14.900 ms
9.017 ms
15.076 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.
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).
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.
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 destino
Bits de cdigo
Janela
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.
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
Mquina B
ACK
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.
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 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
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;
Ela est correta? Caso no esteja, o que h de errado com ela? Como resolver o problema? 39
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
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
42
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:
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.
q
Captulo 3 - Configurando uma rede TCP/IP
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 :
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
44
interface_real:id.
Para criar uma interface virtual e configurar para ela um endereo IP, utilizamos o comando ifconfig. Sua sintaxe :
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.
mroute tunnel
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
# 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 link set <interface> down # ip link set <interface> address <endereo fsico> # ip link set <interface> up
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:
# 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.
Gateway Genmask
# 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:
48
Slackware
Definio de interfaces, endereos e rotas feita em um nico arquivo:
/etc/rc.d/rc.inet1
/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
49
O primeiro arquivo a ser configurado o /etc/network/interfaces. Ele possui, basicamente, dois parmetros (auto e iface):
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:
# /etc/init.d/networking restart
50
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
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
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:
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:
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 :
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
53
# 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):
# 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
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
EOiGzzP9it4GzsM6dLtyICW8KMSJMZqXBeTOtvNkUd/X GH9G6tHfARO+Sd/Rdtj7HLVOoJyQ8+4SKQGg6Re8mrXC 9p1lSpY94yuchiN+5PsK2XNE9UhLcVai/S7kRsag7Grz n00sk5QoCANJkICtPaj+FQlW+ADaYL7zkNKve6o= ) jus.br. 180 IN RRSIG NSEC 5 2 900 20120214100000 (
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
# 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
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:
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
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.
61
62
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?
# /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
63
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
# 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
192.168.0.16 0 4 3
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.
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:
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 :
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
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:
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.
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.
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
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.05:40162 ESTABLISHED
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
76
Comando lsof
Um socket tratado pelo SO como um arquivo:
q
DEVICE SIZE NODE
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
rpc.statd 1392 rpc.statd 1392 rpc.statd 1392 zabbix_ag 1735 zabbix_ag 1754 zabbix_ag 1755
77
# 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.
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
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
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 :
sada de cada uma. Como destino, utilize um endereo fornecido pelo instrutor.
flags foram alteradas (verifique com os comandos ip e ifconfig )? O que isso significa?
3. Retire a interface do modo promscuo.
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
81
82
83
84
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
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:
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
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.
Internet
www
Servidor
NFS, www
Intranet
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:
Daemon inetd
11 Capaz de iniciar vrios servios de modo dinmico. 11 Configurado pelo inetd.conf. 11 Formato das linhas:
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
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.
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 :
# 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:
ALL: 127.0.0.1
Administrao de Sistemas Linux: Redes e Segurana
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:
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
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 :
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
log_on_failure disable } = no
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.
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).
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
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>
$ 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:
$ 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:
97
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.
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:
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:
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:
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
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.
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
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
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?
continue ativo.
acess-lo.
3. Permita que apenas o servio sshd seja acessado pelo host 192.168.200.3 e pelo localhost
105
Instalao do rkh:
# 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.
# rkhunter -c
No se esquecer de voltar com o owner :
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.
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
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.
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.
# 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:
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
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
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:
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:
112
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
113
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 /
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 /
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 /
Colocar /tmp no modo noexec pode impedir que certos scripts executem
Captulo 6 - Segurana Sistema Operacional
adequadamente.
115
# 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.
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.
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:
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:
118
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/
<value>
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
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:
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.
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):
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
# 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.
# find / -type f -a -perm +006 2>/dev/null # find / -type d -a -perm +007 2>/dev/null
121
<usuario>:x:1003:1004:,,,:/home/<usuario>:/bin/false
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:
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.
# 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:
chroot
Instalando e configurando o chroot :
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:
124
# 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
# /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:
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:
Para finalizar, possvel configurar o portsentry para realizar um contra-ataque. Aqui vale a sua imaginao. Observe que pode ser executado um script qualquer:
# /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:
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.
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
127
11 Repita a senha: 123456 11 Informe a senha para a chave local: 123456 11 Repita a senha: 123456
# tripwire --init
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.
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.
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
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:
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.
130
131
132
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
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
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
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
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
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:
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:
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
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 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:
11 # iptables -L -t mangle 11 # iptables -L FORWARD -t filter Para listar o contedo de uma chain, basta utilizar o comando:
# iptables -L
11 Mostra todas as chains da tabela mangle:
# iptables -L -t mangle
11 Mostra a chain FORWARD da tabela filter:
142
Manipulao de chains
Ajuste da poltica padro de uma chain (o que fazer caso nenhuma regra se aplique ao pacote):
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.
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:
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:
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-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.
net.ipv4.ip_forward = 1
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
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?
conexes http?
4. Crie uma regra na chain INPUT para tornar as conexes http possveis. No utilize regras
com estado.
147
chain log.
4. Teste as regras e verifique se o firewall est logando pacotes TCP e ICMP.
Internet
Intranet (192.168.200.0/24)
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.
148
DMZ
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
149
150
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).
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
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 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).
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:
--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
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:
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 -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:
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.
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
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.
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
# 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:
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
#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)
Internet (IPv4)
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 :
161
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
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:
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:
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.
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:
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:
164
11 Regra prohibit: funciona de forma semelhante regra unreachable, mas gera um ICMP prohibit para o remetente. Exemplo:
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 from 10.0.0.0/24 table \ <tabela> # ip route add default via <gateway> table \ <tabela> # ip route flush cache
165
166
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.
pelo sistema?
2. Crie uma regra de SNAT para que os pacotes com destino porta 80 saiam com a porta
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
167
porta 6000. A partir do cliente, teste uma conexo com destino porta 6000 do servidor.
2. As rotas da tabela main (dica: use o comando ip route). 3. As rotas da tabela local.
168
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.
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
170
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.
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
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
172
Empresa
IPSec
/PPTP
/L2TP
L2TP/L2F
PSTN NAS
Roteador VPN
IPSec
GRE
IPSec GRE
Roteador VPN
NAS
173
Filial
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
Vericao 1 ou 2 bytes
01111110 Flag
Figura 9.3 Formato do quadro PPP.
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
Dead
UP
Establish
OPENED
Authenticate
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.
Routing (optional)
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
192.168.254.200
192.168.254.201
192.168.0.0/24 Rede
Internet
192.168.2.0/24 Rede
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
Client ID Oset
Figura 9.7 Protocolo L2F (Layer-2 Forwarding).
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.
Tnel L2TP
Cliente Dial (Ponto PPP) Servidor AAA (RADIUS/TACACS+) Servidor AAA (RADIUS/TACACS+)
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
IP PPP L2TP
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.
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
183
100 Mbps
1
VLAN 10 Mbps
Switch A
VLAN 10
1 Gbps Switch B
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.
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
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
171.69
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
171.69
187
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
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.
Deciso de roteamento
In Label
In Label
In Label
...
...
...
...
...
...
1 1
128.89
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.
In Label
In Label
In Label
9
...
...
...
...
...
...
1 1
128.89
171.69
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 -
In Label
4 5
In Label
9
...
...
...
...
...
...
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
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
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.
192
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.
193
194
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:
chave deve ser transferida para a mquina cliente. Para isso execute:
195
# 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
196
# 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
#/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:
# 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:
# 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
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
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
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 []:
organizationName organizationalUnitName commonName emailAddress X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment:
202
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
# openssl dhparam -out dh1024.pem 1024 Generating DH parameters, 1024 bit long safe prime, generator 2 This is going to take a long time ...................................
# 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
# 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
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.
204
#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:
206
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
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
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
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.
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
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.
Prximo Cabealho
Reservado
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.
Novo Endereo IP
AH
Endereo IP
TCP
Dados
Figura 10.6 Modo de transporte.
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
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.
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
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.
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
IKE
AH/ESP
Figura 10.11 Ambiente de operao.
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.
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.
216
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
217
<_
<_
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
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 ---------
<_
Handshake Hash
_>
_> <_
Handshake Hash
_>
219
Captulo 10 - IPSec
Initiator ---------
Responder ---------
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
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.
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.
Servidor A
Administrao de Sistemas Linux: Redes e Segurana
Servidor B
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
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
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
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).
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
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
223
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.
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
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.
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