Você está na página 1de 127

Red Hat Enterprise Linux 6 Guia de Segurana

Red Hat Enterprise Linux 6


Guia de Segurana
Um Guia para Proteger o Red Hat Enterprise Linux

Edio 1.5

Red Hat Servios de Contedo de Engenharia

Nota Legal

Nota Legal
Copyright 2011 Red Hat, Inc. T he text of and illustrations in this document are licensed by Red Hat under a Creative Commons AttributionShare Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux is the registered trademark of Linus T orvalds in the United States and other countries. Java is a registered trademark of Oracle and/or its affiliates. XFS is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL is a registered trademark of MySQL AB in the United States, the European Union and other countries. All other trademarks are the property of their respective owners. 1801 Varsity Drive Raleigh, NC 27606-2072 USA Phone: +1 919 754 3700 Phone: 888 733 4281 Fax: +1 919 754 3701

Red Hat Enterprise Linux 6 Guia de Segurana

Resumo
Este documento assiste usurios e administradores no aprendizado dos processos e prticas de proteo de estaes de trabalho e servidores contra a invaso remota e local, explorao e atividades mal-intencionadas. Focado no Red Hat Enterprise Linux mas detalhando conceitos e tcnicas vlidas para todos os sistemas Linux, este guia detalha o planejamento e ferramentas envolvidos na criao de um ambiente de informtica protegido para o centro de dados, local de trabalho e lar. Com conhecimento administrativo adequado, vigilncia e ferramentas, os sistemas com Linux podem ser tanto funcionais como protegidos da maioria das invases comuns e mtodos de exploraes.

ndice

ndice
Prefcio 1. Convenes de Documentos 1.1. Convenes T ipogrficas 1.2. Convenes de Pull-Quote 1.3. Notas e Avisos 2. Precisamos do seu Feedback! 1. Viso Geral da Segurana 1.1. Introduo Segurana 1.1.1. O que Segurana de Computadores? 1.1.2. SELinux 1.1.3. Controles de Segurana 1.1.4. Concluso 1.2. Avaliao de Vulnerabilidade 1.2.1. Pensando Como o Inimigo 1.2.2. Definindo a Avaliao e T estes 1.2.3. Avaliando as Ferramentas 1.3. Invasores e Vulnerabilidades 1.3.1. Uma Rpida Histria sobre Hackers 1.3.2. Ameaas Segurana de Rede 1.3.3. Ameaas Segurana do Servidor 1.3.4. Ameaas Estao de T rabalho e Segurana no PC domstico. 1.4. Exploraes Comuns e Ataques 1.5. Atualizaes de Segurana 1.5.1. Atualizando Pacotes 1.5.2. Verificando Pacotes Assinados 1.5.3. Instalando Pacotes Assinados 1.5.4. Aplicando as Mudanas 2. Protegendo sua Rede 2.1. Segurana da Estao de T rabalho 2.1.1. Avaliando a Segurana da Estao de T rabalho 2.1.2. Segurana da BIOS e do Carregador de Boot 2.1.3. Segurana da Senha 2.1.4. Controles Administrativos 2.1.5. Servios de Rede Disponveis 2.1.6. Firewalls Pessoais 2.1.7. Ferramentas de Comunicao Avanadas de Segurana 2.2. Segurana do Servidor 2.2.1. Assegure os Servios com T CP Wrappers e xinetd 2.2.2. Protegendo o Portmap 2.2.3. Protegendo o NIS 2.2.4. Protegendo o NFS 2.2.5. Protegendo o Servidor HT T P Apache 2.2.6. Protegendo o FT P 2.2.7. Protegendo o Sendmail 2.2.8. Verificando Quais Portas Esto Escutando 2.3. T CP Wrappers e xinetd 2.3.1. T CP Wrappers

Red Hat Enterprise Linux 6 Guia de Segurana

2.3.2. Arquivos de Configurao dos T CP Wrappers 2.3.3. xinetd 2.3.4. Arquivos de Configurao xinetd 2.3.5. Recursos Adicionais 2.4. Redes Privadas Virtuais (VPNs) 2.4.1. Como uma VPN funciona? 2.4.2. Openswan 2.5. Firewalls 2.5.1. Netfilter e IPT ables 2.5.2. Configurao de Firewall Bsica 2.5.3. Usando IPT ables 2.5.4. Filtros de IPT ables Comuns 2.5.5. FORWARD e Regras NAT 2.5.6. Softwares Maliciosos e Spoof de Endereos IP 2.5.7. IPT ables e Rastreamento de Conexo 2.5.8. IPv6 2.5.9. Recursos Adicionais 2.6. IPT ables 2.6.1. Filtro de Pacote 2.6.2. Opes de Comando para IPT ables. 2.6.3. Salvando Regras de IPT ables 2.6.4. Scripts de Controle de IPT ables 2.6.5. IPT ables e IPv6 2.6.6. Recursos Adicionais 3. Criptografia 3.1. Dados parados 3.2. Criptografia de Disco Cheio 3.3. Criptografia baseado em Arquivo 3.4. Dados Ativos 3.5. Virtual Private Networks (Rede Privada Virtual) 3.6. Secure Shell (Shell Segura) 3.7. OpenSSL PadLock Engine 3.8. LUKS Disk Encryption 3.8.1. Implementao do LUKS no Red Hat Enterprise Linux 3.8.2. Criptografando Diretrios Manualmente 3.8.3. Instrues Passo-a-Passo 3.8.4. O que voc acaba de concluir. 3.8.5. Links de interesse 3.9. Usando o GNU Privacy Guard (GnuPG) 3.9.1. Criando chaves GPG no GNOME 3.9.2. Criando Chaves GPG no KDE 3.9.3. Criando chaves GPG Usando a Linha de Comando 3.9.4. Sobre Criptografia de Chave Pblica 4. Princpios Gerais da Segurana de Informao 4.1. Dicas, Guias e Ferramentas 5. Instalao Segura 5.1. Parties de Disco 5.2. Use a Criptografia da Partio LUKS 6. Manuteno do Software

ndice

6.1. Instale o Mnimo de Software 6.2. Planeje e Configure Atualizaes de Segurana 6.3. Ajustando Atualizaes Automticas 6.4. Instale Pacotes Assinados de Repositrios Bem Conhecidos 7. Padres Federais e Regulamentao 7.1. Introduo 7.2. Federal Information Processing Standard (FIPS) 7.3. National Industrial Security Program Operating Manual (NISPOM) 7.4. Payment Card Industry Data Security Standard (PCI DSS) 7.5. Guia de Implementao T cnico de Segurana 8. Referncias A. Padres de Criptografia A.1. Criptografia Sincronizada A.1.1. Advanced Encryption Standard - AES A.1.2. Data Encryption Standard - DES A.2. Criptografia de chave Pblica A.2.1. Diffie-Hellman A.2.2. RSA A.2.3. DSA A.2.4. SSL/T LS A.2.5. Cramer-Shoup Cryptosystem A.2.6. ElGamal Encryption B. Histrico de Reviso

Red Hat Enterprise Linux 6 Guia de Segurana

Prefcio
1. Convenes de Documentos
Este manual usa diversas convenes para destacar certas palavras e frases e chamar a ateno para informaes especficas. Em PDF e edies de texto, este manual usa tipos de letras retiradas do conjunto Liberation Fonts. O conjunto de Fontes Liberation Fonts, tambm usado em formato HT ML, caso o conjunto esteja instalado em seu sistema. Caso ainda no esteja, como forma alternativa, esto disponveis tipos de letras equivalentes. Nota: O Red Hat Enterprise Linux 5 e verses mais recentes do mesmo, incluem o conjunto Liberation Fonts por padro. 1.1. Convenes T ipogrficas So usadas quatro convenes tipogrficas para realar palavras e frases especficas. Estas convenes, e circunstncias a que se aplicam, so as seguintes: Negrito Espao nico (Mono-spaced Bold) Usada para realar entradas do sistema, incluindo comandos de shell, nomes de arquivos e caminhos. So tambm usadas para realar teclas Maisculas/Minsculas e as combinaes de teclas. Por exemplo: Para ver o contedo do arquivo m y_next_bestselling_novel em sua pasta de trabalho atual, insira o comando cat m y_next_bestselling_novel na janela de solicitao e pressione Enter para executar o comando. O comando acima inclui um nome de arquivo, um comando de shell e uma tecla cap, todos apresentados em Negrito Espao nico (Mono-spaced Bold) e todos distintos, graas ao contedo. As combinaes de T eclas podem ser diferenciadas da tecla Caps Lock por um hfen, conectando cada parte de uma combinao de teclas. Por exemplo: Pressione Enter para executar o comando. Press Ctrl + Alt+ F2 to switch to a virtual terminal. A primeira sentena, destaca uma tecla especfica a ser pressionada. A segunda destaca duas combinaes de teclas (cada conjunto de trs teclas Caps com cada um pressionado simultaneamente). Caso o cdigo fonte seja discutido, sero apresentados como acima, os nomes de classe, mtodos, funes, nomes de variantes e valores retornados mencionados em um pargrafo, em Negrito de Espao nico (Mono-spaced Bold). Por exemplo: Classes baseadas em arquivo, incluem filesystem para sistemas de arquivo, file para arquivos, e dir para diretrios. Cada classe possui seu conjunto prprio de permisses associadas. Negrito Proporcional Esta representa as palavras e frases encontradas no sistema, incluindo os nomes de aplicativos, texto de caixa de dilogo, botes rotulados, caixa de seleo e rtulos de boto de opo, ttulos de menus e sub-menus. Por exemplo: Escolha Sistema Preferncias Mouse a partir da barra de menu para obter

Prefcio

Preferncias de Mouse . Na aba Botes, clique na caixa de seleo Mouse para m o esquerda e clique em Fechar para mudar o boto do mouse anterior da esquerda para a direita (deixando-o assim, mais adequado para o uso do canhoto). T o insert a special character into a gedit file, choose Applications Accessories Character Map from the main menu bar. Next, choose Search Find from the Character Map menu bar, type the name of the character in the Search field and click Next. T he character you sought will be highlighted in the Character T able . Double-click this highlighted character to place it in the T ext to copy field and then click the Copy button. Now switch back to your document and choose Edit Paste from the gedit menu bar. O texto acima inclui nomes de aplicativos, nomes de menu e itens de todo o sistema, nomes de menu especficos do aplicativo, e botes e textos encontrados na Interface Grfica GUI, todos apresentados em Negrito Proporcional (Proportional Bold) e todos diferenciados de acordo com o contexto. Itlico em Negrito de Espao nico (Mono-spaced Bold Italic) ou Itlico em Negrito Proporcional (Proportional Bold Italic) Sendo o Negrito Espao nico (Mono-spaced Bold) ou Negrito Proporcional (Proportional Bold), os itlicos extras indicam textos substituveis ou variveis. O Itlico denota o texto que voc no inseriu literalmente ou textos exibidos que mudam dependendo das circunstncias. Por exemplo: Para conectar-se uma mquina remota usando o ssh, digite ssh nome do usurio@ domain.name na janela de comandos. Por exemplo, considere que a mquina remota seja exam ple.com e seu nome de usurio nesta mquina seja john, digite ssh john@ exam ple.com . O comando m ount -o rem ount file-system remonta o sistema de arquivo nomeado. Por exemplo, para remontar o sistema de arquivo /hom e , o comando m ount -o rem ount /hom e . Para ver a verso de um pacote instalado, use o comando rpm -q package. Ele retornar um resultado como este: package-version-release. Note the words in bold italics above username, domain.name, file-system, package, version and release. Each word is a placeholder, either for text you enter when issuing a command or for text displayed by the system. Alm de uso padro para apresentar o ttulo de um trabalho, os itlicos denotam a primeira vez que um termo novo e importante usado. Por exemplo: O Publican um sistema de publicao do DocBook. 1.2. Convenes de Pull-Quote Resultado de terminal e listagem de cdigo fonte so definidos visualmente com base no contexto. O resultado enviado um terminal configurado em Rom ano de Espao nico (Mono-spaced Rom an) e apresentado assim:
books books_tests Desktop Desktop1 documentation downloads drafts images mss notes photos scripts stuff svgs svn

As listas de cdigo fonte tambm so configuradas em Rom ano de Espao nico (Mono-spaced Rom an), porm so apresentadas e realadas como a seguir:

Red Hat Enterprise Linux 6 Guia de Segurana

package org.jboss.book.jca.ex1; import javax.naming.InitialContext; public class ExClient { public static void main(String args[]) throws Exception { InitialContext iniCtx = new InitialContext(); Object ref = iniCtx.lookup("EchoBean"); EchoHome home = (EchoHome) ref; Echo echo = home.create(); System.out.println("Created Echo"); System.out.println("Echo.echo('Hello') = " + echo.echo("Hello")); } }

1.3. Notas e Avisos E por fim, usamos trs estilos visuais para chamar a ateno para informaes que possam passar despercebidas.

Nota
Uma nota uma dica ou smbolo, ou ainda uma opo alternativa para a tarefa em questo. Se voc ignorar uma nota, provavelmente no resultar em ms consequncias, porm poder deixar passar uma dica importante que tornar sua vida mais fcil.

Importante
Caixas importantes detalham coisas que so geralmente fceis de passarem despercebidas: mudanas de configurao que somente se aplicam sesso atual, ou servios que precisam ser reiniciados antes que uma atualizao seja efetuada. Se voc ignorar estas caixas importantes, no perder dados, porm isto poder causar irritao e frustrao.

Ateno
Um Aviso no deve ser ignorado. Se voc ignorar avisos, muito provavelmente perder dados.

2. Precisamos do seu Feedback!


Se voc encontrar um erro tipogrfico neste manual, ou se pensou em alguma maneira de melhorar este manual, adoraramos saber! Submeta um relatrio no Bugzilla: http://bugzilla.redhat.com/ no produto Red Hat Enterprise Linux. Ao submeter um relatrio de erro, lembre-se de mencionar o identificador do manual: doc-Security_Guide e nmero de verso: 6 . Se voc tem uma sugesto para melhorar esta documentao, tente ser o mais especfico possvel ao

10

Prefcio

Se voc tem uma sugesto para melhorar esta documentao, tente ser o mais especfico possvel ao descrev-la. Se voc encontrou um erro, inclua o nmero da seo e um pouco do texto dele, para que possamos encontrar com mais facilidade.

Red Hat Enterprise Linux 6 Guia de Segurana

11

Captulo 1. Viso Geral da Segurana


Por causa da dependncia crescente em poderosas redes de computadores para auxiliar empresas e manter registro de nossas informaes pessoais, indstrias inteiras foram formadas em torno da prtica das redes e segurana da informtica. Organizaes tm solicitado o conhecimento e habilidades de profissionais de segurana para propriamente auditar sistemas e criar solues que se encaixam dentro das necessidades operacionais dessas organizaes. Pela razo que a maioria das organizaes esto cada vez mais dinmicas por natureza, seus funcionrios acessam recursos de T I da empresa crticos localmente e remotamente, por isso a necessidade de ambientes de computao seguros tm se tornado mais evidente. Infelizmente, muitas organizaes (e tambm usurios individuais) deixam a segurana em segundo plano, um processo que esquecido perde-se aumento do poder, produtividade, conveniencia, facilidade de uso e questes de oramento. Uma implementao de segurana apropriada muitas vezes colocada em prtica tarde demais depois de uma invaso no autorizada j tiver ocorrido. T omar medidas apropriadas antes de se conectar a uma rede no confivel, como a Internet uma meio efetivo de impedir tentativas de intruso.

Nota
Este documento faz diversas referncias arquivos no diretrio /lib . Se estiver usando os sistemas 64 bits, alguns dos arquivos mencionados podem estar localizados no /lib64 .

1.1. Introduo Segurana


1.1.1. O que Segurana de Computadores? Segurana de computadores um termo geral que cobre uma grande rea da informtica e processamento da informao. Indstrias que dependem dos sistemas de computadores e redes para conduzir diariamente negociaes e acessar informaes crticas, consideram seus dados como uma importante parte de seus bens gerais. Diversos termos e mtricas entraram em nosso vocabulrio de negcios, tais como o custo total da posse (T CO - T otal Cost of Ownership), retorno sobre investimento (ROI - Return on Investment), e qualidade de servio (QoS - Quality of Service). Usando estas mtricas, indstrias podem calcular aspectos como a integridade dos dados e alta disponibilidade (HA - HighAvailability) como parte de seus planos e custos do gerenciamento de processos. Em algumas indstrias, como a de comrcio eletrnico, a disponibilidade e confiabilidade dos dados podem significar a diferena entre sucesso e fracasso. 1.1.1.1. Como a Segurana de Computadores comeou? A segurana da informao tem evoludo ao longo dos anos devido crescente dependncia em redes pblicas para no expor informaes pessoais, financeiras e outras informaes restritas. Existem muitas ocorrncias tais como os casos Mitnick [1] e Vladimir Levin [2 ] que fizeram com que organizaes de todas as reas repensassem a maneira que lidam com a informao, incluindo sua transmisso e exposio. A popularidade da internet foi um dos mais importantes desenvolvimentos que levou a um esforo intensificado da segurana dos dados. Um nmero crescente de pessoas esto usando seus computadores pessoais para obter acesso aos recursos que a internet oferece. Da pesquisa e obteno de informao ao correio eletrnico e transaes comerciais, a internet tem sido considerada um dos mais importantes desenvolvimentos do sculo 20. A internet e seus primeiros protocolos, entretanto, foram desenvolvidos como um sistema baseado em

12

Captulo 1. Viso Geral da Segurana

confiana. Ou seja, o Protocolo de Internet (IP) no foi desenvolvido para ser propriamente seguro. No existem padres de segurana aprovados construdos na pilha de comunicaes T CP/IP, deixando-o aberto para usurios potencialmente maliciosos e processos na rede. Desenvolvimentos modernos tm feito a comunicao na internet mais segura, mas ainda existem diversos incidentes que ganham ateno nacional e nos alertam para o fato de que nada completamente seguro. 1.1.1.2. A Segurana Hoje Em fevereiro de 2000, um ataque de negao de servio (DDoS) foi feito em vrios dos principais sites de alto trfego na internet. O ataque fez que sites como yahoo.com, cnn.com, amazon.com, fbi.gov entre outros ficassem completamente fora de alcance dos usurios normais, j que o ataque afetou roteadores por vrias horas com enormes pacotes de dados ICMP, tambm conhecidos como ping flood. O ataque foi feito por invasores desconhecidos usando programas especialmente criados e totalmente disponveis que escanearam servidores de rede vulnerveis e instalaram aplicativos clientes chamados Trojans nesses servidores e agendaram um ataque inundando os sites vtimas e os tornando indisponveis. Muitos culparam esse ataque devido deficincias fundamentais na maneira que roteadores e os protocolos usados so estruturados para aceitar todo o trfego dos dados, sem importar de onde ou qual o propsito dos pacotes so enviados. Em 2007, uma violao de dados explorando as fraquezas amplamente conhecidas do WEP (Wired Equivalent Privacy), protocolo de encriptao sem fio, resultou no roubo de mais de 45 milhes de nmeros de carto de crdito de uma instituio financeira global.[3 ] Em um incidente separado, os registros de pagamentos de mais de 2.2 milhes de pacientes armazenados em uma fita de backup foram roubados do banco dianteiro de um carro de entregas
[4 ]

Atualmente, estima-se que 1.4 bilhes de pessoas usam ou usaram a internet no mundo todo. [5 ] Ao mesmo tempo: Em qualquer dia, existem aproximadamente 225 importantes incidncias de brecha de segurana reportadas ao CERT Coordination Center at Carnegie Mellon University.[6 ] O nmero de incidentes reportados no CERT pulou de 52,658 em 2001, 82,094 em 2002 e para 137,529 em 2003.[7 ] De acordo com o FBI, crimes relacionados computadores custou s empresas americanas $67.2 bilhes de dlares em 2006.[8 ] De uma pesquisa global feita em 2009 sobre segurana e profissionais da tecnologia da informao, "Porque a Segurana Importa Agora" [9 ], conduzida pela CIO Magazine, alguns resultados interessantes so:\n\t\n Apenas 23% dos que responderam possuem polticas para o uso das tecnologias de Web 2.0. Estas tecnologias, como T witter, Facebook e LinkedIn podem oferecer uma maneira conveniente para empresas e individuais se comunicarem e colaborar, entretanto elas abrem novas vulnerabilidades, primariamente o vazamento de dados confidenciais. Mesmo durante a recente crise financeira de 2009, a pesquisa constatou que os oramentos com segurana estavam no mesmo nvel ou em crescimento em relao aos anos anteriores (aproximadamente 2 de cada 3 participantes esperam aumentar ou manter o mesmo nvel). Isto uma boa notcia e reflete a importncia que organizaes esto dando na segurana da informao hoje. Estes resultados reforam a realidade que segurana de computadores se tornou um gasto quantificvel e justificvel nos oramentos de T I. Organizaes que requerem integridade dos dados e alta disponibilidade evocam as habilidades dos administradores de sistemas, desenvolvedores e engenheiros para garantir uma confiana de seus sistemas, servios e informaes 24x7. Ser vtima de usurios maliciosos, processos ou ataques coordenados uma ameaa direta ao sucesso da

Red Hat Enterprise Linux 6 Guia de Segurana

13

organizao. Infelizmente, a segurana da rede e de sistemas podem ser uma proposta difcil, exigindo um conhecimento complexo de como a empresa encara, usa, manipula e transmite suas informaes. Compreender a forma como uma organizao (e as pessoas que compem a organizao) conduz os negcios fundamental para implementao de um plano de segurana apropriado. 1.1.1.3. Padronizao da Segurana Empresas de todas as reas confiam em regulamentos e regras que so definidas por entidades de padronizao como a American Medical Association (AMA) ou o Institute of Electrical and Electronics Engineers (IEEE). Os mesmos ideais so verdadeiros para a segurana da informao. Muitos consultores de segurana e fornecedores concordam com um modelo de padronizao da segurana conhecido como CIA, ou Confidentiality, Integrity, and Availability. Este modelo de trs camadas um componente geralmente aceito para avaliar riscos de informaes sensveis e estabelecer poltica de segurana. O seguinte descreve o modelo CIA em maiores detalhes: Confidencialidade Informaes sensveis devem estar disponveis somente para um conjunto de indivduos pr definidos. T ransmisso no autorizada e uso da informao devem ser restritos. Por exemplo, a confidencialidade da informao garante que uma informao pessoal ou financeira no seja obtida por um indivduo no autorizado para propsitos maliciosos tais como roubo de identidade ou fraude de crdito. Integridade As informaes no devem ser alteradas de modo a torna-las incompletas ou incorretas. Usurios no autorizados devem ser restritos da possibilidade de modificar ou destruir informaes sensveis. Disponibilidade As informaes devem ser acessveis a usurios autorizados em qualquer momento que seja necessrio. Disponibilidade uma garantia que a informao pode ser obtida com acordos de frequncia e pontualidade. Isto frequentemente medido em termos de porcentagens e definido formalmente em Acordos de Nvel de Servio (SLAs) usados por provedores de servios de redes e seus clientes corporativos. 1.1.2. SELinux O Red Hat Enterprise Linux inclui uma melhoria ao kernel do Linux chamado SELinux, que implementa uma arquitetura de Controle de Acesso Obrigatrio (MAC - Mandatory Access Control) que fornece um nvel de controle refinado sobre arquivos, processos, usurios e aplicaes no sistema. Uma discusso detalhada sobre o SELinux est alm do objetivo deste documento; entretanto, para mais informaes sobre o SELinux e seu uso no Red Hat Enterprise Linux, consulte o Guia do Usurio SELinux do Red Hat Enterprise Linux. Para mais informaes sobre configurar e rodar servios que so protegidos pelo SELinux, consulte o Guia do SELinux Gerenciando Servios Confinados. Outros recursos disponveis para o SELinux esto listados no Captulo 8, Referncias. 1.1.3. Controles de Segurana A segurana de computadores frequentemente dividida em trs categorias principais distintas, comumente referidas como controles: Fsico T cnico Administrativo Estas trs categorias amplas definem os objetivos principais de uma implementao de segurana apropriada. Dentro destes controles esto sub categorias que detalham mais os controles e como implementa-las. 1.1.3.1. Controles Fsicos

14

Captulo 1. Viso Geral da Segurana

Controle Fsico a implementao de medidas de segurana em uma estrutura definida usada para deter ou previnir acesso no autorizado material sensvel. Exemplos de controles fsicos so: Cameras de vigilncia de circuito interno Sistemas de alarmes trmicos ou de movimento Guardas de Segurana IDs com fotos Portas de ao bloqueadas com parafusos sem cabea Biometria (inclui impresso digital, voz, rosto, ris, manuscrito e outros mtodos automatizados usados para reconhecer indivduos) 1.1.3.2. Controles T cnicos Controles tcnicos usam tcnologia como uma base para controlar o acesso e uso de dados sensveis atravs de uma estrutura fsica e sobre uma rede. Controles tcnicos so de alcance abrangente e incluem tecnologias como: Criptografia Cartes Smart Autenticao de rede Listas de Controle de Acesso (ACLs) Software de auditoria de integridade de arquivos 1.1.3.3. Controles Administrativos Controles administrativos definem os fatores humanos de segurana. Eles envolvem todos o nveis de pessoas dentro de uma organizao e determinam quais usurios possuem acesso a quais recursos e informaes por tais meios como: T reinamento e conscientizao Preveno de desastres e planos de recuperao Estratgias de recrutamento de pessoal e de separao Registro de pessoal e de contabilidade 1.1.4 . Concluso Agora que voc aprendeu sobre as origens, motivos e aspectos da segurana, voc achar mais fcil de determinar o plano de ao apropriado ao Red Hat Enterprise Linux. importante saber quais fatores e condies compoem a segurana a fim de planejar e implementar uma estratgia apropriada. Com esta informao em mente, o processo pode ser formalizado e o caminho se torna mais claro medida que voc se aprofunda nos detalhes do processo de segurana.

1.2. Avaliao de Vulnerabilidade


T endo tempo, recursos e motivao, um invasor pode invadir praticamente qualquer sistema. T odos os procedimentos de segurana e tecnologias atualmente disponveis no podem garantir que quaisquer sistemas estejam completamente seguros contra intruso. Roteadores podem ajudar a proteger gateways na internet. Firewalls ajudam a proteger as bordas da rede. Redes Privadas Virtuais seguramente transmitem dados em um fluxo criptografado. Os sistemas de deteco de intruso lhe avisam de atividade maliciosa. Entretanto, o sucesso de cada uma dessas tecnologias dependente de uma variedade de variveis, incluindo: A percia do pessoal responsvel pela configurao, monitoramento e manuteno das tecnologias.

Red Hat Enterprise Linux 6 Guia de Segurana

15

A habilidade de corrigir e atualizar servios e kernels rapidamente e eficientemente. A habilidade daqueles responsveis em manter constante vigilncia sobre a rede. Dado o estado dinmico de sistemas de dados e tecnologias, proteger recursos corporativos pode ser muito complexo. Devido a esta complexidade, muitas vezes difcil de encontrar recursos para todos os seus sistemas. Enquanto possvel ter um pessoal com conhecimentos em muitas reas da segurana da informao em um alto nvel, difcil de reter empregados que so especialistas em mais do que algumas poucas reas. Isto principalmente pelo motivo que cada assunto da rea da segurana da informao requer constante ateno e foco. A segurana da informao no fica parada. 1.2.1. Pensando Como o Inimigo Suponha que voc administra uma rede corporativa. Essas redes comumente compreendem de sistemas operacionais, aplicaes, servidores, monitores de rede, firewalls, sistemas de deteco de intruso e mais. Agora imagine tentar manter atualizados cada um desses mencionados. Dada a complexidade dos softwares de hoje e ambientes de rede, exploraes e bugs so uma certeza. Manter-se atualizado com correes e atualizaes para uma rede inteira pode ser uma tarefa difcil em uma grande organizao com sistemas heterogneos. Combine o requerimento de experincia com a tarefa de manter-se atualizado, inevitvel que incidentes adversos ocorram, sistemas sejam violados, dados se corrompem e servios so interrompidos. Para aprimorar as tecnologias de segurana e auxiliar na proteo de sistemas, voc deve pensar como um invasor e avaliar a segurana de seus sistemas verificando os pontos fracos. Avaliaes de vulnerabilidade preventivas em seus prprios sistemas e recursos de rede podem revelar problemas potenciais que podem ser endereados antes de um invasor explora-la. A avaliao de vulnerabilidade uma auditoria interna de seu sistema e segurana de sistema; os resultados dos quais indicam a confidencialidade, integridade e disponibilidade de sua rede (como explicado na Seo 1.1.1.3, Padronizao da Segurana). T ipicamente, a avaliao da vulnerabilidade comea com uma fase de reconhecimento, durante o qual os dados importantes sobre os sistemas alvos e os recursos so reunidos. Esta fase leva fase de prontido do sistema, onde o alvo checado com todas as vulnerabilidades conhecidas. A fase de prontido culmina na fase do relatrio, onde os resultados so classificados em categorias de alto, mdio e baixo risco e mtodos para melhorar a segurana (ou para minimizar o risco de vulnerabilidade) do alvo so discutidos. Se voc tivesse que realizar uma avaliao de vulnerabilidade de sua casa, voc verificaria cada porta para ver se esto fechadas e trancadas. Voc tambm checaria cada janela, tendo certeza que esto completamente fechadas e trancam corretamente. Este mesmo conceito se aplica sistemas, redes e dados eletrnicos. Usurios maliciosos so os ladres e vndalos de seus dados. Foque nas ferramentas, mentalidade e motivaes e voc poder ento reagir rapidamente s aes. 1.2.2. Definindo a Avaliao e T estes Avaliaes de vulnerabilidade podem ser divididas em dois tipos: olhar de fora para dentro e olhar ao redor internamente. Quando realizar uma avaliao de vulnerabilidade olhando de fora para dentro, voc est tentando comprometer seus sistemas a partir do lado de fora. Estando externo sua empresa, lhe possibilita ter uma viso do invasor. Voc v o que o invasor v IPs roteveis publicamente, endereos, sistemas em seu DMZ , interfaces externas de seu firewall e mais. DMS significa "zona demilitarizada", que corresponde a um computador ou sub-rede que fica entre a rede interna confivel, como uma LAN privada corporativa e uma rede externa no confivel, como a internet pblica. T ipicamente, o DMZ contm dispositivos acessveis ao trfego de internet, como servidores web (HT T P), servidores FT P, servidores SMT P (e-mail) e servidores DNS.

16

Captulo 1. Viso Geral da Segurana

Quando voc realizar uma avaliao de vulnerabilidade de olhar ao redor internamente, voc possui uma vantagem j que voc est dentro e seu estado elevado confivel. Este o ponto de vista que voc e seus colegas de trabalho possuem uma vez autenticados a seus sistemas. Voc v servidores de impresso, servidores de arquivos e outros recursos. Existem diferenas notveis entre os dois tipos de avaliao de vulnerabilidade. Sendo interno sua empresa lhe d mais privilgios do que um externo. Na maioria das organizaes, a segurana configurada para manter invasores fora. Muito pouco feito para proteger a parte interna da organizao (como firewalls de departamentos, controles de acesso de nvel de usurios e procedimentos de autenticao para recursos internos). T ipicamente, existem muito mais recursos quando olhar internamente j que a maioria dos sistemas so internos uma empresa. Uma vez que voc est fora da empresa, seu estado no confivel. Os sistemas e recursos disponveis para voc externamente so normalmente muito limitados. Considere a diferena entre avaliaes de vulnerabilidade e testes de penetrao. Pense em uma avaliao de vulnerabilidade como o primeiro passo de um teste de invaso. As informaes obtidas no teste so usadas para testes. Onde a avaliao feita para verificar por brechas e vulnerabilidades potenciais, o teste de penetrao na verdade tenta explorar as descobertas. Avaliar a infraestrutura de rede um processo dinmico. A segurana, tanto de informao quanto fsica so dinmicas. Realizar uma avaliao mostra uma viso geral, que pode transformar falsos positivos e falsos negativos. Administradores de segurana so somente to bons quanto as ferramentas que eles usam e o conhecimento que eles retm. T ome quaisquer das ferramentas de avaliao atualmente disponveis, rode-as em seu sistema e quase uma garantia que havero falsos positivos. Seja pelo defeito de um programa ou erro do usurio, o resultado o mesmo. A ferramenta poder encontrar vulnerabilidades que em realidade no existem (falsos positivos); ou ainda pior, a ferramenta pode no encontrar vulnerabilidades que na verdade existem (falsos negativos). Note que a diferena definida entre a avaliao de vulnerabilidade e o teste de invaso, tome os resultados da avaliao e as revise cuidadosamente antes de conduzir um teste de invaso como parte de sua nova abordagem de boas prticas.

Aviso
T entar explorar vulnerabilidades de recursos em produo poder ter efeitos adversos produtividade e eficincia de seus sistemas e rede. A seguinte lista examina alguns dos benefcios de realizar avaliaes de vulnerabilidade. Cria um foco pr ativo na segurana da informao Encontra potenciais exploraes antes que os invasores as encontrem Resulta em sistemas sendo atualizados e corrigidos Promove o crescimento e ajuda no desenvolvimento das habilidades dos funcionrios Reduz perdas financeiras e publicidade negativa 1.2.2.1. Estabelece uma Metodologia Para ajudar na seleo de ferramentas para uma avaliao de vulnerabilidade, til estabelecer uma metodologia de avaliao de vulnerabilidade. Infelizmente, no h no momento uma metodologia pr definida ou aprovada pela indstria neste momento; entretanto, o bom senso e boas prticas podem atuar como um guia suficiente. O que um alvo? Estamos olhando em um servidor ou em uma rede inteira e tudo dentro dessa rede?

Red Hat Enterprise Linux 6 Guia de Segurana

17

Estamos externos ou internos empresa? As respostas estas questes so importantes conforme elas ajudam a determinar no somente quais ferramentas escolher mas tambm a maneira a qual elas so usadas. Para aprender mais sobre estabelecer metodologias, consulte os seguintes websites: http://www.isecom.org/osstmm/ The Open Source Security Testing Methodology Manual (OSST MM) http://www.owasp.org/ The Open Web Application Security Project 1.2.3. Avaliando as Ferramentas Uma avaliao pode se iniciar usando alguma ferramenta de coleta de informaes. Quando avaliar a rede inteira, mapeie a estrutura primeiro para encontrar os hosts em execuo. Uma vez localizados, examine cada host individualmente. Focar nestes hosts requer um outro conjunto de ferramentas. Conhecer quais ferramentas usar pode ser um passo crucial para encontrar vulnerabilidades. Assim como qualquer aspecto do dia a dia, existem muitas ferramentas diferentes que realizam a mesma tarefa. Este conceito se aplica tambm para realizar avaliaes de vulnerabilidade. Existem ferramentas especificas para sistemas operacionais, aplicaes e mesmo redes (baseadas nos protocolos usados). Algumas ferramentas so grtis, outras no. Algumas ferramentas so intuitivas e fceis de usar, enquanto outras so ocultas e mal documentadas mas possuem recursos que outras ferramentas no possuem. Encontrar as ferramentas certas, pode ser uma tarefa difcil e no final, a experincia que conta. possvel montar um laboratrio de testes e tentar o mximo de ferramentas que voc puder, anotando os pontos fortes e fracos de cada uma. Revise o arquivo LEIAME ou pgina man da ferramenta. Adicionalmente, procure na internet para mais informaes, como artigos, guias passo a passo ou mesmo listas de e-mails especficas da ferramenta. As ferramentas discutidas abaixo so apenas um pequeno exemplo das ferramentas disponveis. 1.2.3.1. Escaneando Hosts com o Nmap O Nmap uma ferramenta popular que pode ser usada para determinar o desenho de uma rede. O Nmap est disponvel por muitos anos e provavelmente a ferramenta mais usada para coletar informaes. Uma excelente pgina man est includa que fornece descries detalhadas de suas opes e usos. Os administradores podem usar o Nmap em uma rede para encontrar sistemas de host e portas abertas nesses sistemas. O Nmap um competente primeiro passo na avaliao de vulnerabilidade. Voc pode mapear todos os hosts dentro de sua rede e mesmo colocar uma opo que permite o Nmap tentar identificar os sistema operacional rodando em um determinado host. O Nmap uma boa base para estabelecer uma poltica de uso de dispositivos seguros e restringir servios no usados. 1.2.3.1.1. Usando o Nmap O Nmap pode ser executado a partir da prompt do shell digitando o comando nm ap seguido pelo nome do host ou endereo de IP da mquina a ser escaneada.
nmap foo.example.com

Os resultados de um escaneamento bsico (que pode levar alguns minutos, dependendo de onde o host est localizado e outras condies de rede) devem ser similar ao seguinte:

18

Captulo 1. Viso Geral da Segurana

Interesting ports on foo.example.com: Not shown: 1710 filtered ports PORT STATE SERVICE 22/tcp open ssh 53/tcp open domain 80/tcp open http 113/tcp closed auth

O Nmap testa as portas de comunicao de rede mais comuns para escutar ou aguardar por servios. Esta informao pode ser til para um administrador que quer terminar servios no usados ou desnecessrios. Para mais informaes sobre usar o Nmap, consulte a pgina web oficial na seguinte URL: http://www.insecure.org/ 1.2.3.2. Nessus O Nessus um escaner de segurana de servio completo. A arquitetura de plug in do Nessus permite usurios personaliza-lo para seus sistemas e redes. Como em qualquer escaner, o Nessus somente to bom quanto a assinatura de banco de dados em que ele est. Felizmente, o Nessus frequentemente atualizado e contm recursos de relatrio completos, escaneamento de host e busca de vulnerabilidades em tempo real. Se lembre que podem existir falsos positivos e falsos negativos, mesmo em uma ferramenta to poderosa e frequentemente atualizada como o Nessus.

