Linux - Avançado

Embed Size (px)

Citation preview

Guia Foca GNU/LinuxGleydson Mazioli da Silva

Verso 6.42 - tera, 27 de novembro de 2007

ResumoEste documento tem por objetivo ser uma referncia ao aprendizado do usurio e um guia de consulta, operao e congurao de sistemas Linux (e outros tipos de *ix). A ltima verso deste guia pode ser encontrada na Pgina Ocial do Foca GNU/Linux (http://www. guiafoca.org). Novas verses so lanadas com uma freqncia mensal e voc pode receber avisos de novos lanamentos deste guia preenchendo um formulrio na pgina Web.

Nota de CopyrightCopyright 1999-2007 - Gleydson Mazioli da Silva. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; A copy of the license is included in the section entitled GNU Free Documentation License.

i

Sumrio1 Introduo 1.1 1.2 1.3 Consideraes sobre o nvel Avanado . . . . . . . . . . . . . . . . . . . . . . . . . Pr-requisitos para a utilizao deste guia . . . . . . . . . . . . . . . . . . . . . . . O Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.1 2 Algumas Caractersticas do Linux . . . . . . . . . . . . . . . . . . . . . . . 1 3 4 4 5 9 9 9

Explicaes Bsicas 2.1 Monitorando os logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 2.2 Destruindo arquivos/parties de forma segura . . . . . . . . . . . . . . .

Curingas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 13

3

Hardware 3.1 3.2 3.3

Placa de expanso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Nomes de dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Congurao de Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.3.1 3.3.2 3.3.3 IRQ - Requisio de Interrupo . . . . . . . . . . . . . . . . . . . . . . . . 15 DMA - Acesso Direto a Memria . . . . . . . . . . . . . . . . . . . . . . . . 17 I/O - Porta de Entrada/Sada . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.4

Hardwares congurveis por jumpers, dip-switches, jumperless e Plug-and-Play. 19 3.4.1 3.4.2 3.4.3 3.4.4 Jumpers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Dip-Switches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Jumperless (sem jumper) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Plug-and-Play . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.5

Listando as placas e outros hardwares em um computador . . . . . . . . . . . . . 21

SUMRIO

ii

3.6 3.7 3.8 3.9

Conitos de hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Barramento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Placas on-board / off-board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Hardwares especcos ou For Windows . . . . . . . . . . . . . . . . . . . . . . . 24

3.10 Dispositivos especcos para GNU/Linux . . . . . . . . . . . . . . . . . . . . . . . 25 3.11 Conguraes de Dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.11.1 Congurando uma placa de rede . . . . . . . . . . . . . . . . . . . . . . . . 25 3.11.2 Congurando uma placa de SOM no Linux . . . . . . . . . . . . . . . . . . 26 3.11.3 Congurando um gravador de CD/DVD no Linux . . . . . . . . . . . . . 27 3.11.4 Congurando o gerenciamento de energia usando o APM . . . . . . . . . 29 3.11.5 Congurando o gerenciamento de energia usando ACPI . . . . . . . . . . 30 3.11.6 Ativando WakeUP on Lan . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.12 Aterramento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.12.1 Condutores de eletricidade . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.13 Tomadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.14 Descargas estticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.15 Melhoria de performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.15.1 Particionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.15.2 Spindles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.15.3 Fazendo ajustes nos de performance do disco . . . . . . . . . . . . . . . . 34 3.15.4 Data de acesso a arquivos/diretrios . . . . . . . . . . . . . . . . . . . . . 37 3.16 Perifricos SATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.17 Perifricos SCSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.17.1 Congurando uma SCSI ID e terminao . . . . . . . . . . . . . . . . . . . 39 4 Rede 4.1 4.2 4.3 41

O que uma rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Protocolo de Rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Endereo IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.3.1 4.3.2 Classes de Rede IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Referncia rpida de mscara de redes . . . . . . . . . . . . . . . . . . . . . 43

SUMRIO

iii

4.3.3 4.3.4 4.4

Para instalar uma mquina usando o Linux em uma rede existente . . . . 44 Endereos reservados para uso em uma rede Privada . . . . . . . . . . . . 44

Interface de rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.4.1 4.4.2 A interface loopback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Atribuindo um endereo de rede a uma interface (ifcong) . . . . . . . . . 46

4.5

Roteamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.5.1 Congurando uma rota no Linux . . . . . . . . . . . . . . . . . . . . . . . . 47

4.6

Resolvedor de nomes (DNS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.6.1 4.6.2 4.6.3 O que um nome? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Arquivos de congurao usados na resoluo de nomes . . . . . . . . . . 49 Executando um servidor de nomes . . . . . . . . . . . . . . . . . . . . . . . 52

4.7

Servios de Rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.7.1 4.7.2 Servios iniciados como Daemons de rede . . . . . . . . . . . . . . . . . . 52 Servios iniciados atravs do inetd . . . . . . . . . . . . . . . . . . . . . . . 52

4.8

Segurana da Rede e controle de Acesso . . . . . . . . . . . . . . . . . . . . . . . . 55 4.8.1 4.8.2 4.8.3 4.8.4 /etc/ftpusers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 /etc/securetty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 O mecanismo de controle de acessos tcpd . . . . . . . . . . . . . . . . . . . 56 Firewall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

4.9

Outros arquivos de congurao relacionados com a rede . . . . . . . . . . . . . . 61 4.9.1 4.9.2 /etc/services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 /etc/protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.10 Camadas de Rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4.11 RFCs de referncia sobre protocolos de rede . . . . . . . . . . . . . . . . . . . . . . 62 5 Conguraes especiais de Rede 5.1 5.2 63

IP Alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Bridge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 5.2.1 5.2.2 5.2.3 Requerimentos para a Instalao . . . . . . . . . . . . . . . . . . . . . . . . 65 Congurao da bridge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Conguraes mais avanadas de bridge . . . . . . . . . . . . . . . . . . . 66

SUMRIO

iv

5.2.4 5.2.5 5.2.6 5.3

Congurao manual da bridge . . . . . . . . . . . . . . . . . . . . . . . . 67 Usando o iptables para construir um rewall na mquina da bridge . . . 68 Filtrando pacotes no IP na bridge . . . . . . . . . . . . . . . . . . . . . . . 68

Conectando dois computadores usando a porta paralela . . . . . . . . . . . . . . 68 5.3.1 Construindo um cabo LapLink Paralelo . . . . . . . . . . . . . . . . . . . . 70

5.4

Conectando dois computadores usando a porta serial . . . . . . . . . . . . . . . . 71 5.4.1 Construindo um cabo LapLink Serial . . . . . . . . . . . . . . . . . . . . . 72 75

6

Arquivos e daemons de Log 6.1 6.2

Formato do arquivo de log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Daemons de log do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 6.2.1 6.2.2 syslogd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 klogd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

6.3 6.4

logger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Programas teis para monitorao e gerenciamento de arquivos de logs . . . . . 81 6.4.1 6.4.2 logcheck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 logrotate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

6.5 7

Congurando um servidor de logs . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 87

A distribuio Debian GNU/Linux 7.1 7.2 7.3 7.4

Como obter a Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Programas de congurao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Arquivos de inicializao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Nveis de Execuo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 7.4.1 Entendendo o funcionamento dos nveis de execuo do sistema (runlevels) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

7.5 7.6 7.7 8

Rede no sistema Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Bug tracking system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Onde encontrar a Debian para Download? . . . . . . . . . . . . . . . . . . . . . . 91 93

Personalizao do Sistema 8.1 8.2

Variveis de Ambientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Modicando o Idioma usado em seu sistema . . . . . . . . . . . . . . . . . . . . . 93

SUMRIO

v

8.3 8.4 8.5 8.6 8.7 8.8 8.9 9

alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Arquivo /etc/profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Arquivo .bash_profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Arquivo .bashrc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Arquivo .hushlogin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Arquivo /etc/environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Diretrio /etc/skel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 99

Impresso 9.1 9.2 9.3 9.4

Portas de impressora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Imprimindo diretamente para a porta de impressora . . . . . . . . . . . . . . . . . 99 Imprimindo via spool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Impresso em modo grco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 9.4.1 Ghost Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

9.5

Magic Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 9.5.1 9.5.2 Instalao e congurao do Magic Filter . . . . . . . . . . . . . . . . . . . 103 Outros detalhes tcnicos sobre o Magic Filter . . . . . . . . . . . . . . . . . 103

9.6

Impresso remota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 9.6.1 9.6.2 9.6.3 Dando permisso para impreso remota via lpd/lprng . . . . . . . . . . . 105 Impresso via rlpr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Impresso via printcap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 107

10 Firewall iptables

10.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 10.1.1 Verso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 10.1.2 Um resumo da histria do iptables . . . . . . . . . . . . . . . . . . . . . . . 108 10.1.3 Caractersticas do rewall iptables . . . . . . . . . . . . . . . . . . . . . . . 108 10.1.4 Ficha tcnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 10.1.5 Requerimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 10.1.6 Arquivos de logs criados pelo iptables . . . . . . . . . . . . . . . . . . . . . 110 10.1.7 Instalao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 10.1.8 Enviando Correes/Contribuindo com o projeto . . . . . . . . . . . . . . 110

SUMRIO

vi

10.1.9 O que aconteceu com o ipchains e ipfwadm? . . . . . . . . . . . . . . . 110 10.1.10 Tipos de rewalls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 10.1.11 O que proteger? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 10.1.12 O que so regras? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 10.1.13 O que so chains? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 10.1.14 O que so tabelas? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 10.1.15 Habilitando o suporte ao iptables no kernel . . . . . . . . . . . . . . . . . . 113 10.1.16 Ligando sua rede interna a Internet . . . . . . . . . . . . . . . . . . . . . . 114 10.2 Manipulando chains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 10.2.1 Adicionando regras - A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 10.2.2 Listando regras - L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 10.2.3 Apagando uma regra - D . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 10.2.4 Inserindo uma regra - I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 10.2.5 Substituindo uma regra - R . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 10.2.6 Criando um novo chain - N . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 10.2.7 Renomeando um chain criado pelo usurio - E . . . . . . . . . . . . . . . . 120 10.2.8 Listando os nomes de todas as tabelas atuais . . . . . . . . . . . . . . . . . 120 10.2.9 Limpando as regras de um chain - F . . . . . . . . . . . . . . . . . . . . . . 120 10.2.10 Apagando um chain criado pelo usurio - X . . . . . . . . . . . . . . . . . 121 10.2.11 Zerando contador de bytes dos chains - Z . . . . . . . . . . . . . . . . . . . 121 10.2.12 Especicando o policiamento padro de um chain - P . . . . . . . . . . . . 121 10.3 Outras opes do iptables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 10.3.1 Especicando um endereo de origem/destino . . . . . . . . . . . . . . . . 122 10.3.2 Especicando a interface de origem/destino . . . . . . . . . . . . . . . . . 123 10.3.3 Especicando um protocolo . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 10.3.4 Especicando fragmentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 10.3.5 Especicando uma exceo . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 10.3.6 Especicando um alvo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 10.3.7 Salvando e Restaurando regras . . . . . . . . . . . . . . . . . . . . . . . . . 132 10.4 A tabela nat (Network Address Translation) - fazendo nat . . . . . . . . . . . . . . 132 10.4.1 Criando um novo chain na tabela NAT . . . . . . . . . . . . . . . . . . . . 133

SUMRIO

vii

10.4.2 Fazendo IP masquerading (para os apressados) . . . . . . . . . . . . . . . 133 10.4.3 Fazendo SNAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 10.4.4 Fazendo DNAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 10.4.5 Monitorando conexes feitas na tabela nat . . . . . . . . . . . . . . . . . . 137 10.5 A tabela mangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 10.5.1 Especicando o tipo de servio . . . . . . . . . . . . . . . . . . . . . . . . . 137 10.6 Outros mdulos do iptables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 10.6.1 Conferindo de acordo com o estado da conexo . . . . . . . . . . . . . . . 139 10.6.2 Limitando o nmero de vezes que a regra confere . . . . . . . . . . . . . . 139 10.6.3 Proteo contra ping da morte . . . . . . . . . . . . . . . . . . . . . . . . . 140 10.6.4 Proteo contra syn ood . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 10.6.5 Proteo contra IP spoong . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 10.6.6 Especicando mltiplas portas de origem/destino . . . . . . . . . . . . . . 141 10.6.7 Especicando o endereo MAC da interface . . . . . . . . . . . . . . . . . 142 10.6.8 Conferindo com quem criou o pacote . . . . . . . . . . . . . . . . . . . . . 142 10.6.9 Conferindo com o contedo do pacote . . . . . . . . . . . . . . . . . . . . . 143 10.6.10 Conferindo com o tempo de vida do pacote . . . . . . . . . . . . . . . . . . 143 10.6.11 Conferindo com nmeros RPC . . . . . . . . . . . . . . . . . . . . . . . . . 144 10.6.12 Conferindo com tipo de pacote . . . . . . . . . . . . . . . . . . . . . . . . . 144 10.6.13 Conferindo com o tamanho do pacote . . . . . . . . . . . . . . . . . . . . . 145 10.7 Caminho percorrido pelos pacotes nas tabelas e chains . . . . . . . . . . . . . . . 145 10.7.1 Ping de 192.168.1.1 para 192.168.1.1 . . . . . . . . . . . . . . . . . . . . . . 145 10.7.2 Conexo FTP de 192.168.1.1 para 192.168.1.1 . . . . . . . . . . . . . . . . . 146 10.7.3 Conexo FTP de 192.168.1.1 para 192.168.1.4 . . . . . . . . . . . . . . . . . 147 10.7.4 Conexo FTP de 200.217.29.67 para a mquina ftp.debian.org.br . . . . . . 148 10.7.5 Ping de 192.168.1.4 para 192.168.1.1 . . . . . . . . . . . . . . . . . . . . . . 149 10.7.6 Conexo FTP de 192.168.1.4 para 192.168.1.1 . . . . . . . . . . . . . . . . . 150 10.7.7 Conexo FTP de 192.168.1.4 para ftp.debian.org.br . . . . . . . . . . . . . . 150 10.7.8 Conexo FTP de 200.198.129.162 para 200.217.29.167 . . . . . . . . . . . . . 152 10.7.9 Grco geral da passagem dos pacotes . . . . . . . . . . . . . . . . . . . . 152 10.8 Exemplos de conguraes do iptables . . . . . . . . . . . . . . . . . . . . . . . . . 153

SUMRIO

viii

10.8.1 Bloqueando conexes de fora para sua mquina . . . . . . . . . . . . . . . 153 10.8.2 Monitorando tentativa de conexo de trojans em sua mquina . . . . . . . 154 10.8.3 Conectando sua rede interna a Internet . . . . . . . . . . . . . . . . . . . . 154 10.8.4 Um exemplo de rewall simples . . . . . . . . . . . . . . . . . . . . . . . . 155 11 Gerenciamento de contas e cuidados para a proteo de senhas 159

11.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 11.2 Criao, monitoramento e segurana de contas . . . . . . . . . . . . . . . . . . . . 160 11.2.1 Denindo valores padres de restrio . . . . . . . . . . . . . . . . . . . . 161 11.2.2 Senhas fceis de adivinhar e escolha de boas senhas . . . . . . . . . . . . . 162 11.2.3 Atualizao de senhas de mltiplas contas . . . . . . . . . . . . . . . . . . 163 11.2.4 A senha do usurio root . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 11.3 Tipos de ataques mais comuns para se conseguir uma senha. . . . . . . . . . . . . 164 11.3.1 Deduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 11.3.2 Engenharia Social . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 11.3.3 Ataques por dicionrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 11.3.4 Brute Force . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 11.3.5 Monitoramento de toques do teclado . . . . . . . . . . . . . . . . . . . . . 166 11.3.6 Login falso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 11.4 Melhorando a segurana das senhas armazenadas em seu sistema . . . . . . . . . 167 11.4.1 Shadow Passwords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 11.4.2 Senhas MD5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 12 Apache 169

12.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 12.1.1 Verso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 12.1.2 Um resumo da Histria do Apache . . . . . . . . . . . . . . . . . . . . . . . 170 12.1.3 Enviando Correes/Contribuindo com o projeto . . . . . . . . . . . . . . 170 12.1.4 Caractersticas do Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 12.1.5 Ficha tcnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 12.1.6 Requerimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 12.1.7 Arquivos de log criados pelo Apache . . . . . . . . . . . . . . . . . . . . . 172

SUMRIO

ix

12.1.8 Instalao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 12.1.9 Iniciando o servidor/reiniciando/recarregando a congurao . . . . . . 172 12.1.10 Opes de linha de comando . . . . . . . . . . . . . . . . . . . . . . . . . . 173 12.2 Congurando a porta padro do Apache . . . . . . . . . . . . . . . . . . . . . . . 174 12.3 Adicionando uma pgina no Apache . . . . . . . . . . . . . . . . . . . . . . . . . . 174 12.4 Congurando as interfaces que o Apache atender . . . . . . . . . . . . . . . . . . 175 12.5 Especicando endereos/portas adicionais (a diretiva Listen) . . . . . . . . . . . . 176 12.6 Especicando opes/permisses para as pginas . . . . . . . . . . . . . . . . . . 176 12.7 Restries de Acesso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 12.7.1 Autorizao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 12.7.2 Autenticao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 12.7.3 Usando autorizao e autenticao juntos . . . . . . . . . . . . . . . . . . . 189 12.7.4 O arquivo .htaccess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 12.7.5 Usando a diretiva SetEnvIf com Allow e Deny . . . . . . . . . . . . . . . . 193 12.7.6 A diretiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 12.7.7 Diretiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 12.8 Denindo documentos de erro personalizados . . . . . . . . . . . . . . . . . . . . 195 12.9 Mdulos DSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 12.10Sistema de Log do Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 12.10.1 AgentLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 12.10.2 ErrorLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 12.10.3 CustomLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 12.10.4 RefererLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 12.10.5 RewriteLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 12.10.6 RewriteLogLevel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 12.10.7 ScriptLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 12.10.8 ScriptLogBuffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 12.10.9 ScriptLogLength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 12.10.10 LogFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 12.10.11 TransferLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 12.10.12 LogLevel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

SUMRIO

x

12.10.13 Anonymous_LogEmail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 12.10.14 CookieLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 12.10.15 Relatrio grco de acesso ao sistema . . . . . . . . . . . . . . . . . . . . . 202 12.11Congurando o Apache como servidor proxy . . . . . . . . . . . . . . . . . . . . . 202 12.11.1 Controlando o acesso ao servidor proxy . . . . . . . . . . . . . . . . . . . . 204 12.11.2 Redirecionamento de conexes no Apache . . . . . . . . . . . . . . . . . . 205 12.12Virtual Hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 12.12.1 Virtual hosts baseados em IP . . . . . . . . . . . . . . . . . . . . . . . . . . 206 12.12.2 Virtual hosts baseados em nome . . . . . . . . . . . . . . . . . . . . . . . . 207 12.12.3 Segurana no uso de IPs em Virtual Hosts . . . . . . . . . . . . . . . . . . 209 12.13Uso de criptograa SSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 12.13.1 Servidor apache com suporte a ssl . . . . . . . . . . . . . . . . . . . . . . . 210 12.13.2 Instalando o suporte a mdulo SSL no Apache . . . . . . . . . . . . . . . . 210 12.13.3 Gerando um certicado digital . . . . . . . . . . . . . . . . . . . . . . . . . 211 12.13.4 Exemplo de congurao do mdulo mod-ssl . . . . . . . . . . . . . . . . 211 12.13.5 Autorizando acesso somente a conexes SSL . . . . . . . . . . . . . . . . . 213 12.13.6 Iniciando o servidor Web com suporte a SSL . . . . . . . . . . . . . . . . . 213 12.14Exemplo comentado de um arquivo de congurao do Apache . . . . . . . . . . 214 12.14.1 httpd.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 12.14.2 srm.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 12.14.3 access.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 12.15Cdigos HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 13 Servidor ident 239

13.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 13.1.1 Verso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 13.1.2 Contribuindo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 13.1.3 Caractersticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 13.1.4 Ficha tcnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 13.1.5 Requerimentos de Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . 241 13.1.6 Arquivos de log criados pelo Ident . . . . . . . . . . . . . . . . . . . . . . . 241

SUMRIO

xi

13.1.7 Instalao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 13.1.8 Instalao via Inetd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 13.1.9 Usando tcpwrappers com oidentd . . . . . . . . . . . . . . . . . . . . . . . 242 13.1.10 Iniciando o servidor/reiniciando/recarregando a congurao . . . . . . 242 13.1.11 Opes de linha de comando . . . . . . . . . . . . . . . . . . . . . . . . . . 242 13.1.12 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 14 Servidor telnet 245

14.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 14.1.1 Verso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 14.1.2 Caractersticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 14.1.3 Ficha tcnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 14.1.4 Requerimentos de Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . 246 14.1.5 Arquivos de log criados pelo servidor telnet . . . . . . . . . . . . . . . . . 246 14.1.6 Instalao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 14.1.7 Iniciando o servidor/reiniciando/recarregando a congurao . . . . . . 247 14.1.8 Opes de linha de comando . . . . . . . . . . . . . . . . . . . . . . . . . . 247 14.2 Controle de acesso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 14.3 Recomendaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 14.4 Fazendo conexes ao servidor telnet . . . . . . . . . . . . . . . . . . . . . . . . . . 248 15 Servidor ssh 249

15.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 15.1.1 Verso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 15.1.2 Histria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 15.1.3 Contribuindo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 15.1.4 Caractersticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 15.1.5 Ficha tcnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 15.1.6 Requerimentos de Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . 251 15.1.7 Arquivos de log criados pelo servidor ssh . . . . . . . . . . . . . . . . . . . 251 15.1.8 Instalao do servidor openSSH . . . . . . . . . . . . . . . . . . . . . . . . 251 15.1.9 Iniciando o servidor/reiniciando/recarregando a congurao . . . . . . 252

SUMRIO

xii

15.1.10 Opes de linha de comando . . . . . . . . . . . . . . . . . . . . . . . . . . 252 15.2 Usando aplicativos clientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 15.2.1 ssh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 15.2.2 scp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 15.2.3 sftp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 15.3 Servidor ssh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 15.3.1 sshd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 15.3.2 Controle de acesso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 15.3.3 Usando autenticao RSA/DSA - chave pblica/privada . . . . . . . . . . 257 15.3.4 Execuo de comandos especcos usando chaves . . . . . . . . . . . . . . 259 15.3.5 Criando um gateway ssh . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 15.3.6 Criando um tunel proxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 15.3.7 Diferenas nas verses do protocolo . . . . . . . . . . . . . . . . . . . . . . 260 15.3.8 Exemplo de sshd_config com explicaes das diretivas . . . . . . . . . 261 16 Servidor pop3 267

16.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 16.1.1 Verso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 16.1.2 Contribuindo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 16.1.3 Caractersticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 16.1.4 Ficha tcnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 16.1.5 Requerimentos de Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . 268 16.1.6 Arquivos de log criados pelo qpopper . . . . . . . . . . . . . . . . . . . . . 268 16.1.7 Instalao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 16.1.8 Iniciando o servidor/reiniciando/recarregando a congurao . . . . . . 269 16.1.9 Teste de acesso no pop3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 16.1.10 Opes de linha de comando . . . . . . . . . . . . . . . . . . . . . . . . . . 269 16.1.11 Enviando boletins de mensagens . . . . . . . . . . . . . . . . . . . . . . . . 271 16.1.12 Especicando quotas para as caixas de correio . . . . . . . . . . . . . . . . 271 16.1.13 Restringindo acesso ao servidor pop3 . . . . . . . . . . . . . . . . . . . . . 272

SUMRIO

xiii

17 CVS

273

17.1 Introduo ao CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 17.1.1 Verso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 17.1.2 Histria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 17.1.3 Contribuindo com o CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 17.1.4 Caractersticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 17.1.5 Ficha tcnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 17.1.6 Requerimentos de Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . 275 17.1.7 Arquivos de log criados pelo CVS . . . . . . . . . . . . . . . . . . . . . . . 276 17.1.8 Instalao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 17.1.9 Iniciando o servidor/reiniciando/recarregando a congurao . . . . . . 276 17.1.10 Opes de linha de comando . . . . . . . . . . . . . . . . . . . . . . . . . . 276 17.2 Servidor de CVS - congurando mtodos de acesso ao repositrio . . . . . . . . . 277 17.2.1 local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 17.2.2 fork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 17.2.3 ext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 17.2.4 pserver (password server) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 17.2.5 Congurando um servidor pserver . . . . . . . . . . . . . . . . . . . . . . 280 17.2.6 gssapi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 17.3 Criando projetos para serem usados no CVS . . . . . . . . . . . . . . . . . . . . . 283 17.3.1 Repositrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 17.3.2 Criando um repositrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 17.3.3 Logando no servidor de CVS via pserver . . . . . . . . . . . . . . . . . . . 284 17.3.4 Encerrando uma seo de CVS . . . . . . . . . . . . . . . . . . . . . . . . . 285 17.3.5 Baixando arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 17.3.6 Adicionando um novo projeto . . . . . . . . . . . . . . . . . . . . . . . . . 286 17.3.7 Sincronizando a cpia remota com a cpia local . . . . . . . . . . . . . . . 286 17.3.8 Enviando as mudanas para o servidor remoto . . . . . . . . . . . . . . . . 287 17.3.9 Adicionando um arquivo ao mdulo CVS do servidor . . . . . . . . . . . 287 17.3.10 Adicionando um diretrio ao mdulo CVS do servidor . . . . . . . . . . . 287 17.3.11 Removendo um arquivo do mdulo CVS remoto . . . . . . . . . . . . . . 288

SUMRIO

xiv

17.3.12 Removendo um diretrio do mdulo CVS remoto . . . . . . . . . . . . . . 288 17.3.13 Dizendo que o mdulo atual no est mais em uso . . . . . . . . . . . . . 288 17.3.14 Visualizando diferenas entre verses de um arquivo . . . . . . . . . . . . 289 17.3.15 Visualizando o status de verso de arquivos . . . . . . . . . . . . . . . . . 289 17.3.16 Outros utilitrios para trabalho no repositrio . . . . . . . . . . . . . . . . 289 17.4 Arquivos administrativos em CVSROOT . . . . . . . . . . . . . . . . . . . . . . . 290 17.4.1 config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 17.4.2 modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 17.4.3 cvswrappers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 17.4.4 commitinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 17.4.5 verifymsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 17.4.6 loginfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 17.4.7 cvsignore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 17.4.8 checkoutlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 17.4.9 history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 17.5 Clientes de CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 17.5.1 cvs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 17.5.2 gcvs - Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 17.5.3 WinCVS - Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 17.5.4 MacCVS - Macintosh (PPC) . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 17.5.5 viewcvs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 17.6 Exemplo de uma seo CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 18 SAMBA 297

18.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 18.1.1 Verso documentada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 18.1.2 Histria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 18.1.3 Contribuindo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 18.1.4 Caractersticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 18.1.5 Ficha tcnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 18.1.6 Requerimentos de Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . 300

SUMRIO

xv

18.1.7 Arquivos de log criados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 18.1.8 Instalao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 18.1.9 Iniciando o servidor/reiniciando/recarregando a congurao . . . . . . 300 18.1.10 Opes de linha de comando . . . . . . . . . . . . . . . . . . . . . . . . . . 301 18.2 Conceitos gerais para a congurao do SAMBA . . . . . . . . . . . . . . . . . . . 301 18.2.1 Nome de mquina (nome NetBios) . . . . . . . . . . . . . . . . . . . . . . . 301 18.2.2 Grupo de trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 18.2.3 Domnio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 18.2.4 Compartilhamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 18.2.5 Mapeamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 18.2.6 Navegao na Rede e controle de domnio . . . . . . . . . . . . . . . . . . 303 18.2.7 Arquivo de congurao do samba . . . . . . . . . . . . . . . . . . . . . . 304 18.2.8 Seo [global] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 18.2.9 Seo [homes] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 18.2.10 Seo [printers] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 18.2.11 Buscando problemas na congurao . . . . . . . . . . . . . . . . . . . . . 311 18.2.12 Nveis de sistema para eleio de rede . . . . . . . . . . . . . . . . . . . . . 312 18.2.13 Variveis de substituio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 18.3 Compartilhamento de arquivos e diretrios . . . . . . . . . . . . . . . . . . . . . . 314 18.3.1 Descrio de parmetros usados em compartilhamento . . . . . . . . . . . 315 18.4 Congurao em Grupo de Trabalho . . . . . . . . . . . . . . . . . . . . . . . 317 18.5 Resoluo de nomes de mquinas no samba . . . . . . . . . . . . . . . . . . . . . . 319 18.5.1 Arquivo /etc/samba/lmhosts . . . . . . . . . . . . . . . . . . . . . . . 319 18.5.2 WINS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 18.6 Servidor de data/hora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 18.6.1 Congurao do servio de data/hora no SAMBA . . . . . . . . . . . . . . 322 18.6.2 Sincronizando a data/hora no Cliente . . . . . . . . . . . . . . . . . . . . . 323 18.7 Congurao em Domnio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 18.7.1 Uma breve introduo a um Domnio de rede . . . . . . . . . . . . . . . . 323 18.7.2 Local Master Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 18.7.3 Domain Master Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324

SUMRIO

xvi

18.7.4 Congurando um servidor PDC no SAMBA . . . . . . . . . . . . . . . . . 325 18.7.5 Contas de mquinas de domnio . . . . . . . . . . . . . . . . . . . . . . . . 326 18.7.6 Criando uma conta de administrador de domnio . . . . . . . . . . . . . . 327 18.7.7 Criando Scripts de logon . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 18.7.8 Congurando pers de usurios . . . . . . . . . . . . . . . . . . . . . . . . 330 18.7.9 Modicaes de permisses de acesso pelos clientes do domnio . . . . . 332 18.8 Ativando o suporte a senhas criptografadas . . . . . . . . . . . . . . . . . . . . . . 332 18.8.1 Migrando de senhas texto plano para criptografadas . . . . . . . . . . . . 334 18.8.2 Adicionando usurios no smbpasswd . . . . . . . . . . . . . . . . . . . . . 334 18.8.3 Removendo usurios do smbpasswd . . . . . . . . . . . . . . . . . . . . . 334 18.8.4 Desabilitando uma conta no smbpasswd . . . . . . . . . . . . . . . . . . . 335 18.8.5 Habilitando uma conta no smbpasswd . . . . . . . . . . . . . . . . . . . . 335 18.8.6 Alterando a senha de um usurio . . . . . . . . . . . . . . . . . . . . . . . 335 18.8.7 Denindo acesso sem senha para o usurio . . . . . . . . . . . . . . . . . . 336 18.9 Ativando o suporte a senhas em texto plano . . . . . . . . . . . . . . . . . . . . . . 336 18.9.1 Congurando o acesso de clientes para uso de senhas em texto plano . . . 336 18.10Mapeamento de usurios/grupos em clientes . . . . . . . . . . . . . . . . . . . . . 339 18.10.1 Mapeamento de usurios/grupos domnio em Windows . . . . . . . . . . 339 18.10.2 Mapeamento de usurios/grupos domnio em Linux . . . . . . . . . . . . 339 18.11Compartilhamento de impresso no servidor SAMBA . . . . . . . . . . . . . . . . 341 18.11.1 Congurando o Linux como um servidor de impresso Windows . . . . . 341 18.12Controle de acesso ao servidor SAMBA . . . . . . . . . . . . . . . . . . . . . . . . 341 18.12.1 Nvel de acesso de usurios conectados ao SAMBA . . . . . . . . . . . . . 342 18.12.2 Restringindo o acesso por IP/rede . . . . . . . . . . . . . . . . . . . . . . . 342 18.12.3 Restringindo o acesso por interface de rede . . . . . . . . . . . . . . . . . . 343 18.12.4 Restringindo o acesso por usurios . . . . . . . . . . . . . . . . . . . . . . . 344 18.12.5 Evite o uso do parmetro hosts equiv! . . . . . . . . . . . . . . . . . . . . . . 345 18.12.6 Evite o uso de senhas em branco! . . . . . . . . . . . . . . . . . . . . . . . . 345 18.12.7 Criando um compartilhamento para acesso sem senha . . . . . . . . . . . 345 18.12.8 Criando um compartilhamento com acesso somente leitura . . . . . . . . 346 18.12.9 Criando um compartilhamento com acesso leitura/gravao . . . . . . . . 347

SUMRIO

xvii

18.12.10 Excesso de acesso na permisso padro de compartilhamento . . . . . . 348 18.12.11 Restringindo o IPC$ e ADMIN$ . . . . . . . . . . . . . . . . . . . . . . . . 348 18.12.12 Criando um compartilhamento invisvel . . . . . . . . . . . . . . . . . . . 349 18.12.13 Executando comandos antes e aps o acesso ao compartilhamento . . . . 350 18.12.14 Consideraes de segurana com o uso do parmetro public = yes . . . 351 18.12.15 Senhas criptografadas ou em texto puro? . . . . . . . . . . . . . . . . . . . 351 18.12.16 Mapeamento de nomes de usurios . . . . . . . . . . . . . . . . . . . . . . 352 18.13Melhorando a performance do compartilhamento/servidor . . . . . . . . . . . . 353 18.14Congurao de Clientes NetBEUI . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 18.14.1 Consideraes sobre o Windows for Workgroups e LanManager . . . . . 355 18.14.2 Congurando clientes em Grupo de Trabalho . . . . . . . . . . . . . . . . 355 18.14.3 Congurando clientes em Domnio . . . . . . . . . . . . . . . . . . . . . . 359 18.14.4 Erros conhecidos durante o logon do cliente . . . . . . . . . . . . . . . . . 363 18.14.5 Programas de navegao grcos . . . . . . . . . . . . . . . . . . . . . . . 364 18.14.6 Cliente de congurao grcos . . . . . . . . . . . . . . . . . . . . . . . . 364 18.15Exemplos de congurao do servidor SAMBA . . . . . . . . . . . . . . . . . . . . 365 18.15.1 Grupo de Trabalho com acesso pblico . . . . . . . . . . . . . . . . . . . . 365 18.15.2 Grupo de Trabalho com acesso por usurio . . . . . . . . . . . . . . . . . . 367 18.15.3 Domnio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 19 Restries de acesso, recursos e servios 373

19.1 Limitando recursos no bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 19.1.1 Uso do comando readonly para exportar variveis . . . . . . . . . . . . . . 373 19.1.2 Restries nos diretrios de usurios e root . . . . . . . . . . . . . . . . . . 374 19.1.3 Restries bsicas do shell bash com bash -r/restricted, rbash . . . . . . 374 19.1.4 Finalizando consoles inativos . . . . . . . . . . . . . . . . . . . . . . . . . . 375 19.1.5 Desabilitando o registro de comandos digitados . . . . . . . . . . . . . . . 375 19.1.6 Desabilitando servios de shell para usurios . . . . . . . . . . . . . . . . . 375 19.2 Limitao de recursos usando PAM . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 19.2.1 Descobrindo se um determinado programa tem suporte a PAM . . . . . . 376 19.2.2 Denindo um policiamento padro restritivo . . . . . . . . . . . . . . . . . 377

SUMRIO

xviii

19.2.3 Restringindo/Bloqueando o login . . . . . . . . . . . . . . . . . . . . . . . 377 19.2.4 Restringindo o acesso a root no su . . . . . . . . . . . . . . . . . . . . . . . 378 19.2.5 Restries de servios PAM baseados em dia/hora . . . . . . . . . . . . . 379 19.2.6 Permitindo acesso a grupos extras . . . . . . . . . . . . . . . . . . . . . . . 381 19.2.7 Limitao de recursos do shell . . . . . . . . . . . . . . . . . . . . . . . . . 381 19.3 Restries de acesso a programas/diretrios/arquivos usando grupos . . . . . . 382 19.4 Dando poderes de root para executar determinados programas . . . . . . . . . . 384 19.5 Restringindo o comando su . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 19.6 Restries baseadas em usurio/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 19.7 Restries por MAC Address/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 19.8 Desabilitando servios no usados no Inetd . . . . . . . . . . . . . . . . . . . . . . 388 19.9 Evitando o uso de hosts.equiv e .rhosts . . . . . . . . . . . . . . . . . . . . . 388 19.10Restringindo o uso do shutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 19.11Restringindo o acesso ao sistema de arquivos /proc . . . . . . . . . . . . . . . . . 389 19.12Limitando o uso de espao em disco (quotas) . . . . . . . . . . . . . . . . . . . . . 390 19.12.1 Instalando o sistema de quotas . . . . . . . . . . . . . . . . . . . . . . . . . 391 19.12.2 Editando quotas de usurios/grupos . . . . . . . . . . . . . . . . . . . . . 392 19.12.3 Modicando a quota de todos os usurios de uma vez . . . . . . . . . . . 394 19.12.4 Vericando a quota disponvel ao usurio . . . . . . . . . . . . . . . . . . . 395 19.12.5 Vericando a quota de todos os usurios/grupos do sistema . . . . . . . . 396 19.12.6 Avisando usurios sobre o estouro de quota . . . . . . . . . . . . . . . . . 397 19.13Suporte a senhas ocultas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 19.14Suporte a senhas md5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 19.15Restries no hardware do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 19.15.1 BIOS do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 19.15.2 Retirada da unidade de disquetes . . . . . . . . . . . . . . . . . . . . . . . 399 19.15.3 Placas de rede com eprom de boot . . . . . . . . . . . . . . . . . . . . . . . 399 19.15.4 Protegendo o LILO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 19.15.5 Disco rgido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400

SUMRIO

xix

20 Introduo ao uso de criptograa para transmisso/armazenamento de dados

401

20.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 20.2 Sniffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 20.2.1 Detectando a presena de sniffers . . . . . . . . . . . . . . . . . . . . . . . 402 20.3 Alternativas seguras a servios sem criptograa . . . . . . . . . . . . . . . . . . . 403 20.3.1 http . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 20.3.2 Transmisso segura de e-mails . . . . . . . . . . . . . . . . . . . . . . . . . 403 20.3.3 Servidor pop3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 20.3.4 Transferncia de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 20.3.5 login remoto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 20.3.6 Bate papo via IRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 20.3.7 Transmisso de mensagens via ICQ . . . . . . . . . . . . . . . . . . . . . . 404 20.4 Sistemas de arquivos criptogrco . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 20.5 Usando pgp (gpg)para criptograa de arquivos . . . . . . . . . . . . . . . . . . . 406 20.5.1 Instalando o PGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407 20.5.2 Criando um par de chaves pblica/privada . . . . . . . . . . . . . . . . . 407 20.5.3 Encriptando dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407 20.5.4 Decriptando dados com o gpg . . . . . . . . . . . . . . . . . . . . . . . . . 408 20.5.5 Assinando arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 20.5.6 Checando assinaturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 20.5.7 Extraindo sua chave pblica do chaveiro . . . . . . . . . . . . . . . . . . . 409 20.5.8 Adicionando chaves pblicas ao seu chaveiro pessoal . . . . . . . . . . . . 409 20.5.9 Listando chaves de seu chaveiro . . . . . . . . . . . . . . . . . . . . . . . . 410 20.5.10 Apagando chaves de seu chaveiro . . . . . . . . . . . . . . . . . . . . . . . 410 20.5.11 Mudando sua FraseSenha . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 20.5.12 Assinando uma chave digital . . . . . . . . . . . . . . . . . . . . . . . . . . 410 20.5.13 Listando assinaturas digitais . . . . . . . . . . . . . . . . . . . . . . . . . . 411 20.5.14 Recomendaes para a assinatura de chaves gpg . . . . . . . . . . . . . . . 411 21 Apndice 417

21.1 Sobre este guia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417

SUMRIO

xx

21.2 Sobre o Autor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 21.3 Referncias de auxlio ao desenvolvimento do guia . . . . . . . . . . . . . . . . . 418 21.4 Onde encontrar a verso mais nova do guia? . . . . . . . . . . . . . . . . . . . . . 419 21.5 Colaboradores do Guia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 21.6 Marcas Registradas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 21.7 Futuras verses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 21.8 Chave Pblica PGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420

1

Captulo 1

IntroduoBem vindo ao guia Foca GNU/Linux. O nome FOCA signica FOnte de Consulta e Aprendizado. Este guia dividido em 3 nveis de aprendizado e verso que esta lendo agora contm: Avanado Entre o contedo do guia, voc encontrar: Anlise de logs do sistema GNU/Linux e aplicao para a soluo de problemas (Arquivos e daemons de Log on page 75). Gerenciamento de contas de usurios, denio de perodo automtico para troca de senha peridica, polticas de segurana, etc (Gerenciamento de contas e cuidados para a proteo de senhas on page 159). Principais tipos de ataques para descoberta de senhas e alguns mtodos de como evitalas (Senhas fceis de adivinhar e escolha de boas senhas on page 162). Integrar mquinas Windows e Linux em uma mesma rede compartilhando dados entre si e impresso (SAMBA on page 297). Sistemas de proteo de senhas do sistema (Melhorando a segurana das senhas armazenadas em seu sistema on page 167). Criptograa e segurana na transmisso de dados, usando exemplos prticos do uso de sniffers para entender o porque da uso de criptograa para transmisso segura de dados (Introduo ao uso de criptograa para transmisso/armazenamento de dados on page 401). Uso de servios alternativos criptogrcos (Alternativas seguras a servios sem criptograa on page 403). Criptograa usando gnupgp (Usando pgp (gpg)para criptograa de arquivos on page 406).

Captulo 1. Introduo

2

Uso de sistema de arquivos criptogrcos para armazenamento de dados (Sistemas de arquivos criptogrco on page 404). Otimizao de performance na transferncia de dados do disco rgido atravs de particionamento e hdparm, uso de spindles para criao de swap (Melhoria de performance on page 33). O que so descargas estticas e a importncia do aterramento da instalao eltrica do computador (dirigido a usurios domsticos e de pequenas instalaes) (Descargas estticas on page 33). Maiores consideraes a segurana de sistema e a problemas de segurana relativos a falhas de congurao (distribuda entre os captulos de daemons e servidores). Montagem de um servidor de publicao Web usando o Apache (Apache on page 169). Montagem de um rewall avanado para proteo do sistema (ltragem de pacotes) usando o iptables, redirecionamento de pacotes, nat, bloqueio de trfego P2P, masquerading, balanceamento de carga, marcao de pacotes, log, proteo contra port scans (Firewall iptables on page 107). Servidor de acesso para permitir o acesso a distncia ao seu computador usando o telnetd (Servidor telnet on page 245). Servidor de acesso para permitir o acesso a distncia a seu computador com criptograa usando o ssh (Servidor ssh on page 249). Servidor de identicao usando o oidentd (Servidor ident on page 239). Montagem de um servidor pop3 para que suas estaes de rede possam acessar o email na mquina servidor Linux usando programas como Outlook, Communicator, Mutt, sylpheed e outros que utilizem o protocolo pop3 (Servidor pop3 on page 267). Restries de acesso a instalao do computador, acesso a grupos do sistema, restries de login usando PAM (Restries de acesso, recursos e servios on page 373). Restries de espao usado em disco por usurios/grupos usando o sistema de quotas (Limitando o uso de espao em disco (quotas) on page 390). Uso de grupos dos sistema para restries de acesso (Restries de acesso a programas/diretrios/arquivos usando grupos on page 382). Restries de acesso via hardware: BIOS, disquete, placa com boot via rede, LILO, disco rgido (Restries no hardware do sistema on page 399). Manipulaes de variveis no bash (TMOUT, PS1, PS2, PS3, PS4, HISTORY, etc). Montagem de shell bsico restrito (Restries bsicas do shell bash com bash -r/ restricted, rbash on page 374).

Captulo 1. Introduo

3

Uso do sudo para dar privilgio de execuo de programas como root a determinados usurios (Dando poderes de root para executar determinados programas on page 384).

Para melhor organizao, dividi o guia em 3 verses: Iniciante, Intermedirio e Avanado. Sendo que a verso Iniciante voltada para o usurio que no tem nenhuma experincia no GNU/Linux. A ltima verso deste guia pode ser encontrada em: Pgina Ocial do guia Foca GNU/Linux (http://www.guiafoca.org). Caso tiver alguma sugesto, correo, crtica para a melhoria deste guia, envie um e-mail para . O Foca GNU/Linux atualizado freqentemente, por este motivo recomendo que preencha a cha do aviso de atualizaes na pgina web em Pgina Ocial do guia Foca GNU/Linux (http://www.guiafoca.org) no m da pgina principal. Aps preencher a cha do aviso de atualizaes, voc receber um e-mail sobre o lanamento de novas verses do guia e o que foi modicado, desta forma voc poder decidir em copia-la caso a nova verso contenha modicaes que considera importantes. Venho recebendo muitos elegios de pessoas do Brasil (e de paises de fora tambm) elogiando o trabalho e a qualidade da documentao. Agradeo a todos pelo apoio, tenham certeza que este trabalho desenvolvido pensando em repassar um pouco do conhecimento que adquiri ao comear o uso do Linux. Tambm venho recebendo muitos e-mails de pessoas que passaram na prova LPI nvel 1 e 2 aps estudar usando o guia Foca GNU/Linux. Fico bastante feliz por saber disso, pois nunca tive a inteno de tornar o guia uma referncia livre para estudo da LPI e hoje usado para estudo desta difcil certicao que aborda comandos, servios, conguraes, segurana, empacotamento, criptograa, etc.

1.1

Consideraes sobre o nvel Avanado

Este guia foi compilado incluindo o nvel Avanado do guia FOCA GNU/Linux, ele no tem a inteno de focar na congurao de servios, servidores, aplicativos, nem garantia que ele atender a determinada nalidade especca do usurio (principalmente de uma rede, que depende de uma perfeita compreenso para adaptao de acordo com os requisitos de uma instalao local). Seu foco principal a instalao do servio, abordando consideraes voltadas a segurana, e exemplos de congurao e seu funcionamento. Com relao a captulos sobre servidores, importante observar qual verso documentada no guia e se confere com a instalada em seu sistema, a m de que tudo funcione corretamente. Entretanto, na maioria dos casos, as explicaes relacionadas a uma verso de um programa so inteiramente vlidas em uma nova verso.

Captulo 1. Introduo

4

1.2

Pr-requisitos para a utilizao deste guia

assumido que voc ja tenha experincia na congurao de sistemas Linux, conhea boa parte dos comandos e sua utilizao, tenha noes de rede e saiba como procurar documentao para complementar o que vem aprendendo. Enm, requer que se tiver interesse em se aprofundar em determinada rea, que utilize os mtodos de busca de documentao sugeridos no guia para complementao do aprendizado. O guia no contm todos os materiais para que a pessoa se torne um expert no assunto, mas contm as referncias para documentaes mais especcas sobre determinadas reas do sistema. Este guia no cobre a instalao do sistema. Para detalhes sobre instalao, consulte a documentao que acompanha sua distribuio GNU/Linux.

1.3

O Linux

O Linux um sistema operacional criado em 1991 por Linus Torvalds na universidade de Helsinki na Finlndia. um sistema Operacional de cdigo aberto distribudo gratuitamente pela Internet. Seu cdigo fonte liberado como Free Software (software livre), sob licena GPL, o aviso de copyright do kernel feito por Linus descreve detalhadamente isto e mesmo ele no pode fechar o sistema para que seja usado apenas comercialmente. Isto quer dizer que voc no precisa pagar nada para usar o Linux, e no crime fazer cpias para instalar em outros computadores, ns inclusive incentivamos voc a fazer isto. Ser um sistema de cdigo aberto pode explicar a performance, estabilidade e velocidade em que novos recursos so adicionados ao sistema. Para rodar o Linux voc precisa, no mnimo, de um computador 386 SX com 2 MB de memria (para um kernel at a srie 2.2.x) ou 4MB (para kernels 2.4 e 2.6) e 100MB disponveis em seu disco rgido para uma instalao bsica e funcional. O sistema segue o padro POSIX que o mesmo usado por sistemas UNIX e suas variantes. Assim, aprendendo o Linux voc no encontrar muita diculdade em operar um sistema do tipo UNIX, FreeBSD, HPUX, SunOS, etc., bastando apenas aprender alguns detalhes encontrados em cada sistema. O cdigo fonte aberto permite que qualquer pessoa veja como o sistema funciona (til para aprendizado), corrija alguma problema ou faa alguma sugesto sobre sua melhoria, esse um dos motivos de seu rpido crescimento, do aumento da compatibilidade de perifricos (como novas placas sendo suportadas logo aps seu lanamento) e de sua estabilidade. Outro ponto em que ele se destaca o suporte que oferece a placas, CD-Roms e outros tipos de dispositivos de ltima gerao e mais antigos (a maioria deles j ultrapassados e sendo completamente suportados pelo sistema operacional). Este um ponto forte para empresas que desejam manter seus micros em funcionamento e pretendem investir em avanos tecnolgicos com as mquinas que possui. Hoje o Linux desenvolvido por milhares de pessoas espalhadas pelo mundo, cada uma fazendo sua contribuio ou mantendo alguma parte do kernel gratuitamente. Linus Torvalds

Captulo 1. Introduo

5

ainda trabalha em seu desenvolvimento e na coordenao dos grupos de trabalho do kernel. O suporte ao sistema tambm se destaca como sendo o mais eciente e rpido do que qualquer programa comercial disponvel no mercado. Existem centenas de consultores especializados espalhados ao redor do mundo. Voc pode se inscrever em uma lista de discusso e relatar sua dvida ou alguma falha, e sua mensagem ser vista por centenas de usurios na Internet e algum ir te ajudar ou avisar as pessoas responsveis sobre a falha encontrada para devida correo.

1.3.1

Algumas Caractersticas do Linux

livre e desenvolvido voluntariamente por programadores experientes, hackers, e contribuidores espalhados ao redor do mundo que tem como objetivo a contribuio para a melhoria e crescimento deste sistema operacional. Muitos deles estavam cansados do excesso de propaganda (Marketing) e baixa qualidade de sistemas comerciais existentes Tambm recebe apoio de grandes empresas como IBM, Sun, HP, etc. para seu desenvolvimento Convivem sem nenhum tipo de conito com outros sistemas operacionais (com o DOS, Windows, OS/2) no mesmo computador. Multitarefa real Multiusurio Suporte a nomes extensos de arquivos e diretrios (255 caracteres) Conectividade com outros tipos de plataformas como Apple, Sun, Macintosh, Sparc, Alpha, PowerPc, ARM, Unix, Windows, DOS, etc. Utiliza permisses de acesso a arquivos, diretrios e programas em execuo na memria RAM. Proteo entre processos executados na memria RAM Suporte a mais de 63 terminais virtuais (consoles) Modularizao - O Linux somente carrega para a memria o que usado durante o processamento, liberando totalmente a memria assim que o programa/dispositivo nalizado Devido a modularizao, os drivers dos perifricos e recursos do sistema podem ser carregados e removidos completamente da memria RAM a qualquer momento. Os drivers (mdulos) ocupam pouco espao quando carregados na memria RAM (cerca de 6Kb para a Placa de rede NE 2000, por exemplo) No h a necessidade de se reiniciar o sistema aps a modicar a congurao de qualquer perifrico ou parmetros de rede. Somente necessrio reiniciar o sistema no caso de uma instalao interna de um novo perifrico, falha em algum hardware (queima do processador, placa me, etc.). No precisa de um processador potente para funcionar. O sistema roda bem em computadores 386Sx 25 com 4MB de memria RAM (sem rodar o sistema grco X, que recomendado 32MB de RAM). J pensou no seu desempenho em um Pentium, Xeon, ou Athlon? ;-) Suporte nativo a mltiplas CPUs, assim processadores como Dual Core Athlon Duo, Quad Core tem seu poder de processamento integralmente aproveitado. Suporte nativo a dispositivos SATA, PATA, Fiber Channel

Captulo 1. Introduo

6

Suporte nativo a virtualizao, onde o Linux se destaca como plataforma preferida para execuo de outros sistemas operacionais. O crescimento e novas verses do sistema no provocam lentido, pelo contrrio, a cada nova verso os desenvolvedores procuram buscar maior compatibilidade, acrescentar recursos teis e melhor desempenho do sistema (como o que aconteceu na passagem do kernel 2.0.x para 2.2.x, da 2.2.x para a 2.4.x). No requerido pagamento de licena para usa-lo. O GNU/Linux licenciado de acordo com os termos da GPL. Acessa corretamente discos formatados pelo DOS, Windows, Novell, OS/2, NTFS, SunOS, Amiga, Atari, Mac, etc. O LINUX NO VULNERVEL A VRUS! Devido a separao de privilgios entre processos e respeitadas as recomendaes padro de poltica de segurana e uso de contas privilegiadas (como a de root, como veremos adiante), programas como vrus tornamse inteis pois tem sua ao limitada pelas restries de acesso do sistema de arquivos e execuo. Qualquer programa (nocivo ou no) poder alterar partes do sistema que possui permisses (ser abordado como alterar permisses e tornar seu sistema mais restrito no decorrer do guia). Frequentemente so criados exploits que tentam se aproveitar de falhas existentes em sistemas desatualizados e usa-las para danicar o sistema. Erroneamente este tipo de ataque classicado como vrus por pessoas mal informadas e so resolvidas com sistemas bem mantidos. Em geral, usando uma boa distribuio que tenha um bom sistema de atualizao, 99.9% dos problemas com exploits so resolvidos. Rede TCP/IP mais rpida que no Windows e tem sua pilha constantemente melhorada. O GNU/Linux tem suporte nativo a redes TCP/IP e no depende de uma camada intermediria como o WinSock. Em acessos via modem a Internet, a velocidade de transmisso 10% maior. Jogadores do Quake ou qualquer outro tipo de jogo via Internet preferem o GNU/Linux por causa da maior velocidade do Jogo em rede. fcil rodar um servidor Quake em seu computador e assim jogar contra vrios adversrios via Internet. Roda aplicaes DOS atravs do DOSEMU, QEMU, BOCHS. Para se ter uma idia, possvel dar o boot em um sistema DOS qualquer dentro dele e ao mesmo tempo usar a multitarefa deste sistema. Roda aplicaes Windows atravs do WINE. Suporte a dispositivos infravermelho. Suporte a rede via rdio amador. Suporte a dispositivos Plug-and-Play. Suporte a dispositivos USB. Suporte nativo a cartes de memria Suporte nativo a dispositivos I2C Integrao com gerenciamento de energia ACPI e APM Suporte a Fireware. Dispositivos Wireless. Vrios tipos de rewalls de alta qualidade e com grande poder de segurana de graa. Roteamento esttico e dinmico de pacotes. Ponte entre Redes, proxy arp Proxy Tradicional e Transparente. Possui recursos para atender a mais de um endereo IP na mesma placa de rede, sendo

Captulo 1. Introduo

7

muito til para situaes de manuteno em servidores de redes ou para a emulao de mais computadores virtualmente. O servidor WEB e FTP podem estar localizados no mesmo computador, mas o usurio que se conecta tem a impresso que a rede possui servidores diferentes. Os sistemas de arquivos usados pelo GNU/Linux (Ext3, Ext3, reiserfs, xfs, jfs) organiza os arquivos de forma inteligente evitando a fragmentao e fazendo-o um poderoso sistema para aplicaes multi-usurias exigentes e gravaes intensivas. Permite a montagem de um servidor de publicao Web, E-mail, News, etc. com um baixo custo e alta performance. O melhor servidor Web do mercado, o Apache, distribudo gratuitamente junto com a maioria das distribuies Linux. O mesmo acontece com o Sendmail. Por ser um sistema operacional de cdigo aberto, voc pode ver o que o cdigo fonte (instrues digitadadas pelo programador) faz e adapta-lo as suas necessidades ou de sua empresa. Esta caracterstica uma segurana a mais para empresas srias e outros que no querem ter seus dados roubados (voc no sabe o que um sistema sem cdigo fonte faz na realidade enquanto esta processando o programa). Suporte a diversos dispositivos e perifricos disponveis no mercado, tanto os novos como obsoletos. Pode ser executado em 16 arquiteturas diferentes (Intel, Macintosh, Alpha, Arm, etc.) e diversas outras sub-arquiteturas. Empresas especializadas e consultores especializados no suporte ao sistema espalhados por todo o mundo. Entre muitas outras caractersticas que voc descobrir durante o uso do sistema. TODOS OS TENS DESCRITOS ACIMA SO VERDADEIROS E TESTADOS PARA QUE TIVESSE PLENA CERTEZA DE SEU FUNCIONAMENTO.

Captulo 1. Introduo

8

9

Captulo 2

Explicaes BsicasEste captulo traz explicaes sobre os principais componentes existentes no computador e do sistema operacional.

2.1

Monitorando os logs

Os arquivos de logs residem em /var/log e registram tudo o que acontecem com o kernel, com os daemons e utilitrios do sistema. Eles so muito importantes tanto para monitorar o que acontece com o seu sistema como para ajudar na soluo de problemas diversos. comum programas como o servidor web, e-mail, mensagens instantaneas, rewall, irc, banco de dados, gravarem os arquivos de log em diretrios prprios dentro de /var/log/programa, desta forma evitam misturar seus arquivos com os de log do sistema residentes em /var/log. Acostume-se a olhar constantemente os arquivos de log em seu sistema, isto pode ser importante para encontrar possveis falhas de segurana, tentativa de acesso ao sistema e, principalmente, solucionar problemas (principalmente os mais complicados). Leia Arquivos e daemons de Log on page 75 para mais detalhes.

2.1.1

Destruindo arquivos/parties de forma segura

Esta seo tem a inteno de conscientizar o administrador do uso devido de tcnicas para garantir que dados sensveis sejam apagados de forma segura em seu sistema. Quando um arquivo apagado, apenas a entrada na tabela de inodes mexida, e ele pode ainda ser recuperado com o debugfs e um pouco de pacincia e engenharia. O mesmo acontece com as parties, que podem ser recuperadas com facilidade (isto explicado no nvel Intermedirio do guia). Esta recuperao proporcionada pelas regras de funcionamento do sistema de arquivos e do esquema de particionamento, ou seja, so permitidas pelo SO. Vou um pouco mais alm: O disco rgido uma mdia magntica e opera de forma mecnica para ler/gravar dados. Quando um arquivo apagado, seja por qualquer motivo, ainda

Captulo 2. Explicaes Bsicas

10

possvel recupera-lo. O que permite isto porque o HD nem sempre tem a preciso de gravar exatamente no mesmo lugar (pois a cabea movida mecanicamente), gravando em trilhas microscpicamente vizinhas a anterior. Ento a imagem do arquivo que foi apagada continua l. Segundo ouvi falar, a NASA possui recursos para recuperar at 60 regravaes posteriores no disco. claro que isto pode ocorrer em pouco tempo, dependendo do tamanho de sua partio e se esta for uma /var/spool em um servidor de e-mails :-) Baseado nesta teoria, voc poder apagar os dados de forma destrutiva usando o programa shred, que regrava o arquivo repetidamente com dados aleatrios. Sua sintaxe a seguinte: shred -n 70 -v -u arquivo Isto faz com que ele regrava o contedo do arquivo 70 vezes com dados aleatrios. O -u trunca e remove o arquivo aps concludo. Note que o uso de dados aleatrios serve para destruir as possibilidades de uma recuperao simples, este o motivo de se recomendar sempre o uso de /dev/urandom ao invs de /dev /zero para destruio de arquivos. OBS1: Saiba exatamente o que est fazendo pois estes procedimentos servem para dicultar ao mximo a recuperao de dados. OBS2: Devido as tecnologias de sistemas que utilizam journaling (XFS, EXT3, EXT4, JFS e ReiserFS) e sistemas RAID, o shred no funcionar. O shred tambm no funcionar com sistemas de arquivos via rede (NFS, SMB, etc.). Se procura alguma forma de proteger seus dados, mesmo que apagados, utilize um mtodo de criptograa como o DM-CRYPTO, cryptoloop, gpg, etc. OBS3: Caso esteja usando um sistema de arquivos criptografado, estes procedimentos so quase desnecessrios (dependendo do nvel de segurana e algortmos que voc utiliza).

2.2

Curingas

Curingas (ou referncia global) um recurso usado para especicar um ou mais arquivos ou diretrios do sistema de uma s vez. Este um recurso permite que voc faa a ltragem do que ser listado, copiado, apagado, etc. So usados 4 tipos de curingas no GNU/Linux: * - Faz referncia a um nome completo/restante de um arquivo/diretrio. ? - Faz referncia a uma letra naquela posio. [padro] - Faz referncia a uma faixa de caracteres de um arquivo/diretrio. Padro pode ser: [a-z][0-9] - Faz referncia a caracteres de a at z seguido de um caracter de 0 at 9. [a,z][1,0] - Faz a referncia aos caracteres a e z seguido de um caracter 1 ou 0 naquela posio.

Captulo 2. Explicaes Bsicas

11

[a-z,1,0] - Faz referncia a intervalo de caracteres de a at z ou 1 ou 0 naquela posio. A procura de caracteres Case Sensitive assim se voc deseja que sejam localizados todos os caracteres alfabticos voc deve usar [a-zA-Z]. Caso a expresso seja precedida por um ^, faz referncia a qualquer caracter exceto o da expresso. Por exemplo [^abc] faz referncia a qualquer caracter exceto a, b e c. {padres} - Expande e gera strings para pesquisa de padres de um arquivo/diretrio. X{ab,01} - Faz referncia a seqencia de caracteres Xab ou X01 X{a-z,10} Faz referencia a seqencia de caracteres Xa-z e X10. O que diferencia este mtodo de expanso dos demais que a existncia do arquivo/diretrio opcional para gerao do resultado. Isto til para a criao de diretrios. Lembrando que os 4 tipos de curingas (*, ?, [], {}) podem ser usados juntos. Para entender melhor vamos a prtica: Vamos dizer que tenha 5 arquivo no diretrio /usr/teste: teste1.txt,teste2.txt, teste3.txt,teste4.new,teste5.new. Caso deseje listar todos os arquivos do diretrio /usr/teste voc pode usar o coringa * para especicar todos os arquivos do diretrio: cd /usr/teste e ls * ou ls /usr/teste/*. No tem muito sentido usar o comando ls com * porque todos os arquivos sero listados se o ls for usado sem nenhum Coringa. Agora para listar todos os arquivos teste1.txt,teste2.txt,teste3.txt com excesso de teste4.new, teste5.new, podemos usar inicialmente 3 mtodos: 1 Usando o comando ls *.txt que pega todos os arquivos que comeam com qualquer nome e terminam com .txt. 2 Usando o comando ls teste?.txt, que pega todos os arquivos que comeam com o nome teste, tenham qualquer caracter no lugar do coringa ? e terminem com .txt. Com o exemplo acima teste*.txt tambm faria a mesma coisa, mas se tambm tivssemos um arquivo chamado teste10.txt este tambm seria listado. 3 Usando o comando ls teste[1-3].txt, que pega todos os arquivos que comeam com o nome teste, tenham qualquer caracter entre o nmero 1-3 no lugar da 6a letra e terminem com .txt. Neste caso se obtm uma ltragem mais exata, pois o coringa ? especica qualquer caracter naquela posio e [] especica nmeros, letras ou intervalo que ser usado. Agora para listar somente teste4.new e teste5.new podemos usar os seguintes mtodos: 1 ls *.new que lista todos os arquivos que terminam com .new 2 ls teste?.new que lista todos os arquivos que comeam com teste, contenham qualquer caracter na posio do coringa ? e terminem com .new. 3 ls teste[4,5].* que lista todos os arquivos que comeam com teste contenham nmeros de 4 e 5 naquela posio e terminem com qualquer extenso. Existem muitas outras formas de se fazer a mesma coisa, isto depende do gosto de cada um. O que pretendi fazer aqui foi mostrar como especicar mais de um arquivo de uma s vez. O uso

Captulo 2. Explicaes Bsicas

12

de curingas ser til ao copiar arquivos, apagar, mover, renomear, e nas mais diversas partes do sistema. Alias esta uma caracterstica do GNU/Linux: permitir que a mesma coisa possa ser feita com liberdade de vrias maneiras diferentes.

13

Captulo 3

HardwareHardware tudo que diz respeito a parte fsica do computador. Nesta seo sero abordados assuntos relacionados com a congurao de hardwares, escolha de bons hardwares, dispositivos for Windows, etc.

3.1

Placa de expanso

um circuito eletrnico encaixado na placa me que tem por objetivo adicionar novas funcionalidades ao computador. Esta placa pode ser uma: placa de som - para fazer o computador emitir sons, msicas, ligar um joystick, etc. Placa de vdeo 3D - Para obter imagens mais rpidas para jogos e ambientes de desktop 3 dimenses Placa de captura - Para assistir televiso/rdio e gravar a programao de TV em seu micro. fax-modem - para enviar/receber fax, conectar-se a internet, acesso remoto, bina, etc. rede - para permitir a comunicao com outros computadores em uma rede interna controladora de perifricos - Para ligar discos rgidos, unidades de disquete, impressora, mouse, joystick, etc. SCSI - Para ligar unidades de disco rgidos e perifricos de alto desempenho. Controladora de Scanner - Para ligar um Scanner externo ao micro computador. O encaixe da placa me que recebe as placas de expanso so chamados de Slots.

Captulo 3. Hardware

14

3.2

Nomes de dispositivos

Seria terrvel se ao congurar CADA programa que utilize o mouse ou o modem precisssemos nos se referir a ele pela IRQ, I/O, etc. . . para evitar isso so usados os nomes de dispositivos. Os nomes de dispositivos no sistema GNU/Linux so acessados atravs do diretrio /dev. Aps congurar corretamente o modem, com sua porta I/O 0x2F8 e IRQ 3, ele identicado automaticamente por /dev/ttyS1 (equivalente a COM2 no DOS). Daqui para frente basta se referir a /dev/ttyS1 para fazer alguma coisa com o modem. Voc tambm pode fazer um link de /dev/ttyS1 para um arquivo chamado /dev/modem usando: ln -s /dev/ttyS1 /dev/modem, faa a congurao dos seus programas usando /dev/modem ao invs de /dev/ttyS1 e se precisar recongurar o seu modem e a porta serial mudar para /dev/ttyS3, ser necessrio somente apagar o link /dev/modem antigo e criar um novo apontando para a porta serial /dev/ttyS3. No ser necessrio recongurar os programas que usam o modem pois eles esto usando /dev/modem que est apontando para a localizao correta. Isto muito til para um bom gerenciamento do sistema. Abaixo uma tabela com o nome do dispositivo no GNU/Linux, portas I/O, IRQ, DMA e nome do dispositivo no DOS (os nomes de dispositivos esto localizados no diretrio /dev): Dispos. Linux ttyS0 ttyS1 ttyS2 ttyS3 lp0 lp1 /dev/hda1 /dev/hda2 /dev/hdb1 Dispos. DOS COM1 COM2 COM3 COM4 LPT1 LPT2 C: D: * D: *

IRQ 4 3 4 3 7 5 14 14 15

DMA 3(ECP) 3(ECP) -

I/O 0x3F8 0x2F8 0x3E8 0x2E8 0x378 0x278 0x1F0,0x3F6 0x1F0,0x3F6 0x170,0x376

* A designao de letras de unidade do DOS no segue o padro do GNU/Linux e depende da existncia de outras unidades fsicas/lgicas no computador.

3.3

Congurao de Hardware

A congurao consiste em ajustar as opes de funcionamento dos dispositivos (perifricos) para comunicao com a placa me bem como a congurao do software correspondente para fazer acesso ao hardware. Um sistema bem congurado consiste em cada dispositivo funcionando com suas portas I/O, IRQ, DMA bem denidas, no existindo conitos com outros dispositivos. Isto tambm permitir a adio de novos dispositivos ao sistema sem problemas.

Captulo 3. Hardware

15

Dispositivos PCI, PCI Express, AMR, CNR possuem congurao automtica de recursos de hardware, podendo apenas ser ligados na mquina para serem reconhecidos pela placa me. Aps isso dever ser feita a congurao do mdulo do kernel para que o hardware funcione corretamente. Os parmetros dos mdulos do kernel usados para congurar dispositivos de hardware so a IRQ, DMA e I/O. Para dispositivos plug and play, como hardwares PCI, basta carregar o mdulo para ter o hardware funcionando.

3.3.1

IRQ - Requisio de Interrupo

Existem dois tipos bsicos de interrupes: as usadas por dispositivos (para a comunicao com a placa me) e programas (para obter a ateno do processador). As interrupes de software so mais usadas por programas, incluindo o sistema operacional e interrupes de hardware mais usado por perifricos. Daqui para frente ser explicado somente detalhes sobre interrupes de hardware. Os antigos computadores 8086/8088 (XT) usavam somente 8 interrupes de hardware operando a 8 bits. Com o surgimento do AT foram includas 8 novas interrupes, operando a 16 bits. Os computadores 286 e superiores tem 16 interrupes de hardware numeradas de 0 a 15. No kernel 2.4 e superiores do Linux, a funo APIC (Advanced Programmable Interruption Controller) permite gerenciar de forma avanada mais de 15 interrupes no sistema operacional. Estas interrupes oferecem ao dispositivo associado a capacidade de interromper o que o processador estiver fazendo, pedindo ateno imediata. As interrupes do sistema podem ser visualizadas no kernel com o comando cat /proc/interrupts. Abaixo um resumo do uso mais comum das 16 interrupes de hardware: 0 01 02 Timer do Sistema Teclado - Fixa Controlador de Interrupo Programvel - Fixa. Esta interrupo usada como ponte para a IRQ 9 e vem dos antigos processadores 8086/8088 que somente tinham 8 IRQs. Assim, pera tornar processadores 8088 e 80286 comunicveis, a IRQ 2 usada como um redirecionador quando se utiliza uma interrupo acima da 8. Normalmente usado por /dev/ttyS1 mas seu uso depende dos dispositivos instalados em seu sistema (como fax-modem, placas de rede 8 bits, etc). Normalmente usado por /dev/ttyS0 e quase sempre usada pelo mouse serial a no ser que um mouse PS2 esteja instalado no sistema. - Fixa

03

04

Captulo 3. Hardware

16

05

Normalmente a segunda porta paralela. Muitos micros no tem a segunda porta paralela, assim comum encontrar placas de som e outros dispositivos usando esta IRQ. Controlador de Disquete - Esta interrupo pode ser compartilhada com placas aceleradoras de disquete usadas em tapes (unidades de fita). Primeira porta de impressora. Pessoas tiveram sucesso compartilhando esta porta de impressora com a segunda porta de impressora. Muitas impressoras no usam IRQs. Relgio em tempo real do CMOS - No pode ser usado por nenhum outro dispositivo. Esta uma ponte para IRQ2 e deve ser a ltima IRQ a ser utilizada. No entanto pode ser usada por dispositivos. Interrupo normalmente livre para dispositivos. O controlador USB utiliza essa interrupo quando presente, mas no regra. Interrupo livre para dispositivos Interrupo normalmente livre para dispositivos. O mouse PS/2, quando presente, utiliza esta interrupo. Processador de dados numricos - No pode ser usada ou compartilhada Esta interrupo usada pela primeira controladora de discos rgidos e no pode ser compartilhada. Esta a interrupo usada pela segunda controladora de discos e no pode ser compartilhada. Pode ser usada caso a segunda controladora esteja desativada.

06

07

08

09

10

11 12

13 14

15

Dispositivos ISA, VESA, EISA, SCSI no permitem o compartilhamento de uma mesma IRQ, talvez isto ainda seja possvel caso no haja outras opes disponveis e/ou os dois dispositivos no acessem a IRQ ao mesmo tempo, mas isto uma soluo precria. Conitos de IRQ ocorriam nesse tipo de hardware acima ocasionando a parada ou mal funcionamento de um dispositivo e/ou de todo o sistema. Para resolver um conito de IRQs, deve-se conhecer quais IRQs esto sendo usadas por quais dispositivos (usando cat /proc/interrupts) e congurar as interrupes de forma que uma no entre em conito com outra. Isto normalmente feito atravs dos jumpers de placas ou atravs de software (no caso de dispositivos jumperless ou plug-and-play). Dispositivos PCI, PCI Express so projetados para permitir o compartilhamento de interrup-

Captulo 3. Hardware

17

es. Se for necessrio usar uma interrupo normal, o chipset (ou BIOS) mapear a interrupo para uma interrupo normal do sistema (normalmente usando alguma interrupo entre a IRQ 9 e IRQ 12) ou usando APIC (se estiver congurado). Prioridade das Interrupes Cada IRQ no sistema tem um nmero que identica a prioridade que ser atendida pelo processador. Nos antigos sistemas XT as prioridades eram identicadas em seqncia de acordo com as interrupes existentes: IRQ 0 1 2 3 4 5 6 7 8 PRI 1 2 3 4 5 6 7 8 9 Com o surgimento do barramento AT (16 bits), as interrupes passaram a ser identicadas da seguinte forma: IRQ 0 PRI 1 1 2 2 3 (9 4 10 5 11 6 12 7 13 8 14 9 15) 3 4 5 6 7 8 10 11 12 13 14 15 16

Note que a prioridade segue em seqncia atravs da ponte da IRQ 2 para IRQ 9. Os dispositivos com prioridade mais baixa so atendidos primeiro, mas uma diferena de desempenho praticamente imperceptvel de ser notada nos sistemas atuais.

3.3.2

DMA - Acesso Direto a Memria

A DMA usada para permitir a transferncia de dados entre dispositivos I/O e a memria sem precisar do processador faze-lo. Ele livra esta carga do processador e resulta em uma rpida transferncia de dados. O PC padro tem dois controladores de DMA. O primeiro controla os canais 0, 1, 2, 3 e o segundo os canais 4, 5, 6, 7, assim temos 8 canais. No entanto, o canal 4 perdido porque usado pelo controlador de acesso direto a memria. Os canais 0-3 so chamados de canais baixos porque podem somente mover um byte (8 bits) por transferncia enquanto canais altos movem 2 bytes (16 bits) por transferncia. Os dados movidos usando a DMA no so movidos atravs do controlador de DMA. Isto oferece uma limitao porque a DMA somente podem mover dados entre os dispositivos (portas I/O) e a memria. No possvel mover dados entre as portas ou entre a memria. Existem dois controladores de DMA nos computadores AT e superiores. Ao contrrio do que acontece com os dois controladores de IRQ, o primeiro controlador ligado ao segundo e no o segundo ao primeiro. Os canais de DMA altos (5 ao 7) somente podem ser acessados por dispositivos de 16 bits (aqueles que utilizam a segunda parte do slot AT). Como resultado temos 8 canais de DMA, de 0 a 7, sendo que a DMA 4 usada como ligao entre eles. Os canais de DMA em uso no sistema podem ser visualizados com cat /proc/dma. Abaixo uma listagem de uso mais comum dos canais de DMA.

Captulo 3. Hardware

18

DMA 0 1

Barram. 8/16 bits

2 3

8/16 bits 8/6 bits

4 5

16 bits

6 7

16 bits 16 bits

Uso Usada pelo circuito de refresh da memria DRAM Normalmente usado por placas de som (canal 8 bits), porta paralela ECP, adaptadoras SCSI, placas de rede ou controladora de scanner. Normalmente usado pela controladora de disquetes ou controladoras de tapes. Usado pela porta paralela ECP, placa de som, controladoras de tapes, controladoras SCSI ou controladora de scanner antiga. Usada como ponte para a outra controladora de DMA (0-3) Normalmente usada pela placa de som (canal 16 bits), placas controladoras SCSI, placas de rede ou controladora de scanner. Placa de som (canal 16 bits), controladora de scanner ou placa de rede. Placa de som (canal 16 bits), controladora de scanner ou placa de rede.

Somente dispositivos ISA e derivados dele, como o EISA e VESA, usam os canais de DMA padro. Os atuais dispositivos de alta taxa de transferncia (normalmente PCI) possuem seu prprio controlador de DMA embutido, muito mais rpido do que a DMA padro. Este controlador de DMA chamado de Bus Mastering e muito usado nos discos rgidos atuais e pode atingir taxas de 33,3MB/s (no modo 2) e 66MB/s (no modo 4 - requer um cabo IDE com aterramento para evitar interferncias de rudos externos).

Conitos de DMA Um canal de DMA no pode ser compartilhado entre dispositivos. Ainda possvel congurar dois dispositivos para usarem um mesmo canal de DMA, desde que ele no seja usado ao mesmo tempo. Isto acontece com Scanners paralelos que compartilham a mesma porta paralela com a impressora. Se voc for uma pessoa que explora os recursos de multitarefa de seu Linux e seu desempenho, evite estes tipos de dispositivos, prera aqueles que utilizam seus prprios recursos. Quando ocorre um conito de DMA, os dados podem ser misturados e ocorrerem coisas estranhas at o travamento total do sistema. Este tipo de conito difcil de se diagnosticar, a no ser que o tcnico seja experiente o bastante e tenha desconado do que o problema se trata. . .

3.3.3

I/O - Porta de Entrada/Sada

Cada dispositivo possui um endereo de porta. O endereo uma localizao da memria usada pelo computador para enviar dados ao dispositivo e onde o dispositivo envia dados ao computador. Ao contrrios da IRQ e DMA, o dispositivo pode usar mais de uma porta de

Captulo 3. Hardware

19

Entrada/Sada ou uma faixa de endereos. Por exemplo, uma placa de som padro usa as portas 0x220, 0x330 e 0x388, respectivamente audio digital, midi e opl3. As placas de rede normalmente transferem grandes quantidades de dados, assim ocupam uma faixa de endereos. Uma NE2000, por exemplo, ocupa a faixa de endereos 0x260 a 0x27F (0x260-0x27F). O tamanho da faixa de endereos varia de acordo com o tipo de dispositivo. Os endereos de I/O em uso no sistema podem ser visualizados com o comando cat /proc/ioports. Endereos das portas de entrada/sada no podem ser compartilhados

3.4

Hardwares congurveis por jumpers, dip-switches, jumperless e Plug-and-Play.Jumpers

3.4.1

Hardwares congurveis por jumpers (pinos metlicos protegidos por u