Nota
O cliente Nessus e o software do servidor requerem uma subscrio para serem usados. Ela foi includa neste documento como uma referencia usurios que podem estar interessados em usar esta aplicao popular. Para mais informaes sobre o Nessus, consulte o web site oficial no seguinte endereo: http://www.nessus.org/ 1.2.3.3. Nikto Nikto um excelente escaner de script de interface de gateway comum (CGI). O Nikto no somente verifica por vulnerabilidades CGI mas o faz de uma maneira evasiva, para ento enganar sistemas de deteco de intruso. O Nikto vem com uma documentao completa que deve ser cuidadosamente revisada antes de rodar o programa. Se voc tiver servidores web rodando scripts CGI, o Nikto pode ser um excelente recurso para checar a segurana destes servidores. Mais informaes sobre o Nikto podem ser encontradas no seguinte endereo: http://cirt.net/nikto2 1.2.3.4 . Antecipar Suas Futuras Necessidades Dependendo de seus alvos e recursos, existem muitas ferramentas disponveis. Existem ferramentas para redes sem fio, redes Novell, sistemas Windows, sistemas Linux e outros mais. Outra parte essencial de realizar avaliaes podem incluir revisar a segurana fsica, revista de pessoal ou avaliao de rede PBX/voz. Novos conceitos, como war walking e wardriving, que envolve o escaneamento dos permetros de suas estruturas fsicas de sua empresa por vulnerabilidades da rede sem fio, so alguns conceitos que voc deve investigar e se necessrio, incorporar suas tarefas. Imaginao e exposio so os nicos limites para planejar e conduzir avaliaes de vulnerabilidade.

Red Hat Enterprise Linux 6 Guia de Segurana

19

1.3. Invasores e Vulnerabilidades


Para planejar e implementar uma boa estratgia de segurana, primeiro esteja atento a alguns dos questes que determinaram e motivaram invasores a explorar e comprometer sistemas. Entretanto, antes de detalhar essas questes, a terminologia usada para identificar um ataque deve ser definida. 1.3.1. Uma Rpida Histria sobre Hackers O significado moderno do termo hacker tem origem por volta dos anos 60 e o T ech Model Railroad Club do Instituto de T ecnologia de Massachussetts (MIT ), que desenvolvia conjuntos de trens em larga escala e com complexos detalhes. Hacker era nome usado pelos membros do clube que descobriam um truque ou uma maneira de resolver um problema. O termo hacker ento comeou a ser usado para tudo, desde viciados em computadores at programadores de talento. Uma caracterstica comum entre a maioria dos hackers a vontade de explorar em detalhes como sistemas de computadores e redes funcionam com pouca ou nenhuma motivao externa. Desenvolvedores de software de cdigo aberto frequentemente consideram a si prprios e seus colegas serem hackers e usam a palavra como um termo de respeito. T ipicamente, hackers seguem uma forma de tica hacker que diz que a busca por informaes e percia so essenciais e compartilhar esse conhecimento uma funo dos hackers comunidade. Durante essa busca por conhecimento, alguns hackers desfrutam os desafios acadmicos de contornar controles de segurana em sistemas de computadores. Por este motivo, a imprensa muitas vezes usa o termo hacker para descrever aqueles que ilicitamente acessam sistemas e redes com intenes criminais, maliciosas ou sem escrpulos. O termo mais preciso para este tipo de hacker de computadores cracker um termo criado por hackers na dcada de 80 para diferenciar as duas comunidades. 1.3.1.1. T ons de cinza Dentro da comunidade de indivduos que encontram e exploram vulnerabilidades em sistemas e redes existem diversos grupos distintos. Estes grupos so frequentemente descritos pela tonalidade do chapu que eles usam quando realizam suas investigaes de segurana e esta tonalidade o indicativo de sua inteno. O hacker de chapu branco aquele que testa redes e sistemas para examinar seu desempenho e determinam o quanto vulnerveis elas so uma intruso. Normalmente, hackers de chapu branco invadem o prprio sistema ou sistemas de um cliente que especificamente os contratou para este propsito de auditar a segurana. Pesquisadores acadmicos e consultores de segurana profissionais so dois exemplos de hackers de chapu branco. Um hacker de chapu preto o sinnimo de um cracker. Em geral, cracker so menos focados em programao e no lado acadmico de invadir sistemas. Eles muitas vezes confiam em programas de invaso e exploram vulnerabilidades conhecidas em sistemas para revelar informaes sensveis para ganho pessoal ou causar danos no sistema alvo ou rede. O hacker de chapu cinza, por outro lado, possui as habilidades e intenes de um hacker de chapu branco na maioria das situaes mas usa seu conhecimento para propsitos menos nobres em certas ocasies. Um hacker de chapu cinza pode ser reconhecido como um hacker de chapu branco que veste o chapu preto as vezes para realizar seus prprios planos. Hackers de chapu cinza tipicamente concordam com outra forma de tica hacker, que diz que aceitvel invadir sistemas desde que o hacker no cometa roubo ou brechas de confidencialidade. Alguns discutem entretanto que o ato de invadir um sistema no propriamente tico. Independente da inteno do invasor, importante conhecer as fraquezas que um cracker pode querer

20

Captulo 1. Viso Geral da Segurana

explorar. O restante deste captulo focado neste assunto. 1.3.2. Ameaas Segurana de Rede Procedimentos mal feitos na cofnigurao dos seguintes aspectos da rede podem aumentar o risco de ataque. 1.3.2.1. Arquiteturas Inseguras Uma rede mal configurada o ponto de entrada para usurios no autorizados. Deixar uma rede local aberta, baseada em confiana, vulnervel internet altamente insegura tanto como deixar a porta entreaberta em um bairro de alta criminalidade nada pode acontecer por um certo tempo, mas eventualmente algum ir explorar a oportunidade. 1.3.2.1.1. Redes de T ransmisso Administradores de Sistemas frequentemente erram na percepo da importncia do hardware de rede em seus esquemas de segurana. Hardware simples como hubs e roteadores dependem de transmisso ou princpios fora do switch; que significa, toda vez que um n transmite dados pela rede para um n recipiente, o hub ou o roteador envia pacotes de dados at que o n recipiente receba e processe os dados. Este mtodo o mais vulnervel para falsificao de endereos do address resolution protocol (ARP) ou media access control (MAC) por ambos invasores externos e usurios no autorizados no host local. 1.3.2.1.2. Servidores Centralizados Outra armadilha de rede potencial o uso de computao centralizada. Uma medida comum para cortar custos em muitas empresas consolidar todos os servios a uma nica mquina poderosa. Isto pode ser conveniente j que mais fcil de gerenciar e custa consideravelmente menos do que configuraes de servidores mltiplos. Entretanto, um servidor centralizado apresenta um nico ponto de falha na rede. Se o servidor central estiver comprometido, pode tornar a rede completamente sem uso ou pior, inclinado manipulao de dados ou roubo. Nestas situaes, um servidor central se torna uma porta aberta que permite acesso rede inteira. 1.3.3. Ameaas Segurana do Servidor A segurana do servidor to importante quanto a segurana de rede porque os servidores muitas vezes possuem uma grande parcela de informaes vitais de uma organizao. Se um servidor estiver comprometido, todo o seu contedo pode se tornar disponvel para o cracker roubar ou manipular vontade. As sees seguintes detalham alguns dos problemas principais. 1.3.3.1. Servios no usados e Portas Abertas A instalao completa do Red Hat Enterprise Linux 6 possui mais de 1000 aplicativos e pacotes de bibliotecas. Entretanto, a maioria dos administradores de servidores optam por no instalar todos os pacotes da distribuio, preferindo em vez disso instalar os pacotes bsicos, incluindo diversas aplicaes do servidor. Uma ocorrncia comum entre administradores de sistemas instalar o sistema operacional sem prestar ateno a quais programas esto atualmente sendo instalados. Isso pode ser problemtico porque servios desnecessrios podem ser instalados, configurados com definies padres e possivelmente serem ativados. Isto pode fazer com que servios no requeridos como T elnet, DHCP ou DNS, sejam executados no servidor ou estao de trabalho sem o administrador perceber, podendo causar trfego no requerido no servidor ou mesmo, um caminho potencial ao sistema para crackers. Consulte a Seo 2.2, Segurana do Servidor para informaes sobre fechar portas e desativar servios no usados.

Red Hat Enterprise Linux 6 Guia de Segurana

21

1.3.3.2. Servios sem Correo A maioria dos aplicativos que esto includos em uma instalao padro so software estveis, completamente testados. Estando em uso em ambientes de produo por muitos anos, seus cdigos tm sido completamente refinados e muitos bugs foram encontrados e corrigidos. Entretanto, no existe um software perfeito e existe sempre espao para mais refinamento. Alm disso, um software novo muitas vezes no testado to rigorosamente como se pode esperar, pelo motivo de sua chegada recente aos ambientes de produo ou porque pode no ser to popular quanto outros softwares de servidor. Desenvolvedores e administradores de sistemas muitas vezes encontram bugs explorveis em aplicaes de servidor e publicam a informao em websites de registro de bugs e relacionados segurana como a lista de emails Bugtraq (http://www.securityfocus.com) ou o web site Computer Emergency Response T eam (CERT ) (http://www.cert.org). Apesar destes mecanismos serem uma maneira efetiva de alertar a comunidade sobre vulnerabilidades de segurana, uma deciso dos administradores do sistema de consertar seus sistemas prontamente. Isto particularmente verdade que crackers possuem acesso a estes mesmos servios de registro de vulnerabilidades e usaro a informao para invadir sistemas sem correo sempre que puderem. Uma boa administrao de sistema requer vigilncia, registro de bugs constante e manuteno do sistema apropriada para garantir um ambiente de computao mais seguro. Consulte a Seo 1.5, Atualizaes de Segurana para mais informaes sobre manter um sistema atualizado. 1.3.3.3. Administrao Desatenta Administradores que falham ao corrigir seus sistemas so uma das maiores ameaas segurana dos servidores. De acordo com o SysAdmin, Audit, Network, Security Institute (SANS), a causa primria de vulnerabilidade de segurana dos computadores "atribuir pessoas destreinadas para manter a segurana e no fornecer treinamento ou tempo suficiente para fazer o trabalho." [10 ] Isto se aplica tanto para administradores inexperientes quanto a administradores confiantes ou desmotivados. Alguns administradores erram em no corrigir seus servidores e estaes de trabalho, enquanto outros erram por no verificar as mensagens de log do kernel do sistema ou trfego de rede. Outro erro comum quando senhas padres ou chaves para servios no so alteradas. Por exemplo, alguns bancos de dados possuem senhas de administrao padres porque os desenvolvedores do sistema presumem que os administradores do sistema mudaro essas senhas imediatamente aps a instalao. Se um administrador de banco de dados no mudar esta senha, mesmo um cracker inexperiente pode usar a senha padro totalmente conhecida para ganhar privilgios administrativos ao banco de dados. Este so apenas alguns poucos exemplos de como uma administrao desatenta pode levar ao comprometimento de servidores. 1.3.3.4 . Servios Essencialmente Inseguros Mesmo as mais vigilantes organizaes podem ser vtimas s vulnerabilidades se os servios de rede que escolheram so inerentemente inseguros. Por exemplo, existem muitos servios desenvolvidos que supem estar sob redes confiveis; entretanto, esta suposio termina to logo quando o servio se torna disponvel na internet que inerentemente no confivel. Uma categoria de servios de rede inseguros so aqueles que requerem nomes de usurios e senha sem criptografia para autenticao. T elnet e FT P so dois desses tipos de servios. Se um software de rastreamento de pacotes estiver monitorando o trfego entre o usurio remoto e o tal servio, nomes de usurio e senhas podem ser facilmente interceptados. Naturalmente, tais servios podem tambm ser vtimas mais facilmente do que a rea da segurana chama de ataque man-in-the-middle. Neste tipo de ataque, um cracker redireciona o trfego de rede

22

Captulo 1. Viso Geral da Segurana

enganando o servidor de nomes na rede para apontar para a mquina do cracker ao contrrio do servidor correto. Uma vez que algum abre uma sesso remota no servidor, a mquina do invasor age como um canal, ficando no meio entre o servio remoto e o usurio capturando informaes. Desta maneira, o cracker pode pegar senhas administrativas e dados brutos sem o servidor ou usurio perceberem. Outra categoria de servios inseguros incluem sistemas de arquivos de rede e servios de informao como NFS ou NIS, que so desenvolvidor explicitamente para uso em LAN mas so infelizmente, extendidos para incluir WANs (para usurios remotos). O NFS no possui, por padro, qualquer autenticao ou mecanismos de segurana configurados para previnir um cracker de montar o compartilhamento NFS e acessar qualquer informao contida nele. O NIS, tambm, possui informaes vitais que devem ser conhecidas por cada computador na rede, incluindo senhas e permisses de arquivos, dentro de um banco de dados ASCII ou DBM (derivado ASCII) em texto puro. Um cracker que ganha acesso a este banco de dados pode ento acessar cada conta de usurio na rede incluindo a conta do administrador. Por padro, o Red Hat Enterprise Linux lanado com todos os servios desativados. Entretanto, j que administradores muitas vezes so forados a usar estes servios, cuidados na configurao essencial. Consulte a Seo 2.2, Segurana do Servidor para mais informaes sobre configurar servios de uma maneira segura. 1.3.4 . Ameaas Estao de T rabalho e Segurana no PC domstico. Estaes de trabalho e PCs domsticos podem no serem to inclinados ataques quanto em redes ou servidores, mas j que frequentemente possuem dados sensveis, tais como informaes de cartes de crdito, eles so alvos de crackers de sistemas. Estaes de trabalho podem tambm ser cooptadas sem o conhecimento do usurio e usadas como mquinas "escravos" em ataques coordenados. Por estas razes, conhecer as vulnerabilidades de uma estao de trabalho pode tirar os usurios a dor de cabea de reinstalar o sistema operacional, ou pior, se recuperar de roubo de dados. 1.3.4 .1. Senhas Ruins Senhas ruins so uma das maneiras mais fceis para um invasor ganhar acesso a um sistema. Para mais informaes em como evitar essas armadilhas quando criar uma senha, consulte a Seo 2.1.3, Segurana da Senha. 1.3.4 .2. Aplicaes Clientes Vulnerveis Apesar de um administrador poder ter um servidor totalmente seguro e com correes, isto no significa que usurios remotos esto seguros ao acessa-lo. Por exemplo, se o servidor oferece T elnet ou servios FT P para uma rede pblica, um invasor pode capturar os nomes de usurios e senha em texto puro conforme eles passam pela rede e ento usar as informaes da conta para acessar a estao de trabalho do usurio remoto. Mesmo quando usar protocolos seguros, como SSH, um usurio remoto pode estar vulnervel a certos ataques se eles no manterem suas aplicaes clientes atualizadas. Por exemplo, clientes v.1 SSH so vulnerveis um ataque X-forwarding a partir de servidores SSH. Uma vez conectados ao servidor, o invasor pode silenciosamente capturar qualquer digitao e cliques do mouse feitos no cliente sobre a rede. Este problema foi consertado no protocolo SSH v.2, mas parte do usurio acompanhar quais aplicaes possuem tais vulnerabilidades e atualiza-las conforme necessrio. A Seo 2.1, Segurana da Estao de T rabalho discute em mais detalhes quais passos os administradores e usurios domsticos devem tomar para limitar a vulnerabilidade das estaes de trabalho dos computadores.

1.4. Exploraes Comuns e Ataques

Red Hat Enterprise Linux 6 Guia de Segurana

23

T abela 1.1, Exploraes Comuns detalha algumas das exploraes mais comuns e pontos de entrada usados por invasores para acessar recursos de rede organizacionais. A chave para estas exploraes comuns so explicaes de como elas so realizadas e como os administradores podem proteger adequadamente sua rede contra tais ataques.

24

Captulo 1. Viso Geral da Segurana

T abela 1.1. Exploraes Comuns Explorao Senhas Nulas ou Padro Descrio Deixar as senhas administrativas em branco ou usar um conjunto de senhas padres definidas pelo fabricante do produto. Isto mais comum em hardwares como routers e firewalls, embora alguns servios aplicados no LInux possam conter senhas de administrao padro (embora o Red Hat Enterprise Linux no distribudo com eles). Notas Geralmente associado ao hardware de rede, tais como os equipamentos de routers, firewalls, VPNs e armazenamento de rede anexado (NAS). Comum em muitas legacias de sistemas operacionais, especialmente aqueles que agrupam servios (como o UNIX e Windows). Os administradores as vezes criam contas de usurios privilegiadas s pressas e deixam a senha em branco, criando um ponto de entrada perfeito para usurios mal-intencionados que descobrem a conta. Chaves Compartilhadas Padro Servios seguros as vezes empacotam chaves de segurana padro para o desenvolvimento ou avaliao para propsitos de testes. Se estas chaves so deixadas como esto e colocadas em um ambiente de produo na Internet, todos os usurios com as mesmas chaves padres possuem acesso ao recurso de chave compartilhada e qualquer informao confidencial que ele contenha. Uma mquina remota que age como um n em sua rede local, encontra vulnerabilidades em seus servidores e instala um programa de backdoor (porta-dos-fundos) ou um trojan horse para obter controle sob seus recursos de rede. O mais comum em pontos de acesso wireless e equipamentos de servidor seguro pr-configurados.

IP Spoofing

Spoofing um tanto difcil, pois ele envolve que o atacante prediga os nmeros da sequncia do T CP/IP para coordenar uma conexo aos sistemas alvo, mas diversas ferramentas esto disponveis para ajudar os invasores a explorar tal vulnerabilidade. Depende do sistema alvo que est executando os servios (tal como rsh , telnet, FT P entre outros) que usam as tcnicas de autenticao sem criptografia, que no so recomendadas quando comparadas ao PKI ou outras formas de autenticao criptografadas usadas em ssh ou SSL/T LS.

Eavesdropping (Interceptao)

Uma coleta dos dados que passam entre dois ns ativos em uma rede, interceptando a conexo entre os dois ns.

Este tipo de ataque funciona mais com protocolos de transmisso de texto simples como o T elnet, FT P, e transferncias de HT T P.

Red Hat Enterprise Linux 6 Guia de Segurana

25

Invasores remotos devem ter acesso ao sistema comprometido em uma LAN para realizar tal ataque. Geralmente o atacante usou um ataque ativo (como o IP spoofing ou man-in-the-middle) para comprometer um sistema na LAN. Medidas preventivas incluem servios com troca de chave criptogrfica, senhas de uma vez, ou autenticao criptografada para prevenir que senhas sejam roubadas. Uma criptografia forte durante a transmisso tambm recomendada. Vulnerabilidades de Servios Um atacante encontra um defeito ou um furo em um servio executado sob a Internet; atravs desta vulnerabilidade, o atacante compromete todo o sistema e qualquer dado que ele possa conter, e pode possivelmente comprometer outros sistemas na rede. Os servios baseados em HT T P como o CGI so vulnerveis execuo de comando remoto e at mesmo acesso de shell interativo. Mesmo se o servio HT T P executasse um usurio no privilegiado como "nobody", informaes como arquivos de configurao e mapas de rede poderiam ser lidos ou o atacante pode iniciar uma negao de ataque de servio que drena os recursos do sistema ou o torna indisponvel para outros usurios. Os servios as vezes podem conter vulnerabilidades que passam despercebidas durante o desenvolvimento e teste; estas vulnerabilidades (tais como buffer overflows, onde atacantes quebram um sistema usando valores arbitrrios que preenchem o buffer de memria de um aplicativo, (dando ao atacante o pedido de comando interativo do qual eles podem executar comandos arbitrrios) pode fornecer controle administrativo completo ao atacante. Administradores devem ter certeza de que os servios no so executados como root, e devem estar atentos s correes e atualizaes de erratas para aplicativos de fabricantes ou organizaes de segurana como o CERT e CVE. Vulnerabilidades de Aplicativos Atacantes encontram falhas em desktops e aplicativos de estaes de trabalho (tal como clientes de email) e executam cdigos arbitrrios, implementam trojan horses para As estaes de trabalho e desktops tm mais tendncia a serem exploradas pois os funcionrios no possuem o conhecimento ou experincia de evitar ou detectar o

26

Captulo 1. Viso Geral da Segurana

comprometimento futuro ou quebra de sistemas. Exploraes futuras podem ocorrer se a estao de trabalho comprometida possui privilgios administrativos no resto da rede.

experincia de evitar ou detectar o comprometimento. crucial informar indivduos dos riscos que correm quando instalam softwares no autorizados ou abrir anexos de emails no solicitados. Medidas de segurana podem ser implementadas para que clientes de email no abram automaticamente ou executem anexos. Alm disso, a atualizao automtica de software da estao de trabalho via Red Hat Network ou outros servios de gerenciamento de sistemas podem aliviar a carga da implementao de segurana de mquina em mquina.

Ataques Denial of Service (DoS)

O atacante ou grupo de atacantes coordenam contra uma rede de uma empresa ou recursos de servidor enviando pacotes no autorizados ao host alvo (tanto o servidor, router ou estao de trabalho). Isto fora o recurso a se tornar indisponvel para usurios legtimos.

O caso de ataque DoS mais reportado nos E.U.A. ocorreu em 2000. Diversos sites do governo e comerciais com alto ndice de trfego se tornaram indisponveis por um ataque coordenado de inundao de pings, usando diversos sistemas comprometidos com conexes de banda larga agindo como zombies, ou ns de broadcast redirecionados. Pacotes fonte so geralmente forjados (assim como retransmitidos), tornado a investigao da verdadeira fonte de ataque um tanto difcil. Avanos nos filtros de ingresso (IET F rfc2267) usando o iptables e Network Intrusion Detection Systems como o snort assistem administradores no rastreamento e previnem ataques distribudos do DoS.

1.5. Atualizaes de Segurana


Conforme as vulnerabilidades de segurana so descobertas, o software afetado deve ser atualizado para limitar quaisquer riscos potenciais de segurana. Se o software parte de um pacote dentro de uma distribuio Red Hat Enterprise Linux que suportada atualmente, a Red Hat est comprometida a lanar atualizaes de pacotes que consertam as vulnerabilidades assim que possvel. Muitas vezes, anncios sobre uma explorao de segurana so acompanhados de uma correo (ou cdigo fonte que conserta o problema). Esta correo ento aplicada ao pacote Red Hat Enterprise Linux e testada e lanada como uma errata de atualizao. Entretanto, se um anncio no inclui uma correo, um desenvolvedor primeiro trabalha com o mantenedor do software para consertar o problema. Uma o problema consertado, o pacote testado e lanado como uma errata de atualizao. Se uma errata de atualizao lanada para um software usado em seus sistema, altamente

Red Hat Enterprise Linux 6 Guia de Segurana

27

recomendado que voc atualize os pacotes afetados assim que possvel para minimizar o perodo de tempo que seu sistema est potencialmente vulnervel. 1.5.1. Atualizando Pacotes Quando atualizar o software em um sistema, importante baixar a atualizao de uma fonte confivel. Um invasor pode facilmente reconstruir um pacote com o mesmo nmero de verso do pacote suposto para consertar o problema mas com uma explorao de segurana diferente e lana-lo na internet. Se isso acontecer, use medidas de segurana como verificar arquivos contra os RPMs originais no detecta as exploraes. Assim, muito importante de somente baixar os RPMs de fontes confiveis, como a Red Hat e checar a assinatura do pacote para verificar sua integridade.

Nota
O Red Hat Enterprise Linux inclui um cone conveniente no painel que mostra alertas vsiveis quando h uma atualizao disponvel.

1.5.2. Verificando Pacotes Assinados T odos os pacotes do Red Hat Enterprise Linux so assinados com a chave GPG da Red Hat. O GPG significa GNU Privacy Guard, ou GnuPG, um pacote de software livre usado para garantir a autenticidade dos arquivos distribudos. Por exemplo, uma chave privada (chave secreta) trava o pacote enquanto a chave pblica destrava e verifica o pacote. Se a chave pblica distribuda pelo Red Hat Enterprise Linux no corresponder com a chave privada durante a verificao do RPM, o pacote pode ter sido alterado e portanto no pode ser confivel. O utilitrio RPM dentro do Red Hat Enterprise Linux 6 automaticamente tenta verificar a assinatura GPG de um pacote RPM antes de instala-lo. Se a chave GPG da Red Hat no est instalada, instale-a a partir de uma locao esttica e segura, como o CD-ROM ou DVD de instalao da Red Hat. Assumindo que o disco montado no /m nt/cdrom , use o seguinte comando para importa-lo ao keyring (um banco de dados de chaves confiveis no sistema):
rpm --import /mnt/cdrom/RPM-GPG-KEY

Para exibir uma lista de todas as chaves instaladas para verificao do RPM, execute o seguinte comando:
rpm -qa gpg-pubkey*

O resultado ser similar ao seguinte:


gpg-pubkey-db42a60e-37ea5438

Para exibir detalhes sobre uma chave especfica, use o comando rpm -qi seguido do resultado do comando anterior, como neste exemplo:
rpm -qi gpg-pubkey-db42a60e-37ea5438

extremamente importante verificar a assinatura dos arquivos RPM antes de instala-los para garantir que eles no foram alterados da fonte original dos pacotes. Para verificar todos os pacotes baixados de uma vez, use o seguinte comando:
rpm -K /tmp/updates/*.rpm

28

Captulo 1. Viso Geral da Segurana

Para cada pacote, se a chave GPG verifica com sucesso, o comando retorna gpg OK. Se caso no, tenha certeza que est usando a chave pblica Red Hat correta e tambm verificar a fonte do contedo. Pacotes que no passam verificaes GPG no devem ser instalados, j que podem ter sido alterados por um terceiro. Depois de verificar a chave GPG e baixar todos os pacotes associados com o relatrio de errada, instale os pacotes como root no prompt do shell. 1.5.3. Instalando Pacotes Assinados A instalao para a maioria dos pacotes podem ser feitas seguramente (exceto pacotes do kernel) emitindo o seguinte comando:
rpm -Uvh /tmp/updates/*.rpm

Para os pacotes do kernel, use o seguinte comando:


rpm -ivh /tmp/updates/<kernel-package>

Substitua o <kernel-package> no exemplo anterior com o nome do RPM kernal. Uma vez que a mquina foi seguramente reinicializada usando o novo kernel, o kernel antigo pode ser removido usando o seguinte comando:
rpm -e <old-kernel-package>

Substitua o <old-kernel-package> do exemplo anterior com o nome do RPM do kernel antigo.

Nota
No um requerimento que o kernel antigo seja removido. O carregador de boot padro, o GRUB, permite mltiplos kernels serem instalados, e ento escolhidos de um menu no momento da inicializao.

Importante
Antes de instalar quaisquer erratas de segurana, tenha certeza de ler as instrues especiais contidas no relatrio da errata e as execute de acordo. Consulte a Seo 1.5.4, Aplicando as Mudanas para instrues gerais sobre aplicar as mudanas feitas por uma atualizao de errata.

1.5.4 . Aplicando as Mudanas Depois de baixar e instalar erratas de segurana e atualizaes, importante parar o uso do software antigo e iniciar o uso do novo software. Como isto feito, depende do tipo de software que foi atualizado. A seguinte lista relaciona as categorias gerais dos softwares e fornece instrues para usar as verses atualizadas depois de uma atualizao de pacote.

Red Hat Enterprise Linux 6 Guia de Segurana

29

Nota
No geral, reinicializar o sistema a maneira mais certa para garantir que a ltima verso do pacote de software usada, esta opo no sempre requerida, ou disponvel para o administrador do sistema. Aplicativos Aplicativos do espao do usurio so quaisquer programas que podem ser iniciados por um usurio do sistema. T ipicamente, tais aplicativos so usados somente quando um usurio, script ou tarefa automatizada os rodam e estes no persistem por longos perodos de tempo. Uma vez que determinado aplicativo de espao de usurio atualizado, pare quaisquer instncias do aplicativo no sistema e rode o programa de novo para usar a verso atualizada. Kernel O kernel o componente de software principal do sistema operacional Red Hat Enterprise Linux. Ele gerencia o acesso memria, ao processador e aos perifricos e tambm a todas as tarefas agendadas. Por causa de seu papel central, o kernel no pode ser reiniciado sem tambm parar o computador. Portanto, uma verso atualizada do kernel no pode ser usada at que o sistema seja reinicializado. Bibliotecas Compartilhadas Bibliotecas compartilhadas so unidades de cdigos, como o glibc , que so usados por um nmero de aplicaes e servios. Aplicaes utilizando uma biblioteca compartilhada tipicamente carrega o cdigo compartilhado quando a aplicao inicializada, ento quaisquer aplicaes usando a biblioteca atualizada deve ser parada e reiniciada. Para determinar quais aplicativos em execuo se ligam a uma determinada biblioteca, use o comando lsof como no exemplo seguinte:
lsof /lib/libwrap.so*

Este comando retorna uma lista de todas os programas que usam os T CP Wrappers para controle de acesso ao host. Portanto, qualquer programa listado deve ser parado e reiniciado se o pacote tcp_wrappers estiver atualizado. Servios SysV Servios SysV so programas de servidores persistentes iniciados durante o processo de boot. Exemplos de servios SysV incluem o sshd , vsftpd , e xinetd . Pela razo que estes programas normalmente persistem na memria pelo tempo que a mquina inicializada, cada servio de atualizao SysV deve ser parado e reiniciado depois que o pacote atualizado. Isto pode ser feito usando Services Configuration T ool (Ferramenta de Configurao de Servios) ou se autenticando no shell root e digitando o comando /sbin/service conforme no exemplo seguinte:
/sbin/service <service-name> restart

30

Captulo 1. Viso Geral da Segurana

No exemplo anterior, substitua o <service-name> com o nome do servio, como o sshd . Servios xinetd Servios controlados pelo super servio xinetd somente roda quando h uma conexo ativa. Exemplos de servios controlados pelo xinetd incluem o T elnet, IMAP e POP3. Pela razo que novas instncias destes servios so iniciadas pelo xinetd cada vez que um novo pedido recebido, as conexes que ocorrem depois de uma atualizao so manuseadas pelo software atualizado. Entretanto se existem conexes ativas no momento que o servio controlado pelo xinetd atualizado, eles so atendidos pela verso antiga do software. Para terminar as instncias antigas de um determinado servio controlado pelo xinetd , atualize o pacote para o servio e ento pare todos os processos atualmente em execuo. Para determinar se o processo est rodando, use o comando ps e ento o kill ou killall para parar instncias atuais do servio. Por exemplo, se uma errata de segurana dos pacotes im ap lanada, atualize os pacotes e ento digite o seguinte comando como root no prompt do shell:
ps aux | grep imap

Este comando retorna todas sesses ativas do IMAP. Sesses individuais podem ento ser terminadas digitando o seguinte comando:
kill <PID>

Se isto falhar para terminar a sesso, use o seguinte comando ento:


kill -9 <PID>

Nos exemplos anteriores, substitua o <PID> com o nmero de identificao do processo (encontrado na segunda coluna do comando ps) para uma sesso de IMAP. Para terminar todas as sesses IMAP ativas, digite o seguinte comando:
killall imapd

[1] http ://law.jrank.o rg /p ag es /379 1/Kevin-Mitnic k-Cas e-19 9 9 .html [2] http ://www.living internet.c o m/i/ia_hac kers _levin.htm [3] http ://www.thereg is ter.c o .uk/20 0 7/0 5/0 4/txj_no nfeas anc e/ [4] http ://www.fud z illa.c o m/c o ntent/view/78 47/1/ [5] http ://www.internetwo rld s tats .c o m/s tats .htm [6 ] http ://www.c ert.o rg [7] http ://www.c ert.o rg /s tats /c ert_s tats .html [8 ] http ://news .c net.c o m/Co mp uter-c rime-c o s ts -6 7-b illio n,-FBI-s ays /210 0 -7349 _3-6 0 28 9 46 .html [9 ] http ://www.c io .c o m/artic le/50 48 37/Why_Sec urity_Matters _No w [10 ]http ://www.s ans .o rg /res o urc es /erro rs .p hp

Red Hat Enterprise Linux 6 Guia de Segurana

31

32

Captulo 2. Protegendo sua Rede

Captulo 2. Protegendo sua Rede


2.1. Segurana da Estao de Trabalho
Proteger um ambiente Linux se inicia com a estao de trabalho. Seja trancando uma mquina pessoal ou protegendo um sistema corporativo, uma poltica de segurana bem feita comea com o computador individual. Uma rede de computadores to segura quanto seu n mais vulnervel. 2.1.1. Avaliando a Segurana da Estao de T rabalho Quando avaliar a segurana de uma estao de trabalho do Red Hat Enterprise Linux, considere o seguinte: Segurana da BIOS e do carregador de Boot possvel que um usurio no autorizado acesse a mquina fisicamente e inicialize como um usurio nico ou modo de recuperao sem uma senha? Segurana da Senha Quo seguros esto as senhas das contas de usurios na mquina? Controles Administrativos Quem possuir uma conta no sistema e quanto controle administrativo possuiro? Servios de Redes Disponveis Quais servios esto escutando por pedidos da rede e eles deveriam estar rodando? Firewalls Pessoais Qual tipo de firewall seria necessrio? Ferramentas de Comunicao com Segurana Avanada Quais ferramentas devem ser usadas para se comunicar entre estaes de trabalho e quais deveriam ser evitadas? 2.1.2. Segurana da BIOS e do Carregador de Boot A proteo por senha da BIOS (ou equivalente BIOS) e do carregador de boot podem prevenir que usurios no autorizados que possuem acesso fsico aos sistemas de realizarem o boot usando mdias removveis ou obter privilgios root atravs do modo de usurio nico. As medidas de segurana que voc deve tomar para se proteger de tais ataques dependem tanto da sensibilidade da informao na estao de trabalho e da localizao da mquina. Por exemplo, se uma mquina usada em uma exposio e no possui nenhuma informao sensvel, ento pode no ser crtico prevenir tais ataques. Entretanto, se um notebook de um empregado com chaves pessoais SSH e sem encriptao da rede da empresa deixado desacompanhado na mesma exposio, isso poderia ser uma brecha de segurana maior com ramificaes em toda a empresa. Se a estao de trabalho est localizada em um lugar onde somente pessoas autorizadas ou de confiana possuem acesso, ento proteger a BIOS ou o carregador do boot pode no ser necessrio. 2.1.2.1. Senhas da BIOS As duas razes primrias para proteger a BIOS de um computador com senha so[11]: 1. Prevenindo Mudanas s Configuraes da BIOS Se um invasor possui acesso BIOS, ele pode configura-la para fazer o boot de um disquete ou CD-ROM. Sendo possvel entrar no modo de recuperao ou modo de usurio nico, que permite iniciar processos arbitrrios no sistema ou copiar dados sensveis. 2. Prevenindo Inicializao do Sistema Algumas BIOS permitem proteo por senha do processo de boot. Quando ativados, um invasor forado a entrar com uma senha antes que a BIOS inicie o carregador de boot. Porque os mtodos para configurar a senha da BIOS podem variar entre os fabricantes de computador, consulte o manual do computador para instrues especificas.

Red Hat Enterprise Linux 6 Guia de Segurana

33

Se voc esquecer a senha da BIOS, ela pode ser zerada com os jumpers na placa me ou retirando a bateria do CMOS. Por esta razo, uma boa prtica trancar a caixa do computador se possvel. Entretanto, consulte o manual do computador ou da placa me antes de tentar desconectar a bateria do CMOS. 2.1.2.1.1. Protegendo Plataformas que no so X86 Outras arquiteturas usam programas diferentes para realizar tarefas de baixo nvel mais ou menos equivalentes essas das BIOS em sistemas x86. Por exemplo, computadores Intel Itanium usam a Extensible Firmware Interface (EFI) shell. Para instrues sobre proteger com senha programas como a BIOS em outras arquiteturas, consulte as instrues do fabricante. 2.1.2.2. Senhas do Carregador de Boot As razes primrias para proteger com senha um carregador de boot de Linux so as seguintes: 1. Impedir Acesso ao Modo de Usurio nico Se invasores podem inicializar o sistema no modo de usurio nico, eles so logados automaticamente como root sem serem questionados pela senha root. 2. Impedir Acesso ao Console GRUB Se a mquina usa o GRUB como seu carregador de boot, um invasor pode usar a interface do editor GRUB para mudar sua configurao ou pegar informaes usando o comando cat. 3. Impedir Acesso Sistemas Operacionais Inseguros Se o sistema possui sistema de boot duplo, um invasor pode selecionar um sistema operacional no momento do boot (por exemplo, o DOS), que ignora controles de acesso e permisses de arquivos. O Red Hat Enterprise Linux 6 lanado com o carregador de boot do GRUB na plataforma x86. Para uma viso detalhada do GRUB, consulte o Guia de Instalao da Red Hat. 2.1.2.2.1. Protegendo o GRUB com senha Voc pode configurar o GRUB para tratar os dois primeiros problemas listados na Seo 2.1.2.2, Senhas do Carregador de Boot adicionando uma senha direcionada ao seu arquivo de configurao. Para fazer isso, primeiro adicione uma senha forte, abra o shell, autentique-se como root e ento digite o seguinte comando:
/sbin/grub-md5-crypt

Quando questionado, digite a senha do GRUB e pressione Enter . Isto retorna um hash MD5 da senha. Depois, edite o arquivo de configurao do GRUB /boot/grub/grub.conf . Abra o arquivo e abaixo da linha tim eout na seo principal do documento, adicione a seguinte linha:
password --md5 <password-hash>

Substitua <password-hash> com o valor retornado pelo /sbin/grub-m d5-crypt[12 ]. A prxima vez que o sistema inicializar, o menu do GRUB impede o acesso ao editor ou interface de comando sem primeiro pressionar p seguido pela senha do GRUB. Infelizmente, esta soluo no previne que um invasor inicialize por um sistema operacional no seguro em um ambiente de boot duplo. Para isto, uma parte diferente do arquivo /boot/grub/grub.conf deve ser editada.

34

Captulo 2. Protegendo sua Rede

Busque pela linha title do sistema operacional que voc quer proteger e adicione uma linha com a diretiva lock imediatamente embaixo dela. Para o sistema DOS, a estrofe deve iniciar similarmente ao seguinte:
title DOS lock

Aviso
A linha password deve estar presente na seo principal do arquivo /boot/grub/grub.conf para este mtodo para funcionar propriamente. Caso contrrio, um invasor pode acessar a interface do editor GRUB e remover a linha bloqueada. Para criar uma senha diferente para um kernel em particular ou sistema operacional, adicione a linha lock estrofe, seguida pela linha da senha. Cada estrofe protegida com uma senha nica deve iniciar com as linhas similares ao exemplo seguinte:
title DOS lock password --md5 <password-hash>

2.1.3. Segurana da Senha As senhas so o mtodo primrio que o Red Hat Enterprise Linux usa para verificar a identidade do usurio. Isto porque a segurana de senha to importante para a proteo do usurio, da estao de trabalho e da rede. Por motivos de segurana, o programa de instalao configura o sistema para usar o Secure Hash Algorithm 512 (SHA512) e senhas shadow. altamente recomendado que voc no altere essas configuraes. Se senhas shadow no so selecionadas durante a instalao, todas as senhas so armazenadas como um hash de uma via no arquivo de leitura pblica /etc/passwd , que faz o sistema vulnervel ataques de quebra de senhas offline. Se um invasor pode ter acesso mquina como um usurio normal, ele pode copiar o arquivo /etc/passwd para sua prpria mquina e rodar quaisquer programas de quebra de senha. Se houver uma senha insegura no arquivo, somente um questo de tempo at que o invasor a descubra. Senhas shadow eliminam este tipo de ataque armazenando as senhas hash no arquivo /etc/shadow, que pode ser lido somente pelo usurio root. Isto fora um invasor em potencial tentar quebrar senhas remotamente, autenticando-se em um servio de rede na mquina, como SSH ou FT P. Este tipo de ataque de fora bruta muito mais lento e deixa rastros bvios, j que centenas de tentativas de login so gravadas nos arquivos do sistema. claro que se o invasor iniciar um ataque no meio da noite em um sistema com senhas fracas, o invasor pode ter ganhado o acesso antes do amanhecer e editado os arquivos de log para encobrir seus rastros. Alm das consideraes de formato e armazenamento existe a questo do contedo. A coisa mais importante que um usurio pode fazer para proteger sua conta contra um ataque de quebras de senha criar uma senha forte. 2.1.3.1. Criando Senhas Fortes Quando criar uma senha segura, uma boa idia seguir essas diretrizes: No Use Somente Palavras ou Nmeros Nunca use somente nmeros ou palavras em uma

Red Hat Enterprise Linux 6 Guia de Segurana

35

senha. Alguns exemplos inseguros incluem o seguinte: 8675309 juan hackme No Use Palavras Reconhecveis Palavras como nomes prprios, palavras de dicionrio ou mesmo termos de programas de televiso ou novelas devem ser evitados, mesmo se finalizados com nmeros. Alguns exemplos inseguros incluem o seguinte: john1 DS-9 mentat123 No Use Palavras em Lnguas Estrangeiras Programas de quebra de senha muitas vezes tentam listas de palavras que incluem dicionrios de muitas lnguas. Contar com lnguas estrangeiras para senhas no seguro. Alguns exemplos inseguros incluem o seguinte: cheguevara bienvenido1 1dumbKopf No Use Terminologia Hacker Se voc acha que elite porque voc usa terminologia hacker tambm conhecida como a escrita l337 (LEET ) em sua senha, pense novamente. Muitas listas de palavras incluem a escrita LEET . Alguns exemplos inseguros incluem o seguinte: H4X0R 1337 No Use Informaes Pessoais Evite usar qualquer informao pessoal em suas senhas. Se o invasor conhece sua identidade, a tarefa em adivinhar sua senha se torna mais fcil. A seguir est uma lista de tipos de informaes a serem evitadas quando criar uma senha: Alguns exemplos inseguros incluem o seguinte: Seu Nome Nomes de animais de estimao Os nomes dos membros da famlia Qualquer data de aniversrio Seu nmero de telefone ou cdigo postal No Inverta Palavras Reconhecveis Verificadores de senhas bons sempre invertem as palavras comuns, ento inverter uma senha fraca no a faz mais segura. Alguns exemplos inseguros incluem o seguinte: R0X4H nauj 9-DS No Escreva Sua Senha Nunca guarde sua senha em papel. mais seguro memoriza-la. No Use a Mesma Senha para Todas as Mquinas importante fazer senhas separadas para cada mquina. Desta maneira se um sistema comprometido, todas suas mquinas no estaro imeditatamente em risco. As seguintes diretrizes lhe ajudaro a criar uma senha forte: Faa a Senha com no Mnimo 8 Dgitos Quanto mais longa a senha, melhor. Se usar senhas MD5, ela deve ser de 15 ou mais dgitos . Com senha DES, use a extenso mxima (oito caracteres).

36

Captulo 2. Protegendo sua Rede

Misture Maisculas e Minsculas O Red Hat Enterprise Linux diferencia maisculas de minsculas, ento misture as letras para aumentar a fora da senha. Misture Letras e Nmeros Adicionar nmeros s senhas, especialmente quando adicionados no meio (no s no incio ou no final), pode aumentar a fora da senha. Inclua Caracteres No Alfa Numricos Caracteres especiais como &, $, e > podem melhorar muito a fora de uma senha (isto no possvel se usar senhas DES). Escolha uma Senha que Voc pode se Lembrar A melhor senha do mundo no faz nada se voc no lembra-la; use acrnimos ou outros dispositivos mnemnicos para ajudar a memorizar senhas. Com estas regras, pode parecer difcil criar uma senha que atenda todos esses critrios de uma senha eficiente e evitar as peculiaridades de uma ruim. Felizmente, existem alguns passos que voc pode tomar para gerar uma senha segura, fcil de lembrar. 2.1.3.1.1. Metodologia para Criao de Senhas Seguras Existem muitos mtodos que pessoas usam para criar senhas seguras. Um dos mtodos mais populares envolvem acrnimos. Por exemplo: Pense em uma frase fcil de se lembrar, como esse em ingls: "over the river and through the woods, to grandmother's house we go." Depois, transforme a frase em um acrnimo (incluindo a pontuao). otrattw,tghwg. Adicione complexidade substituindo nmeros e smbolos por letras no acrnimo. Por exemplo, substitua 7 pelo t e o smbolo (@ ) pelo a : o7r@ 77w,7ghwg. Adicione mais complexidade colocando em maisculo pelo menos uma letra, tal como H . o7r@ 77w,7gHwg. Finalmente, no use o exemplo da senha acima em qualquer sistema, nunca. Enquanto criar senhas seguras imperativo, gerencia-las propriamente tambm importante, especialmente para administradores de sistemas dentro de grandes organizaes. 2.1.3.2. Criando Senhas de Usurios Dentro de Uma Organizao Se uma organizao possui um grande nmero de usurios, os administradores de sistema possuem duas opes bsicas disponveis para forar o uso de boas senhas. Eles podem criar senhas para o usurio ou eles podem deixar os usurios criarem suas prprias senhas e verificando que as senhas so de qualidade aceitvel. Criar senhas para os usurios garante que as senhas sejam boas, mas se torna uma tarefa assustadora conforme a organizao cresce. T ambm aumenta o risco dos usurios escreverem suas senhas em papel. Por estas razes, a maioria dos administradores de sistemas preferem que os usurios criem suas prprias senhas, mas ativamente verificar que as senhas sejam boas e em alguns casos, forar os usurios a muda-las periodicamente atravs de expirao de senha. 2.1.3.2.1. Forando Senhas Fortes Para proteger a rede de intruses uma boa idia para os administradores de sistema verificar que as senhas usadas dentro de uma organizao sejam fortes. Quando os usurios so perguntados para criar ou mudar senhas, eles podem usar a aplicao de linha de comando passwd , que o Pluggable Authentication Modules (PAM ) checando se a senha muito curta ou de outra maneira fcil de quebrar. Esta verificao realizada usando o modulo PAM pam _cracklib.so . J que o PAM

Red Hat Enterprise Linux 6 Guia de Segurana

37

personalizvel, possvel adicionar mais de um verificador de integridade de senhas, como pam _passwdqc (disponvel em http://www.openwall.com/passwdqc/) ou escrever um mdulo novo. Para uma lista de mdulos PAM disponveis, consulte o http://www.kernel.org/pub/linux/libs/pam/modules.html. Para mais informaes sobre o PAM, consulte Gerenciando Sign-On nicos e Cartes Smart. A verificao de senha que realizada no momento de sua criao no descobre senhas ruins to efetivamente quanto rodar um programa de quebra de senhas. Muitas programas de quebra de senhas esto disponveis e que rodam no Red Hat Enterprise Linux, apesar de que nenhum est no pacote do sistema operacional. Abaixo est uma lista breve de alguns dos programas mais populares de quebra de senha: John The Ripper Um rpido de flexvel programa de quebra de senhas. Permite o uso de mltiplas listas de palavras e capaz de quebrar senhas por fora bruta. Est disponvel online em http://www.openwall.com/john/. Crack T alvez o mais conhecido programa de quebra de senhas, o Crack tambm muito rpido, embora no to fcil de usar como o John T he Ripper . Pode ser encontrado em http://www.crypticide.com/alecm/security/crack/c50-faq.html. Slurpie O Slurpie similar ao John T he Ripper e o Crack, mas desenhado para rodar em mltiplos computadores simultaneamente, criando um ataque de quebra de senhas distribudo. Ele pode ser encontrado online junto com uma srie de outras ferramentas de avaliao de ataque segurana em http://www.ussrback.com/distributed.htm.

Aviso
Sempre obtenha uma autorizao escrita antes de tentar quebrar senhas dentro de uma organizao.

2.1.3.2.2. Frases Secretas Frases secretas e senhas so um pilar na segurana na maioria dos sistemas de hoje. Infelizmente, tais tcnicas como biometria e autenticao de dois fatores ainda no se tornaram o caminho principal em muitos sistemas. Se senhas sero usadas para proteger um sistema, ento o uso de frases secretas devem ser consideradas. Frases secretas so mais longas do que senhas e fornecem melhor proteo do que uma senha mesmo quando implementadas sem caracteres padres como nmeros e smbolos. 2.1.3.2.3. Expirao de Senha Expirao de senha uma outra tcnica usada por administradores de sistemas para se defender contra senhas ruins dentro de uma organizao. Expirao de senha significa que depois de um especificado perodo (normalmente 90 dias), o usurio questionado para criar uma nova senha. A teoria por trs disto que se um usurio forado a mudar sua senha periodicamente, uma senha descoberta somente til ao invasor por um perodo de tempo limitado. A desvantagem da expirao de senha, entretanto, que usurios so mais inclinados a escrever suas senhas no papel. Existem dois programas primrios usados para especificar a expirao no Red Hat Enterprise Linux: o comando chage ou a aplicao User Manager (system -config-users). A opo -M do comando chage especifica o nmero mximo de dias que a senha vlida. Por exemplo, para definir que a senha de um usurio expire em 90 dias, use o seguinte comando:
chage -M 90 <username>

38

Captulo 2. Protegendo sua Rede

No comando acima, substitua o <username> com o nome do usurio. Para desativar a expirao de senha, normal usar um valor de 99999 depois da opo -M (isto equivale a mais ou menos 273 anos). Voc pode tambm usar o comando chage em modo interativo para modificar mltiplas expiraes de senhas e detalhes de conta. Use o comando seguinte para entrar no modo interativo:
chage <username>

O exemplo seguinte exemplo de sesso interativa usando este comando:


[root@myServer ~]# chage davido Changing the aging information for davido Enter the new value, or press ENTER for the default Minimum Password Age [0]: 10 Maximum Password Age [99999]: 90 Last Password Change (YYYY-MM-DD) [2006-08-18]: Password Expiration Warning [7]: Password Inactive [-1]: Account Expiration Date (YYYY-MM-DD) [1969-12-31]: [root@myServer ~]#

Consulte a pgina man sobre o chage para mais informaes sobre as opes disponveis. Voc pode tambm usar a aplicao grfica User Manager (Gerenciador de Usurios) para criar polticas de expirao de senhas, conforme a seguir. Nota: voc precisa de privilgios de Administrador para realizar este procedimento. 1. Clique no menu System (Sistema) no painel, depois em Administration (Administrao) e ento clique em Users and Groups (Usurios e Grupos) para exibir o Gerenciador de Usurios. Alternativamente, digite o comando system -config-users no shell. 2. Clique na aba Users (Usurios) e selecione o usurio requerido na lista de usurios. 3. Clique em Properties (Propriedades) na barra de ferramentas para exibir as caixa de dilogo das Propriedades do Usurio (ou escolha Properties (Propriedades) no menu File (Arquivo)). 4. Clique na aba Password Info (Informaes de Senha) e marque a caixa de verificao Enable password expiration (Ativar expirao de senha). 5. Digite o valor requerido no campo Days before change required (Dias antes da mudana requerida) e clique OK.

Red Hat Enterprise Linux 6 Guia de Segurana

39

Figura 2.1. Especificando as opes de expirao de senha

2.1.4 . Controles Administrativos Quando administrar uma mquina domstica, o usurio deve realizar algumas tarefas como usurio root ou adquirindo privilgios root pelo programa setuid, como o sudo ou su. Um programa setuid um que opera com a ID de usurio (UID) do proprietrio do programa em vez do usurio operar o programa. T ais programas so denotados por um s na seo proprietrio de uma lista de formato longo, como no exemplo a seguir:
-rwsr-xr-x 1 root root 47324 May 1 08:09 /bin/su

Nota
O s pode ser maisculo ou minusculo. Se aparecer como maisculo, significa que o bit de permisso subjacente no foi definido. Para os administradores de sistemas de uma organizao, entretanto, as escolhas podem ser feitas como o quanto de acesso administrativo os usurios dentro da organizao podem ter em suas mquinas. Atravs do mdulo PAM chamado pam _console.so , algumas atividades normalmente reservadas somente para o usurio root, como reinicializao e montagem de mdia removveis so permitidas para o primeiro usurio que logar no console fsico (consulte Gerenciando Sign-On nicos e Cartes Smart para mais informaes sobre o mdulo pam _console.so ). Entretanto, outras tarefas importantes de administrao do sistema, como alterar definies de rede, configurar um mouse novo ou montar dispositivos de rede no so possveis sem privilgios administrativos. Como resultado, administradores de sistema devem decidir quanta acessibilidade os usurios em sua rede devem receber. 2.1.4 .1. Permitindo Acesso Root Se os usurios dentro de uma organizao so confiveis e entendedores de informtica, ento permitir acesso root a eles pode no ser um problema. Permitindo acesso root aos usurios significa que atividades menores, como adicionar dispositivos ou configurar interfaces de rede, podem ser manuseadas pelos usurios individuais, deixando os administradores de sistema livres para lidar com a segurana da rede e outras questes importantes. Por outro lado, dar acesso root a usurios individuais podem levar s seguintes questes: Desconfigurao da Mquina Usurios com acesso root pode desconfigurar suas mquinas e necessitar de assistncia para resolver o problema. Ainda pior, eles podem abrir brechas de segurana sem perceber. Executando Servios Inseguros Usurios com acesso root podem rodar servidores inseguros em suas mquinas, como FT P ou T elnet, colocando nomes de usurios e senhas potencialmente em risco. Estes servios transmitem estas informaes pela a rede em texto puro. Executar Anexos de Email como Root Ainda que raro, vrus em e-mails que afetam o Linux existem. O nico momento entretanto que eles so uma ameaa quando eles so executados pelo usurio root. 2.1.4 .2. Desabilitando Acesso ao Root Se um administrador no est confortvel em permitir que os usurios autentiquem-se como root por estas e outras razes, a senha root deve ser mantida em segredo e acessar o nvel de execuo um

40

Captulo 2. Protegendo sua Rede

ou modo de usurio nico deve ser desativado atravs de proteo de senha do carregador de boot (consulte a Seo 2.1.2.2, Senhas do Carregador de Boot para mais informaes sobre este tpico). A T abela 2.1, Mtodos para Desabilitar a Conta Root descreve maneiras que um administrador pode assegurar ainda mais que logins root sejam desativados:

Red Hat Enterprise Linux 6 Guia de Segurana

41

T abela 2.1. Mtodos para Desabilitar a Conta Root Mtodo Alternado o shell do root. Descrio Edite o arquivo /etc/passwd e mude o shell de /bin/bash para /sbin/nologin . Efeitos Impede acesso ao shell do root e registra nos logs quaisquer tentativas. Os seguintes programas so impedidos de acessar a conta root: login gdm kdm xdm su ssh scp sftp Desativar o acesso root por qualquer dispositivo de console (tty). Um arquivo /etc/securetty impede o login de root em quaisquer dispositivos anexados ao computador. Impede acesso conta root pelo console ou rede. Os programas seguintes so impedidos de acessar a conta root: login gdm kdm xdm Outros servios de rede que abram o tty Programas que no logam como root mas realizam tarefas administrativas atravs do setuid ou outros mecanismos. Os seguintes programas no so impedidos de acessar a conta root: su sudo ssh scp sftp Desativando logins root SSH. Edite o arquivo /etc/ssh/sshd_config e defina o parmetro Perm itRootLogin para no . Impede o acesso root pela sute de ferramentas OpenSSH. Os seguintes programas so impedidos de acessar a conta root: ssh scp Isto somente impede o acesso root sutes de ferramentas OpenSSH. No afeta Programas que no requerem o uso do shell, como clientes FT P, clientes de email e muitos programas setuid. Os seguintes programas no so impedidos de acessar a conta root: sudo clientes FT P clientes de E-mail

42

Captulo 2. Protegendo sua Rede

sftp Use o PAM para limitar acesso root aos servios. Edite o arquivo para o servio alvo no diretrio /etc/pam .d/. T enha certeza que o pam _listfile.so requerido para autenticao. [a ] Impede o acesso root aos servios de rede que esto atentos ao PAM. Os seguintes servios so impedidos de acessar a conta root: clientes FT P clientes de E-mail login gdm kdm xdm ssh scp sftp Quaisquer servios atentos ao PAM.
[a] Co ns ulte a Se o 2.1.4.2.4, Des ativand o o Ro o t d e us ar o PAM p ara d etalhes .

Programas e servios que no esto atentos ao PAM.

2.1.4 .2.1. Desativando o Shell do Root Para impedir usurios de logar diretamente como root, o administrador do sistema pode definir o shell da conta root para /sbin/nologin no arquivo /etc/passwd . Isso impede o acesso conta root atravs de comando que requerem um shell, como os comandos su e o ssh

Importante
Programas que no requerem acesso ao shell, como clientes de e-mail ou o comando sudo , podem ainda acessar a conta root.

2.1.4 .2.2. Desativando Logins Root Para limitar ainda mais o acesso conta root, os administradores pode desativar os logins root no console editando o arquivo /etc/securetty. Este arquivo lista todos os dispositivos em que o usurio root permitido logar. Se o arquivo no existir, o usurio root pode se autenticar atravs de qualquer dispositivo de comunicao no sistema, seja pelo console ou uma interface de rede bruta. Isto perigoso, porque um usurio pode se autenticar em sua mquina pela rede. Por padro, o arquivo /etc/securetty do Red Hat Enterprise Linux somente permite ao usurio root se autenticar no console fisicamente anexado mquina. Para impedir o root de se autenticar, remova o contedo deste arquivo, digitando o seguinte comando:

Red Hat Enterprise Linux 6 Guia de Segurana

43

echo > /etc/securetty

Aviso
Um arquivo em branco /etc/securetty no impede o usurio root de se autenticar remotamente usando a sute de ferramentas OpenSSH porque o console no aberto at depois da autenticao.

2.1.4 .2.3. Desativando Logins Root SSH Logins root pelo protocolo SSH so desativados por padro no Red Hat Enterprise Linux 6; entretanto, se esta opo foi ativada, ela pode ser desativada novamente editando o arquivo de configurao do daemon SSH (/etc/ssh/sshd_config ). Mude a linha que contm:
PermitRootLogin yes

para ficar como:


PermitRootLogin no

Para essas mudanas terem efeito, o daemon SSH deve ser reiniciado. Isto pode ser feito pelo seguinte comando:
kill -HUP `cat /var/run/sshd.pid`

2.1.4 .2.4 . Desativando o Root de usar o PAM O PAM, pelo mdulo /lib/security/pam _listfile.so , permite uma grande flexibilidade em negar contas especficas. O administrador pode usar este mdulo para referenciar uma lista de usurios que no esto permitidos de se autenticar. Abaixo est um exemplo de como o mdulo usado pelo servidor FT P vsftpd no arquivo de configurao do PAM /etc/pam .d/vsftpd , o caractere \ no final da primeira linha no exemplo seguinte no necessrio se a diretiva est em uma linha):
auth required /lib/security/pam_listfile.so item=user \ sense=deny file=/etc/vsftpd.ftpusers onerr=succeed

Isto instrui o PAM para consultar o arquivo /etc/vsftpd.ftpusers e negar acesso ao servio para qualquer usurio listado. O administrador pode mudar o nome deste arquivo e manter listas separadas para cada servio ou usar uma lista central para negar acesso mltiplos servios. Se o administrador quer negar acesso mltiplos servios, uma linha similar pode ser adicionada aos arquivos de configurao do PAM, como /etc/pam .d/pop e o /etc/pam .d/im ap para clientes de email ou o /etc/pam .d/ssh para cliente SSH. Para mais informaes sobre o PAM, consulte Gerenciando Sign-On nicos e Cartes Smart. 2.1.4 .3. Limitando o Acesso Root Mais do que completamente negar acesso ao usurio root, o administrador pode querer permitir acesso somente por programas setuid, como o su ou sudo . 2.1.4 .3.1. O Comando su

44

Captulo 2. Protegendo sua Rede

Quando um usurio executa o comando su, ele questionado pela senha root e depois da autenticao, recebe a linha de comando do root. Uma vez autenticado pelo comando su, o usurio se torna o usurio root e possui acesso administrativo absoluto ao sistema[13 ]. Alm disso, uma vez que um usurio se tornou root, possvel para ele usar o comando su para mudar para qualquer outro usurio no sistema sem ser questionado por uma senha. Pela razo deste programa ser to poderoso, os administradores dentro de uma organizao podem desejar limitar o acesso a este comando. Uma das maneiras mais simples de fazer isso adicionar usurios ao grupo administrativo especial chamado wheel. Para fazer isso, digite o seguinte comando como root:
usermod -G wheel <username>

No comando anterior, substitua o <username> com o nome de usurio que voc quer adicionar ao grupo wheel . Voc pode tambm usar o Gerenciador de Usurios para modificar afiliaes de grupos, conforme a seguir. Nota: voc precisa de privilgios de Administrador para realizar este procedimento. 1. Clique no menu System (Sistema) no painel, depois em Administration (Administrao) e ento clique em Users and Groups (Usurios e Grupos) para exibir o Gerenciador de Usurios. Alternativamente, digite o comando system -config-users no shell. 2. Clique na aba Users (Usurios) e selecione o usurio requerido na lista de usurios. 3. Clique em Properties (Propriedades) na barra de ferramentas para exibir as caixa de dilogo das Propriedades do Usurio (ou escolha Properties (Propriedades) no menu File (Arquivo)). 4. Clique na aba Groups (Grupos), marque a caixa de seleo para o grupo wheel, e ento clique em OK. Veja a Figura 2.2, Adicionando usurios ao grupo "wheel".

Figura 2.2. Adicionando usurios ao grupo "wheel". Abra o arquivo de configurao do PAM para o su (/etc/pam .d/su) em um editor de textos e remova o comentrio # na seguinte linha:

Red Hat Enterprise Linux 6 Guia de Segurana

45

auth

required /lib/security/$ISA/pam_wheel.so use_uid

Esta mudana significa que somente membros do grupo administrativo wheel podem usar este programa.

Nota
O usurio root parte do grupo wheel por padro.

2.1.4 .3.2. O Comando sudo O comando sudo oferece outra abordagem para dar aos usurios o acesso administrativo. Quando usurios confiveis precedem um comando administrativo com o sudo , eles so questionados pela prpria senha. Ento, quando eles so autenticados e assumindo que o comando permitido, o comando administrativo executado como se ele fosse o usurio root. O formato bsico do comando sudo como a seguir:
sudo <command>

No exemplo acima, o <command> seria substituido por um comando normalmente reservado para o usurio root, tal como o m ount.

Importante
Usurios do comando sudo devem ter cuidade e sair do comando antes de deixar a mquina, j que o sudo pode executar o comando novamente sem ter a senha pedida dentro de um perodo de cinco minutos. Esta configurao pode ser alterada pelo arquivo de configurao, /etc/sudoers. O comando sudo permite um alto grau de flexibilidade. Por exemplo, somente usurios listados no arquivo de configurao /etc/sudoers so permitidos usar o comando sudo e o comando executado no shell do usurio, no no shell do root. Isto significa que o shell do root pode ser completamente desativado, como mostrado na Seo 2.1.4.2.1, Desativando o Shell do Root. O comando sudo tambm fornece um registro de auditoria abrangente. Cada autenticao feita registrada no arquivo /var/log/m essages e o comando digitado junto com o nome do usurio registrado no arquivo /var/log/secure . Outra vantagem do comando sudo que um administrador pode permitir usurios diferentes acessar comandos especificos baseados em suas necessidades. Administradores querendo editar o arquivo de configurao do sudo , /etc/sudoers, devem usar o comando visudo . Para dar a algum privilgios administrativos completo, digite visudo e adicione uma linha similar seguinte na seo de especificao de privilgio do usurio:
juan ALL=(ALL) ALL

Este exemplo declara que o usurio, juan , pode usar sudo de qualquer host e executar qualquer comando.

46

Captulo 2. Protegendo sua Rede

O exemplo abaixo ilustra a possvel granularidade quando configurar o sudo :


%users localhost=/sbin/shutdown -h now

Este exemplo declara que qualquer usurio possa emitir o comando /sbin/shutdown -h now desde que ele seja emitido a partir do console. A pgina man do sudo possui uma lista detalhada de opes para este arquivo. 2.1.5. Servios de Rede Disponveis Enquanto o acesso do usurio aos controles administrativos uma questo importante para administradores do sistema dentro de uma organizao, monitorar quais servios de rede esto ativos de suma importncia para qualquer um que administra ou opera um sistema Linux. Muitos servios no Red Hat Enterprise Linux 6 se comportam como servidores de rede. Se um servio de rede estiver rodando em uma mquina ento a aplicao do servidor (chamada daemon), est aguardando por conexes em uma ou mais portas da rede. Cada um destes servidores devem ser tratados como potencias portas de ataque. 2.1.5.1. Riscos ao Servios Servios de rede podem impor muitos riscos para sistemas Linux. Abaixo segue uma lista de algumas das questes primrias: Denial of Service Attacks (DoS) Inunda um servio com pedidos, um ataque de negao de servio pode fazer um sistema inutilizvel conforme ele tenta registrar e responder cada pedido. Distributed Denial of Service Attack (DDoS) Um tipo de ataque DoS que usa mltiplas mquinas comprometidas (muitas vezes milhares ou mais) para direcionar um ataque coordenado um servio, inundando com pedidos e fazendo o servio inutilizvel. Script Vulnerability Attacks Se um servidor estiver usando scripts para executar aes dentro do servidor, como servidores web geralmente fazem, um invasor pode atacar os scripts impropriamente. Estes ataques de vulnerabilidade de script podem levar uma condio de buffer overflow ou permitir ao invasor alterar arquivos no sistema. Buffer Overflow Attacks Servios que conectam s portas numeradas de 0 a 1023 devem rodar como um usurio administrativo. Se a aplicao tiver um buffer overflow explorvel, um invasor poderia ganhar acesso ao sistema como o usurio executando o deaemon. Pela razo que buffer overflow existe, os crackers usam ferramentas automatizadas para identificar sistemas com vulnerabilidades e uma vez que ganharam acesso, eles usam rootkits automatizados para manter o acesso ao sistema.

Red Hat Enterprise Linux 6 Guia de Segurana

47

Nota
A ameaa das vulnerabilidades do buffer overflow minimizada no Red Hat Enterprise Linux pelo ExecShield, uma segmentao de memria executvel e tecnologia de proteo suportada pelos processadores nicos e mltiplos do kernel compatveis com x86. O ExecShield reduz o risco de buffer overflow separando a memria virtual em segmentos executveis e no executveis. Qualquer cdigo de programa que tenta executar fora do segmento executvel (tal como um cdigo malicioso injetado a partir de uma explorao de buffer overflow) aciona um defeito de segmentao e o termina. O Execshield tambm inclui suporte para a tecnologia No eXecute (NX) em plataformas AMD64 e tecnologia eXecute Disable (XD) em Itanium e sistemas Intel 64. Estas tecnologias trabalham em conjunto com o ExecShield para impedir cdigos maliciosos de rodar na poro de memria virtual executvel com uma granularidade de 4KB de cdigo executvel, baixando o risco de ataque a partir de exploraes stealthy buffer overflow.

Importante
Para limitar a exposio de ataques na rede, todos os servios que no so usados devem ser desligados.

2.1.5.2. Identificando e Configurando Servios Para aumentar a segurana, a maioria dos servios de rede instalados com o Red Hat Enterprise Linux so desligados por padro. Existem, entretanto, algumas excees notveis: cupsd O servidor de impresso do Red Hat Enterprise Linux. lpd Um servidor de impresso alternativo. xinetd Um super servidor que controla conexes de uma variedade de servidores subordinados, tais como gssftp e telnet. sendm ail O Sendmail Mail Transport Agent (MT A) ativado por padro, mas somente escuta por conexes do localhost. sshd O servidor OpenSSH que um substituto seguro para o T elnet. Quando determinar se deixar ou no estes servios rodando, melhor usar o bom senso com cautela. Por exemplo, se uma impressora no est disponvel, no deixe o cupsd rodando. O mesmo verdadeiro para o portm ap . Se voc no montar os volumes NFSv3 ou usar o NIS (o servio ypbind ), ento o portm ap deve ser desativado.

48

Captulo 2. Protegendo sua Rede

Figura 2.3. Ferramentas de Configurao de Servios Se no estiver certo do propsito para um servio em particular, a Ferramenta de Configurao de Servios possui um campo de descrio, ilustrado na Figura 2.3, Ferramentas de Configurao de Servios, que fornece informaes adicionais. Verificando quais servios de rede esto disponveis para iniciar no momento de boot somente uma parte da histria. Voc deve tambm verificar quais portas esto abertas e escutando. Consulte a Seo 2.2.8, Verificando Quais Portas Esto Escutando para mais informaes. 2.1.5.3. Servios Inseguros Potencialmente, qualquer servio de rede inseguro. Isto explica porque desligar servios no utilizados to importante. Exploraes de servios so rotineiramente revelados e corrigidos, sendo muito importante atualizar regularmente pacotes associados com quaisquer servios de rede. Consulte a Seo 1.5, Atualizaes de Segurana para mais informaes. Alguns protocolos de rede so inerentemente mais inseguros que outros. Estes incluem quaisquer servios que: Transmitir Nomes de Usurios e Senhas Sobre uma Rede Sem Encriptao Muitos protocolos antigos, como T elnet e FT P no fazem encriptao da sesso de autenticao e deveriam ser evitados sempre que possvel. Transmitir Dados Sensveis Sobre uma Rede Sem Encriptao Muitos protocolos transmitem dados sobre uma rede sem encriptao. Estes protocolos incluem T elnet, FT P, HT T P e SMT P. Muitos sistemas de arquivos de rede, como NFS e SMB tambm transmitem informaes sobre a rede sem encriptao. a responsabilidade do usurio limitar quais tipos de dados so transmitidos quando usar estes protocolos. Servios de Dump de Memria Remota, como o netdum p , transmitem os contedos de memria sobre a rede sem encriptao. Dumps de memria podem conter senhas ou, ainda pior, entradas de banco de dados e outras informaes sensveis. Outros servios como o finger e rwhod revelam informaes sobre os usurios do sistema. Exemplos de servios inerentemente inseguros incluem rlogin , rsh , telnet e vsftpd . T odos os logins remotos e programas de shell (rlogin , rsh , e telnet) devem ser evitados em favor do SSH. Consulte a Seo 2.1.7, Ferramentas de Comunicao Avanadas de Segurana para mais

Red Hat Enterprise Linux 6 Guia de Segurana

49

informaes sobre o sshd . O FT P no inerentemente perigoso segurana do sistema como shells remotos, mas servidores FT P deve ser cuidadosamente configurados e monitorados para evitar problemas. Consulte a Seo 2.2.6, Protegendo o FT P para mais informaes sobre proteger servidores FT P. Servios que devem ser cuidadosamente implementados e colocados em firewall incluem: finger authd (este era chamado identd em verses anteriores do Red Hat Enterprise Linux.) netdum p netdum p-server nfs rwhod sendm ail sm b (Samba) yppasswdd ypserv ypxfrd Mais informaes sobre proteger servios de rede esto disponveis na Seo 2.2, Segurana do Servidor. A prxima seo discute ferramentas para configurar um firewall simples. 2.1.6. Firewalls Pessoais Depois de que os servios de redes necessrios so configurados, importante implementar um firewall.

Importante
Voc deve configurar os servios necessrios e implementar um firewall antes de conectar internet ou qualquer outra rede que voc no confiar. Os firewalls impedem pacotes de rede de acessar a interface de rede de sistema. Se um pedido feito a uma porta que est bloqueada por um firewall, o pedido ignorado. Se um servio est escutando em uma dessas portas bloqueadas, ele no recebe os pacotes e est efetivamente desativado. Por esta razo, cuidado deve ser tomado quando configurar um firewall para bloquear o acesso s portas que no esto em uso, enquanto no bloquear acesso s portas usadas pelos servios configurados. Para a maioria dos usurios, a melhor ferramenta para configurar um firewall simples a ferramenta de configurao de firewall grfica que vem junto com o Red Hat Enterprise Linux: a Firewall Configuration T ool (system -config-firewall ) . Esta ferramenta cria regras abrangentes de iptables para um firewall de uso geral usando uma interface de painel de controle. Consulte a Seo 2.5.2, Configurao de Firewall Bsica para mais informaes sobre usar esta aplicao e suas opes disponveis. Para usurios avanados e administradores de servidor, configurar manualmente um firewall com o iptables provavelmente a melhor opo. Consulte a Seo 2.5, Firewalls para mais informaes. Consulte a Seo 2.6, IPT ables para um guia compreensivo do comando iptables.

50

Captulo 2. Protegendo sua Rede

2.1.7. Ferramentas de Comunicao Avanadas de Segurana Conforme o tamanho e popularidade da internet cresceu, tambm cresceram as ameaas de interceptao de comunicao. Ao passar dos anos, ferramentas tem sido desenvolvidas para encriptar comunicaes conforme elas so transferidas na rede. O Red Hat Enterprise Linux 6 vem com duas ferramentas bsicas que usam um alto nvel de algoritmos de criptografia baseados em criptografia de chave pblica para proteger as informaes conforme elas viajam na rede. OpenSSH Uma implementao grtis do protocolo SSH para encriptao de comunicao de rede. Gnu Privacy Guard (GPG) Uma implementao grtis da aplicao de encriptao PGP (Pretty Good Privacy) para dados. O OpenSSH uma maneira segura de acessar uma mquina remota e substituir servios antigos, sem criptografia como o telnet e rsh . O OpenSSH inclui um servio de rede chamado sshd e trs aplicaes clientes de linha de comando: ssh Um cliente de acesso remoto de console seguro. scp Um comando de cpia remota seguro. sftp Um cliente de pseudo ftp seguro que permite sesses de transferncia de arquivos seguros. Consulte o Seo 3.6, Secure Shell (Shell Segura) para mais informaes relacionadas sobre o OpenSSH.

Importante
Apesar do servio sshd ser inerentemente seguro, o servio deve ser mantido atualizado para impedir ameaas de segurana. Consulte a Seo 1.5, Atualizaes de Segurana para mais informaes. O GPG uma maneira de proteger comunicaes de e-mail privadas. Ele pode ser usado tanto para enviar e-mails com dados sensveis em redes pblicas quanto proteger dados sensveis em discos rgidos.

2.2. Segurana do Servidor


Quando um sistema usado como um servidor em uma rede pblica, ele se torna um alvo para ataques. Endurecendo o sistema e trancando servios , portanto, de suma importncia para o administrador do sistema. Antes de se aprofundar em questes especficas, revise as seguintes dicas gerais para aumentar a segurana do servidor: Mantm todos os servios atualizados, para protege-los contra as ltimas ameaas. Use protocolos seguros sempre que possvel. Sirva somente um tipo de servio de rede por mquina sempre que possvel. Monitore todos os servidores cuidadosamente por atividades suspeitas. 2.2.1. Assegure os Servios com T CP Wrappers e xinetd Os TCP Wrappers fornecem controle de acesso uma variedade de servios. A maioria dos servios de rede modernos, como SSH, T elnet e FT P fazem uso dos T CP Wrappers, que fazem guarda entre

Red Hat Enterprise Linux 6 Guia de Segurana

51

de rede modernos, como SSH, T elnet e FT P fazem uso dos T CP Wrappers, que fazem guarda entre pedidos de entrada e os servios solicitados. Os benefcios oferecidos pelos T CP Wrappers so reforados quando usados em conjunto com o xinetd , um super servidor que fornece acesso adicional, registro de logs, associao, redirecionamento e controle de utilizao de recursos.

Nota
uma boa idia usar as regras de firewall iptables em conjunto com os T CP Wrappers e xinetd para criar redundncia dentro dos controles de acesso de servio. Consulte a Seo 2.5, Firewalls para mais informaes sobre implementar firewalls com comandos iptables. As subsees a seguir pressupem um conhecimento bsico de cada tpico e foco em opes de segurana especficas. 2.2.1.1. Aumentando a Segurana com T CP Wrappers Os T CP Wrappers so capazes de muito mais do que negar acesso servios. Esta seo ilustra como eles podem ser usados para enviar banners de conexo, avisos de ataque de determinados hosts e aumenta a funcionalidade de registro de log. Consulte a pgina man hosts_options para informaes sobre a funcionalidade dos T CP Wrappers e idioma de controle. Consulte a pgina man xinetd.conf disponvel online em http://linux.die.net/man/5/xinetd.conf para os sinalizadores disponveis, que agem como opes que voc pode aplicar em um servio. 2.2.1.1.1. T CP Wrappers e Banners de Conexo Exibir um banner apropriado quando os usurios conectam uma boa maneira de fazer que os potencias invasores saibam que o administrador do sistema est vigilante. Voc pode tambm controlar qual informao sobre o sistema apresentado aos usurios. Para implementar um banner de T CP Wrappers para um servio, use a opo banner . Este exemplo implementa um banner para o vsftpd . Para iniciar, crie um arquivo de banner. Ele pode estar em qualquer lugar no sistema, mas ele deve ter o mesmo nome como o daemon. Para este exemplo, este arquivo chamado /etc/banners/vsftpd e contm a seguinte linha:
220-Hello, %c 220-All activity on ftp.example.com is logged. 220-Inappropriate use will result in your access privileges being removed.

O token %c fornece uma variedade de informaes sobre o cliente, tais como o nome de usurio e hostname ou nome de usurio e endereo de IP para fazer a conexo ainda mais intimidadora. Para este banner ser mostrado s conexes de entrada, adicione a seguinte linha ao arquivo /etc/hosts.allow:
vsftpd : ALL : banners /etc/banners/

2.2.1.1.2. T CP Wrappers e Avisos de Ataques Se um determinado host ou rede tiver sido detectada atacando o servidor, os T CP Wrappers podem ser usados para avisar o administrador de ataques subsequentes daquele host ou rede usando a diretiva spawn . Neste exemplo, pressuponha que um cracker da rede 206.182.68.0/24 foi detectado tentando atacar o

52

Captulo 2. Protegendo sua Rede

servidor. Coloque a seguinte linha no arquivo /etc/hosts.deny para negar quaisquer tentativas de conexo dessa rede, e registrar as tentativas em log em um arquivo especial:
ALL : 206.182.68.0 : spawn /bin/echo `date` %c %d >> /var/log/intruder_alert

O token %d fornece o nome do servio que o invasor estava tentando acessar. Para permitir a conexo e registra em log, coloque a diretiva spawn no arquivo /etc/hosts.allow.

Nota
Por causa que a diretiva spawn executa qualquer comando shell, uma boa idia criar um script especial para notificar o administrador ou executar uma cadeia de comandos no evento de um determinado cliente tentar se conectar ao servidor.

2.2.1.1.3. Os T CP Wrappers e Registro de Log Avanado Se certos tipos de conexes so mais preocupantes que outras, o nvel de log pode ser elevado para esse servio usando a opo severity. Neste exemplo, pressuponha que qualquer um tentando se conectar porta 23 (a porta T elnet) em um servidor FT P seja um invasor. Para simbolizar isso, coloque um sinalizador em erg nos arquivos de log em vez do sinalizador padro, info e negue a conexo. Para fazer isso, coloque a seguinte linha no /etc/hosts.deny:
in.telnetd : ALL : severity emerg

Isto usa a facilidade de registro de log padro authpriv, mas eleva a prioridade do valor padro de info para em erg , que posta mensagens de log diretamente ao console. 2.2.1.2. Aumentando a Segurana com o xinetd Esta seo foca no uso do xinetd para definir um servio de interceptao (trap) e usa-lo para controlar os nveis de recursos disponveis para qualquer servio xinetd dado. Definindo limites de recursos disponveis para servios pode ajudar impedir ataques DoS (Denial of Service ). Consulte as pginas man do xinetd e do xinetd.conf para uma lista de opes disponveis. 2.2.1.2.1. Configurando uma Interceptao (T rap) Um recurso importante do xinetd sua habilidade de adicionar hosts uma lista no_access global. Hosts nesta lista so conexes subsequentes negadas a servios gerenciados pelo xinetd por um perodo especificado ou at que o xinetd seja reiniciado. Voc pode fazer isto usando o atributo SENSOR . Esta uma fcil maneira de bloquear hosts tentando escanear as portas neste servidor. O primeiro passo para definir um SENSOR escolher um servio que voc no planeja usar. Para este exemplo, o T elnet usado. Edite o arquivo /etc/xinetd.d/telnet e mude as linhas das flags (sinalizadores) para:
flags = SENSOR

Adicione a seguinte linha:

Red Hat Enterprise Linux 6 Guia de Segurana

53

deny_time

= 30

Isto nega qualquer outra tentativa de conexo esta porta por esse host por 30 minutos. Outros valores aceitveis para o atributo deny_tim e so o FOREVER, que mantm o banimento em efeito at que o xinetd seja reiniciado, e o NEVER, que permite a conexo e registra isso em log. Finalmente, a ltima linha deve ser:
disable = no

Isto ativa a prpria interceptao. Enquanto usar o SENSOR uma boa maneira para detectar e parar conexes de hosts indesejveis, ela possui desvantagens: No funciona contra escaneamentos stealth. Um invasor que sabe que o SENSOR est rodando pode montar um ataque Dos (Denial of Service) contra determinados hosts, falsificando seus endereos IP e se conectando porta proibida. 2.2.1.2.2. Controlando Recursos de Servidor Um outro recurso importante do xinetd a habilidade de configurar limites de servios sobre seu controle. Isso pode ser feito usando as seguintes diretivas: cps = <num ber_of_connections> <wait_period> Limita a taxa de conexes de entrada. Esta diretiva leva dois argumentos: <num ber_of_connections> O nmero de conexes por segundo para manuseio. Se a taxa de conexes de entrada maior que isso, o servio temporariamente desativado. O valor padro cinquenta (50). <wait_period> O nmero de segundos para esperar antes da reativao do servio depois que ele foi desativado. O intervalo padro dez (10) segundos. instances = <num ber_of_connections> Especifica o nmero total de conexes permitidas a um servio. Esta diretiva aceita tanto um valor de nmero inteiro ou UNLIMIT ED (ilimitado). per_source = <num ber_of_connections> Especifica o nmero de conexes permitidas a um servio por cada host. Esta diretiva aceita tanto um valor de nmero ou UNLIMIT ED (ilimitado). rlim it_as = <num ber[K|M]> Especifica a quantidade de espao de endereo de memria que o servio pode ocupar em kilobytes ou megabytes. Esta diretiva aceita tanto um valor de nmero inteiro ou UNLIMIT ED . rlim it_cpu = <num ber_of_seconds> Especifica o perodo de tempo em segundos que um servio pode ocupar na CPU. Esta diretiva aceita tanto um integrador de nmero inteiro ou UNLIMIT ED (limitado). Usando estas diretivas pode ajudar a impedir qualquer servio xinetd nico de sobrecarregar o sistema, resultando em um DoS (denial of service). 2.2.2. Protegendo o Portmap O servio portm ap um daemon de atribuio de porta dinmica para servios RPC como NIS e NFS. Ele possui uma mecanismo de autenticao fraco e possui a habilidade de atribuir uma grande variedade de portas para os servios que controla. Por estas razes, ele difcil de proteger.

54

Captulo 2. Protegendo sua Rede

Nota
Protegendo o portm ap somente afeta as implementaes NFSv2 e NFSv3, j que o NFSv4 no o requer mais. Se voc planeja implementar um servidor NFSv2 ou NFSv3, ento o portm ap requerido e as seguintes sees se aplicam. Se rodar os servios RPC, siga estas regras bsicas. 2.2.2.1. Proteja o portmap com T CP Wrappers importante usar os T CP Wrappers para limitar quais redes ou hosts tm acesso ao servio portm ap desde que ele no possua uma forma de autenticao embutida. Alm disso, use somente endereos IP quando limitar acesso ao servio. Evite usar hostnames, j que eles podem ser falsificados por envenenamento de DNS e outros mtodos. 2.2.2.2. Proteger o portmap com o iptables Para restringir ainda mais o acesso ao servio portm ap , uma boa idia adicionar regras de iptables ao servidor e restringir acesso s redes especificas. Abaixo esto dois exemplos de comandos iptables. O primeiro permite conexes T PC porta 111 (usada pelo servio portm ap ) da rede 192.168.0.0/24. A segunda permite conexes T CP mesma porta do local host. Isto necessrio para o servio sgi_fam usado pelo Nautilus. T odos os outros pacotes so largados.
iptables -A INPUT -p tcp ! -s 192.168.0.0/24 --dport 111 -j DROP iptables -A INPUT -p tcp -s 127.0.0.1 --dport 111 -j ACCEPT

Para similarmente limitar trfego UDP, use o seguinte comando.


iptables -A INPUT -p udp ! -s 192.168.0.0/24 --dport 111 -j DROP

Nota
Consulte a Seo 2.5, Firewalls para mais informaes sobre implementar firewalls com comandos iptables.

2.2.3. Protegendo o NIS A Network Information Service (NIS) um servio RPC, chamado ypserv, que usado em conjunto com o portm ap e outros servios relacionados para distribuir mapas de nomes de usurios, senhas e outras informaes sensveis a qualquer computador alegando estar dentro do domnio. Um servidor NIS compreende de diversas aplicaes. Elas incluem o seguinte: /usr/sbin/rpc.yppasswdd T ambm chamado servio yppasswdd , este daemon permite usurios alterar suas senhas NIS. /usr/sbin/rpc.ypxfrd T ambm chamado servio ypxfrd , este daemon responsvel por transferncias de mapas NIS pela rede. /usr/sbin/yppush Esta aplicao propaga bancos de dados NIS para mltiplos servidores NIS. /usr/sbin/ypserv Este o daemon do servidor NIS.

Red Hat Enterprise Linux 6 Guia de Segurana

55

O NIS um pouco inseguro para os padres de hoje. Ele no possui mecanismos de autenticao e transmite todas suas informaes pela rede sem criptografia, incluindo senhas hash. Como um resultado, cuidado extremo deve ser tomado quando configurar uma rede que usa o NIS. Isto mais complicado pelo fato que a configurao padro do NIS inerentemente insegura. recomendado que qualquer um que esteja planejando implementar um servidor NIS, primeiro proteja o servio portm ap conforme descrito na Seo 2.2.2, Protegendo o Portmap, em seguida, aborde as seguintes questes, como planejar a rede. 2.2.3.1. Planeje a Rede Cuidadosamente Por causa que o NIS transmite informaes sensveis sem criptografia pela rede, importante que o servio seja rodado por trs de um firewall e em uma rede segmentada e segura. Sempre que a informao NIS transmitida por uma rede insegura, h riscos de ser interceptada. Um planejamento de rede cuidadoso pode ajudar a impedir grandes brechas na segurana. 2.2.3.2. Use um Nome de Domnio NIS e Hostname como se fosse uma Senha. Qualquer mquina dentro de um domnio NIS pode usar comandos para extrair informaes do servidor sem autenticao, desde que o usurio saiba o hostname DNS do servidor NIS e o nome de domnio NIS. Por exemplo, se algum tanto se conectar com um laptop na rede ou invadir a rede externamente (e fazer um spoof de um endereo IP), o seguinte comando revela o mapa /etc/passwd :
ypcat -d <NIS_domain> -h <DNS_hostname> passwd

Se um invasor o usurio root, ele pode obter o arquivo /etc/shadow digitando o seguinte comando:
ypcat -d <NIS_domain> -h <DNS_hostname> shadow

Nota
Se o Kerberos usado, o arquivo /etc/shadow no armazenado dentro de um mapa NIS. Para fazer o acesso aos mapas NIS mais difcil para um invasor, crie uma string aleatria para o hostname DNS, tal como o7hfawtgm hwg.dom ain.com . Da mesma maneira, crie um nome de domnio NIS aleatrio diferente. Isto deixa mais difcil para um invasor acessar o servidor NIS. 2.2.3.3. Edite o Arquivo /var/yp/securenets Se o arquivo /var/yp/securenets est em branco ou no existe (como o caso depois da instalao padro), o NIS escuta todas as redes. Uma das primeiras coisas a fazer colocar os pares de mascara de rede/rede no arquivo para que o ypserv somente responda aos pedidos da rede apropriada. Abaixo segue um modelo de entrada de um arquivo /var/yp/securenets:
255.255.255.0 192.168.0.0

56

Captulo 2. Protegendo sua Rede

Aviso
Nunca inicie um servidor NIS pela primeira vez sem criar o arquivo /var/yp/securenets. Esta tcnica no fornece proteo contra um ataque de spoof de IP, mas ao menos impes limites em quais redes o servidor NIS serve. 2.2.3.4 . Atribua Portas Estticas e Use Regras iptables T odos os servidores relacionados ao NIS podem ser atribudos portas especficas exceto o rpc.yppasswdd o daemon que permite usurios mudar suas senhas de login. Atribuir portas aos outros dois daemons do servidor NIS rpc.ypxfrd and ypserv, permite a criao de regras de firewall para proteger ainda mais o daemons do servidor NIS de invasores. Para fazer isso, adicione as seguintes linhas ao /etc/sysconfig/network:
YPSERV_ARGS="-p 834" YPXFRD_ARGS="-p 835"

As seguintes regras de iptables podem ento ser usadas para forar quais redes o servidor escuta nestas portas:
iptables -A INPUT -p ALL ! -s 192.168.0.0/24 iptables -A INPUT -p ALL ! -s 192.168.0.0/24 --dport 834 -j DROP --dport 835 -j DROP

Isto significa que o servidor somente permite conexes s portas 834 e 835 se os pedidos chegam da rede 192.168.0.0/24, sem importar o protocolo.

Nota
Consulte a Seo 2.5, Firewalls para mais informaes sobre implementar firewalls com comandos iptables.

2.2.3.5. Use a Autenticao Kerberos Uma das questes a considerar quando o NIS usado para autenticao que sempre que um usurio se autentica em uma mquina, uma senha hash do mapa /etc/shadow enviado pela rede. Se um invasor ganha acesso a um domnio NIS e intercepta o trfego de rede, ele pode coletar nomes de usurios e senhas hash. Com tempo suficiente, um programa de quebra de senha pode adivinhar senhas fracas e um invasor pode ter acesso a uma conta vlida na rede. Desde que o Kerberos usa criptografia de chave secreta, nenhuma senha hash enviada pela rede, fazendo o sistema muito mais seguro. Consulte Gerenciando Cartes Single Sign-On e Smart Cards para mais informaes sobre o Kerberos. 2.2.4 . Protegendo o NFS

Red Hat Enterprise Linux 6 Guia de Segurana

57

Importante
A verso do NFS includa no Red Hat Enterprise Linux 6, o NFSv4, no requer mais o servio portm ap conforme explicado na Seo 2.2.2, Protegendo o Portmap. O trfego de NFS agora utiliza o T CP em todas as verses, em vez do UDP, e requer isso quando usar o NFSv4. O NFSv4 agora inclui o usurio Kerberos e a autenticao de grupo como parte do mdulo do kernel RPCSEC_GSS . Informaes sobre o portm ap ainda includa, desde que o Red Hat Enterprise Linux 6 suporta o NFSv2 e o NFSv3, e ambos utilizam o portm ap .

2.2.4 .1. Planeje a Rede Cuidadosamente Agora que o NFSv4 possui a habilidade de transmitir todas as informaes criptografadas usando o Kerberos pela rede, importante que o servio esteja configurado corretamente se ele est por trs de um firewall ou em uma rede segmentada. O NFSv2 e NFSv3 ainda transmitem dados sem segurana e isso deve ser levado em considerao. Um projeto de rede pensado nessas consideraes podem impedir brechas na segurana. 2.2.4 .2. Ateno aos Erros de Sintaxe O servidor NFS determina quais sistemas de arquivos exportar e para quais hosts exportar estes diretrios consultando o arquivo /etc/exports. Cuidado para no adicionar espaos fora de lugar quando editar este arquivo. Por exemplo, a linha seguinte no arquivo /etc/exports compartilha o diretrio /tm p/nfs/ ao host bob.exam ple.com com permisses de leitura/escrita.
/tmp/nfs/ bob.example.com(rw)

A linha seguinte no arquivo /etc/exports, por outro lado, compartilha o mesmo diretrio do host bob.exam ple.com com permisses de leitura somente e compartilha com o world com permisses de leitura/escrita devido ao carcter espao nico depois do hostname.
/tmp/nfs/ bob.example.com (rw)

uma boa prtica verificar quaisquer compartilhamentos de NFS configurados usando o comando showm ount para verificar o que est sendo compartilhado:
showmount -e <hostname>

2.2.4 .3. No Use a Opo no_root_squash Por padro, o compartilhamento NFS muda o usurio root para usurio nfsnobody, uma conta de usurio sem previlgios. Isto muda o proprietrio de todos os arquivos criados pelo root para nfsnobody, que impede o upload de programas com o setuid definido. Se o no_root_squash usado, os usurios root remotos so capazes de mudar quaisquer arquivos no sistema de arquivos compartilhados e deixar aplicaes infectadas por trojans para que outros usurios as executem sem saber. 2.2.4 .4 . Configurao de Firewall NFS As portas usadas para o NFS so atribudas dinamicamente pelo rpcbind, que pode causar problemas quando criar regras de firewall. Para simplificar este processo, use o arquivo /etc/sysconfig/nfs para

58

Captulo 2. Protegendo sua Rede

especificar quais portas sero usadas. MOUNT D_PORT Porta UDP e T CP para o mountd (rpc.mountd) ST AT D_PORT Porta UDP e T CP para o status (rpc.statd) LOCKD_T CPPORT Porta T CP para o nlockmgr (rpc.lockd) LOCKD_UDPPORT Porta UDP para o nlockmgr (rpc.lockd) Nmeros de Porta especificadas no devem ser usados por qualquer outro servio. Configure seu firewall para permitir os nmeros de portas especificadas e tambm a porta 2049 UDP e T CP (NFS) Rode o comando rpcinfo -p no servidor NFS para ver quais portas e programas RPC esto sendo usados. 2.2.5. Protegendo o Servidor HT T P Apache O Servidor HT T P Apache um dos servios mais estveis e seguros que vem com o Red Hat Enterprise Linux. Um grande nmero de opes e tcnicas esto disponveis para proteger o Servidor HT T P Apache muitas para serem descritas em detalhes aqui. A seo seguinte explica brevemente boas prticas quando rodar o Servidor HT T P Apache. Sempre verifique que quaisquer scripts rodando no sistema funcionam conforme pretendido antes de coloca-los em produo. T ambm assegure-se que somente o usurio root possui permisses de escrita a quaisquer diretrios que contm os scripts ou CGIs. Para fazer isso, rode o seguinte comando como usurio root: 1. 2.
chown root <directory_name> chmod 755 <directory_name>

Administradores de sistemas devem ter cuidados quando usar as seguintes opes de configurao (definidos em /etc/httpd/conf/httpd.conf ): FollowSym Links Esta diretiva est ativada por padro, ento seja cauteloso quando criar links simblicos ao documento root do Servidor Web. Por exemplo, no uma boa idia fornecer um link simbolico para o /. Indexes Esta diretiva est ativada por padro, mas pode no ser desejvel. Para impedir visitantes de navegar pelos arquivos do servidor, remova esta diretiva. UserDir A diretiva UserDir est desativada por padro por causa que ela pode confirmar a presena de uma conta de usurio no sistema. Para ativar a navegao de diretrios no servidor, use as seguintes diretivas:
UserDir enabled UserDir disabled root

Estas diretivas ativam a navegao de diretrios de usurios para todos os diretrios de usurios menos o /root/. Para adicionar usurios na lista de contas desativadas, adicione

Red Hat Enterprise Linux 6 Guia de Segurana

59

um lista separada por espaos dos usurios na linha UserDir disabled .

Importante
No remova a diretiva IncludesNoExec . Por padro, o mdulo Server-Side Includes (SSI) no pode executar comandos. recomendado que voc no mude estas definies a menos que seja absolutamente necessrio, j que poderia potencialmente ativar um invasor para executar comandos no sistema.

2.2.6. Protegendo o FT P O File Transfer Protocol (FT P) um protocolo T CP antigo desenvolvido para transferir arquivos em uma rede. Pela razo que todas as transaes com o servidor, incluindo a autenticao do usurio, no so criptografadas, considerado um protocolo inseguro e deve ser configurado cuidadosamente. O Red Hat Enterprise Linux fornece trs servidores FT P. gssftpd Um daemon de FT P baseado em xinetd e atento ao Kerberos que no transmite informaes de autenticao na rede. Red Hat Content Accelerator (tux) Um servidor Web do kernel com capacidades de FT P. vsftpd Um implementao orientada segurana, autnoma do servio de FT P. As seguintes diretrizes de segurana so para definir o servio FT P vsftpd 2.2.6.1. Banner de Saudao do FT P Antes de enviar um nome de usurio e senha, todos os usurios recebem um banner de saudao. Por padro este banner inclui informaes de verso teis para os invasores que tentam identificar as fraquezas do sistema. Para mudar o banner de saudao do vsftpd , adicione a seguinte diretiva ao arquivo /etc/vsftpd/vsftpd.conf :
ftpd_banner=<insert_greeting_here>

Substitua o <insert_greeting_here> na diretiva acima com o texto da mensagem de saudao. Para banners com mltiplas linhas, melhor usar um arquivo de banner. Para simplificar o gerenciamento de banners mltiplos, coloque todos os banners em um novo diretrio chamado /etc/banners/. O arquivo de banner para conexes FT P neste exemplo o /etc/banners/ftp.m sg . Abaixo est um exemplo de como o arquivo deve ser:
######### # Hello, all activity on ftp.example.com is logged. #########

Nota
No necessrio iniciar cada linha do arquivo com 220 como especificado na Seo 2.2.1.1.1, T CP Wrappers e Banners de Conexo. Para referenciar este arquivo de banner de saudao para o vsftpd , adicione a seguinte diretiva ao arquivo /etc/vsftpd/vsftpd.conf :

60

Captulo 2. Protegendo sua Rede

banner_file=/etc/banners/ftp.msg

tambm possvel enviar banners adicionais s conexes de entrada usando os T CP Wrappers conforme escrito Seo 2.2.1.1.1, T CP Wrappers e Banners de Conexo. 2.2.6.2. Acesso Annimo A presena do diretrio /var/ftp/ ativa a conta annima. A maneira mais fcil para criar este diretrio instalar o pacote vsftpd . Este pacote estabelece uma rvore de diretrios para usurios annimos e configura as permisses nos diretrios para somente leitura para os usurios annimos. Por padro o usurio annimo no pode escrever em quaisquer diretrios.

Aviso
Se ativar o acesso annimo a um servidor FT P, esteja atento onde os dados sensveis esto armazenados.

2.2.6.2.1. Upload Annimo Para permitir usurios annimos fazer upload de arquivos, recomendado que um diretrio de escrita somente seja criado dentro do /var/ftp/pub/. Para fazer isso, digite o seguinte comando:
mkdir /var/ftp/pub/upload

Depois, mude as permisses para que ento os usurios annimos no possam ver os contedos dos diretrios:
chmod 730 /var/ftp/pub/upload

Um formato de listagem longa do diretrio deve se parecer com:


drwx-wx--2 root ftp 4096 Feb 13 20:05 upload

Aviso
Administradores que permitem usurios annimos ler e escrever nos diretrios muitas vezes possuem seus servidores transformados em um repositrio de software roubado. Adicionalmente, sob o vsftpd , adicione a seguinte linha ao arquivo /etc/vsftpd/vsftpd.conf :
anon_upload_enable=YES

2.2.6.3. Contas de Usurios Por causa que o FT P transmite transmite nomes de usurios e senhas no criptografados por redes desprotegidas para autenticao, uma boa idia negar aos usurios do sistema o acesso ao servidor

Red Hat Enterprise Linux 6 Guia de Segurana

61

com suas contas de usurio. Para desativar todas as contas de usurios no vsftpd , adicione a seguinte diretiva ao /etc/vsftpd/vsftpd.conf :
local_enable=NO

2.2.6.3.1. Restringindo Contas de Usurios Para desativar o acesso FT P para contas especficas ou grupos de contas especficos, como o usurio root e aqueles com privilgios sudo , a maneira mais fcil para usar um arquivo de lista PAM conforme descrito na Seo 2.1.4.2.4, Desativando o Root de usar o PAM. O arquivo de configurao PAM para o vsftpd /etc/pam .d/vsftpd . tambm possvel desativar contas de usurios dentro de cada servio diretamente. Para desativar contas de usurios especficas no vsftpd , adicione o nome de usurio ao /etc/vsftpd/ftpusers 2.2.6.4 . Usar o T CP Wrappers para Controla Acesso Use o T CP Wrapper para controlar o acesso tanto do daemon FT P conforme descrito na Seo 2.2.1.1, Aumentando a Segurana com T CP Wrappers. 2.2.7. Protegendo o Sendmail O Sendmail um Mail T ransfer Agent (MT A) que usa o Simple Mail T ransfer Protocol (SMT P) para entregar mensagens eletrnicas entre outros MT As e enviar emails para clientes ou agentes de entrega. Apesar de que muitos MT As so capazes de criptografar o trfego entre eles, a maioria no o faz, ento enviar emails sobre quaisquer redes pblicas considerado um forma insegura de comunicao. recomendado que qualquer um planejando implementar um servidor Sendmail aborde as seguintes questes. 2.2.7.1. Limitando um DoS (Denial of Service Attack) Devido natureza do email, um determinado invasor pode causar um flood no servidor com emails bem facilmente e causar uma negao de servio. Configurar limites nas seguintes diretivas no /etc/m ail/sendm ail.m c , a efetividade do tais ataques limitada. confCONNECT ION_RAT E_T HROT T LE O nmero de conexes que o servidor pode receber por segundo. Por padro, o Sendmail no limita o nmero de conexes. Se um limite definido e alcanado, as prximas conexes so atrasadas. confMAX_DAEMON_CHILDREN O nmero mximo de processos filhos que podem ser gerados pelo servidor. Por padro, o Sendmail no atribui um limite ao nmero de processos filhos. Se um limite definido e alcanado, as prximas conexes so atrasadas. confMIN_FREE_BLOCKS O nmero mnimo de blocos livres que devem estar disponveis para o servidor para aceitar mail. O padro 100 blocos. confMAX_HEADERS_LENGT H O tamanho mximo aceitvel (em bytes) para um cabealho de mensagens. confMAX_MESSAGE_SIZE O tamanho mximo aceitvel (em bytes) para uma mensagem nica. 2.2.7.2. O NFS e Sendmail

62

Captulo 2. Protegendo sua Rede

Nunca coloque o diretrio de mail spool, /var/spool/m ail/, em um volume NFS compartilhado. Por causa que o NFSv2 e NFSv3 no mantm controle sobre as IDs de usurios e grupos, dois ou mais usurios podem ter o mesmo UID e receberem e lerem os emails um do outro.

Nota
Com o NFSv4 usando o Kerberos, isto no acontece, j que o mdulo do kernel SECRPC_GSS no utiliza uma autenticao baseada em UID. Entretanto, ainda considerado uma boa prtica no colocar o diretrio de mail spool em volumes NFS no compartilhados.

2.2.7.3. Usurios somente de Mail Para ajudar a impedir que um usurio local explore o servidor Sendmail, melhor para os usurios de mail somente acessar o servidor Sendmail usando um programa de email. Contas shell no servidor de mail no devem ser permitidos e todos os usurios shell no arquivo /etc/passwd devem ser definidos para /sbin/nologin (com a exceo possvel do usurio root). 2.2.8. Verificando Quais Portas Esto Escutando Depois de configurar servios de rede, importante prestar ateno a quais portas esto na realidade escutando nas interfaces de rede do sistema. Quaisquer portas abertas podem ser evidncias de uma invaso. Existem duas abordagens bsicas para listar as portas que esto escutando na rede. A abordagem menos confivel solicitar a pilha de rede usando comandos como netstat -an ou lsof -i . Este mtodo menos confivel desde que estes programas no se conectam mquina a partir da rede, mas melhor verificar para ver o que est rodando no sistema. Por esta razo, estas aplicaes so alvos frequentes de substituies por invasores. Crackers tentam cobrir seus rastros se eles abrirem portas de rede no autorizadas substituindo o netstat e o lsof com suas prprias, verses modificadas. Uma maneira mais confivel de checar quais portas esto escutando na rede usar um escaner de porta como o nm ap . O seguinte comando emitido a partir do console determina quais portas esto escutando pelas conexes T CP da rede:
nmap -sT -O localhost

O resultado deste comando aparece como a seguir:

Red Hat Enterprise Linux 6 Guia de Segurana

63

Starting Nmap 4.68 ( http://nmap.org ) at 2009-03-06 12:08 EST Interesting ports on localhost.localdomain (127.0.0.1): Not shown: 1711 closed ports PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 111/tcp open rpcbind 113/tcp open auth 631/tcp open ipp 834/tcp open unknown 2601/tcp open zebra 32774/tcp open sometimes-rpc11 Device type: general purpose Running: Linux 2.6.X OS details: Linux 2.6.17 - 2.6.24 Uptime: 4.122 days (since Mon Mar 2 09:12:31 2009) Network Distance: 0 hops OS detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 1.420 seconds

Este resultado mostra que o sistema est rodando o portm ap por causa da presena do servio sunrpc . Entretanto, h tambm um servio misterioso na porta 834. Para checar se a porta associada com o a lista oficial de servios conhecidos, digite:
cat /etc/services | grep 834

Este comando retorna nenhum resultado para a porta 834. Devido ao formato do comando, o resultado para outras portas (1834, 2834, and 3834) sero mostrados. Isto indica que enquanto a porta 834 est na variao reservada (significando 0 at 1023) e requer o acesso root para abrir, ele no associado com um servio conhecido. Depois, verifique por informaes sobre a porta usando o netstat ou lsof . Para verificar pela porta 834 usando o netstat, use o seguinte comando:
netstat -anp | grep 834

O comando retorna o seguinte resultado:


tcp 0 0 0.0.0.0:834 0.0.0.0:* LISTEN 653/ypbind

A presena da porta aberta no netstat animadora por causa que se um cracker abrir uma porta clandestinamente em um sistema hackeado, no susceptvel de permitir que esta seja revelada atravs deste comando. T ambm, a opo [p] revela o ID do processo (PID) do servio que abriu a porta. Neste caso, a porta aberta pertence ao ypbind (NIS), que um servio RPC manuseado em conjunto com o servio portm ap . O comando lsof revela informaes similares ao netstat j que ele tambm capaz de ligar portas abertas servios:
lsof -i | grep 834

A poro relevante do resultado deste comando :

64

Captulo 2. Protegendo sua Rede

ypbind (LISTEN) ypbind (LISTEN) ypbind (LISTEN) ypbind (LISTEN)

653 655 656 657

0 0 0 0

7u 7u 7u 7u

IPv4 IPv4 IPv4 IPv4

1319 1319 1319 1319

TCP *:834 TCP *:834 TCP *:834 TCP *:834

Estas ferramentas revelam uma grande parte sobre o estado dos servios rodando na mquina. Estas ferramentas so flexveis e podem fornecer uma riqueza de informaes sobre os servios de rede e configurao. Consulte as pginas man do lsof , netstat, nm ap , e services para mais informaes.

2.3. TCP Wrappers e xinetd


Controlar o acesso aos servios de rede uma das tarefas de segurana mais importantes para um administrador de servidor. O Red Hat Enterprise Linux fornece diversas ferramentas para este propsito. Por exemplo, um firewall baseado em iptables filtra pacotes de rede indesejados dentro da pilha de rede do kernel. Para servios de rede que os utilizam, os TCP Wrappers adicionam uma camada a mais de proteo definindo quais hosts so ou no so permitidos conectar aos servios de rede " envolvidos (wrapped)". Um tipo de servio de rede wrapped o xinetd super server. O servio chamado super server porque ele controla conexes de um subconjunto de servios de rede e refina ainda mais o controle de acesso. A Figura 2.4, Controle de Acesso para Servios de Rede uma ilustrao bsica de como estas ferramentas trabalham juntas para proteger os servios de rede.

Figura 2.4 . Controle de Acesso para Servios de Rede

Red Hat Enterprise Linux 6 Guia de Segurana

65

Este captulo foca na funo de T CP Wrappers e xinetd no controle de acesso aos servios de rede e revisa como estas ferramentas podem ser usadas para melhorar tanto a autenticao e gerenciamento de utilizao. Consulte a Seo 2.6, IPT ables para informaes sobre usar firewalls com iptables. 2.3.1. T CP Wrappers Os pacotes de T CP Wrappers (tcp_wrappers e tcp_wrappers-libs) so instalados por padro e fornecem controle de acesso baseado no host para servios de rede. O componente mais importante do pacote a biblioteca /lib/libwrap.a ou /lib64 /libwrap.a . Em termos gerais, um servio T CP wrapped um que foi compilado para a biblioteca libwrap.a . Quando uma tentativa de conexo feita a um servio T CP Wrapper, o servio primeiro referencia os arquivos de acesso ao host (/etc/hosts.allow e /etc/hosts.deny) para determinar se o cliente permitido ou no se conectar. Na maioria dos casos, ele ento usa o syslog daemon (syslogd ) para gravar o nome do cliente solicitante e do servio solicitado em /var/log/secure ou /var/log/m essages. Se um cliente permitido se conectar, os T CP Wrappers liberam o controle da conexo para o servio solicitado e no participa mais na comunicao entre o cliente e o servidor. Alm de controlar o acesso e autenticao, os T CP Wrappers podem executar comandos para interagir com o cliente antes de negar ou liberar controle da conexo ao servio de rede solitictado. Pela razo que os T CP Wrappers so uma adio valiosa a qualquer arsenal de ferramentas de segurana de um administrador de servidor, a maiorias dos servios de rede dentro do Red Hat Enterprise Linux so ligados biblioteca libwrap.a . Algumas dessas aplicaes incluem /usr/sbin/sshd , /usr/sbin/sendm ail , and /usr/sbin/xinetd .

Nota
Para determinar se um servio de rede binria est ligado ao libwrap.a , digite o seguinte comando como usurio root:
ldd <binary-name> | grep libwrap

Substitua o <binary-name> com o nome do servio de rede binrio. Se o comando retornar diretamente ao prompt sem nenhum resultado, ento o servio de rede no ligado ao libwrap.a . O exemplo seguinte indica que o /usr/sbin/sshd est ligado ao libwrap.a :
[root@myServer ~]# ldd /usr/sbin/sshd | grep libwrap libwrap.so.0 => /lib/libwrap.so.0 (0x00655000) [root@myServer ~]#

2.3.1.1. Vantagens do T CP Wrappers Os T CP Wrappers fornecem as seguintes vantagens sobre outras tcnicas de controle de servio de rede: Transparncias tanto aos clientes e servios de rede wrapped Ambos clientes em conexo e o servio de rede wrapped no esto atentos que os T CP Wrappers esto em uso. Usurios

66

Captulo 2. Protegendo sua Rede

legtimos so autenticados e conectados ao servio solicitado enquanto conexes de clientes banidos falham. Gerenciamento Centralizado de mltiplos protocolos Os T CP Wrappers operam separadamente dos servios de rede que protegem, permitindo muitas aplicaes de servidor compartilhar um conjunto comum de arquivos de configuraes de controle de acesso, para um gerenciamento mais simples. 2.3.2. Arquivos de Configurao dos T CP Wrappers Para determinar se um cliente permitido se conectar a um servio, os T CP Wrappers referenciam os seguintes dois arquivos, que so comumente referidos como arquivos de acesso de hosts: /etc/hosts.allow /etc/hosts.deny Quando um servio T CP wrapped recebe uma solicitao de um cliente, ele realiza os seguintes passos: 1. Ele faz referencia ao /etc/hosts.allow O servio T CP wrapper analisa sequencialmente o arquivo /etc/hosts.allow e aplica a primeira regra especificada para aquele servio. Se ele encontra uma regra correspondente, ele permite a conexo. Se no, vai para o prximo passo. 2. Ele faz referncia ao /etc/hosts.deny O servio T CP wrapper analisa sequencialmente o arquivo /etc/hosts.deny. Se ele encontrar uma regra correspondente, ele nega a conexo. Se no, garante acesso ao servio. A seguir esto pontos importantes a considerar quando usar T CP Wrappers para proteger servios de rede: Como as regras de acesso no hosts.allow so aplicadas primeiro, elas tm preferncia sobre as regras especificadas no hosts.deny. Portanto, se o acesso a um servio permitido no hosts.allow, uma regra negando acesso ao mesmo servio hosts.deny ignorado. As regras em cada arquivo so lidas de cima para baixo e a primeira regra correspondente para um determinado servio a nica aplicada. A ordem das regras extremamente importante. Se nenhuma regra para o servio encontrada em qualquer arquivo ou nenhum arquivo existe, acesso ao servio garantido. Os servios T CP wrappers no fazem cache das regras dos arquivos de acesso dos hosts, ento quaisquer mudanas no hosts.allow ou hosts.deny acontecem imediatamente, sem reiniciar os servios de rede.

Aviso
Se a ltima linha do arquivo de acesso ao host no um carcter de nova linha (criado ao se pressionar o Enter ), a ltima regra no arquivo falha e um erro registrado tanto no logs /var/log/m essages ou /var/log/secure . Isto tambm o caso para uma regra que se extende por mltiplas linhas sem usar a barra invertida. O seguinte exemplo ilustra a poro relevante de uma mensagem de log para uma falha de regra devido a uma dessas circunstncias:
warning: /etc/hosts.allow, line 20: missing newline or line too long

2.3.2.1. Formatando Regras de Acesso

Red Hat Enterprise Linux 6 Guia de Segurana

67

Os formatos para ambos /etc/hosts.allow e /etc/hosts.deny so idnticos. Cada regra deve estar em sua prpria linha. Linhas em branco ou linhas que iniciam com um hash (#) so ignoradas. Cada regra usa o seguinte formato bsico para controlar acesso aos servios de rede:
<daemon list>: <client list> [: <option>: <option>: ...]

<daemon list> Uma lista separada por vrgula de nomes de processos (no os nomes dos servios) ou o carcter coringa ALL. A lista daemon tambm aceita operadores (consulte a Seo 2.3.2.1.4, Operadores) para permitir maior flexibilidade. <client list> Uma lista separada por vgula de nomes de host, endereos IP de host, modelos especiais ou carcteres coringa que identificam os hosts afetados pela regra. A lista de clientes tambm aceita operadores listados na Seo 2.3.2.1.4, Operadores para permitir maior flexibilidade. <option> Uma ao opcional ou lista separada por dois pontos de aes realizadas quando a regra acionada. Campos opcionais suportam expanses, do inicio comandos shell, permitem ou negam acesso e alteram o comportamento de logging.

Nota
Mais informaes sobre alguns dos termos acima podem ser encontrados em outras partes deste guia: Seo Seo Seo Seo 2.3.2.1.1, Carcteres Coringa (wildcards) 2.3.2.1.2, Modelos 2.3.2.2.4, Expanses 2.3.2.2, Campos de Opo

A seguir h um exemplo bsico de regra de acesso ao host:


vsftpd : .example.com

Esta regra instrui o T CP Wrapper para aguardar por conexes do daemon FT P (vsftpd ) de qualquer host no domnio exam ple.com . Se esta regra aparecer no hosts.allow, a conexo aceita. Se esta regra aparecer no hosts.deny, a conexo rejeitada. O prximo exemplo de regra de acesso host mais complexa e usa dois campos de opes:
sshd : .example.com \ : spawn /bin/echo `/bin/date` access denied>>/var/log/sshd.log \ : deny

Note que cada campo de opo precedido com uma barra inversa (\). O uso da barra invertida previne falha da regra devido ao comprimento. Este exemplo de regra declara que se uma conexo ao daemon SSH (sshd ) tentada a partir de um host no domnio exam ple.com , executa o comando echo para anexar a tentativa ao arquivo de log especial e nega a conexo. Pelo motivo que a diretiva opcional deny usada, esta linha nega o acesso mesmo se ele aparecer no arquivo hosts.allow. Consulte a Seo 2.3.2.2, Campos de Opo para uma viso mais detalhada das opes disponveis. 2.3.2.1.1. Carcteres Coringa (wildcards) Carcteres coringa permitem aos T CP Wrappers corresponder mais facilmente grupos de daemons ou

68

Captulo 2. Protegendo sua Rede

hosts. Eles so usados mais frequentemente no campo de lista de clientes das regras de acesso. Os seguintes carcteres coringa esto disponveis: ALL Corresponde a tudo. Ele pode ser usado para ambas listas de daemons e lista de clientes. LOCAL Corresponde a qualquer host que no contm um ponto (.), como o localhost. KNOWN Corresponde a qualquer host onde o hostname e endereo de host so conhecidos ou onde o usurio conhecido. UNKNOWN Corresponde a qualquer host onde o hostname ou endereo de host so desconhecidos ou onde o usurio desconhecido. PARANOID Corresponde a qualquer host onde o hostname no corresponde ao endereo de host.

Importante
Os coringas KNOWN , UNKNOWN e PARANOID devem ser usados com cuidado, por causa que eles dependem em um servidor DNS em funcionamento para que a operao seja correta. Qualquer disruptura na resoluo de nome pode impedir usurios legtimos de ganhar acesso ao servio.

2.3.2.1.2. Modelos Modelos podem ser usados no campo de cliente das regras de acesso para mais precisamente especificar grupos de hosts clientes. A seguir h uma lista de modelos comuns para serem usadas no campo do cliente: Hostname iniciando com ponto (.) Colocar um ponto no incio de um hostname corresponde a todos os hosts compartilhando os componentes listados do nome. O exemplo a seguir se aplica a qualquer host dentro do domnio exam ple.com :
ALL : .example.com

Endereo de IP terminando com um ponto (.) Colocar um ponto no final do endereo IP corresponde a todos os hosts compartilhando os grupos numricos iniciais de um endereo de IP. O exemplo seguinte se aplica a qualquer host dentro da rede 192.168.x.x:
ALL : 192.168.

endereo de IP /par mscara de rede Expresses de mscara de rede podem tambm ser usadas como um modelo para controlar acesso a um grupo particular de endereos IP. O exemplo seguinte se aplica a qualquer host com uma variao de endereo de 192.168.0.0 at 192.168.1.255 :
ALL : 192.168.0.0/255.255.254.0

Importante
Quando trabalhar com espao de endereo IPv4, a extenso do endereo/prefixo (prefixlen) declaraes de par (notao CIDR) no so suportadas. Somente regras IPv6 podem usar este formato. [endereo IPv6]/par prefixlen pares [net]/prefixlen podem tambm ser usados como um modelo

Red Hat Enterprise Linux 6 Guia de Segurana

69

para controlar acesso a um grupo particular de endereos IPv6. O exemplo seguinte se aplicaria a qualquer host com uma faixa de 3ffe:505:2:1:: at 3ffe:505:2:1:ffff:ffff:ffff:ffff :
ALL : [3ffe:505:2:1::]/64

O asterisco (*) Asteriscos podem ser usados para corresponder grupos inteiros de hostnames ou endereos de IP, desde que eles no sejam misturados em uma lista de clientes contendo outros tipos de modelos. O exemplo seguinte se aplicaria a qualquer host dentro do domnio exam ple.com :
ALL : *.example.com

A barra (/) Se uma lista de clientes iniciar com uma barra (/), ela tratada como um nome de arquivo. Isto til se regras especificando nmeros grandes de hosts so necessrias. O exemplo seguinte se refere aos T CP Wrappers para o arquivo /etc/telnet.hosts para todas as conexes T elnet:
in.telnetd : /etc/telnet.hosts

Outro exemplo, modelos menos usados tambm so aceitos pelos T CP Wrappers. Consulte a pgina man 5 hosts_access para mais informaes.

Aviso
Seja cuidadoso quando usar hostnames e nomes de domnio. Invasores podem usar uma variedade de truques para burlar uma resoluo de nomes precisa. Alm disso, disruptura no servio DNS impede que mesmo usurios autorizados usem os servios de rede. melhor, portanto usado endereos de IP sempre que possvel.

2.3.2.1.3. Portmap e T CP Wrappers A implementao do Portm ap de T CP Wrappers no suporta busca de hosts, que siginifca que o portm ap no pode usar hostnames para identificar hosts. Consequentemente, regras de controle de acesso para portmap no hosts.allow ou hosts.deny devem usar endereos de IP ou a palavra chave ALL, para especificar os hosts. Mudanas nas regras de controle de acesso do portm ap podem no ter efeito imediatamente. Voc pode necessitar reiniciar o servio portm ap . Servios usados amplamente, como NIS e NFS, dependem do portm ap para operar, ento esteja atento estas limitaes. 2.3.2.1.4 . Operadores No presente, regras de controle de acesso aceitam um operador, o EXCEPT . Ele pode ser usado em ambas listas daemon e listas clientes para uma regra. O operador EXCEPT permite excees especficas para abranger correspondncias com a mesma regra. No exemplo seguinte de um arquivo hosts.allow, todos os hosts exam ple.com so permitidos se conectarem a todos os servios, exceto cracker.exam ple.com :
ALL: .example.com EXCEPT cracker.example.com

70

Captulo 2. Protegendo sua Rede

Em um outro exemplo de um arquivo hosts.allow, clientes da rede 192.168.0.x podem usar todos os servios exceto para o FT P:
ALL EXCEPT vsftpd: 192.168.0.

Nota
Organizacionalmente, muito mais fcil evitar os operadores EXCEPT . Isto permite a outros administradores rapidamente escanear os arquivos apropriados para ver quais hosts tem acesso permitido ou negado aos servios sem ter de classificar operadores EXCEPT .

2.3.2.2. Campos de Opo Alm das regras bsicas que permitem e negam os acessos, a implementao Red Hat Enterprise Linux dos T CP Wrappers suportam extenses linguagem de controle de acesso pelos campos de opes. Usando estes campos de opes em regras de acesso aos hosts, os administradores podem realizar uma variedade de tarefas como alterar o comportamento do log, consolidar controle de acesso e realizar comandos shell. 2.3.2.2.1. Registro de Logs Campos de opo permitem aos administradores facilmente mudar a facilidade de log e nvel de prioridade para uma regra usando a diretiva severity. No exemplo seguinte, conexes ao daemon SSH de qualquer host no domnio exam ple.com so registradas facilidade authpriv syslog (por causa que nenhum valor de facilidade especificado) com uma prioridade de em erg :
sshd : .example.com : severity emerg

T ambm possvel especificar uma facilidade usando a opo severity. O seguinte exemplo registra em log qualquer tentativa de conexo SSH por hosts do domnio exam ple.com facilidade local0 com a prioridade de alert:
sshd : .example.com : severity local0.alert

Nota
Na prtica, este exemplo no funciona at que o syslog daemon (syslogd ) esteja configurado para registrar no log a facilidade local0 . Consulte a pgina man syslog.conf para informaes sobre configurar facilidades de log personalizadas.

2.3.2.2.2. Controle de Acesso Campos de Opes tambm permitem administradores permitir ou negar hosts explicitamente em uma regra simples adicionando a diretiva allow ou deny como a opo final. Por exemplo, as seguintes duas regras permitem conexes SSH a partir do client-1.exam ple.com , mas negam conexes do client-2.exam ple.com :

Red Hat Enterprise Linux 6 Guia de Segurana

71

sshd : client-1.example.com : allow sshd : client-2.example.com : deny

Permitindo controle de acesso numa base por regra, o campo de opo permite administradores consolidar todas as regras de acesso em um arquivo nico: tanto hosts.allow ou hosts.deny. Alguns administratores consideram isso uma maneira fcil de organizar regras de acesso. 2.3.2.2.3. Comandos Shell Campos de Opo permitem regras de acesso para realizar comandos shell pelas duas diretivas a seguir: spawn Realiza um comando shell como um processo filho. Esta diretiva pode realizar tarefas como usar o /usr/sbin/safe_finger para obter mais informaes sobre o cliente solicitante ou criar arquivos especiais de log usando o comando echo . No exemplo seguinte, clientes que tentam acessar os servios T elnet a partir do domnio exam ple.com so silenciosamente registrados ao log de um arquivo especial:
in.telnetd : .example.com \ : spawn /bin/echo `/bin/date` from %h>>/var/log/telnet.log \ : allow

twist Substitui o servio solicitado com o comando especificado. Esta diretiva frequentemente usada para configurar armadilhas para invasores (tambm chamados "honey pots" (potes de mel). Ele tambm pode ser usado para enviar mensagens para clientes em conexo. A diretiva twist deve ocorrer no final da linha da regra. No exemplo seguinte, clientes que tentam acessar os servios FT P do domnio exam ple.com recebem uma mensagem usando o comando echo :
vsftpd : .example.com \ : twist /bin/echo "421 This domain has been black-listed. Access denied!"

Para mais informaes sobre opes do comando shell, consulte a pgina man hosts_options. 2.3.2.2.4 . Expanses As expanses, quando usadas em conjunto com as diretivas spawn e twist, fornecem informaes sobre o cliente, servidor e processos envolvidos. A seguir est uma lista de expanses suportadas: %a Retorna o endereo IP do cliente. %A Retorna o endereo IP do servidor. %c Retorna uma variedade de informaes dos clientes, como o nome de usurio e hostname ou o nome de usurio e endereo IP. %d Retorna o nome do processo daemon. %h Retorna o hostname do cliente (ou endereo IP, se o hostname estiver indisponvel). %H Retorna o hostname do servidor (ou endereo IP, se o hostname estiver indisponvel). %n Retorna o hostname do cliente. Se indisponvel, unknown mostrado. Se o hostname do cliente e endereo de host no correpondem, paranoid mostrado. %N Retorna o hostname do servidor. Se indisponvel, unknown mostrado. Se o hostname do servidor e endereo de host no correspondem, paranoid mostrado. %p Retorna o ID do processo daemon.

72

Captulo 2. Protegendo sua Rede

%s Retorna vrios tipos de informaes do servidor, como processo daemon e o host ou endereo IP do servidor. %u Retorna o nome de usurio. Se indisponvel, unknown mostrado. O seguinte exemplo de regra usa uma expanso em conjuno com o comando spawn para identificar o host do cliente em um arquivo de log personalizado. Quando conexes ao daemon SSH (sshd ) so tentadas de um host no domnio exam ple.com , execute o comando echo para registrar as tentativas, incluindo o hostname do cliente (usando a expanso %h ), a um arquivo especial:
sshd : .example.com \ : spawn /bin/echo `/bin/date` access denied to %h>>/var/log/sshd.log \ : deny

Similarmente, as expanses podem ser usadas para personalizar mensagens de volta ao cliente. No exemplo seguinte, clientes que tentam acessar os servios FT P do domnio exam ple.com so informados que eles foram banidos do servidor:
vsftpd : .example.com \ : twist /bin/echo "421 %h has been banned from this server!"

Para uma explicao completa das expanses disponveis, tanto como opes de controle de acesso, consulte a seo 5 das pginas man para hosts_access (m an 5 hosts_access) e a pgina man para hosts_options. Consulte a Seo 2.3.5, Recursos Adicionais para mais informaes sobre T CP Wrappers. 2.3.3. xinetd O daemon xinetd um super servio do T CP Wrapper que controla acesso de um sub conjuntos de servios de redes populares, incluindo FT P, IMAP e T elnet. Ele tambm fornece opes de configurao especificas de servio para controle de acesso, registro de log melhorados, vinculao, redirecionamento, e controle de utilizao de recursos. Quando um cliente tentar se conectar a uma rede de servios controlados pelo xinetd , o super servio recebe o pedido e verifica por quaisquer regras de controle de acesso dos T CP Wrappers. Se o acesso permitido, o xinetd verifica que a conexo permitida sobre suas prprias regras de acesso para esse servio. Ele tambm verifica que o servio capaz de ter mais recursos atribudos a ele e no quebra nenhuma das regras definidas. Se todas estas condies so atendidas (que significa, o acesso permitido ao servio; o servio no atingiu seu limite de recursos; e o servio no quebrou nenhuma das regras definidas), o xinetd ento inicia uma instncia do servio solicitado e passa o controle da conexo ele. Depois da conexo ter sido estabelecida, o xinetd no faz mais parte da comunicao entre o cliente e o servidor. 2.3.4 . Arquivos de Configurao xinetd Os arquivos de configurao do xinetd so como a seguir: /etc/xinetd.conf O arquivo de configurao global do xinetd . /etc/xinetd.d/ O diretrio contendo todos os arquivos especificos do servio. 2.3.4 .1. O arquivo /etc/xinetd.conf

Red Hat Enterprise Linux 6 Guia de Segurana

73

O arquivo /etc/xinetd.conf contm definies de configuraes gerais que afetam todos os servios sob o controle do xinetd . Ele lido quando o servio xinetd primeiramente iniciado, ento para as mudanas de configurao terem efeito, voc precisa reiniciar o servio xinetd . O seguinte um modelo do arquivo /etc/xinetd.conf :
defaults { instances log_type log_on_success log_on_failure cps } includedir /etc/xinetd.d

= 60 = SYSLOG authpriv = HOST PID = HOST = 25 30

Estas linhas controlam os seguintes aspectos do xinetd : instances Especifica o nmero mximo de pedidos simultneos que o xinetd pode processar. log_type Configura o xinetd para usar a facilidade de log authpriv, que grava entradas no log para o arquivo /var/log/secure . Adicionar uma diretiva como FILE /var/log/xinetdlog criaria um arquivo de log personalizado chamado xinetdlog no diretrio /var/log/. log_on_success Configura o xinetd para registrar no log tentativas de conexo com sucesso. Por padro, o endereo IP do host remoto e o ID de processo do servidor que processo o pedido so gravados, log_on_failure Configura o xinetd para logar tentativas de conexo com falhas ou se a conexo foi negada. cps Configura o xinetd para permitir no mais que 25 conexes por segundo para qualquer servio dado. Se este limite excedido, o servio suspenso por 30 segundos. includedir /etc/xinetd.d/ Inclui opes declaradas nos arquivos de configurao de servio especfico localizados no diretrio /etc/xinetd.d/. Consulte a Seo 2.3.4.2, O Diretrio /etc/xinetd.d/ para mais informaes.

Nota
Muitas vezes, as configuraes do log_on_success e log_on_failure no /etc/xinetd.conf so tambm modificadas nos arquivos de configurao de servios especficos. Mais informaes podem entretanto aparecer no arquivo de log do servio do que o /etc/xinetd.conf pode indicar. Consulte a Seo 2.3.4.3.1, Opes de Registro de Log para mais informaes.

2.3.4 .2. O Diretrio /etc/xinetd.d/ O diretrio /etc/xinetd.d/ contm os arquivos de configurao para cada servio gerenciado pelo xinetd e os nomes dos arquivos so correlacionados ao servio. Como ocorre com o xinetd.conf , este diretrio somente leitura quando o servio iniciado. Para quaisquer mudanas terem efeito, o administrador deve reiniciar o servio xinetd . O formato dos arquivos no diretrio /etc/xinetd.d/ usam as mesmas convenes como o /etc/xinetd.conf . A razo primria que a configurao para cada servio armazenada em um arquivo separado fazer a personalizao mais fcil e menos suscetveis de afetar outros servios. Para obter um melhor entendimento de como estes arquivos so estruturados, considere o arquivo /etc/xinetd.d/krb5-telnet:

74

Captulo 2. Protegendo sua Rede

service telnet { flags socket_type wait user server log_on_failure disable }

= REUSE = stream = no = root = /usr/kerberos/sbin/telnetd += USERID = yes

Estas linhas controlam vrios aspectos do servio telnet: service Especifica o nome do servio, normalmente um dos listados no arquivo /etc/services. flags Define um nmero qualquer de atributos para a conexo. O REUSE instrui o xinetd para reusar p socket para a conexo T elnet.

Nota
O sinalizador REUSE est obsoleto. T odos os servios agora usam implicitamente o sinalizador REUSE . socket_type Define o tipo de socket de rede para stream . wait Especifica se o servio single-threaded (yes) ou multi-threaded (no ). user Especifica qual ID de usurio o processo o rodar. server Especifica qual binrio executvel a dar incio. log_on_failure Especifica os parmetros de registro de log para o log_on_failure alm daqueles j definidos em xinetd.conf . disable Especifica se o servio est inativo (yes) ou ativo (no ). Consulte a pgina man xinetd.conf para mais informaes sobre estas opes e seu uso. 2.3.4 .3. Aterando Arquivos de Configurao xinetd Uma variedade de diretivas est disponvel para servios protegidos pelo xinetd . Esta seo destaca algumas das opes mais comumente usadas. 2.3.4 .3.1. Opes de Registro de Log As seguintes opes de log esto disponveis para ambos /etc/xinetd.conf e os arquivos especficos de servio dentro do diretrio /etc/xinetd.d/. A seguir est uma lista de algumas das opes usadas mais comuns para registro de log: AT T EMPT Registra em log que uma tentativa com falha foi feita (log_on_failure ). DURAT ION Registra em log o perodo de tempo que o servio usado por um sistema remoto (log_on_success). EXIT Registra em log o estado de sada ou sinal de trmino do servio (log_on_success). HOST Registra em log o endereo de IP do host remoto (log_on_failure e log_on_success). PID Registra em log o ID do processo do servidor recebendo o pedido (log_on_success).

Red Hat Enterprise Linux 6 Guia de Segurana

75

USERID Registra em log o usurio remoto usando o mtodo definido em RFC 1413 para todos os servios de stream multi-threaded (log_on_failure e log_on_success).\n\t\n Para uma lista completa de opes de log, consulte a pgina man xinetd.conf . 2.3.4 .3.2. Opes de Controle de Acesso Usurios dos servios xinetd podem escolher usar as regras de acesso de hosts T CP Wrappers, fornecer controle de acesso pelos arquivos de configurao xinetd ou uma mistura de ambos. Consulte a Seo 2.3.2, Arquivos de Configurao dos T CP Wrappers para mais informaes sobre os arquivos de controle de acesso de hosts T CP Wrappers. Esta seo discute o uso do xinetd para controlar o acesso aos servios.

Nota
Diferente dos T CP Wrappers, mudanas nos controle de acesso somente tem efeito se o administrador xinetd reiniciar o servio xinetd . T ambm, diferentemente dos T CP Wrappers, o controle de acesso pelo xinetd somente afeta servios controlados pelo xinetd . O controle de acesso de hosts xinetd difere do mtodo usado pelos T CP Wrappers. Enquanto os T CP Wrappers colocam toda a configurao de acesso dentro de dois arquivos /etc/hosts.allow e /etc/hosts.deny, o controle de acesso do xinetd encontrado em cada um dos arquivos de configurao do servio no diretrio /etc/xinetd.d/. As seguintes opes de acesso de hosts so suportadas pelo xinetd : only_from Permite somente os hosts especificados usarem o servio. no_access Bloqueia os hosts listados de usar o servio. access_tim es Especifica o perodo de tempo quando um determinado servio pode ser usado. O perodo de tempo deve ser declarado no formato 24 horas, HH:MM-HH:MM. As opes only_from e no_access podem usar uma lista de endereos de IP ou nomes de host, ou pode especificar uma rede inteira. Como os T CP Wrappers, combinar o controle de acesso xinetd com a configurao de log avanada pode aumentar a segurana bloqueando pedidos dos hosts banidos enquanto grava a verbosidade de cada tentativa de conexo. Por exemplo, o arquivo seguinte /etc/xinetd.d/telnet pode ser usado para bloquear o acesso T elnet de um grupo de rede particular e restringe o intervalo de tempo de total que mesmo usurios permitidos podem se logar:
service telnet { disable flags socket_type wait user server log_on_failure no_access log_on_success access_times }

= no = REUSE = stream = no = root = /usr/kerberos/sbin/telnetd += USERID = 172.16.45.0/24 += PID HOST EXIT = 09:45-16:15

76

Captulo 2. Protegendo sua Rede

Neste exemplo, quando um sistema cliente da rede 172.16.4 5.0/24 , como 172.16.4 5.2 , tenta acessar o servio T elnet, ele recebe a seguinte mensagem:
Conexo fechada por um host externo.

Alem disso, as tentativas de login deles so registradas no /var/log/m essages conforme a seguir:
Sep 7 14:58:33 localhost xinetd[5285]: FAIL: telnet address from=172.16.45.107 Sep 7 14:58:33 localhost xinetd[5283]: START: telnet pid=5285 from=172.16.45.107 Sep 7 14:58:33 localhost xinetd[5283]: EXIT: telnet status=0 pid=5285 duration=0(sec)

Quando usar os T CP Wrappers em conjunto com os controles de acesso xinetd , importante entender o relacionamento entre os dois mecanismos de controle de acesso. A seguir est uma sequencia de eventos seguidos pelo xinetd quando um cliente solicita uma conexo: 1. O daemon xinetd acessa as regras de acesso de hosts do T CP Wrappers usando uma chamada da biblioteca libwrap.a . Se uma regra de negao corresponde ao cliente, a conexo passada para o xinetd . 2. O daemon xinetd verifica suas prprias regras de controle de acesso tanto para o servio xinetd e o servio solicitado. Se uma regra de negao corresponde ao cliente, a conexo despejada. Caso contrrio , o xinetd inicia uma instncia do servio solicitado e passa o controle da conexo a esse servio.

Importante
Cuidado deve ser tomado quando usar os controles de acesso do T CP Wrappers em conjunto com os controles de acesso xinetd . Um erro de configurao pode causar efeitos indesejveis,

2.3.4 .3.3. Opes de Associao e Redirecionamento Os arquivos de configurao do servio para o xinetd suporta a associao do servio a um endereo de IP e redireciona pedidos de entrada desse servio para outro endereo IP, hostname ou porta. A associao controlada com o a opo bind nos arquivos de configurao de servio especficos e liga o servio a um endereo IP no sistema. Quando este configurado, a opo bind somente permite pedidos ao endereo de IP correto para acessar o servio. Voc pode usar este mtodo para associar diferentes servios interfaces de redes diferentes baseadas em requerimentos. Isto particularmente til para sistemas com mltiplos adaptadores de rede ou com mltiplos endereos IP. Em tal sistema, servios inseguros (por exemplo, T elnet), pode ser configurado para escutar somente interface conectada uma rede privada e no interface conectada internet. A opo redirect aceita um endereo IP ou hostname seguido por um nmero de porta. Ela configura o servio para redirecionar quaisquer pedidos para este servio ao host e nmero de porta especificados. Este recurso pode ser usado para apontar para um outro nmero de porta no mesmo sistema, redirecionar o pedido para um endereo IP diferente na mesma mquina, deslocar o pedido para um sistema e nmero de porta totalmente diferentes, ou qualquer combinao destas opes. Um usurio conectando a um certo servio em um sistema pode portanto ser reencaminhado a um outro sistema sem ruptura.

Red Hat Enterprise Linux 6 Guia de Segurana

77

O daemon xinetd capaz de realizar este redirecionamento reproduzindo um processo que permanece vivo pela durao da conexo entre a mquina cliente solicitante e o host que fornece o servio, transferindo dados entre os dois sistemas. As vantagens das opes bind e redirect so mais claramente evidentes quando elas so usadas em conjunto. Associando um servio um endereo IP determinado em um sistema e ento redirecionar os pedidos para este servio a uma segunda mquina que somente a primeira mquina pode ver, um sistema interno pode ser usado para fornecer servios para uma rede totalmente diferente. Alternativamente, estas opes podem ser usadas para limitar a exposio de um determinado servio em uma mquina multihome para endereos IP conhecidos, tanto quanto redireciona quaisquer pedidos para esse servio para uma outra mquina especialmente configurada para este propsito. Por exemplo, considere um sistema que usado como um firewall com estas configuraes para o servio T elnet:
service telnet { socket_type = stream wait = no server = /usr/kerberos/sbin/telnetd log_on_success += DURATION USERID log_on_failure += USERID bind = 123.123.123.123 redirect = 10.0.1.13 23 }

As opes bind e redirect neste arquivo garantem que o servio T elnet nesta mquina ligado a um endereo IP externo (123.123.123.123 ), o que est na internet. Alm disso, qualquer pedido pelo servio T elnet enviado ao 123.123.123.123 redirecionado pelo segundo adaptador de rede para um endereo Ip interno (10.0.1.13 ) que somente o firewall e sistemas internos podem acessar. O firewall ento envia a comunicao entre os dois sistemas e o sistema em conexo pensa que est conectado ao 123.123.123.123 quando na verdade est conectado a uma mquina diferente. Este recurso particularmente til para usurios com conexes de banda larga e somente um endereo IP fixo. Quando usar o Network Address T ranslation (NAT ), os sistemas por trs da mquina de gateway, que esto usando endereos de IP somente internos, no esto disponveis fora do sistema de gateway. Entretanto, quando certos servios controlados pelo xinetd so configurados com as opes bind e redirect, a mquina gateway pode agir como uma proxy entre sistemas do lado de fora e uma mquina interna particular configurada para fornecer o servio. Alm disso, os vrios controles de acesso xinetd e opes de log esto tambm disponveis para proteo adicional. 2.3.4 .3.4 . Opes de Gerenciamento de Recursos O daemon xinetd pode adicionar um nvel bsico de proteo contra ataques Dos (Denial of Service). A seguir est uma lista de diretivas que podem auxiliar na limitao da efetividade desses ataques: per_source Define o nmero mximo de instncias de um servio por endereo IP de origem. Ele aceita somente nmeros inteiros como um argumento e pode ser usado em ambos xinetd.conf e nos arquivos de configurao de servio especficos no diretrio xinetd.d/. cps Define o nmero mximo de conexes por segundo. Esta diretiva leva dois argumentos de nmeros inteiros separados por um espao em branco. O primeiro argumento o nmero mximo de conexes permitidas para o servio por segundo. O segunto argumento o nmero de segundos que o xinetd deve esperar antes de re ativar o servio. Ele aceita somente nmeros inteiros como argumentos e pode ser usado tanto no arquivo xinetd.conf ou nos arquivos de configurao de servio especficos no diretrio xinetd.d/. m ax_load Define o uso de CPU ou limite da mdia de carregamento para um servio. Ele aceita

78

Captulo 2. Protegendo sua Rede

um argumento de nmero de ponto flutuante. A mdia de carregamento uma medida aproximada de quantos processos esto ativos em um determinado momento. Veja os comandos uptim e , who , e procinfo para mais informaes sobre a mdia de carregamento. Existem mais opes de gerenciamento de recursos disponveis para o xinetd . Consulte a pgina man xinetd.conf para maiores informaes. 2.3.5. Recursos Adicionais Mais informaes sobre T CP Wrappers e xinetd esto disponveis na documentao dos sistemas e na internet. 2.3.5.1. Documentao Instalada dos T CP Wrappers A documentao que est no seu sistema um bom lugar para iniciar a busca por opes adicionais de configurao para os T CP Wrappers, xinetd e o controle de acesso. /usr/share/doc/tcp_wrappers-<version>/ Este diretrio contm um arquivo README que discute como os T CP Wrappers funcionam e os riscos variados de spoofing do hostname e endereo de host existentes. /usr/share/doc/xinetd-<version>/ Este diretrio contm um arquivo README que discute aspectos de controle de acesso e um arquivo sam ple.conf com vrias idias para modificar os arquivos de configurao de servio especficos no diretrio /etc/xinetd.d/. As pginas man relacionadas dos T CP Wrappers e xinetd Uma variedade de pginas man existem para vrias aplicaes e arquivos de configurao envolvidos com os T CP Wrappers e xinetd . A seguir esto algumas das mais importantes das pginas man: Aplicaes do Servidor m an xinetd A pgina man para o xinetd . Arquivos de Configuraes m an 5 hosts_access A pgina man para os arquivos de controle de acesso ao host dos T CP Wrappers. m an hosts_options A pgina man para os campos de opes dos T CP Wrappers. m an xinetd.conf A pgina man que lista as opes de configurao do xinetd .

2.3.5.2. Web sites teis sobre T CP Wrappers http://www.docstoc.com/docs/2133633/An-Unofficial-Xinetd-T utorial Um tutorial completo que discute as diferentes maneiras de otimizar os arquivos de configurao do xinetd para atender objetivos de segurana especficos. 2.3.5.3. Livros Relacionados Hacking Linux Exposed por Brian Hatch, James Lee, and George Kurtz; Osbourne/McGraw-Hill Uma excelente fonte sobre segurana com informaes sobre T CP Wrappers e xinetd .

2.4. Redes Privadas Virtuais (VPNs)


Organizaes com diversos escritrios satlites muitas vezes se conectam entre si por linhas dedicadas para eficincia e proteo dos dados. Por exemplo, muitas empresas usam frame relay ou

Red Hat Enterprise Linux 6 Guia de Segurana

79

linhas Asynchronous Transfer Mode (AT M) como uma soluo de rede ponto a ponto para ligar um escritrio com os outros. Isto pode ser uma alternativa cara, especialmente para pequenas e mdias empresas (SMBs) que querem expandir sem pagar os altos custos associados com o nvel corporativo e circuitos digitais dedicados. Para atender a essa necessidade, as Virtual Private Networks (VPNs) foram desenvolvidas. Seguindo os mesmos princpios funcionais dos circuitos dedicados, as VPNs permitem comunicaes digitais seguras entre duas partes (ou redes), criando uma Wide Area Network (WAN) a partir da Local Area Networks (LANs) existentes. O ponto onde ela difere do frame relay ou AT M no meio de transporte. As VPNs transmitem por IP usando datagramas como uma camada de transporte, a fazendo um canal seguro atravs da internet para um destino pretendido. A maioria das implemtentaes de softwares VPN grtis incorporam mtodos de encriptao padro abertos para mscaras mais os dados em transito. Algumas organizaes empregam solues de hardware de VPN para aumentar a segurana, enquanto outras usam implementaes de software ou baseadas em protocolos. Diversos fornecedores fornecem solues de hardware de VPN, como Cisco, Nortel, IBM e Checkpoint. Existe uma soluo de VPN baseada em software grtis para o Linux chamada FreeS/Wan que utiliza uma implementao padronizada Internet Protocol Security (IPsec). Estas solues de VPN, independente se so baseadas em hardware ou software, agem como roteadores especializados que existem entre a conexes de IPs de um escritrio ao outro. 2.4 .1. Como uma VPN funciona? Quando um pacote transmitido de um cliente, ele envia atravs do roteador VPN ou gateway, que adiciona uma Authentication Header (AH) para roteamento e autenticao. Os dados so ento encriptados e finalmente inclusos com um Encapsulating Security Payload (ESP). Este mais tarde constitui a descriptografia e instrues de manuseio. O roteador VPN de recebimento retira a informao do cabealho, descriptografa os dados e encaminha ao destino (tanto uma estao de trabalho ou outro n na rede). Usando uma conexo rede rede, o n receptor na rede local recebe os pacotes j descriptografados e prontos para processamento. O processo de criptografia/descriptografia em uma conexo VPN rede rede transparente ao n local. Com um nvel to elevado de segurana, um invasor no deve somente interceptar um pacote, mas descriptografa-lo tambm. Invasores que empregam um ataque man-in-the-middle entre um servidor e cliente devem tambm ter acesso a pelo menos uma das chaves privadas para sesses de autenticao. Porque elas empregam camadas de autenticao e criptografia, as VPNs so um meio seguro e efetivo de conectar mltiplos ns remotos para agir como uma intranet unificada. 2.4 .2. Openswan 2.4 .2.1. Viso Geral Viso Geral O Openswan uma implementao de cdigo aberto, no nvel de kernel IPsec, disponvel no Red Hat Enterprise Linux. Ele emprega protocolos de estabelecimento de chave IKE (Internet Key Exchange) v1 e v2, implementados como daemons no nvel de usurio. O estabelecimento de chave manual tambm possvel via comandos ip xfrm , entretanto isto no recomendado. Suporte Criptogrfico O Openswan possui uma biblioteca embutida de criptografia, entretanto tambm suporta uma biblioteca NSS (Network Security Services) , que totalmente suportada e requerida para cumprimento de segurana FIPS. Mais informaes sobre o FIPS (Federal Information Processing Standard) pode ser

80

Captulo 2. Protegendo sua Rede

encontrado na Seo 7.2, Federal Information Processing Standard (FIPS). Instalao Rode o comando yum install openswan para instalar o Openswan. 2.4 .2.2. Configurao Localizaes Este seo lista e explica diretrios e arquivos importantes usados para configurar o Openswan. /etc/ipsec.d - diretrio principal. Armazena os arquivos relacionados do Openswan. /etc/ipsec.conf - arquivo de configurao principal. Mais arquivos de configurao * .conf podem ser criados no /etc/ipsec.d para configuraes individuais. /etc/ipsec.secrets - arquivos secretos principais. Mais arquivos * .secrets podem ser criados no /etc/ipsec.d para configuraes individuais. /etc/ipsec.d/cert* .db - Arquivos de banco de dados certificados. O padro antigo do arquivo de banco de dados NSS cert8.db . A partir do Red Hat Enterprise Linux 6 em diante, o banco de dados NSS sqlite so usados no arquivo cert9.db . /etc/ipsec.d/key* .db - Arquivos de banco de dados chave. O padro antigo do banco de dados NSS key3.db . A partir do Red Hat Enterprise Linux 6 em diante, os bancos de dados sqlite NSS so usados no arquivo key4 .db . /etc/ipsec.d/cacerts - Localizao dos Certificate Authority (CA). /etc/ipsec.d/certs - Localizao dos certificados do usurio. No necessrio quando usar o NSS. /etc/ipsec.d/policies - Polticas dos grupos. As polticas podem ser definidas como block, clear, clear-or-private, private, private-or-clear. /etc/ipsec.d/nsspassword - O arquivo de senha NSS. Este arquivo no existe por padro e requerido se o banco de dados NSS em uso criado com uma senha. Parmetros de Configurao Esta seo lista algumas das opes de configurao disponveis, a maioria escritas em /etc/ipsec.conf . protostack - define qual pilha de protocolo usada. A opo padro no Red Hat Enterprise Linux 6 netkey. Outros valores vlidos so auto, klips e mast. nat_traversal - define se a soluo NAT para conexes aceita. O padro no. dum pdir - define a localizao para despejo dos arquivos core. nhelpers - Quando usar o NSS, define o nmero de segmentos usados para criptografar operaes. Quando no estiver usando o NSS, define o nmero de processos usados para operaes de criptografia. virtual_private - sub-redes permitidas para a conexo cliente. A faixa que pode existir por detrs de um roteador NAT a que um cliente se conecta. plutorestartoncrash - definido para sim por padro. plutostderr - caminho para o log de erro do pluto. Aponta para a localizao do syslog por padro. connaddrfam ily - pode ser definido tanto para ipv4 ou ipv6. Mais detalhes sobre a configurao Openswan podem ser encontradas na pgina man

Red Hat Enterprise Linux 6 Guia de Segurana

81

ipsec.conf(5). 2.4 .2.3. Comandos Esta seo explica e d exemplos de alguns dos comandos usados pelo Openswan.

Nota
Como mostrado no exemplo a seguir, usar o service ipsec start/stop o mtodo recomendado para mudar o estado do servio ipsec. Isto tambm a tcnica recomendada para iniciar e parar todos os outros servios no Red Hat Enterprise Linux 6. Iniciando e parando o Openswan: ipsec setup start/stop service ipsec start/stop Adicionar/Deletar uma conexo: ipsec auto --add/delete <connection nam e> Estabelecer/quebrar uma conexo ipsec auto --up/down <connection-nam e> Gerando chaves RSA: ipsec newhostkey --configdir /etc/ipsec.d --password password --output /etc/ipsec.d/<nam e-of-file> Checando polticas ipsec no Kernel: ip xfrm policy ip xfrm state Criando certificados auto assinados: certutil -S -k rsa -n <ca-cert-nicknam e> -s "CN=ca-cert-com m on-nam e" -w 12 -t "C,C,C" -x -d /etc/ipsec.d Criando um certificado de usurio assinado pelo CA anterior: certutil -S -k rsa -c <ca-cert-nicknam e> -n <user-cert-nicknam e> -s "CN=user-cert-com m on-nam e" -w 12 -t "u,u,u" -d /etc/ipsec.d 2.4 .2.4 . Recursos Openswan http://www.openswan.org http://lists.openswan.org/pipermail/users/ http://lists.openswan.org/pipermail/dev/ http://www.mozilla.org/projects/security/pki/nss/ O pacote Openswan-doc: HT ML, exemplos, README.* README.nss

2.5. Firewalls
A segurana da informao geralmente significa um processo e no um produto. No entanto, implementaes de segurana padres geralmente implementam uma forma de mecanismo dedicada a controlar privilgios de acesso e restringir recursos de rede usurios no autorizados, identificveis e rastreveis. O Red Hat Enterprise Linux inclui diversas ferramentas que assistem administradores e engenheiros de segurana com problemas de controle de acesso em nvel de rede.

82

Captulo 2. Protegendo sua Rede

Firewalls so um dos componentes principais de uma implementao de segurana de rede. Diversos fabricantes criam solues de firewall, focando em todos os nveis do mercado: desde usurios domsticos protegendo um PC at solues de banco de dados, protegendo informaes corporativas vitais. \nOs Firewalls podem ser solues de hardware sozinhas, como equipamentos de firewall da Cisco, Nokia e Sonicwall. Empresas como Checkpoint, McAfee e Symantec tambm desenvolveram solues de firewall de software privado para mercado domstico e corporativo. Alm das diferenas entre os firewalls de software e hardware, existem tambm diferenas na forma que os firewalls funcionam, que separam uma soluo da outra. A T abela 2.2, T ipos de Firewall detalha trs tipos comuns de firewall e como eles funcionam:

Red Hat Enterprise Linux 6 Guia de Segurana

83

T abela 2.2. T ipos de Firewall Mtodo NAT Descrio Network Address Translation (NAT ) coloca sub-redes IP privadas atrs de um ou pequeno grupo de endereos IP, mascarando todas as requisies em uma fonte ao invs de diversas. O kernel do Linux possui a funcionalidade NAT embutida atravs do subsistema do kernel Netfilter. Vantagens Pode ser configurado de forma transparente em mquinas em uma LAN A proteo de muitas mquinas e servios atrs de um ou mais endereos IP externos simplifica as tarefas de administrao. Restrio de acesso ao usurio de e para uma LAN pode ser configurado ao abrir e fechar portas no fireway/gateway do NAT . Personalizvel atravs do utilitrio front-end iptables No requer qualquer personalizao no lado do cliente, pois todas as atividades de rede so filtradas no nvel do roteador ao invs do nvel de aplicativo. Como os pacotes no so transmitidos atravs de uma proxy, o desempenho de rede mais rpido devido conexo direta do cliente para host remoto. Fornece aos administradores controle sob quais aplicativos e protocolos funcionam foram da LAN Alguns servidores proxy podem fazer o cache dos dados mais acessados localmente, ao invs de precisar usar a conexo de internet para requisit-los. Isto ajuda a reduzir o consumo de banda larga. Os servios proxy podem ser autenticados e monitorados de perto, No possvel filtrar pacotes para firewalls de proxy de contedo. Processa pacotes na camada de protocolos, mas no pode filtrar pacotes na camada do aplicativo. Arquiteturas de rede complexas podem dificultar o estabelecimento das regras de filtragem de pacote, principalmente se em par com o mascaramento de IP ou sub-redes locais e redes DMZ . Desvantagens No possvel evitar atividades malintencionadas depois que os usurios se conectarem um servio fora do firewall.

Filtro de Pacote

Um firewall de filtro de pacote l cada pacote de dados que passa por uma LAN. Ele pode ler e processar os pacotes por informaes de cabealho e filtra o pacote baseado em conjuntos de regras programveis implementada por um administrador de firewall. O kernel do Linux possui uma funcionalidade de filtro de pacotes embutida atravs do subsistema do kernel, o Netfilter.

Proxy

Os firewalls de proxy filtram todas as requisies de um certo protocolo ou tipo de clientes LAN para uma mquina de proxy, que ento faz essas requisies para a Internet em nome do cliente local. Uma mquina proxy age como um buffer entre os usurios remotos mal-intencionados e as mquinas clientes de rede internas.

Proxies so geralmente aplicativos especficos (HT T P, T elnet, etc.), ou protocolos restritos (a maioria dos proxies funcionam somente com os servios conectados ao T CP) Os servios de aplicativos no podem ser executados por trs de um proxy, portanto seus servidores de aplicativo devem usar uma forma separada de segurana de rede. Os proxies podem se

84

Captulo 2. Protegendo sua Rede

permitindo um controle maior do uso de recursos na rede.

tornar um gargalo na rede, pois todas as requisies e transmisses so passadas atravs de uma fonte ao invs de diretamente de um cliente um servio remoto.

2.5.1. Netfilter e IPT ables O kernel do Linux apresenta um subsistema de rede poderoso chamado Netfilter. O subsistema Netfilter fornece um filtro de pacotes com ou sem estados assim como o NAT e servios de mascaramento do IP. O Netfilter tambm tem a habilidade de desmembrar informaes de cabealho de IP para roteamento avanado e gerenciamento do estado de conexo. O Netfilter controlado usando a ferramenta iptables. 2.5.1.1. Viso Geral do IPT ables O poder e flexibilidade do Netfilter implementado usando a ferramenta de administrao do iptables, uma ferramenta de linha de comando semelhante sintaxe de seu precedente, ipchains, o qual o Netfilter/iptables substituiu no kernel 2.4 e posteriores do Linux. O iptables usa o subsistema do Netfilter para aprimorar a conexo de rede, inspeo e processamento. O iptables apresenta autenticao avanada, aes pr e ps roteamento, traduo de endereo de rede e encaminhamento de porta, todos em uma interface de linha de comando. Esta seo fornece uma viso geral do iptables. Para mais informaes detalhadas, consulte a Seo 2.6, IPT ables. 2.5.2. Configurao de Firewall Bsica Assim como uma parede corta fogo (firewall) tenta evitar o alastre do fogo, o firewall do computador tenta evitar que softwares mal-intencionados se alastrem em seu computador. Ele tambm ajuda a evitar que usurios no autorizados acessem seu computador. Em uma instalao padro do Red Hat Enterprise Linux, um firewall existe entre seu computador ou rede e qualquer rede no confivel, por exemplo a Internet. Ele determina qual servio em seu computador que os usurios remotos podem acessar. Um firewall configurado adequadamente pode aumentar a segurana de seu sistema de forma significativa. Recomenda-se que voc configure um firewall para qualquer sistema Red Hat Enterprise Linux com uma conexo da Internet. 2.5.2.1. Firewall Configuration T ool Durante a tela de Configurao do Firewall da instalao do Red Hat Enterprise Linux, voc tem a opo para habilitar um firewall bsico assim como permitir dispositivos especficos, servios de entrada e portas. Aps a instalao, voc pode mudar esta preferncia usando o Firewall Configuration T ool. Para iniciar este aplicativo, use o seguinte comando:
[root@myServer ~] # system-config-firewall

Red Hat Enterprise Linux 6 Guia de Segurana

85

Figura 2.5. Firewall Configuration T ool

Nota
O Firewall Configuration T ool somente configura um firewall bsico. Se o sistema precisar de regras mais complexas, consulte a Seo 2.6, IPT ables para mais detalhes sobre como configurar regras de configuraes especficas de iptables.

2.5.2.2. Habilitando e desabilitando o Firewall Selecione uma das seguintes opes para o firewall: Disabled Desabilitar o firewall fornece acesso completo ao seu sistema e no faz verificao de segurana. Isto deve ser selecionado somente se voc estiver executando em uma rede confivel (no a Internet) ou precisar configurar um firewall padronizado usando a ferramenta de linha de comando iptables.

Aviso
As configuraes do Firewall e quaisquer regras de firewall padronizada armazenada no arquivo /etc/sysconfig/iptables. Se voc escolher Disabled e clicar em OK, estas configuraes e regras do firewall sero perdidas. Enabled Esta opo configura o sistema para rejeitar conexes de entrada que no esto em reposta com requisies externas, tais como respostas de DNS ou requisies de DHCP. Se for necessrio o acesso servios vindos desta mquina, voc poder escolher permitir servios especficos atravs do firewall. Se voc estiver conectando seu sistema Internet, mas no planeja executar um servidor, esta a escolha mais rpida. 2.5.2.3. Servios Confiveis Habilitar opes na lista de Servios confiveis permite que o servio especificado passe atravs do firewall.

86

Captulo 2. Protegendo sua Rede

WWW (HT T P) O protocolo HT T P usado pelo Apache (e outros servidores da Web) para servir as pginas da Web. Se voc planeja tornar seu servidor publicamente disponvel, selecione esta caixa. Esta opo no necessria para visualizar pginas localmente ou para desenvolver pginas da Web. Este servio requer que o pacote httpd seja instalado. Habilitar o WWW (HT T P) no abrir uma porta para o HT T PS, a verso SSL do HT T P. Se este servio for necessrio, selecione o item Secure WWW (HT T PS). FT P O protocolo FT P usado para transferir arquivos entre mquinas em uma rede. Se voc planeja tornar seu FT P publicamente disponvel, selecione este item. Este servio requer que o pacote vsftpd seja instalado. SSH Secure Shell (SSH) um conjunto de ferramentas para se autenticar e executar comandos em uma mquina remota. Para permitir acesso remoto esta mquina via ssh, selecione este item. Este servio requer que o pacote openssh-server seja instalado. T elnet A T elnet um protocolo para autenticao em mquinas remotas. As comunicaes da T elnet so descriptografadas e no fornecem nenhuma segurana contra o snooping de rede. Permitir acesso de entrada da T elnet no recomendado. Para permitir acesso remoto mquina via telnet, selecione este item. Este servio requer que o pacote telnet-server seja instalado. Mail (SMT P) O SMT P um protocolo que permite hosts remotos se conectarem diretamente sua mquina para a entrega de correio. Voc no precisa habilitar este servio se voc coletar seu correio de um servidor ISP usando o POP3 ou IMAP, ou se voc utilizar uma ferramenta como o fetchm ail . Para permitir a entrega de correio para sua mquina, selecione esta caixa. Note que um servidor SMT P configurado inadequadamente pode permitir mquinas remotas usar seu servidor para enviar spam. NFS4 O Network File System (NFS) um protocolo de compartilhamento de arquivos geralmente usado em sistemas *NIX. A Verso 4 deste protocolo mais segura do que seus precedentes. Se voc quiser compartilhar arquivos ou diretrios em seu sistema com outros usurios de rede, selecione esta caixa. Sam ba O Samba uma implementao do protocolo de rede SMB de propriedade da Microsoft. Se voc precisar compartilhar arquivos, diretrios ou impressoras conectadas localmente com mquinas Microsoft Windows, selecione esta caixa.

Red Hat Enterprise Linux 6 Guia de Segurana

87

2.5.2.4 . Outras Portas O Firewall Configuration T ool inclui uma seo Other ports para especificar portas padro IP como sendo confiveis pelo iptables. Por exemplo, para permitir que o IRC e protocolo de impressora da internet (IPP) passe pelo firewall, adicione o seguinte para a seo Other ports: 194 :tcp,631:tcp 2.5.2.5. Salvando Configuraes Clique em OK para salvar as mudanas e habilitar ou desabilitar o firewall. Se o item Habilitar o firewall foi selecionado, as opes selecionadas so traduzidas para os comandos do iptables e gravadas no arquivo /etc/sysconfig/iptables. O servio iptables tambm iniciado para que o firewall seja ativado imediatamente aps salvar as opes selecionadas. Se o Disable firewall foi selecionado, o arquivo /etc/sysconfig/iptables ser removido e o servio iptables ser interrompido imediatamente. As opes selecionadas so tambm gravadas no arquivo /etc/sysconfig/system -configfirewall para que as configuraes possam ser restauradas na prxima vez que o aplicativo for iniciado. No edite este arquivo manualmente. Embora o firewall seja ativado imediatamente, o servio iptables no configurado para iniciar automaticamente durante a inicializao. Consulte a Seo 2.5.2.6, Ativando o Servio IPT ables. para mais informaes. 2.5.2.6. Ativando o Servio IPT ables. As regras do firewall so ativas somente se o servio iptables estiver em execuo. Para iniciar manualmente o servio, use o seguinte comando:
[root@myServer ~] # service iptables restart

Para se certificar que o iptables inicia-se quando o sistema inicializado, use o seguinte comando:
[root@myServer ~] # chkconfig --level 345 iptables on

2.5.3. Usando IPT ables O primeiro passo para usar o iptables iniciar o servio iptables. Use o seguinte comando para iniciar o servio iptables:
[root@myServer ~] # service iptables start

Nota
O servio ip6tables pode ser delisgado se voc desejar usar somente o servio iptables. Se desativar o ip6tables lembre-se de desativar a rede IPv6 tambm. Nunca deixe um dispositivo de rede ativo sem um firewall. Para forar o iptables a iniciar por default quando o sistema for inicializado, use o seguinte comando:
[root@myServer ~] # chkconfig --level 345 iptables on

88

Captulo 2. Protegendo sua Rede

Para forar o iptables a iniciar sempre que o sistema inicializar em runlevel 3, 4, ou 5. 2.5.3.1. Sintaxe de Comandos do IPT ables O exemplo a seguir de comando iptables ilustra a sintaxe de comando bsica:
[root@myServer ~ ] # iptables -A <chain> -j <target>

A opo -A especifica a regra a ser adicionada ao <chain>. Cada corrente comprimida em um ou mais regras, e portanto tambm conhecida como um ruleset. As trs correntes embutidas so INPUT , OUT PUT , e FORWARD. Estas correntes so permanentes e no podem ser removidas. A corrente especifica o ponto no qual o pacote manipulado. A opo -j <target> especifica o alvo da regra; ex: o que fazer se o pacote coincide com a regra. Exemplos de alvos embutidos so ACCEPT , DROP e REJECT . Consulte o pgina man do iptables para mais informaes sobre as correntes disponveis, opes e alvos. 2.5.3.2. Polticas de Firewall Bsicas Estabelecer polticas de firewall bsicas cria uma fundao para construir regras definidas por usurios detalhadas. Cada corrente iptables contm uma poltica padro e zero ou mais regras que funcionam em conjunto com a poltica padro para definir o conjunto de regras (ruleset) geral para o firewall. A poltica padro para uma corrente pode ser DROP ou ACCEPT . Os administradores preocupados com a segurana geralmente implementam uma poltica padro DROP, e somente permitem pacotes especficos de acordo com cada caso. Por exemplo, as seguintes polticas bloqueiam todos os pacotes de entrada e sada em uma gateway de rede:
[root@myServer ~ ] # iptables -P INPUT DROP [root@myServer ~ ] # iptables -P OUTPUT DROP

T ambm recomendado qualquer trfego de rede de pacotes enviados que deva ser roteado do firewall para seu n de destino seja negado tambm, para clientes internos restritos de exposies inadvertentes internet. Para fazer isto, use a seguinte regra:
[root@myServer ~ ] # iptables -P FORWARD DROP

Depois que voc estabeleceu as polticas padres para cada corrente, voc pode criar e salvar regras para sua rede particular e requerimentos de segurana. As seguintes sees descrevem como salvar regras de iptables e delimitar algumas regras que possam implementar durante a construo de seu firewall iptables. 2.5.3.3. Salvando e Restaurando as Regras IPT ables Mudanas para o iptables so transitrias; se o sistema for reinicializado ou se o servio iptables for reiniciado, as regras sero removidas automaticamente e redefinidas. Para salvar as regras para que sejam carregadas quando o servio iptables iniciado, use o seguinte comando:
[root@myServer ~ ] # service iptables save

Red Hat Enterprise Linux 6 Guia de Segurana

89

As regras so armazenadas no arquivo /etc/sysconfig/iptables e so aplicadas sempre que o servio iniciado ou quando a mquina reinicializada. 2.5.4 . Filtros de IPT ables Comuns Impedir invasores remotos de acessar uma LAN o aspecto mais importante de segurana de rede. A integridade da LAN deve ser protegida de usurios remotos mal-intencionados durante o uso de regras de firewall. No entanto, com uma poltica padro definida para bloquear todos os pacotes enviados, entrada e sada, impossvel para o firewall/gateway e usurios internos da LAN de se comunicarem uns com os outros ou com recursos externos. Para permitir que usurios realizem funes relacionadas rede e usar os aplicativos de rede, administradores devem abrir certas portas para comunicao. Por exemplo, para permitir acesso porta 80 no firewall adicione a seguinte regra:
[root@myServer ~ ] # iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

Esta regra permite que usurios naveguem websites que comunicam usando a porta padro 80. Para permitir acesso websites seguros (por exemplo, https://www.example.com/), voc tambm precisar fornecer acesso porta 443, como se segue:
[root@myServer ~ ] # iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

Importante
Ao criar um conjunto de regras iptables, a ordem importante. Se uma regra especificar que qualquer pacote da sub-rede 192.168.100.0/24 seja despejada, e seja seguido de uma regra que permite pacotes do 192.168.100.13 ( o qual est dentro da subrede que foi despejada), ento a segunda regra ignorada. A regra para permitir pacotes do 192.168.100.13 deve preceder a regra que despeja o restante da sub-rede. Para inserir uma regra em um local especfico em uma corrente existente, use a opo -I. Por exemplo:
[root@myServer ~ ] # iptables -I INPUT 1 -i lo -p all -j ACCEPT

Esta regra inserida como a primeira regra na corrente INPUT para permitir trfego de dispositivo loopback local. Pode haver vezes que voc requer acesso remoto LAN. Servios seguros, por exemplo SSH, podem ser usados para conexo remota criptografada servios LAN. Administradores com recursos baseados em PPP (como os bancos de modem ou contas ISP em massa) acesso discado pode ser usado para evitar barreiras de firewall de forma segura. Como so conexes diretas, as conexes de modem se encontram geralmente atrs de um firewall/gateway. No entanto, para usurios remotos com conexes de banda larga, so reservados casos especiais. Voc pode configurar o iptables para aceitar conexes de clientes remotos SSH. Por exemplo, as regras a seguir permitem acesso SSH remoto:
[root@myServer ~ ] # iptables -A INPUT -p tcp --dport 22 -j ACCEPT [root@myServer ~ ] # iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

90

Captulo 2. Protegendo sua Rede

Estas regras permitem acesso de entrada e sada para um sistema individual, como um PC nico conectado diretamente Internet ou um firewall/gateway. No entanto, eles no permitem que ns por detrs de firewall/gateway acessem estes servios. Para permitir acesso da LAN estes servios, use Network Address Translation (NAT ) com as regras de filtro do iptables. 2.5.5. FORWARD e Regras NAT A maioria dos ISPs fornecem somente um nmero limitado de endereos IP roteveis publicamente empresa que eles servem. Os administradores devem portanto encontrar formas alternativas de compartilhar acesso servios de Internet sem fornecer endereos IP pblicos todos os ns na LAN. O uso de endereos IP privados a forma mais comum de permitir que todos os ns em uma LAN acessem adequadamente servios de rede internos e externos. Roteadores de Limite (como os firewalls) podem receber transmisses de entrada de Internet e rotear pacotes para o ns da LAN pretendido. Ao mesmo tempo, os firewalls/gateways podem tambm rotear requisies de sada de um n de LAN para servio de Internet remoto. Este encaminhamento de trfego de rede pode se tornar perigoso, especialmente com a disponibilidade de ferramentas modernas de intruso que podem fazer o spoof de endereos IP internos e fazer com que a mquina remota do invasor aja como um n em sua LAN. Para evitar isto, o iptables fornece polticas de roteao e encaminhamento que podem ser implementadas para impedir o uso anormal dos recursos de rede. A corrente FORWARD permite que um administrador controle onde os pacotes podem ser roteados dentro de uma LAN. Por exemplo, para permitir o encaminhamento de uma LAN inteira (considerando-se que o firewall/gateway receba um endereo IP na eth1), use as regras a seguir:
[root@myServer ~ ] # iptables -A FORWARD -i eth1 -j ACCEPT [root@myServer ~ ] # iptables -A FORWARD -o eth1 -j ACCEPT

Esta regra d acesso sistemas por detrs de firewall/gateway rede interna. O gateway roteia pacotes de um n de LAN ao seu n de destino, passando todos os pacotes por seu dispositivo eth1 .

Red Hat Enterprise Linux 6 Guia de Segurana

91

Nota
Por padro, a poltica IPv4 nos kernels do Red Hat Enterprise Linux desabilitam o suporte de encaminhamento de IP. Isto evita que mquinas rodando o Red Hat Enterprise Linux funcionem como roteadores de limite dedicado. Para habilitar o encaminhamento de IP, use o seguinte comando:
[root@myServer ~ ] # sysctl -w net.ipv4.ip_forward=1

Esta mudana de configurao vlilda somente para a sesso atual; no persiste atravs de reinicializaes ou reincio de servio de rede. Para definir o encaminhamento de IP permanentemente, edite o arquivo /etc/sysctl.conf como a seguir: Localize a linha a seguir:
net.ipv4.ip_forward = 0

Edite-o para fica como a seguir:


net.ipv4.ip_forward = 1

Use o seguinte comando para permitir mudanas no arquivo sysctl.conf :


[root@myServer ~ ] # sysctl -p /etc/sysctl.conf

2.5.5.1. Postrouting e Mascaramento de IP Aceitar pacotes encaminhados via dispositivo de IP interno do firewall permite que os ns da LAN se comuniquem entre si; no entanto eles ainda no podero se comunicar fora da Internet. Para permitir ns da LAN com endereos IP privados se comunicarem com redes externas pblicas, configure o firewall para IP masquerading, o qual mascara requisies dos ns da LAN com endereos IP do dispositivo externo do firewall (neste caso eth0):
[root@myServer ~ ] # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Esta regra usa a tabela de coincidncias do pacote NAT (-t nat) e especifica a corrente POST ROUT ING embutida para o NAT (-A POST ROUT ING ) no dispositivo de rede externo do firewall (o eth0 ). O POST ROUT ING permite que os pacotes sejam alterados a medida que deixam o dispositivo externo do firewall. O alvo -j MASQUERADE especificado para mascarar o endereo IP de um n com o endereo IP externo do firewall/gateway. 2.5.5.2. Pre roteamento Se voc possuir um servidor em sua rede interna que voc queira disponibilizar externamente, voc pode usar o alvo -j DNAT da corrente PREROUT ING no NAT para especificar um endereo IP de destino e porta para onde pacotes de entrada requisitando uma conexo para seu servio interno possam ser encaminhados Por exemplo, se voc quiser encaminhar requisies HT T P de entrada para seu Servidor Apache HT T P no 172.31.0.23, use o seguinte comando:

92

Captulo 2. Protegendo sua Rede

[root@myServer ~ ] # iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 172.31.0.23:80

Esta regra especifica que a tabela nat use a corrente PREROUT ING embutida para enviar requisies HT T P de entrada exclusivamente para o endereo IP de destino listado do 172.31.0.23.

Nota
Se voc possuir uma poltica padro de DROP em sua corrente FORWARD, voc precisa adicionar uma regra para enviar todas as requisies HT T P de entrada para que o roteamento de destino NAT seja possvel. Para fazer isto, use o seguinte comando:
[root@myServer ~ ] # iptables -A FORWARD -i eth0 -p tcp --dport 80 -d 172.31.0.23 -j ACCEPT

Esta regra encaminha todas as requisies de HT T P do firewall para o destino pretendido; o servidor Apache HT T P por detrs do firewall.

2.5.5.3. DMZ s e IPT ables Voc pode criar as regras de comando iptables para rotear o trfego para certas mquinas, tal como o servidor dedicado HT T P ou FT P, em um demilitarized zone (DMZ ). Um DMZ uma sub-rede local especial dedicada para fornecer servios em uma portador pblico, tal como a Internet. Por exemplo, para estabelecer uma regra para requisies de entrada HT T P de roteamento para um servidor HT T P dedicado em 10.0.4.2 (fora da classe do 192.168.1.0/24 da LAN), o NAT usa a tabela PREROUT ING para encaminhar os pacotes para o destino apropriado:
[root@myServer ~ ] # iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.0.4.2:80

Com este comando, todas as conexes para a porta 80 de fora da LAN so roteadas para o servidor HT T P em uma rede separada do resto da rede interna. Esta forma de segmentao de rede pode ser mais segura do que permitir conexes de HT T P para uma mquina na rede. Se o servidor HT T P for configurado para aceitar conexes seguras, ento a porta 443 deve ser encaminhada tambm. 2.5.6. Softwares Maliciosos e Spoof de Endereos IP Regras mais elaboradas podem ser criadas para controlar acesso sub-redes especficas ou at ns especficos, dentro de uma LAN. Voc pode tambm restringir certos aplicativos duvidosos ou programas tais como trojans, worms e outros vrus de clientes/servidores de contatar seus servidores. Por exemplo, alguns trojans escaneiam redes procurando servios na portas de 31337 at 31340 (chamadas de portas elite na terminologia dos crackers). Como no h mais servios legtimos que se comunicam via estas portas no padro, bloque-las pode diminuir efetivamente as chances que ns potencialmente infectados em sua rede se comuniquem de forma independente com seus servidores mestre remotos. As seguintes regras derrubam todo o trfego do T CP que tentam usar a porta 31337:

Red Hat Enterprise Linux 6 Guia de Segurana

93

[root@myServer ~ ] # iptables -A OUTPUT -o eth0 -p tcp --dport 31337 --sport 31337 -j DROP [root@myServer ~ ] # iptables -A FORWARD -o eth0 -p tcp --dport 31337 --sport 31337 -j DROP

Voc tambm pode bloquear conexes de fora que tentam fazer spoof de variaes de endereo IP privados para infiltrar sua LAN. Por exemplo, se sua LAN usa a classe 192.168.1.0/24, voc pode criar uma regra que instrui o dispositivo de rede de internet (por exemplo , eth0) para derrubar todos os pacotes naquele dispositivo com um endereo em sua classe de IP de LAN. Pelo motivo que recomendado rejeitar pacotes encaminhados como poltica padro, qualquer outro endereo IP forjado ao dispositivo que lida com dados externos (eth0) rejeitado automaticamente.
[root@myServer ~ ] # iptables -A FORWARD -s 192.168.1.0/24 -i eth0 -j DROP

Nota
Existe uma distino entre o DROP e alvos REJECT ao lidar com as regras adicionadas. O alvo REJECT nega acesso e retorna um erro de conexo negada para usurios que tentam se conectar ao servio. O alvo DROP , como o nome implica, despeja o pacote sem qualquer aviso. Os administradores podem usar sua prpria discrio ao usar estes alvos. No entanto, para evitar confuso do usurio e tentativa de continuar se conectar, o alvo REJECT recomendado.

2.5.7. IPT ables e Rastreamento de Conexo Voc pode inspecionar e restringir conexes servios baseados em seus estados de conexo. Um mdulo dentro do iptables usa um mtodo chamado rastreamento de conexo para armazenar informaes sobre conexes de entrada. Voc pode permitir ou negar acesso baseado nos seguintes estados de conexo: NEW Um pacote que requer uma nova conexo, tal como uma requisio HT T P. EST ABLISHED Um pacote que parte de uma conexo existente. RELAT ED Um pacote que est requisitando uma nova conexo mas parte de uma conexo existente. Por exemplo, o FT P usa a porta 21 para estabelecer uma conexo, mas os dados so transferidos em uma porta diferente (geralmente a porta 20). INVALID Um pacote que no parte de nenhuma conexo na tabela de rastreamento de conexo. Voc pode usar a funcionalidade stateful (com estado) da conexo iptables rastreando com qualquer protocolo de rede, at mesmo se o prprio protocolo stateless (sem estado) assim como o UDP. O exemplo a seguir mostra uma regra que usa o rastreamento de conexo para enviar somente os pacotes que so associados com uma conexo estabelecida:
[root@myServer ~ ] # iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

2.5.8. IPv6 A introduo do Protocolo de Internet de prxima gerao, chamado IPv6 expande alm do endereo do limite de 32 bits do IPv4 (ou IP). O IPv6 suporta endereos de 128 bits e portadores de redes que

94

Captulo 2. Protegendo sua Rede

aceitam IPv6 so portanto capazes de controlar um nmero maior de endereos roteveis do que o IPv4. O Red Hat Enterprise Linux suporta as regras do firewall IPv6 usando o subsistema do Netfilter 6 e o comando ip6tables. No Red Hat Enterprise Linux 6, ambos servios IPv4 e IPv6 so habilitados por padro. A sintaxe do comando ip6tables idntica ao iptables em todos os aspectos exceto que ele suporta os endereos 128 bits. Por exemplo, use o seguinte comando para habilitar as conexes SSH em um servidor de rede consciente do IPv6:
[root@myServer ~ ] # ip6tables -A INPUT -i eth0 -p tcp -s 3ffe:ffff:100::1/128 -dport 22 -j ACCEPT

Para mais informaes sobre a rede IPv6, consulte a Pgina de informaes do IPv6 em http://www.ipv6.org/. 2.5.9. Recursos Adicionais Existem diversos aspectos do firewall e do subsistema Linux Netfilter que talvez no sejam vistos neste captulo. Para mais informaes, consulte os recursos a seguir. 2.5.9.1. Documentao de Firewall Instalada Consulte a Seo 2.6, IPT ables para mais informaes detalhadas sobre o comando iptables incluindo definies para diversas opes de comando. A pgina man do iptables contm um breve sumrio de diversas opes. 2.5.9.2. Websites de Firewall teis http://www.netfilter.org/ A homepage oficial do Netfilter e do projeto iptables. http://www.tldp.org/ O Projeto de Documentao do Linux contm diversos guias teis relacionados criao de firewall e administrao. http://www.iana.org/assignments/port-numbers A lista oficial de portas de servios comuns e registrados atribudos pelo Internet Assigned Numbers Authority. 2.5.9.3. Documentao Relacionada Red Hat Linux Firewalls, by Bill McCarty; Red Hat Press uma referncia compreensiva para construo de redes e firewalls de servidor usando uma tecnologia de filtro de pacote de cdigo aberto como o Netfilter e o iptables. Ele inclui tpicos que cobrem anlise de logs de firewall, desenvolvimento de regras de firewall e padronizao de seu firewall usando diversas ferramentas grficas. Linux Firewalls, by Robert Z iegler; New Riders Press Contm informaes ricas sobre a construo de firewalls usando o 2.2 kernel ipchains, como tambm o Netfilter e iptables. T ambm so tratados tpicos de segurana adicionais como os problemas de acesso remoto e sistemas de deteco de intruso.

2.6. IPTables
Includos com o Red Hat Enterprise Linux esto ferramentas avanadas para filtragem de pacotes de rede o processo de controlar pacotes de rede conforme entram, se movem e saem da pilha de rede dentro do kernel. As verses do kernel anteriores 2.4 que confiavam no ipchains para filtragem de pacotes e usavam listas de regras aplicadas ao pacote em cada passo do processo de filtragem. O

Red Hat Enterprise Linux 6 Guia de Segurana

95

kernel 2.4 introduziu o iptables (tambm chamado de netfilter), o qual semelhante ao ipchains mas expande o alcance e controle disponveis para filtrar pacotes de rede. Este captulo foca no conhecimento bsico de filtragem de pacote, explica diversas opes disponveis com os comandos iptables, e explica como regras de filtragem podem ser preservadas entre as reinicializaes de sistema. Consulte a Seo 2.6.6, Recursos Adicionais para instrues sobre como construir regras de iptables e instalar um firewall baseado nestas regras.

Importante
O mecanismo de firewall padro no kernel 2.4 e verses posteriores o iptables, mas o iptables no pode ser usado se o ipchains j estiver sendo executado. Se o ipchains estiver presente durante a inicializao, o kernel emite um erro e no inicia o iptables. A funcionalidade do ipchains no foi afetada por estes erros.

2.6.1. Filtro de Pacote O kernel Linux usa o servio do Netfilter para filtrar pacotes, permitindo que alguns deles sejam recebidos ou passados pelo sistema enquanto outros so interrompidos. Este servio embutido no kernel do Linux e possui trs tabelas ou listas de regras embutidos, como se segue: filter A tabela padro para manipular pacotes de rede. nat Usado para alterar pacotes que criam uma nova conexo e usado para o Network Address Translation (NAT ). m angle Usado para tipos especficos de alterao de pacote. Cada tabela possui um grupo de correntes (chains), que correspondem s aes realizadas no pacote pelo netfilter . As correntes (chains) embutidas para a tabela do filtragem so estas: INPUT Se aplica aos pacotes de rede que so direcionados para o host. OUTPUT Se aplica ao pacotes de rede gerados localmente. FORWARD Se aplica aos pacotes de rede roteados no host. As correntes embutidas para a tabela nat so estas: PREROUTING Altera os pacotes de rede quando chegam. OUTPUT Altera os pacotes de rede gerados localmente antes de serem enviados.. POSTROUTING Altera pacotes de rede antes de serem enviados. As chains (correntes) embutidas para a tabela m angle so estas: INPUT Altera pacotes de rede alvo para a mquina. OUTPUT Altera os pacotes de rede gerados localmente antes de serem enviados.. FORWARD Altera pacotes de rede roteados pela mquina. PREROUTING Altera pacotes de entrada antes de serem roteados. POSTROUTING Altera pacotes de rede antes de serem enviados. Cada pacote de rede recebido por ou enviado de um sistema Linux est sujeito ao menos uma tabela. No entanto, um pacote pode estar sujeito diversas regras dentro de cada tabela antes de emergir no

96

Captulo 2. Protegendo sua Rede

final da corrente. A estrutura e propsito destas regras podem variar, mas elas geralmente procuram identificar um pacote que vem ou vai um endereo IP especfico, ou conjunto de endereos, ao usar um determinado protocolo e servio de rede. A imagem a seguir apresenta como os pacotes so examinados pelo subsistema do iptables:

Nota
Por padro, as regras de firewall so salvas nos arquivos /etc/sysconfig/iptables ou /etc/sysconfig/ip6tables . O servio iptables inicia antes dos servios relacionados ao DNS quando um sistema Linux inicializado. Isto significa que as regras do firewall podem somente fazer referncia endereos de IP numricos (por exemplo, 192.168.0.1). Nomes do domnio (por exemplo, host.example.com) em tais regras, produzem erros. Seja qual for o destino, quando os pacotes coincidem com uma regra especfica em uma das tabelas, um alvo ou ao aplicado eles. Se a regra especifica um alvo ACCEPT para um pacote coincidente, o pacote pula o restante das verificaes de regras e permitido que continue com seu destino. Se uma regra especifica um alvo DROP , aquele pacote recusado ter acesso ao sistema e nada retornado ao host que enviou ou pacote. Se uma regra especifica um alvo QUEUE , o pacote passado ao espao de usurio. Se uma regra especifica o alvo opcional REJECT , o pacote despejado, mas um pacote de erro enviado ao originador do pacote. T oda corrente possui uma poltica padro para ACCEPT , DROP , REJECT , ou QUEUE . Se nenhuma destas regras na corrente se aplicar ao pacote, ento o pacote ser lidado de acordo com a poltica padro. O comando iptables configura estas tabelas, assim como instala tabelas se necessrio. 2.6.2. Opes de Comando para IPT ables. Regras para filtrar pacotes so criadas usando o comando iptables. Se os aspectos a seguir de um pacote so usados geralmente como um critrio: Packet Type Especifica os tipos de pacotes que o comando filtra. Packet Source/Destination Especifica quais pacotes o comando filtra baseado na fonte ou destino do pacote. Target Especifica qual ao tomada nos pacotes que coincidem com o critrio acima. Consulte a Seo 2.6.2.4, Opes de Coincidncia de IPT ables e a Seo 2.6.2.5, Opes de Alvo para mais informaes sobre opes especficas que se referem estes aspectos de um pacote. As opes usadas com as regras iptables especficas devem ser agrupadas de forma lgica,

Red Hat Enterprise Linux 6 Guia de Segurana

97

baseadas no propsito e condies da regra geral, para a regra ser vlida. O restante desta seo explica opes mais utilizadas para o comando iptables. 2.6.2.1. Estrutura das Opes do Comando IPT ables Muitos comandos iptables possuem a seguinte estrutura:
iptables [-t <table-name>] <command> <chain-name> \ <parameter-1> <option-1> \ <parameter-n> <option-n>

<table-name> Especifica qual tabela a regra se aplica. Se omitido, a tabela filter ser usada. <command> Especifica a ao a realizar, tal como adicionar ou remover uma regra. <chain-name> Especifica a corrente a editar, criar ou remover. <parameter>-<option> pairs Os parmetros e opes associadas que especificam como processar um pacote que coincide com a regra. O extenso e complexidade de um comando iptables pode mudar de forma significante, dependendo do seu propsito. Por exemplo, um comando que remove uma regra de uma corrente pode ser bastante curto: iptables -D <chain-name> <line-number> Em contraste, um comando que adiciona uma regra que filtra pacotes de uma sub-rede especfica usando uma variedade de parmetros e opes especficos, podem ser um tanto longos. Ao construir os comandos iptables, importante lembrar que alguns parmetros e opes requerem mais parmetros e opes para construir uma regra vlida. Isto pode produzir um efeito cascata, com os parmetros adicionais que requerem ainda mais parmetros. At que cada parmetro e opo que requerem outro conjunto de opes sejam atendidos, a regra no vlida. Digite iptables -h para visualizar uma lista compreensiva de estruturas de comando iptables. 2.6.2.2. Opes de Comando As Opes de Comando instruem o iptables a realizar uma ao especfica. Somente uma opo de comando permitida por comando iptables. Com a exceo do comando help, todos os comandos so escritos em letras maisculas. Os comandos iptables so: -A Adiciona a regra ao final da corrente especificada. Oposto opao -I descrita abaixo, esta opo no toma um argumento inteiro. Ele sempre adiciona a regra ao final da corrente especificada. -D <integer> | <rule> Remove uma regra em uma corrente especfica pelo nmero (como o 5 para a quinta regra em uma corrente), ou por uma especificao de regra. A especificao de regra deve coincidir exatamente uma regra existente. -E Renomeia uma corrente definida por usurio. Uma corrente definida por usurio qualquer corrente exceto as padres, correntes pr-existentes. (consulte a opo -N abaixo para informaes sobre como criar correntes definidas por usurio). Isto uma mudana de aparncia e no afeta a estrutura da tabela.

98

Captulo 2. Protegendo sua Rede

Nota
Se voc tentar renomear uma das correntes padres, o sistema ir reportar um erro de Correspondncia no encontrada (Match not found). Voc no poder renomear correntes padres. -F Libera a corrente selecionada, o qual remove efetivamente todas as regras na corrente. Se no for especificada nenhuma corrente, este comando liberar todas as regras de cada corrente. -h Fornece uma lista de estruturas de comando, assim como um sumrio rpido de parmetros de comando e opes. -I [<integer>] Insere a regra na corrente especificada em um ponto especificado por um argumento inteiro definido por um usurio. Se nenhum argumento especificado a regra inserida no topo da corrente.

Importante
Como notado acima, a ordem de regras em uma corrente determina quais regras se aplicam quais pacotes. Isto importante lembrar quando adicionar regras usando tanto a opo -A ou -I. Isto especialmente importante ao adicionar regras usando o -I com um argumento inteiro. Se voc especificar um nmero existente ao adicionar uma regra em uma corrente, o iptables adiciona a nova regra antes (ou acima) da regra existente. -L Lista todas as regras na corrente especificada aps o comando. Para listar todas as regras em todas as correntes na tabela de filtragem padro, no especifica uma corrente ou tabela. Caso contrrio a sintaxe deve ser usada para listar as regras em uma corrente especfica em uma tabela especfica:
iptables -L <chain-name> -t <table-name>

Opes adicionais para a opo de comando -L, que fornece nmeros de regra e permite mais verbosidade nas descries da regra, so descritas na Seo 2.6.2.6, Opes de Listagem. -N Cria uma nova corrente com um nome de usurio especfico. O nome de corrente deve ser nico, caso contrrio uma mensagem de erro exibida. -P Estabelece a poltica padro para a corrente especificada, para que quando pacotes passam por uma corrente inteira sem coincidir uma regra, eles so enviados para o alvo especificado, tal como ACCEPT ou DROP. -R Substitui uma regra na corrente especificada. O nmero de regra deve ser especificado aps o nome da corrente. A primeira regra em uma corrente corresponde regra nmero um. -X Remove uma corrente de usurio especfico. Voc no pode remover uma corrente embutida. -Z Estabelece os contadores de byte e pacote em todas as correntes para uma tabela para zero. 2.6.2.3. Opes de Parmetro de IPT ables Certos comandos do iptables, incluindo aqueles usados para adicionar, remover, inserir ou substituir regras dentro de uma corrente especfica, requer diversos parmetros para construir uma regra de filtro de pacote. -c Redefine os contadores para uma regra especfica. Este parmetro aceita as opes PKT S e BYT ES para especificar quais contadores redefinir.

Red Hat Enterprise Linux 6 Guia de Segurana

99

-d Estabelece o hostname de destino, endereo IP, ou rede de um pacote que coincide a regra. Quando coincidir uma rede, o seguinte formato de endereo IP/netmasks so suportados: N.N.N.N/M.M.M.M Onde N.N.N.N a classe de endereo IP e M.M.M.M o netmask. N.N.N.N/M Onde N.N.N.N o endereo IP e M o bitmask. -f Aplique estas regras somente pacotes fragmentados. Voc pode usar este caractere de ponto de exclamao (!) antes deste parmetro para especificar que somente os pacotes desfragmentados so coincidentes.

Nota
Distinguir entre os pacotes fragmentados e desfragmentados uma boa prtica, apesar dos pacotes fragmentados serem uma parte padro do protocolo IP. Inicialmente criado para permitir que pacotes IP viajem sob redes com tamanhos de estruturas diferentes, estas fragmentaes de dias so mais usadas para gerar ataques de DoS usando pacotes mal-formados. T ambm vale notar que a fragmentao retira totalmente a permisso. -i Define a interface de rede de entrada, como eth0 ou ppp0 . Com o iptables, este parmetro opcional pode ser usado somente com as correntes INPUT e FORWARD quando usado com a tabela filter e a corrente PREROUT ING com as tabelas nat e m angle . Este parmetro tambm suporta as seguintes opes especiais: Caractere de ponto de exclamao (!) Reverte a diretiva, o que significa que qualquer interface especificada excluda desta regra. Caractere de mais (+ ) Um caractere curinga usado para coincidir todas as interfaces que coincidem com a faixa especificada. Por exemplo, o parmetro -i eth+ aplicaria esta regra qualquer interface de Ethernet mas excluiria qualquer outra interface, tal como ppp0 . Se o parmetro -i usado mas nenhuma interface especificada, ento todas as interfaces so afetadas pela regra. -j Pula para o alvo especificado quando um pacote coincide uma regra particular. Os alvos padres so ACCEPT , DROP , QUEUE , e RET URN . Opes estendidas tambm esto disponveis atravs de mdulos carregados pelo padro com o Red Hat Enterprise Linux iptables pacote RPM. Alvos vlidos nestes mdulos incluem LOG , MARK, e REJECT , entre outros. Consulte a pgina man iptables para obter mais informaes sobre estes e outros alvos. Esta opo tambm pode ser usada para direcionar um pacote que coincide com uma regra em particular para uma corrente definida por um usurio fora da corrente atual, ento outras regras possam ser aplicadas ao pacote. Se no for especificado nenhum alvo, o pacote passa pela regra sem nenhuma ao. O contador para esta regra, no entanto, aumenta por um. -o Define a interface de rede de sada para uma regra. Esta opo vlida somente para correntes OUT PUT e FORWARD na tabela filter , e a corrente POST ROUT ING nas tabelas nat e m angle . Este parmetro aceita as mesmas opes que o parmetro de interface de rede de entrada (-i ). -p <protocol> Define o protocolo IP afetado pela regra. Este pode ser tanto o icm p , tcp , udp , ou all , ou pode ser um valor numrico, representando um destes ou um protocolo diferente. Voc pode usar qualquer protocolo listado no arquivo /etc/protocols. O protocolo " all " significa que a regra se aplica todos os protocolos suportados. Se nenhum protocolo for listado com esta regra, ele se torna retorna ao padro " all ". -s Define a fonte para um pacote especfico usando a mesma sintaxe como parmetro de destino

100
(-d ).

Captulo 2. Protegendo sua Rede

2.6.2.4 . Opes de Coincidncia de IPT ables Protocolos de rede diferentes fornecem opes de coincidncia especializadas que podem ser configuradas para coincidir um pacote especfico usando aquele protocolo. No entanto, o protocolo deve primeiro ser especificado no comando iptables. Por exemplo, -p <protocol-name> habilita as opes para o protocolo especificado. Note que voc tambm pode usar o ID de protoloco, ao invs do nome do protocolo. Consulte os seguintes exemplos, cada dos quais tem o mesmo efeito:
iptables -A INPUT -p icmp --icmp-type any -j ACCEPT iptables -A INPUT -p 5813 --icmp-type any -j ACCEPT

Definies de servio so fornecidas no arquivo /etc/services. Para definio legvel, recomenda-se que voc use os nomes de servios ao invs dos nmeros de porta.

AVISO
Proteja o arquivo /etc/services para prevenir edio no autorizada. Se este arquivo for editvel, invasores podem us-lo para habilitar portas em sua mquina que voc tenha fechado. Para proteger este arquivo, digite os seguintes comandos como usurio root:
[root@myServer ~]# chown root.root /etc/services [root@myServer ~]# chmod 0644 /etc/services [root@myServer ~]# chattr +i /etc/services

Isto evita que o arquivo seja renomeado, removido ou ter links apontados para ele.

2.6.2.4 .1. Protocolo T CP Estas opes de coincidncia esto disponveis para o protocolo T CP (-p tcp ): --dport Define a porta de destino para o pacote. Para configurar esta opo, use um nome de servio de rede (tal como o www ou smtp); um nmero de porta; ou uma classe de nmeros de porta. Para especificar uma classe de nmeros de porta, separe os dois nmeros com dois pontos (:). Por exemplo: -p tcp --dport 3000:3200 . A classe vlida maior 0:65535 . Use um ponto de exclamao (!) antes da opo --dport para coincidir todos os pacotes que no usam aquele servio ou porta de rede. Para navegar pelos nomes e aliases de servios de rede e nmeros de porta que eles usam, visualize o arquivo /etc/services. A opo de coincidncia do --destination-port sinnima da --dport. --sport Define a porta fonte do pacote usando as mesmas opes que --dport. A opo de coincidncia --source-port sinnimo da --sport. --syn Se aplica todos os pacotes T CP criados para iniciar a comunicao, geralmente chamada de pacotes SYN. Quaisquer pacotes que carreguem um bloco de dados no so tocados. Use um ponto de exclamao (!) antes da opo --syn para coincidir com todos os pacotes que no so SYN. --tcp-flags <tested flag list> <set flag list> Permite que pacotes T CP que possuem especficos bits (sinalizadores) definidos, coincidirem com uma regra.

Red Hat Enterprise Linux 6 Guia de Segurana

101

A opo de coincidncia --tcp-flags aceita dois parmetros. O primeiro parmetro a mscara; uma lista separada por vrgula de sinalizadores a serem examinados no pacote. O segundo parmetro uma lista separada por vrgula de sinalizadores que devem ser definidos para a regra que coincidir. Os possveis sinalizadores so: ACK FIN PSH RST SYN URG ALL NONE Por exemplo, uma regra iptables que contenha a seguinte especificao somente coincide com pacotes T CP que possuem o sinalizador SYN definido e os sinalizadores ACK e FIN no definidos: --tcp-flags ACK,FIN,SYN SYN Use o ponto de exclamao (!) antes do --tcp-flags para reverter o efeito da opo de coincidncia. --tcp-option T enta coincidir com as opes de T CP especficas que podem ser definidas dentro de um pacote particular. Esta opo coincidente tambm pode ser revertida com o ponto de exclamao (!). 2.6.2.4 .2. Protocolo UDP Estas opes de coincidncia esto disponveis para o protocolo UDP (-p udp ): --dport Especifica a porta de destino do pacote UDP, usando o nome de servio, nmero de porta ou classe de nmero de portas. A opo de coincidncia --destination-port sinnima de --dport. --sport Especifica a porta fonte do pacote UDP, usando o nome de servio, nmero de porta, ou classe de nmeros de porta. A opo coincidente --source-port sinnima com --sport. Para as opes --dport e --sport, para especificar uma classe de nmeros de portas, separe os dois nmeros com dois pontos (:). Por exemplo: -p tcp --dport 3000:3200 . A maior classe vlida aceitvel 0:65535. 2.6.2.4 .3. Protocolo ICMP As opes de coincidncia a seguir esto disponveis para o Internet Control Message Protocol (ICMP) (-p icm p ): --icm p-type Define o nome e nmero do tipo de ICMP para coincidir com a regra. Uma lista de nomes ICMP vlidos pode ser recuperada digitando o comando iptables -p icm p -h . 2.6.2.4 .4 . Mdulos de Opo de Coincidncia Adicional Opes de coincidncia adicionais esto disponveis atravs de mdulos carregados pelo comando iptables. Para usar um mdulo de opo de coincidncia, carregue o mdulo pelo nome usando o -m <modulename>, onde <module-name> o nome do mdulo.

102

Captulo 2. Protegendo sua Rede

Muitos mdulos esto disponveis por padro. Voc tambm pode criar mdulos para fornecer funcionalidade adicional. Segue uma lista parcial dos mdulos mais usados: mdulo lim it Coloca limites em quantos pacotes so coincididos em uma regra especfica. Quando usado em conjunto com o alvo LOG , o mdulo lim it pode evitar uma inundao de pacotes coincidentes de encher o log do sistema com mensagens repetitivas ou usar os recursos do sistema. Consulte a Seo 2.6.2.5, Opes de Alvo para mais informaes sobre o alvo LOG . O mdulo lim it habilita as seguintes opes: --lim it Define o nmero mximo de coincidncias para um perodo de tempo especfico, especificado como um par <value>/<period>. Por exemplo, usando o --lim it 5/hour permite-se cinco coincidncias de regras por hora. Perodos podem ser especificados em segundos, minutos, horas ou dias. Se um modificador de nmero e tempo no forem utilizados, o valor padro de 3/hour assumido. --lim it-burst Define um limite em um nmero de pacotes capazes de coincidir uma regra em uma vez. Esta opo especificada como um nmero inteiro e deve ser usada em conjunto com a opo -lim it. Se no for especificado nenhum valor, o valor padro de cinco (5) ser assumido. mdule state Habilita coincidncia de estado. O mdulo state habilita as seguintes opes: --state coincide um pacote com os seguintes estados de conexes: EST ABLISHED O pacote coincidente associado com outros pacotes em uma conexo estabelecida. Voc precisa aceitar este estado se voc quiser manter uma conexo entre um cliente e um servidor. INVALID O pacote coincidente no pode ser ligado uma conexo conhecida. NEW O pacote coincidente est tanto criando uma nova conexo ou parte de uma conexo de duas vias ainda no vista. Voc precisa aceitar este estado se voc quiser permitir novas conexes para um servio. RELAT ED O pacote coincidente inicia uma nova conexo relacionada de alguma forma a uma conexo existente. Um exemplo disto o FT P que usa uma conexo para o controle de trfego (porta 21), e uma conexo separada para a transferncia de dados (porta 20). Estes estados de conexo podem ser usados em conjunto um com o outro separando-os com com vrgulas, tais como -m state --state INVALID,NEW. m ac module Habilita coincidncia do endereo MAC de hardware. O mdulo m ac habilita a seguinte opo: --m ac-source Coincide um endereo MAC de placa de interface de rede que enviou o pacote. Para excluir um endereo MAC de uma regra, coloque um ponto de exclamao (!) antes da opo de coincidncia --m ac-source . Consulte a pgina man iptables para mais opes de coincidncia disponveis atravs de mdulos. 2.6.2.5. Opes de Alvo Quando um pacote coincidiu uma regra especfica, a regra pode direcionar o pacote para diversos alvos diferentes que determinam a ao apropriada. Cada corrente possui um alvo padro, que usado se nenhuma das regras na corrente coincidir um pacote ou se nenhuma das regras que coincidem com o pacote especificarem um alvo.

Red Hat Enterprise Linux 6 Guia de Segurana

103

Seguem os alvos padres: <user-defined-chain> Uma corrente definida pelo usurio dentro da tabela. Nomes de correntes definidas pelo usurio devem ser nicas. Este alvo passa o pacote corrente especificada. ACCEPT Permite o pacote passar para seu destino ou para outra corrente. DROP Despeja o pacote sem responder ao requisitante. O sistema que enviou o pacote no notificado da falha. QUEUE O pacote enfileirado para manuseio por um aplicativo do espao de usurio. RET URN Para a verificao de pacote contra as regras na corrente atual. Se o pacote com um alvo RET URN coincide com uma regra em uma corrente chamada de outra corrente, o pacote retornado primeira corrente para retomar a verificao de regra onde ele parou. Se a regra RET URN for usada em uma corrente embutida e o pacote no puder mover para sua corrente anterior, o alvo padro para a corrente atual ser usado. Alm disso, as extenses esto disponveis que permitem outros alvos a serem especificados. Estas extenses so chamadas de mdulos alvo ou mdulos de opo coincidente e se aplicam mais s tabelas especficas e situaes. Consulte a Seo 2.6.2.4.4, Mdulos de Opo de Coincidncia Adicional para obter mais informaes sobre mdulos de opo de coincidncia. Muitos mdulos de alvo estendidos existem, a maioria deles s se aplica tabelas especficas ou situaes. Alguns dos mdulos de alvo mais populares includos por padro no Red Hat Enterprise Linux so: LOG Registra em log todos os pacotes que coincidem com esta regra. Como os pacotes so autenticados pelo kernel, o arquivo /etc/syslog.conf determina onde estas entradas de log so escritas. Por padro, elas so colocadas no arquivo /var/log/m essages. Opes adicionais podem ser usadas aps o alvo LOG para especificar a forma na qual a autenticao ocorre: --log-level Define o nvel de prioridade de um evento de log. Consulte a pgina man syslog.conf para obter uma lista de nveis de prioridade. --log-ip-options Registra em log qualquer opo definida no cabealho de um pacote IP. --log-prefix Coloca uma faixa de at 29 caracteres antes da linha do log quando ela escrita. Isto til para escrever filtros de syslog para usar em conjunto com registro em log dos pacotes.

Nota
Devido um problema com esta opo, voc precisa adicionar um espao direita ao valor log-prefix . --log-tcp-options Registra em log qualquer opo definida no cabealho de um pacote de T CP. --log-tcp-sequence Escreve o nmero sequencial de T CP para o pacote no log. REJECT Envia um pacote de erro de volta ao sistema remoto e despeja o pacote. O alvo REJECT aceita --reject-with <type> (onde <type> o tipo de rejeio) permitindo mais informaes detalhadas a serem retornadas com pacote de erro. A mensagem portunreachable o tipo de erro padro dado se nenhuma opo for utilizada. Consulte a pgina man iptables para obter uma lista completa de opes <type>. Outras extenses de alvo, incluindo diversos que so teis para o mascaramento do IP usando a tabela

104

Captulo 2. Protegendo sua Rede

nat, ou com a alterao do pacote usando a tabela m angle , podem ser encontradas na pgina man do iptables . 2.6.2.6. Opes de Listagem O comando da lista padro, iptables -L [<chain-nam e>] , fornece uma viso geral bsica das correntes atuais. As opes adicionais fornecem mais informaes: -v Exibe resultado de verbosidade, tal como o nmero de pacotes e bytes que cada corrente processou, o nmero de pacotes e bytes que cada regra coincidiu e quais as interfaces que se aplicam regra especfica. -x Expande nmeros para seus valores exatos. Em um sistema ocupado, o nmero de pacotes e bytes processados por uma corrente especfica ou regra pode ser abreviada para Kilobytes, Megabytes (Megabytes) ou Gigabytes. Esta opo fora o nmero completo a ser exibido. -n Exibe os endereos IP e os nmeros de porta em formato numrico, ao invs do hostname padro e o formato de servio de rede. --line-num bers Lista regras em cada corrente prxima ordem numrica na corrente. Esta opo til para quando tentar remover a regra especfica em uma corrente ou localizar onde inserir uma regra dentro de uma corrente. -t <table-nam e> Especifica um nome de tabela. Se omitido, torna-se tabela de filtro por padro. 2.6.3. Salvando Regras de IPT ables Regras criadas com o comando iptables so armazenadas na memria. Se o sistema for reiniciado antes de salvar o conjunto de regras do iptables, todas as regras sero perdidas. Para as regras do netfilter persistirem atravs da inicializao do sistema, elas precisam ser salvas. Para salvar as regras netfilter, digite o seguinte comando como root:
/sbin/service iptables save

Este executa o script init do iptables que roda o programa /sbin/iptables-save e escreve a configurao do iptables atual em /etc/sysconfig/iptables. O arquivo /etc/sysconfig/iptables existente salvo como /etc/sysconfig/iptables.save . A prxima vez que o sistema inicializar, o script init do iptables reaplica as regras salvas no /etc/sysconfig/iptables usando o comando /sbin/iptables-restore . Se por um lado uma boa idia testar uma nova regra iptables antes de submet-la ao arquivo /etc/sysconfig/iptables, por outro lado possvel copiar as regras iptables para o arquivo a partir de outra verso do sistema deste arquivo. Isto fornece uma forma rpida de distribuir conjuntos de regras iptables para multiplicar mquinas. Voc tambm pode salvar as regras iptables em arquivos separados para a distribuio, backup ou outros propsitos. Para salvar suas regras de iptables, digite o seguinte comando como root:
[root@myServer ~]# iptables-save > <filename>where <filename> um nome de usurio definido para seu conjunto de regras.

Importante
Caso distribua o arquivo /etc/sysconfig/iptables outras mquinas, digite /sbin/service iptables restart para as novas regras tomarem efeito.

Red Hat Enterprise Linux 6 Guia de Segurana

105

Nota
Note a diferena entre o comando iptables(,/sbin/iptables), o qual usado para manipular as tabelas e correntes que constituem a funcionalidade do iptables e o servio iptables, (/sbin/service iptables), o qual usado para habilitar e desabilitar o prprio servio iptables.

2.6.4 . Scripts de Controle de IPT ables Existem dois mtodos bsicos para controlar o iptables no Red Hat Enterprise Linux: Firewall Configuration T ool (system -config-firewall ) Uma interface grfica para criar, ativar e salvar regras de firewall bsicas. Consulte a Seo 2.5.2, Configurao de Firewall Bsica para mais informaes. /sbin/service iptables <option> Usado para manipular diversas funes de iptables usando seu initscript. As seguintes opes esto disponveis: start se um firewall configurado (ou seja, o /etc/sysconfig/iptables existe), todos os iptables em execuo so interrompidos completamente e depois iniciados usando o comando /sbin/iptables-restore . Esta opo funciona somente se o mdulo do kernel ipchains no for carregado. Para verificar se o mdulo foi carregado, digite o seguinte comando como usurio root:
[root@MyServer ~]# lsmod | grep ipchains

Se este comando retornar nenhum resultado, significa que o mdulo no foi carregado. Se necessrio, use o comando /sbin/rm m od para remover o mdulo. stop Se o firewall estiver rodando, as suas regras na memria sero liberadas e todos os mdulos do iptables e auxiliares sero descarregados. Se a diretiva IPT ABLES_SAVE_ON_ST OP no arquivo de configurao do /etc/sysconfig/iptables-config modificado de seu valor padro para yes,as regras atuais sero salvas em /etc/sysconfig/iptables e quaisquer regras existentes sero movidas para o arquivo /etc/sysconfig/iptables.save . Refer to Seo 2.6.4.1, Arquivo de Configurao de Scripts de Controle do IPT ables para mais informaes sobre o arquivo iptables-config . restart Se um firewall estiver sendo executado, as regras do firewall na memria sero liberadas, e o firewall ser iniciado novamente se estiver configurado no /etc/sysconfig/iptables. Esta opo funciona somente se o mdulo do kernel ipchains no for carregado.\n\t\n Se a diretiva IPT ABLES_SAVE_ON_REST ART no arquivo de configurao /etc/sysconfig/iptables-config for modificada de seu valor padro para yes, as regras atuais sero salvas em /etc/sysconfig/iptables e quaisquer regras existentes sero movidas para o arquivo /etc/sysconfig/iptables.save . Refer to Seo 2.6.4.1, Arquivo de Configurao de Scripts de Controle do IPT ables para mais informaes sobre o arquivo iptables-config . status Exibe o status do firewall e lista todas as regras ativas. A configurao padro para esta opo exibe os endereos IP em cada regra. Para exibir as informaes do domnio e hostname, edite o arquivo /etc/sysconfig/iptables-config e mude o valor de IPT ABLES_ST AT US_NUMERIC para no . Consulte a Seo 2.6.4.1, Arquivo de Configurao de Scripts de Controle do IPT ables para obter mais informaes sobre o arquivo

106

Captulo 2. Protegendo sua Rede

iptables-config . panic Ribera todas as regras do firewall. A poltica de todas as tabelas configuradas est definida para DROP . Esta opo pode ser til se um servidor estiver comprometido. Ao invs de desconectar fisicamente da rede ou fechar o sistema, voc pode usar esta opo para interromper todos os trfegos de rede futuros mas deixar a mquina em um estado pronto para anlise ou outros investigaes. save Salva as regras do firewall em /etc/sysconfig/iptables usando iptablessave . Consulte a Seo 2.6.3, Salvando Regras de IPT ables para mais informaes.

Nota
Para usar os mesmos comandos initscript para controlar o netfilter para o IPv6, substitua o ip6tables pelo iptables nos comandos /sbin/service listados nesta seo. Para mais informaes sobre o IPv6 e netfilter, consulte a Seo 2.6.5, IPT ables e IPv6.

2.6.4 .1. Arquivo de Configurao de Scripts de Controle do IPT ables O comportamento do initscripts do iptables controlado pelo arquivo de configurao /etc/sysconfig/iptables-config . Esta uma lista das diretivas contidas neste arquivo: IPT ABLES_MODULES Especifica uma lista separada por espaos dos mdulos de iptables adicionais para carregar quando um firewall ativado. Estes podem incluir a conexo de rastreamento e auxiliares do NAT . IPT ABLES_MODULES_UNLOAD Descarrega mdulos na reinicializao e pra. Esta diretiva aceita os seguintes valores: yes O valor padro. Esta opo deve ser definida para alcanar um estado correto para um reincio ou parada de firewall. no Esta opo deve ser somente definida se existirem problemas para descarregar os mdulos do netfilter. IPT ABLES_SAVE_ON_ST OP Salva as regras atuais do firewall em /etc/sysconfig/iptables quando um firewall interrompido. Esta diretiva aceita os seguintes valores: yes Salva as regras existentes em /etc/sysconfig/iptables quando o firewall interrompido, movendo a verso anterior para o arquivo /etc/sysconfig/iptables.save . no O valor padro. No salva regras existentes quando o firewall for interrompido. IPT ABLES_SAVE_ON_REST ART Salva regras atuais de firewall quando o firewall reinicializado. Esta diretiva aceita os seguintes valores: yes Salva as regras existentes em /etc/sysconfig/iptables quando o firewall reiniciado, movendo a verso anterior para o arquivo /etc/sysconfig/iptables.save . no O valor padro. No salva regras existentes quando o firewall reiniciado. IPT ABLES_SAVE_COUNT ER Salva e recupera todos os pacotes e contadores de bytes em todas as correntes e regras. Esta diretiva aceita os seguintes valores: yes Salva os valores do contador. no O valor default. No salva os valores do contador. IPT ABLES_ST AT US_NUMERIC Fornece resultado de endereos IP em forma nmerica ao invs do domnio ou hostnames. Esta diretiva aceita os seguintes valores: yes O valor padro. Retorna somente os endereos IP dentro do resultado do status. no Retorna o domnio ou hostnames dentro do resultado do status.

Red Hat Enterprise Linux 6 Guia de Segurana

107

2.6.5. IPT ables e IPv6 Se o pacote iptables-ipv6 estiver instalado, o netfilter no Red Hat Enterprise Linux pode filtrar a prxima gerao de protocolo de Internet IPv6. O comando usado para manipular o netfilter do IPv6 ip6tables. A maioria das diretivas para este comando so idnticas quelas usadas para o iptables, exceto a tabela nat que no suportada ainda. Isto significa que ainda no possvel realizar a tarefa de traduo do endereos de rede IPv6, tal como o mascaramento e encaminhamento de porta. As regras para ip6tables so salvas no arquivo /etc/sysconfig/ip6tables. Regras anteriores salvas pelos initscripts ip6tables so salvas no arquivo /etc/sysconfig/ip6tables.save . As opes de configurao para o script init do ip6tables esto armazenadas no /etc/sysconfig/ip6tables-config , e os nomes para cada diretiva variam muito pouco dos equivalentes do iptables . Por exemplo, a diretiva iptables-config IPT ABLES_MODULES : o equivalente no arquivo ip6tables-config IP6T ABLES_MODULES . 2.6.6. Recursos Adicionais Consulte os seguintes recursos para informaes adicionais sobre o pacote de filtro com iptables.\n\t\n Seo 2.5, Firewalls Contm um captulo sobre o papel de firewalls dentro da estratgia de segurana geral assim como as estratgias para construir as regras do firewall. 2.6.6.1. Documentao instaladas da IP T ables m an iptables Contm uma descrio do iptables assim como uma lista compreensiva de alvos, opes e extenses coincidentes. 2.6.6.2. Websites de IPtables teis http://www.netfilter.org/ O home do projeto netfilter/iptables. Contm informaes diversas sobre o iptables, incluindo guias FAQ de Rusty Russell, o mantedor do firewall Linux IP. Os documentos HOWT O neste site tratam sobre tais conceitos de rede bsicos, filtro de pacote de kernel e configuraes do NAT . http://www.linuxnewbie.org/nhf/Security/IPtables_Basics.html Uma introduo para a forma que pacotes se movem atravs do kernel do Linux, mais uma introduo para construo bsica de comandos iptables.

[11]J q ue as BIO S d e s is temas d iferem entre fab ric antes , alg umas p o d em no s up o rtar p ro te o p o r s enha d e q ualq uer tip o , enq uanto o utras p o d em s up o rtar um c erto tip o mas no o o utro . [12]O G RUB tamb m ac eita s enhas s em enc rip ta o , mas rec o mend ad o q ue um has h MD5 s eja us ad o p ara s eg uran a ad ic io nal [13]Es te ac es s o aind a s ujeito s res tri es imp o s tas p elo SELinux, s e ativad o

108

Captulo 3. Criptografia

Captulo 3. Criptografia
Existem dois tipos principais de dados que devem ser protegidos: dados parados e dados ativos. Estes tipos diferentes de dados so protegidos de formas semelhantes usando tecnologia semelhante mas as implementaes podem ser completamente diferentes. Nenhuma implementao de proteo pode prevenir os mtodos possveis de se comprometer com as mesmas informaes que possam conter nos dados parados e ativo em determinados perodos diferentes.

3.1. Dados parados


Dados parados so dados armazenados em um disco rgido, fita, CD, DVD, disco ou outra forma de mdia. A maior ameaa de informao de roubo. Os laptops em aeroportos, CDs enviados por correio, e fitas de backup que so deixadas em locais errados so alguns exemplos de eventos onde dados foram comprometidos atravs de roubo. Se os dados estivessem criptografados na mdia, voc no teria que se preocupar tanto sobre o comprometimento destes dados.

3.2. Criptografia de Disco Cheio


Disco cheio ou criptografia de partio uma das melhores formas de proteger seus dados. No s protege cada arquivo como tambm protege armazenamento temporrio que possa conter partes destes arquivos . A criptografia de disco cheio ir proteger todos os seus arquivos para que voc no tenha que se preocupar com a seleo do que voc precisa preencher e possivelmente um arquivo que esteja faltando. Red Hat Enterprise Linux 6 suporta originalmente a criptografia LUKS. O LUKS criptografas todas as suas parties do disco rgido para que enquanto o computador esteja desligado, seus dados sejam protegidos. Isto tambm protege seu computador tentativas de ataques para usar um modo de usurio nico para se autenticar em seu computador ou obter acesso. As solues de criptografia de disco cheio, assim como LUKS, protege somente dados quando seu computador estiver desligado. Depois que o computador estiver ligado e o LUKS houver descriptografado o disco, os arquivos no disco estaro disponveis para qualquer um que tivesse acesso normalmente ele. Para proteger seus arquivos quando o computador estiver ligado, use a criptografia de disco cheio junto com outra soluo como a criptografia baseada em arquivo. Lembre-se tambm de trancar seu computador sempre que estiver longe dele. Uma boa dica para evitar intrusos obter um descanso de tela protegido por uma frase-senha, que seja ativado aps alguns minutos de ociosidade.

3.3. Criptografia baseado em Arquivo


O GnuPG (GPG) uma verso de fonte aberta de PGP que permite que voc se autentique e/ou criptografe um arquivo ou uma mensagem de email. Isto til para manter a integridade da mensagem ou arquivo e tambm protege a confidencialidade das informaes contidas dentro do arquivo ou do email. No caso do email, o GPG fornece proteo dupla. Ele no s fornece a proteo de Dados Parados como tambm a proteo de Dados Ativos, depois da mensagem ter sido enviada pela rede. A criptografia baseada em arquivo pretende proteger um arquivo aps ele ter deixado seu computador, tal como quando voc envia um CD por correio. Algumas solues de criptografia baseada em arquivo deixaro rastros dos arquivos criptografados que permitir que um atacante que tenha acesso fsico ao seu computador recupere-os sob algumas circunstncias. Para proteger este contedo destes arquivos contra intrusos que possam acessar seu computador, use a criptografia baseada em arquivo junto com outra soluo como uma criptografia de disco cheio.

Red Hat Enterprise Linux 6 Guia de Segurana

109

3.4. Dados Ativos


Dados ativos so dados que so transmitidos via rede. A maior ameaa aos dados ativos a intercepo e alterao. Seu nome de usurio e senha nunca devem ser transmitidos via rede sem a proteo, pois pode ser interceptado e usado por outra pessoa que se passe por voc ou obter acesso informaes confidenciais. Outras informaes privadas como informaes de conta bancria, devem tambm ser protegidas ao serem transmitidas via rede. Se a sesso de rede foi criptografada ento voc no precisar se preocupar com o comprometimento dos dados enquanto estiverem sendo enviados. Dados ativos so especialmente vulnerveis atacantes pois o atacante no precisa estar perto do computador que contm os dados armazenados, eles s precisam estar em algum local no caminho dele. Os tneis de criptografia podem proteger dados no caminho das comunicaes.

3.5. Virtual Private Networks (Rede Privada Virtual)


Virtual Private Networks ( Rede Privada Virtual - VPN) fornece tneis criptografados entre computadores ou redes de computadores em todas as portas. Com um VPN, todo o trfego de rede de clientes encaminhado para o servidor atravs do tnel criptografado. Isto significa que o cliente logicamente na mesma rede que o servidor est conectado via VPN. Os VPNs so muito comuns e simples de usar e instalar.

3.6. Secure Shell (Shell Segura)


Secure Shell (SSH) um protocolo de rede potente usado para comunicar com outro sistema sob um canal seguro. As transmisses sob SSH so criptografadas e protegidas de intercepo. A autenticao criptogrfica pode tambm ser utilizada para fornecer um mtodo de autenticao melhor ao invs de nomes de usurios tradicionais e senhas. O SSH fcil de ativar. Simplesmente iniciando o servio sshd, o sistema ir comear a aceitar conexes e permitir acesso ao sistema quando um nome de usurio correto e senha for fornecido durante o processo de conexo. A porta padro T CP para o servio SSH 22, no entanto isto pode mudar ao modificar o arquivo de configurao /etc/ssh/sshd_config e reiniciando o servio. Este arquivo tambm contm outras opes de configurao para o SSH. Secure Shell (SSH) tambm fornece tneis criptografados entre computadores mas somente usando uma nica porta. O encaminhamento da Porta pode ser feito pelo tnel SSH e o trfego ser criptografado quando passar por este tnel mas o uso da porta que encaminha no to rpido quando o VPN.

3.7. OpenSSL PadLock Engine


O VIA PadLock Engine est disponvel em alguns processadores VIA C3 (Nehemia), e permite criptografia e descriptografia de hardware extremamente rpida.

Nota
No existe suporta para o VIA Padlock em sistemas de 64-bit. Para ativ-lo, edite /etc/pki/tls/openssl.cnf e adicione o seguinte no incio de cada arquivo:
openssl_conf = openssl_init

110

Captulo 3. Criptografia

Depois adicione o seguinte no final do arquivo:


[openssl_init] engines = openssl_engines [openssl_engines] padlock = padlock_engine [padlock_engine] default_algorithms = ALL dynamic_path = /usr/lib/openssl/engines/libpadlock.so init = 1

Para verificar se o mdulo est ativado, aplique este comando:


# openssl engine -c -tt

Para testar a velocidade, aplique este comando:


# openssl speed aes-128-cbc

Para testar a velocidade do OpenSSH voc pode aplicar um comando como este:
# dd if=/dev/zero count=100 bs=1M | ssh -c aes128-cbc localhost "cat >/dev/null"

Voc pode encontra mais informaes sobre o PadLock VIA nas seguintes URLs: http://www.logix.cz/michal/devel/padlock/ e http://www.via.com.tw/en/initiatives/padlock/.

3.8. LUKS Disk Encryption


Linux Unified Key Setup-on-disk-format (ou LUKS) permite que voc criptografe parties em seu computador Linux. Isto muito importante em relao aos computadores mveis e mdias removveis. O LUKS permite que chaves de usurios mltiplos descriptografem uma chave master que usada para criptografia em massa de partio. 3.8.1. Implementao do LUKS no Red Hat Enterprise Linux O Red Hat Enterprise Linux 6 usa o LUKS para realizar criptografia do sistema de arquivos . Por padro, a opo de criptografar o sistema de arquivo no selecionada durante a instalao. Se voc selecionar a opo para criptografar seu disco rgido, voc precisar inserir uma senha que ser solicitada todas as vezes que voc inicializar seu computador. Esta senha "desbloqueia" a chave de criptografia em massa que usada para descriptografar sua partio. Se voc escolher modificar a tabela de partio padro, voc poder escolher quais parties voc quer criptografar. Isto definido nas configuraes de tabela da partio. A cfra padro usada para o LUKS (consulte o cryptsetup --help ) aes-cbc-essiv:sha256 (ESSIV Encrypted Salt-Sector Initialization Vector). Note que o programa de instalao, Anaconda , usa o modo XT S por padro (aes-xts-plain64). O tamanho da chave padro para o LUKS 256 bits. O tamanho da chave padro para o LUKS com o Anaconda (XT S mode) 512 bits. Cfras que esto disponveis so: AES - Advanced Encryption Standard - FIPS PUB 197 T wofish (A 128-bit Block Cipher) Serpent

Red Hat Enterprise Linux 6 Guia de Segurana

111

cast5 - RFC 2144 cast6 - RFC 2612 3.8.2. Criptografando Diretrios Manualmente

Aviso
Ao seguir este procedimento voc remover todos os dados da partio que voc est criptografando. Voc IR PERDER todas as informaes! Certifique-se de criar um backup de seus dados em uma fonte externa antes de iniciar este procedimento!

3.8.3. Instrues Passo-a-Passo 1. entre no runlevel 1: telinit 1 2. desmonte seu /home existente: um ount /hom e 3. Se isto falhar, use o fuser para encontrar e eliminar processos se apoderando do /home: fuser -m vk /hom e 4. verifique se o /home no est mais montado: cat /proc/m ounts | grep hom e 5. Preencha sua partio com dados aleatrios: dd if=/dev/urandom of=/dev/VG00/LV_hom e Este processo leva horas para ser concludo.

Importante
O processo, no entanto, crucial para ter uma boa proteo contra tentativas de quebrar a criptografia. Deixe executando durante a noite. 6. inicialize sua partio: cryptsetup --verbose --verify-passphrase luksForm at /dev/VG00/LV_hom e 7. abra o dispositivo criptografado recentemente: cryptsetup luksOpen /dev/VG00/LV_hom e hom e 8. confirme que se encontra l: ls -l /dev/m apper | grep hom e \n\t\n 9. crie um sistema de arquivos: m kfs.ext3 /dev/m apper/hom e \n\t\n 10. monte-o: m ount /dev/m apper/hom e /hom e 11. verifique sua visibilidade: df -h | grep hom e 12. adicione o seguinte ao /etc/crypttab: hom e /dev/VG00/LV_hom e none 13. edite seu /etc/fstab, removendo a entrada antiga para /home e adicionando /dev/m apper/hom e /hom e ext3 defaults 1 2 14. restaure o contedo de segurana SELinux: /sbin/restorecon -v -R /hom e 15. reinicialize: shutdown -r now 16. A entrada em /etc/crypttab faz com que seu computador solicite sua senha luks na inicializao 17. Autentique-se como root e recupere seu backup 3.8.4 . O que voc acaba de concluir. Parabns, voc criou uma partio criptografada para manter todos os seus dados com segurana enquanto seu computador estiver desligado. 3.8.5. Links de interesse

112

Captulo 3. Criptografia

Para informaes adicionais sobre o LUKS ou criptografia de disco rgido sob o Red Hat Enterprise Linux visite um dos seguintes links: LUKS home page LUKS/cryptsetup FAQ LUKS - Linux Unified Key Setup HOWT O: Creating an encrypted Physical Volume (PV) using a second hard drive and pvmove

3.9. Usando o GNU Privacy Guard (GnuPG)


O GPG usado para identificar voc e suas comunicaes, incluindo aquelas com pessoas que voc no conhece. O GPG permite qualquer pessoa lendo um e-mail com assinatura GPG verificar sua autenticidade. Em outras palavras, o GPG permite a algum estar razoavelmente certo de que a comunicao assinada por voc realmente sua. O GPG til porque ajuda a prevenir terceiros de alterar o cdigo ou interceptar conversas e alterar a mensagem. 3.9.1. Criando chaves GPG no GNOME Instale o utilitrio Seahorse, que deixa o gerenciamento de chave GPG mais fcil. A partir do menu principal, selecione Sistem a > Adm inistrao > Adicionar/Rem over Software e aguarde pelo PackageKit iniciar. Digite Seahorse na caixa de texto e selecione Buscar. Marque a caixa prxima ao pacote "seahorse" e selecione "Aplicar" para adicionar o software. Voc pode tambm instalar o Seahorse na linha de comando com o comando su -c "yum install seahorse" . Para criar uma chave, do menu "Aplicativos > Acessrios" selecione "Senhas e Chaves de Criptografia", que inicia a aplicao Seahorse . Do menu "Arquivo" selecione "Novo" ento "Chave PGP". Ento clique em "Continuar". Digite o nome inteiro, endereo de email e um comentrio opcional descrevendo quem voc (exemplo: (e.g.: John C. Smith, jsmith@example.com, O cara). Clique "Criar". Uma janela mostrada pedindo a frase secreta para a chave. Escolha uma frase secreta forte mas tambm fcil de lembrar. Clque "Ok" e a chave ser criada.

Aviso
Se voc esquecer a frase secreta, a chave no poder ser usada e quaisquer dados criptografados usando essa chave sero perdidos. Para encontrar sua ID de chave GPG, olhe na coluna "Key ID" prxima chave recm criada. Na maioria dos casos, se voc for perguntado pela ID da chave, voc deve prefixar "0x" ID da chave, como em "0x6789ABCD". Voc deve fazer um backup de sua chave privada e armazena-la em um lugar seguro. 3.9.2. Criando Chaves GPG no KDE Inicie o programa KGpg do menu principal selecionando Aplicativos > Utilitrios > Ferramentas de Criptografia. Se voc nunca usou o KGpg antes, o programa lhe ajuda no processo de criar seu prprio par de chaves GPG. Um caixa de dilogo aparecer pedindo para voc criar um novo par de chaves. Digite seu nome, endereo de e-mail e um comentrio opcional. Voc pode escolher um perodo de expirao para sua chave, tanto quanto a fora da chave (nmero de bits) e algortimos. A prxima caixa de dilogo pede pela frase secreta. Neste momento, sua chave aparece na janela principal do KGpg .

Red Hat Enterprise Linux 6 Guia de Segurana

113

Aviso
Se voc esquecer a frase secreta, a chave no poder ser usada e quaisquer dados criptografados usando essa chave sero perdidos. Para encontrar sua ID de chave GPG, olhe na coluna "Key ID" prxima chave recm criada. Na maioria dos casos, se voc for perguntado pela ID da chave, voc deve prefixar "0x" ID da chave, como em "0x6789ABCD". Voc deve fazer um backup de sua chave privada e armazena-la em um lugar seguro. 3.9.3. Criando chaves GPG Usando a Linha de Comando Use o seguinte comando no shell: gpg --gen-key Este comando gera um par de chaves que consiste de uma chave pblica e uma privada. Outras pessoas usam sua chave pblica para se autenticar e/ou descriptografar suas comunicaes. Distribua sua chave pblica o mximo possvel, especialmente para pessoas que voc sabe que recebero de voc comunicaes autnticas, tal como uma mail list. Uma srie de perguntas lhe direcionam no processo. Pressione Enter para atribuir um valor padro se quiser. A primeira questo pede para voc selecionar o tipo de chave que voc prefere: Por favor selecione qual tipo de chave voc quer: (1) DSA e ElGamal (padro) (2) DSA (apenas assinatura) (4) RSA (apenas assinatura). Sua seleo? Na maioria dos casos, o padro a escolha correta. Uma chave DSA/ElGamal lhe permite no somente assinar comunicaes mas tambm criptografar arquivos. Prximo, escolha o tamanho da chave: o tamanho mnimo 768 bits, o tamanho padro 1024 bits e o mximo sugerido 2048 bits. Qual tamanho de chave escolher? (1024). Novamente, o padro suficiente para a maioria dos usurios e representa um nvel de segurana extremamente forte. A seguir, escolha quando a chave ir expirar. uma boa idia escolher uma data de expirao em vez de usar o padro, que "nenhum". Se por exemplo, o endereo de e-mail na chave se tornar invlido, uma data de expirao avisar os outros para parar de usar essa chave pblica. Por favor especifique o tempo que a chave deve ser vlida. 0 = a chave no expira, d = a chave expira em n dias, w = a chave expira em n semanas, m = a chave expira em n meses, y = a chave expira em n anos. A chave valida por? (0) Digitando o valor 1y, por exemplo, faz a chave vlida por 1 ano. (Voc pode alterar essa data de expirao depois que a chave gerada, se voc mudar de idia). Antes do programa gpg perguntar por informaes de assinatura, a seguinte pergunta aparece: Est correto (s/n)? Digite s para terminar o processo. A seguir, digite seu nome e endereo de e-mail. Lembre-se que este processo sobre autentica-lo como uma pessoa real. Por esta razo, inclua seu nome real. No use apelidos ou cdigos, j que esses disfaram ou ofuscam sua identidade. Digite seu endereo de e-mail real para sua chave GPG. Se voc escolher um endereo de e-mail falso, ser mais difcil para os outros encontrarem sua chave pblica. Isto dificulta a autenticao de suas comunicaes. Se voc estiver usando essa chave GPG para [[DocsProject/SelfIntroduction| selfintroduction]] em uma mail list, por exemplo, digite o endereo de e-mail que voc usa nessa lista. Use o campo de comentrios para incluir apelidos e outras informaes. (Algumas pessoas usam chaves diferentes para diferentes propsitos e identificam cada chave com um comentrio, tal como "Office" ou "Open Source Projects.")

114

Captulo 3. Criptografia

No prompt de confirmao, digite a letra O para continuar se todas as entradas esto corretas ou use as outras opes para consertar quaisquer problemas. Finalmente, digite uma frase secreta para sua chave secreta. O programa gpg pede para voc digitar sua frase secreta duas vezes para assegurar que no houve erros de digitao. Finalmente, o gpg gera dados aleatrios para fazer sua chave a mais nica possvel. Mova seu mouse, digite chaves aleatrias ou realize outras tarefas no sistema durante este passo para acelerar o processo. Uma vez que este passo estiver terminado, suas chaves esto completas e prontas para uso:
pub 1024D/1B2AFA1C 2005-03-31 John Q. Doe <jqdoe@example.com> Key fingerprint = 117C FE83 22EA B843 3E86 6486 4320 545E 1B2A FA1C sub 1024g/CEA4B22E 2005-03-31 [expires: 2006-03-31]

A chave de impresso digital um atalho de "assinatura" para sua chave. Ela permite que voc confirme aos outros que receberam a sua chave pblica real, sem qualquer adulterao. Voc no precisa anotar esta impresso digital. Para mostrar a impresso digital em qualquer momento, use este comando, substituindo com seu e-mail: gpg --fingerprint jqdoe@ exam ple.com Sua "ID de chave GPG" consiste de 8 dgitos hex identificando a chave pblica. No exemplo acima, a ID de chave GPG 1B2AFA1C. Na maioria dos casos, se voc for perguntado pela ID da chave, voc deve prefixar "0x" na ID da chave, como em "0x1B2AFA1C".

Aviso
Se voc esquecer a frase secreta, a chave no poder ser usada e quaisquer dados criptografados usando essa chave sero perdidos.

3.9.4 . Sobre Criptografia de Chave Pblica 1. Wikipedia - Public Key Cryptography 2. HowStuffWorks - Encryption

Red Hat Enterprise Linux 6 Guia de Segurana

115

Captulo 4. Princpios Gerais da Segurana de Informao


Os seguintes princpios gerais fornecem uma viso geral de boas prticas de segurana: criptografar todos os dados transmitidos via rede para ajudar a prevenir os ataques man-in-themiddle e eavesdropping. importante criptografar as informaes de autenticao, como senhas. minimizar a quantidade de software instalado e servios de execuo. use software de melhoria de segurana e ferramentas, por exemplo, Security-Enhanced Linux (SELinux) for Mandatory Access Control (MAC), Netfilter iptables para filtragem de pacotes (firewall), e GNU Privacy Guard (GnuPG) para arquivos criptografados. se possvel, execute cada servio de rede em um sistema separado para minimizar o risco de um servio comprometido sendo usado para comprometer outros servios. manter contas de usurio: criar e reforar uma poltica de senha forte; remover contas de usurios sem uso. reveja o sistema diariamente e logs de aplicativos. Por padro, os logs de sistema relevante a segurana so gravados em /var/log/secure e /var/log/audit/audit.log . Nota: o envio de logs ao servidor de log dedicado ajuda a prevenir atacantes de modificar com facilidade logs locais para evitar a deteco. nunca autentique-se como usurio root, a menos que absolutamente necessrio. Recomenda-se que os administradores usem o sudo para executar comandos como root quando requerido. Os usurios capazes de executar o sudo so especificados em /etc/sudoers. Use o utilitrio visudo para editar o /etc/sudoers.

4.1. Dicas, Guias e Ferramentas


O National Security Agency (NSA) dos Estados Unidos, fornece guia de hardening e dicas para muitos sistemas operacionais diferentes, para ajudar agncias governamentais, comrcios e indivduos a protegerem seus sistemas contra ataques. Os seguintes guias (em formato PDF) fornecem diretrizes para o Red Hat Enterprise Linux 6: Hardening T ips for the Red Hat Enterprise Linux 5 Guia para Proteger Configurao do Red Hat Enterprise Linux 5

Nota
So fornecidas referncias ao guia de hardening do Red Hat Enterprise Linux 5 neste documento at que os guias de hardening do Red Hat Enterprise Linux 6 esteja disponveis. Enquanto isso, por favor note que os guias de hardening do Red Hat Enterprise Linux 5 podem no se aplicar totalmente ao Red Hat Enterprise Linux 6. O Defense Information Systems Agency (DISA) fornece documentao, checklists, e testes para ajudar a proteger seu sistema (Information Assurance Support Environment). O UNIX SECURIT Y T ECHNICAL IMPLEMENT AT ION GUIDE (PDF) um guia bastante especfico para a segurana do UNIX, um conhecimento avanado do UNIX e Linux recomendado antes de ler este guia. O DISA Unix Security Checklist fornece a coleo de documentos e checklists, classificado entre propriedades corretas e modos para arquivos de sistema, para controle de reparos.

116

Captulo 5. Instalao Segura

Captulo 5. Instalao Segura


A segurana inicia-se na primeira vez que voc coloca o CD ou DVD em seu drive de disco para instalar o Red Hat Enterprise Linux. Configurar seu sistema de forma segura desde o incio torna-o mais fcil de implementar configuraes de segurana adicional mais tarde.

5.1. Parties de Disco


O NSA recomenda criar parties separadas para o /boot, /, /home, /tmp, e /var/tmp. As razes para cada um diferem e trataremos de cada partio. /boot - Esta partio a primeira partio que lida pelo sistema durante a inicializao. O carregador de inicializao e imagens do kernel que so usadas para inicializar seu sistema em Red Hat Enterprise Linux so armazenadas nesta partio. Esta partio no deve ser criptografada. Se esta partio for includa em / e essa partio for criptografada ou se tornar indisponvel, seu sistema no poder inicializar. /home - Quando os dados de usurio (/home) so armazenados em / ao invs de serem armazenados em uma partio separada, a partio pode ficar cheia, fazendo com que o sistema operacional se torne instvel. Da mesma forma, ao fazer o upgrade de seu sistema para uma prxima verso do Red Hat Enterprise Linux muito mais fcil manter seus dados na partio /home, pois no ser sobrescrito durante a instalao. Se a partio root (/) for corrompida, seus dados podem se perder para sempre. Ao usar uma partio separada, adicionar proteo contra a perda de dados. Voc tambm pode escolher esta partio para fazer backups frequentes. /tmp e /var/tmp - T anto o diretrio /tmp quanto o /var/tmp so usados para armazenar dados que no precisam ser armazenados por um longo perodo de tempo. No entanto, se estes diretrios ficarem sobrecarregados com muitos dados, consumir seu espao de armazenamento. Se isto acontecer e estes diretrios forem armazenados dentro do / ento seu sistema poder se tornar indisponvel e travar. Por esta razo, mover estes diretrios para dentro de suas prprias parties uma tima idia.

5.2. Use a Criptografia da Partio LUKS


Durante o processo de instalao ser apresentada ao usurio uma opo para criptografar suas parties. O usurio deve fornecer uma senha frase que ser a chave para desbloquear a chave de criptografia em massa que ser usada para proteger os dados de partio.

Red Hat Enterprise Linux 6 Guia de Segurana

117

Captulo 6. Manuteno do Software


A manuteno do software extremamente importante para manter um sistema seguro. vital corrigir um software assim que a atualizao esteja disponvel para impedir que invasores usem as brechas para se infiltrar em seu sistema.

6.1. Instale o Mnimo de Software


A melhor prtica instalar somente pacotes que voc usar porque cada instalao de software em sua mquina pode possivelmente conter uma vulnerabilidade. Se voc estiver instalando a partir de uma mdia de DVD, use a oportunidade de selecionar exatamente os pacotes que voc quiser instalar durante a instalao. Quando voc achar que precisa de um outro pacote, voc pode sempre adicionalo ao sistema mais tarde.

6.2. Planeje e Configure Atualizaes de Segurana


T odos os softwares contm bugs. Frequentemente, estes bugs podem resultar em uma vulnerabilidade que pode expor seu sistema usurios maliciosos. Sistemas sem correo so uma causa comum de instruso em computadores. Voc deve ter um plano para instalar correes de segurana em uma maneira agendada para impedir essas vulnerabilidades para que ento no possam ser exploradas. Para usurios domsticos, atualizaes de segurana devem ser instaladas assim que possvel. Configurar instalaes automticas das atualizaes de segurana uma maneira de no ter que ficar lembrando, mas possui um pequeno risco que alguma coisa pode causar um conflito com sua configurao ou com outro software no sistema. Para usurios domsticos avanados ou de empresas, atualizaes de segurana devem ser testadas e agendadas para instalao. Controles adicionais precisaro ser usados para proteger o sistema durante o perodo entre o lanamento da correo e sua instalao no sistema. Estes controles dependem da vulnerabilidade, mas podem incluir regras adicionais de firewall, o uso de firewalls externos ou mudanas nas configuraes do software.

6.3. Ajustando Atualizaes Automticas


O Red Hat Enterprise Linux configurado para aplicar todas as atualizaes em uma programao diria. Se voc quiser mudar como seu sistema instala as atualizaes, voc deve fazer pelo '''Software Update Preferences''' (Preferncias de Atualizao de Software). Voc pode mudar a programao, os tipos de atualizaes a serem aplicadas ou notific-lo sobre atualizaes disponveis. No Gnome, voc pode encontrar controles de suas atualizaes em System -> Preferences -> Software Updates. No KDE est localizado em Applications -> Settings -> Software Updates.

6.4. Instale Pacotes Assinados de Repositrios Bem Conhecidos


Pacotes de Software so publicados nos repositrios. T odos os repositrios bem conhecidos suportam assinatura de pacotes. Assinatura de Pacotes usam tecnologia de chave pblica para provar que o pacote foi publicado pelo repositrio e no foi alterado desde que a assinatura foi aplicada. Isto fornece certa proteo contra instalar o software que pode ter side maliciosamente modificado depois que o pacote foi criado mas antes de voc te-lo baixado. Usar muitos repositrios, repositrios no confiveis, ou repositrios sem assinaturas de pacotes possui um risco maior de colocar um cdigo malicioso ou vulnervel em seu sistema. T enha cautela

118

Captulo 6. Manuteno do Software

quando adicionar repositrio ao yum/atualizao de software.

Red Hat Enterprise Linux 6 Guia de Segurana

119

Captulo 7. Padres Federais e Regulamentao


7.1. Introduo
Para manter os nveis de segurana, possvel que sua empresa se esforce para atender as medidas federais e especificaes de segurana industrial, padres e regulamentaes. Este captulo descreve alguns dos padres e regulamentaes.

7.2. Federal Information Processing Standard (FIPS)


T he Federal Information Processing Standard (FIPS) Publicaton 140-2, um padro de segurana de computao, desenvolvido pelo Governo dos EUA e fora de trabalho industrial para validar a qualidade de mdulos criptogrficos. As publicaes FIPS (incluindo o 140-2) podem ser encontradas nas seguintes URL: http://csrc.nist.gov/publications/PubsFIPS.html. Observe que durante o processo de escrita deste, o Publication 140-3 se encontra em estado de Rascunho, e pode no representar o padro completo. O padro FIPS fornece quatro (4) nveis de segurana, para assegurar cobertura adequada de indstrias diferentes, implementaes de mdulos criptogrficos e tamanhos e requerimentos organizacionais. Estes nveis so descritos abaixo: Nvel 1 - O Nvel de Segurana 1 fornece o nvel mais baixo de segurana. Os requerimentos de segurana bsicos so especificados por um mdulo criptogrfico (ex.: deve ser usado ao menos um algortimo aprovado ou funo de segurana Aprovada). No requerido nenhum mecanismo de segurana fsica especfica em um mdulo criptogrfico de Segurana Nvel 1, alm dos requerimentos bsicos para os componentes de grau de produo. Um exemplo de um Nvel 1 de Segurana de mdulo criptogrfico a placa de criptografia de um computador pessoal (PC). Nvel 2 - O Nvel de Segurana 2 aumenta os mecanismos de segurana fsica de um mdulo criptogrfico de Nvel de Segurana 1, adicionando os requerimentos para cobertura ou selo tamperevident ou para bloqueios pick-resistant em coberturas removveis ou portas do mdulo. A cobertura ou selo tamper-evident so colocadas em um mdulo criptogrfico para que a cobertura ou selo dese quebrada para obter acesso fsico s chaves criptogrficas de texto simples e parmetros de segurana crticos (CSPs) dentro do mdulo. Os selos tamper-evident ou bloqueios pick-resistant so colocados em coberturas ou portas para proteger contra acesso fsico no autorizado. Nvel 3 - Alm dos mecanismos de segurana fsicos tamper-evident requeridos no Nvel de Segurana 2, o Nvel de Segurana 3 tenta prevenir o intruso de obter acesso so CSPs mantido dentro do mdulo criptogrfico. Os mecanismos de segurana fsica requeridos no Nvel de Segurana 3 podem ter alta possiblidade de detectar e responder tentativas contra acesso fsico, uso ou modificao de mdulo criptogrfico. Os mecanismos de segurana fsica podem incluir o uso de contedo forte e deteco de intromisso/ circuito de reposta que zera todos os CSPs de texto simples quando a cobertura/portas removveis de mdulo criptogrfico estiverem abertos. Nvel 4 - Nvel de Segurana 4 fornece alto nvel de segurana, definido neste padro. Neste nvel de segurana, os mecanismos de segurana fsica fornece um envelope completo de proteo ao redor de mdulo criptogrfico com a inteno de detectar e responder todas as tentativas de acesso fsico no autorizados. A penetrao do contedo de mdulo criptografico de qualquer direo possui uma alta probabilidade de ser detectado, resultando em zeroizao de todos os CSPs de texto simples. Os mdulos criptogrficos de Nvel de Segurana 4 so teis para a operao em ambientes fisicamente desprotegidos. Consulte o padro completo FIPS 140-2 em: http://csrc.nist.gov/publications/fips/fips140-2/fips1402.pdf para mais detalhes sobre estes nveis e outras especificaes do padro FIPS.

7.3. National Industrial Security Program Operating Manual (NISPOM)

120

Captulo 7. Padres Federais e Regulamentao

O NISPOM (tambm chamado de DoD 5220.22-M), como um componente do National Industrial Security Program (NISP), estabelece uma srie de procedimentos e requerimentos para todos os contratantes do governo em relao a informaes classificadas. O NISPOM atual datado em 28 de Fevereiro de 2006. O documento NISPOM pode ser baixado da seguinte URL:https://www.dss.mil/GW/ShowBinary/DSS/isp/fac_clear/download_nispom.html.

7.4. Payment Card Industry Data Security Standard (PCI DSS)


Em https://www.pcisecuritystandards.org/about/index.shtml: O PCI Security Standards Council um forum global aberto, lanado em 2006, responsvel pelo desenvolvimento, gerenciamento, educao e conscincia do PCI Security Standards, incluindo o Data Security Standard (DSS). Voc pode baixar o padro PCI DSS a partir de https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml.

7.5. Guia de Implementao Tcnico de Segurana


O Guia de Implementao T cnico de Segurana ou ST IG uma metodologia para instalao e manuteno segura padronizada do software e hardware do computador. Consulte a seguinte URL para obter uma lista dos guias disponveis: http://iase.disa.mil/stigs/stig/index.html.

Red Hat Enterprise Linux 6 Guia de Segurana

121

Captulo 8. Referncias
As referncias a seguir so apontadores de informaes adicionais que so relevantes ao SELinux e Red Hat Enterprise Linux mas alm do escopo deste guia. Note que devido ao rpido desenvolvimento do SELinux, um pouco deste material pode ser aplicado somente em lanamentos especficos do Red Hat Enterprise Linux. Livros SELinux by Example Mayer, MacMillan, and Caplan Prentice Hall, 2007

T utorial e Ajuda Entendendo e Padronizando o Apache HT T P SELinux Policy http://docs.fedoraproject.org/selinux-apache-fc3/ T utorial e conversas com Russel Coker http://www.coker.com.au/selinux/talks/ibmtu-2004/ Generic Writing SELinux policy HOWT O http://www.lurking-grue.org/writingselinuxpolicyHOWT O.html Base de Conhecimento Red Hat http://kbase.redhat.com/

Informaes Gerais Website Principal do NSA SELinux http://www.nsa.gov/selinux/ NSA SELinux FAQ http://www.nsa.gov/selinux/info/faq.cfm Fedora SELinux FAQ http://docs.fedoraproject.org/selinux-faq/ SELinux NSA's Open Source Security Enhanced Linux http://www.oreilly.com/catalog/selinux/

T ecnologia

122

Captulo 8. Referncias

Uma Viso Geral de Classes de Objetos e Permisses http://www.tresys.com/selinux/obj_perms_help.html Integrando Suporte Flexvel para Polticas de Segurana no Sistema Operacional Linux (um histrico de Implementao do Flask no linux) http://www.nsa.gov/research/_files/selinux/papers/selsymp2005.pdf Implementando o SELinux como um Linux Security Module http://www.nsa.gov/research/_files/publications/implementing_selinux.pdf Uma configurao de poltica para o Linux Security-Enhanced http://www.nsa.gov/research/_files/selinux/papers/policy/policy.shtml

Comunidade Guia de Usurio do Fedora SELinux http://docs.fedoraproject.org/en-US/Fedora/13/html/Security-Enhanced_Linux/ Fedora SELinux Managing Confined Services Guide http://docs.fedoraproject.org/en-US/Fedora/13/html/Managing_Confined_Services/ Pgina da Comunidade do SELinux http://selinuxproject.org/ IRC irc.freenode.net, #selinux, #fedora-selinux, #security

HIstrico Histrico breve do Flask http://www.cs.utah.edu/flux/fluke/html/flask.html Histrico completo do Fluke http://www.cs.utah.edu/flux/fluke/html/index.html

Red Hat Enterprise Linux 6 Guia de Segurana

123

Padres de Criptografia
A.1. Criptografia Sincronizada
A.1.1. Advanced Encryption Standard - AES Na criptografia, o Advanced Encryption Standard (AES) uma criptografia padro adotada pelo governo dos E.U.A. O padro consiste em trs blocos de cfras, AES-128, AES-192 e AES-256, adotado por uma coleo maior originalmente publicada como Rijndael. Cada cfra AES possui um tamanho de bloco de 128 bites, com tamanhos de chaves de 128, 192 e 256 bites, e assim por diante. As cfras AES foram analisadas extensivamente e agora so utilizadas mundialmente, como foi o caso com seu precedente, o Data Encryption Standard (DES).[14 ]\n\t\n A.1.1.1. Uso do AES A.1.1.2. Histrico do AES O AES foi anunciado pelo National Institute of Standards and T echnology (NIST -Instituto Nacional de Padres e T ecnologia) no dia 26 de Novembro de 2001 aps 5 anos de processo de padronizao no qual quinze modelos foram apresentados e avaliados antes que o Rijndael fosse selecionado como o mais adequado (veja o processo do Advanced Encryption Standard para obter mais detalhes). Ele foi efetivado com padro no dia 26 de Maio de 2002. Est disponvel em diversos pacotes de criptografia diferentes. O AES a primeira cfra aberta acessvel ao pblico pelo NSA para informaes secretas (veja Segurana do AES, abaixo). [15 ] A cfra Rijndael foi desenvolvida pelos critografadores Belgos Joan Daemen e Vincent Rijmen, e submetido por eles para o processo de seleo do AES. O Rijndael (pronuncia-se [rindal]) uma palavra-valise do nome de dois inventores. [16 ] A.1.2. Data Encryption Standard - DES O Data Encryption Standard (DES) uma cfra em bloco (uma forma de criptografia secreta compartilhada) que foi selecionada pelo National Bureau of Standards como um Padro de Processamento de Informaes Federal ( FIPS - Federal Information Processing Standard) para os Estados Unidos em 1976 e o qual foi utilizado internacionalmente. Ele baseado em algortmos de chave simtrica que usam chaves de 56 bits. O algortimo gerou controvrsias inicialmente com elementos de modelo classificados, um tamanho de chave relativamente pequeno, e esteve sob suspeita de conter uma backdoor (porta-dos-fundos) do National Security Agency (NSA). O DES consequentemente, foi criado sob uma anlise detalhada acadmica que motivou a compreenso moderna de cfras de bloco e suas criptoanlises. [17 ] A.1.2.1. Uso do DES A.1.2.2. Histrico do DES O DES considerado inseguro por muitos aplicativos. Isto se deve ao fato do tamanho da chave de 56 bits ser muito pequeno; em Janeiro, 1999, distributed.net e o Electronic Frontier Foundation colaboraram com a quebra pblica de uma chave do DES em 22 horas e 15 minutos (veja a cronologia). Existem tambm alguns resultados analticos que demonstraram fraqueza teortica na cfra, embora sejam impossveis de se montar na prtica. Acredita-se que o algortmo seja praticamente seguro na forma de T riple DES, embora existam ataques teorticos. Recentemente, a cfra foi substituda pela cfra Advanced Encryption Standard (AES).[18 ] Em algumas documentaes, foi feita uma distino entre o DES como um padro e o DES algortimo

124

Padres de Criptografia

que referido como o DEA o Data Encryption Algorithm). Na fala, o "DES" soletrado como uma abreviao (/diis/), ou pronunciado como um acronismo de uma slaba (/dz/).[19 ]

A.2. Criptografia de chave Pblica


A criptografia de chave pblica uma forma de criptografia, empregada por muitos algortimos criptogrficos e criptosistemas, cujas caractersticas distintas so o uso de algortimos de chave assimtricos ao invs de ou alm de algortimos de chaves simtricas. O uso das tcnicas de criptografia pblica de chave privada, muitos mtodos de proteo de comunicao ou autenticao de mensagens antes desconhecidas se tornaram prticas. Elas no requerem uma troca inicial segura de uma ou mais chaves secretas como requerido ao utilizar algorticmos de chave simtricas. Ele pode tambm ser usado para criar assinaturas digitais. [20 ] Criptografia de chave pblica fundamental e uma tecnologia amplamente utilizada mundialmente, e a forma que contm tais padres de Internet como Segurana de Camada de T ransporte (T LS) (sucessor do SSL), PGP e GPG. [21] A tcnica distinta usada na criptografia de chave pblica o uso de algortmos de chave assimtricos, onde a chave usada para criptografar uma mensagem no a mesma que a chave usada para descriptograf-la. Cada usurio possui um par de chaves criptogrficas, uma chave pblica e uma chave privada. A chave privada mantida em segredo, enquanto a chave pblica pode ser distribuda amplamente. As mensagens so criptografadas com a chave pblica do rementente e pode ser dscriptografada somente com a chave privada correpondente. As chaves so relacionadas matematicamente, mas a chave privada no pode ser derivada (ou seja, em prtica atual ou projetada) de uma chave pblica. Foi a descoberta de alguns algortmos que revolucionaou a prtica de criptografia iniciando-se nos meados de 1970. [22 ] Oposto a isto, os algortimos de chave simtrica, variaes que foram usadas por alguns milhares de anos, usam uma chave secreta nica compartilhada pelo transmissor e remetente (que deve tambm manter a chave privada, alm de levar em conta a ambiguidade das terminologias comuns) para a criptografia e descriptografia. para usar um esquema de criptografia simtrica, o transmissor e remetente devem compartilhar a chave antes. [23 ] Como os algortimos de chave simtricas so quase muito menos intensivos na informtica, comum trocar uma chave usando o algortimo de troca de chave e transmitir dados usando aquela chave e um algortimos de chave simtrica. A famlia de esquemas do PGP e o SSL/T LS fazem isto, por exemplo, e so portanto chamados de critosistemas hbridos. [24 ] A.2.1. Diffie-Hellman A troca de chave DiffieHellman (D-H) um protocolo criptogrfico que permite que duas partes, que no se conhecem prviamente, estabeleam juntas uma chave secreta compartilhada sob um canal de comunicaes inseguro. Esta chave pode ento ser usada para criptografar comunicaes subsequentes usando uma cfra de chave simtrica. [25 ] A.2.1.1. Histrico do Diffie-Hellman O esquema foi publicado inicialmente pelo Whitfield Diffie e Martin Hellman em 1976, embora tenha emergido mais tarde que havia sido inventado separadamente alguns anos antes dentro do GCHQ, a agncia de inteligncia de sinais Britnicos, por Malcolm J. Williamson mas foi mantida em classificado. Em 2002, Hellman sugeriu que o algortimo fosse chamado de chave de troca Diffie-Hellman-Merkle reconhecendo a contribuio de Ralph Merkle para a invenso da criptografia de chave pblica (Hellman, 2002). [26 ]

Red Hat Enterprise Linux 6 Guia de Segurana

125

Embora o acordo da Diffie-Hellman seja um protocolo de acordo de chave annimo (no autenticado), ele fornece a base para uma variedade de protocolos autenticados, e usado para fornecer segredo perfeito nos modos efmeros da Segurana de Camada de T ransporte, (referido como o EDH ou DHE dependendo da cfra que se adeque). [27 ]\n\n A Patente 4,200,770 dos E.U.A, agora expirada, descreve o algortimo e d crdito ao Hellman, Diffie e Merkle como inventores. [28 ] A.2.2. RSA Na criptografia, o RSA (que significa Rivest, Shamir e Adleman que primeiro descreveram-no publicamente, veja abaixo) um algortimo para criptografia de chave pblica. o primeiro algortimo conhecido como adequado para assinaturas, assim como criptografia, e foi o primeiro grande avano em criptografia de chave pblica. O RSA usado amplamente em protocolos de comrcio eletrnico, e acredita-se que seguro, considerando as chaves longas e o uso de implementaes atualizadas. A.2.3. DSA O DSA (Digital Signature Algorithm) um padro para assinaturas digitais padro, um padro de governo federal dos Estados Unidos para assinaturas digitais. O DSA somente para assinaturas e no um algoritimo de criptografia. [29 ] A.2.4 . SSL/T LS O T ransport Layer Security (T LS) seu precedente, o Secure Sockets Layer (SSL), so protocolos criptogrficos que fornecem segurana para as comunicaes sob a rede, tais como a Internet. O T LS e SSL criptografam os segmentos de conexes de rede do T ransport Layer do comeo ao fim. Diversas verses dos protocolos so utilizadas amplamente em aplicativos como o web browsing, correio eletrnico, fax via Internet, mensagem instantnea e voice-over-IP (VoiP). [30 ] A.2.5. Cramer-Shoup Cryptosystem O sistema Cramer-Shoup um algortimos de criptografia assimtrica, e foi o primeiro esquema eficiente que provou ser seguro em ataques de textos de cifras escolhidos como adaptveis, usando presunes criptogrficas padro. Sua segurana baseada em intractabilidade computacional (presumido amplamente, mas ainda no foi provado) de presunes de do Diffie-Hellman. Desenvolvido por Ronald Cramer e Victor Shoup, em 1998, uma estenso malevel, o Cramer-Shoup adiciona elementos para assegurar a falta de maleabilidade mesmo contra atacantes munidos de recursos. Esta no maleabilidade alcanada atravs do uso da funo de hash resistente coliso e outras tecnologias, resultando em texto cfra que duas vezes maior do que em Elgamal. [31] A.2.6. ElGamal Encryption Na criptografia, o sistema de criptografia ElGamal um algortimo de criptografia assimtrica para criptografia de chave pblica, que baseada no acordo de chave do Diffie-Hellman. Foi descrito por T aher Elgamal em 1985. A criptografia do ElGamal usada no software livre GNU Privacy Guard, verses recentes do PGP, e outros criptosistemas. [32 ]

[14]" Ad vanc ed Enc ryp tio n Stand ard ." Wikipedia. 14 No vemb er 20 0 9 http ://en.wikip ed ia.o rg /wiki/Ad vanc ed _Enc ryp tio n_Stand ard [15]" Ad vanc ed Enc ryp tio n Stand ard ." Wikipedia. 14 No vemb er 20 0 9 http ://en.wikip ed ia.o rg /wiki/Ad vanc ed _Enc ryp tio n_Stand ard [16 ]" Ad vanc ed Enc ryp tio n Stand ard ." Wikipedia. 14 No vemb er 20 0 9 http ://en.wikip ed ia.o rg /wiki/Ad vanc ed _Enc ryp tio n_Stand ard [17]" Data Enc ryp tio n Stand ard ." Wikipedia. 14 No vemb er 20 0 9 http ://en.wikip ed ia.o rg /wiki/Data_Enc ryp tio n_Stand ard

126

Padres de Criptografia

[18 ]" Data Enc ryp tio n Stand ard ." Wikipedia. 14 No vemb er 20 0 9 http ://en.wikip ed ia.o rg /wiki/Data_Enc ryp tio n_Stand ard [19 ]" Data Enc ryp tio n Stand ard ." Wikipedia. 14 No vemb er 20 0 9 http ://en.wikip ed ia.o rg /wiki/Data_Enc ryp tio n_Stand ard [20 ] " Pub lic -key Enc ryp tio n." Wikipedia. 14 No vemb er 20 0 9 http ://en.wikip ed ia.o rg /wiki/Pub lic -key_c ryp to g rap hy [21]" Pub lic -key Enc ryp tio n." Wikipedia. 14 No vemb er 20 0 9 http ://en.wikip ed ia.o rg /wiki/Pub lic -key_c ryp to g rap hy [22]" Pub lic -key Enc ryp tio n." Wikipedia. 14 No vemb er 20 0 9 http ://en.wikip ed ia.o rg /wiki/Pub lic -key_c ryp to g rap hy [23]" Pub lic -key Enc ryp tio n." Wikipedia. 14 No vemb er 20 0 9 http ://en.wikip ed ia.o rg /wiki/Pub lic -key_c ryp to g rap hy [24]" Pub lic -key Enc ryp tio n." Wikipedia. 14 No vemb er 20 0 9 http ://en.wikip ed ia.o rg /wiki/Pub lic -key_c ryp to g rap hy [25]" Diffie-Hellman." Wikipedia. 14 No vemb er 20 0 9 http ://en.wikip ed ia.o rg /wiki/Diffie-Hellman [26 ] " Diffie-Hellman." Wikipedia. 14 No vemb er 20 0 9 http ://en.wikip ed ia.o rg /wiki/Diffie-Hellman [27]" Diffie-Hellman." Wikipedia. 14 No vemb er 20 0 9 http ://en.wikip ed ia.o rg /wiki/Diffie-Hellman [28 ] " Diffie-Hellman." Wikipedia. 14 No vemb er 20 0 9 http ://en.wikip ed ia.o rg /wiki/Diffie-Hellman [29 ] " DSA." Wikipedia. 24 Feb ruary 20 10 http ://en.wikip ed ia.o rg /wiki/Dig ital_Sig nature_Alg o rithm [30 ] " TLS/SSl." Wikipedia. 24 Feb ruary 20 10 http ://en.wikip ed ia.o rg /wiki/Trans p o rt_Layer_Sec urity [31]" Cramer-Sho up c ryp to s ys tem." Wikipedia. 24 Feb ruary 20 10 http ://en.wikip ed ia.o rg /wiki/CramerSho up _c ryp to s ys tem [32]" ElG amal enc ryp tio n" Wikipedia. 24 Feb ruary 20 10 http ://en.wikip ed ia.o rg /wiki/ElG amal_enc ryp tio n

Red Hat Enterprise Linux 6 Guia de Segurana

127

Histrico de Reviso
Reviso 1.5-3.35 Rebuild for Publican 3.0 Reviso 1.5-3 Rebuild for Publican 3.0 August 7 2012 Ruediger Landmann

2012-07-18

Anthony T owns

Reviso 1.5-1 Apr 19 2010 Reparos mnimos, construo final para Beta Reviso 1.4 -1 Reviso QE e Atualizaes Mar 5 2010

Scott Radvan

Scott Radvan

Reviso 1.3-1 Feb 19 2010 Enviar para rea de teste pronto para reviso

Scott Radvan

Você também pode gostar