Você está na página 1de 662

SUSE Linux

10.1
02/21/2006

www.novell.com Referncia

Referncia
Lista de Autores: Jrg Arndt, Stefan Behlert, Frank Bodammer, James Branam, Volker Buzek, Klara Cihlarova, Stefan Dirsch, Olaf Donjak, Roman Drahtmller, Thorsten Dubiel, Torsten Duwe, Thomas Fehr, Stefan Fent, Werner Fink, Jakub Friedl, Kurt Garloff, Joachim Gleiner, Carsten Gro, Andreas Grnbacher, Berthold Gunreben, Franz Hassels, Andreas Jaeger, Jana Jaeger, Klaus Kmpf, Andi Kleen, Hubert Mantel, Lars Marowsky-Bree, Chris Mason, Johannes Meixner, Lars Mller, Matthias Nagorni, Anas Nashif, Siegfried Olschner, Edith Parzefall, Peter Pml, Thomas Renninger, Hannes Reinecke, Scott Rhoades, Thomas Rlz, Heiko Rommel, Tanja Roth, Marcus Schfer, Thomas Schraitle, Klaus Singvogel, Frank Sundermeyer, Elisabeth Tobiasson, Hendrik Vogelsang, Klaus G. Wagner, Rebecca Walter, Christian Zoz Esta publicao propriedade intelectual da Novell Inc. O seu contedo pode ser duplicado, em parte ou integralmente, desde que um rtulo de copyright esteja visivelmente localizado em cada cpia. Todas as informaes deste manual foram compiladas com a maior ateno possvel aos detalhes. Entretanto, isso no garante uma preciso absoluta. O SUSE LINUX GmbH, os autores ou os tradutores no devero ser responsabilizados por possveis erros ou conseqncias decorrentes. Novell, o logotipo da Novell, o logotipo N e SUSE so marcas registradas da Novell, Inc. nos Estados Unidos e em outros pases. *Linux marca registrada de Linus Torvalds. Todas as outras marcas registradas de terceiros pertencem aos seus respectivos proprietrios. Envie sugestes e comentrios para documentation@suse.de.

Sumrio

Sobre este guia Parte 1 Cenrios de distribuio avanada

xi 15 17
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 26 36 46 51

1 Instalao remota
1.1 1.2 1.3 1.4 1.5 Cenrios de instalao para instalao remota . . . . . . . Configurando o servidor que mantm as fontes de instalao Preparando a inicializao do sistema de destino . . . . . Inicializando o sistema de destino para instalao . . . . . Monitorando o processo de instalao . . . . . . . . . .

2 Configurao de disco avanada


2.1 2.2 Configurao da LVM . . . . . . . . . . . . . . . . . . . . . . . Configurao de RAID de software . . . . . . . . . . . . . . . . .

55
55 63

3 Atualizando o gerenciamento de sistemas e pacotes


3.1 3.2 3.3 Atualizando o SUSE Linux . . . . . . . . . . . . . . . . . . . . . Mudanas no software de verso para verso . . . . . . . . . . . . . RPM o Gerenciador de pacotes . . . . . . . . . . . . . . . . . .

69
69 72 91

Parte 2

Administrao

103 105
105 115

4 Segurana no Linux
4.1 4.2 Mascaramento e firewalls . . . . . . . . . . . . . . . . . . . . . SSH: operaes seguras de rede . . . . . . . . . . . . . . . . . .

4.3 4.4 4.5

Criptografando parties e arquivos . . . . . . . . . . . . . . . . Delimitando privilgios com o AppArmor . . . . . . . . . . . . . . Segurana e confidencialidade . . . . . . . . . . . . . . . . . . .

121 124 134

5 Listas de controle de acesso no Linux


5.1 5.2 5.3 5.4 5.5 5.6 Permisses de arquivo tradicionais Vantagens das ACLs . . . . . . Definies . . . . . . . . . . Gerenciando ACLs . . . . . . . Suporte a ACL em aplicativos . . Mais informaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

147
147 149 150 150 158 159

6 Utilitrios de monitoramento do sistema


6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 6.11 6.12 6.13 6.14 6.15 6.16 6.17 6.18 6.19 6.20 Lista de arquivos abertos: lsof . . . . . . . . . . . . . . . Arquivos de acesso do usurio: fuser . . . . . . . . . . . . Propriedades de arquivo: stat . . . . . . . . . . . . . . . Dispositivos USB: lsusb . . . . . . . . . . . . . . . . . . Informaes sobre um dispositivo SCSI: scsiinfo . . . . . . . Processos: top . . . . . . . . . . . . . . . . . . . . . . Lista de processos: ps . . . . . . . . . . . . . . . . . . . rvore de processos: pstree . . . . . . . . . . . . . . . . Quem est fazendo o qu: w . . . . . . . . . . . . . . . . . Uso da memria: free . . . . . . . . . . . . . . . . . . . Buffer do anel de kernel: dmesg . . . . . . . . . . . . . . . Sistemas de arquivos e sua utilizao: mount, df e du . . . . . O sistema de arquivos /proc . . . . . . . . . . . . . . . . Recursos PCI: lspci . . . . . . . . . . . . . . . . . . . . Chamadas do sistema de uma execuo de programa: strace . . Chamadas da biblioteca de uma execuo de programa: ltrace . Especificao da biblioteca necessria: ldd . . . . . . . . . . Informaes adicionais sobre binrios ELF . . . . . . . . . . . Comunicao entre processos: ipcs . . . . . . . . . . . . . Medio do tempo com time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

161
161 163 163 164 164 165 166 168 168 169 169 170 170 174 175 176 176 177 177 178

Parte 3

Sistema

179

7 Aplicativos de 32 bits e 64 bits em um ambiente de sistema de 64 bits 181


7.1 7.2 7.3 Suporte ao tempo de execuo . . . . . . . . . . . . . . . . . . Desenvolvimento de software . . . . . . . . . . . . . . . . . . . Compilao de software em plataformas biarch . . . . . . . . . . . 181 182 183

7.4

Especificaes do kernel . . . . . . . . . . . . . . . . . . . . .

184

8 Inicializando e configurando um sistema Linux


8.1 8.2 8.3 Processo de inicializao do Linux . . . . . . . . . . . . . . . . . O processo init . . . . . . . . . . . . . . . . . . . . . . . . . Configurao do sistema via /etc/sysconfig . . . . . . . . . . . . . .

185
185 189 198

9 O Carregador de Boot
9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 Selecionando um carregador de boot . . . . . Inicializando com o GRUB . . . . . . . . . . Configurando o carregador de boot com o YaST Desinstalando a controladora de boot do Linux . Criando CDs de boot . . . . . . . . . . . . A tela grfica do SUSE . . . . . . . . . . . Soluo de problemas . . . . . . . . . . . Mais informaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

201
202 202 212 217 217 219 219 221

1 0 Recursos especiais do SUSE Linux


10.1 10.2 10.3 10.4 Informaes sobre pacotes de software especiais Consoles virtuais . . . . . . . . . . . . . . Mapeamento de teclado . . . . . . . . . . Configuraes de idioma e especficas de pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

223
223 230 230 231

1 1 Operao da impressora
11.1 11.2 11.3 11.4 11.5 11.6 11.7 Fluxo de trabalho do sistema de impresso . . . Mtodos e protocolos de conexo de impressoras Instalao do software . . . . . . . . . . . . Configurao da impressora . . . . . . . . . . Configurao de aplicativos . . . . . . . . . . Recursos especiais do SUSE Linux . . . . . . . . Soluo de problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

237
239 239 240 241 247 248 253

1 2 Gerenciamento de dispositivo de kernel dinmico com udev


12.1 12.2 12.3 12.4 12.5 12.6

261

O diretrio /dev . . . . . . . . . . . . . . . . . . . . . . . . 261 udev e uevents de kernel . . . . . . . . . . . . . . . . . . . . . 262 Drivers, mdulos de kernel e dispositivos . . . . . . . . . . . . . . 262 Inicializao e configurao do dispositivo inicial . . . . . . . . . . . 263 Depurando eventos do udev . . . . . . . . . . . . . . . . . . . . 264 Influenciando o tratamento de evento de dispositivo de kernel com regras do udev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

12.7 12.8 12.9

Nomeao de dispositivo persistente . . . . . . . . . . . . . . . . O pacote de hotplug substitudo . . . . . . . . . . . . . . . . . . Mais informaes . . . . . . . . . . . . . . . . . . . . . . . .

265 266 267

1 3 Sistemas de arquivos no Linux


13.1 13.2 13.3 13.4 13.5 Terminologia . . . . . . . . . . . . . Principais sistemas de arquivos no Linux . . Outros sistemas de arquivos suportados . . LFS (Large File Support - Suporte a Arquivos Mais informaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grandes) no Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

269
269 270 276 278 279

1 4 O sistema X Window
14.1 14.2 14.3 14.4 Configurao do X11 com o SaX2 Otimizando a configurao do X . Instalando e configurando fontes . Configurao 3D do OpenGL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

281
281 283 289 295

1 5 FreeNX: controlando outro computador remotamente


15.1 15.2 15.3 15.4 Noes bsicas do NX Configurao avanada Soluo de problemas Mais informaes . . . . . . . do FreeNX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

299
299 302 308 311

1 6 Autenticao com o PAM


16.1 16.2 16.3 16.4 Estrutura de um arquivo de configurao A configurao PAM do sshd . . . . . Configurao de mdulos PAM . . . . Mais informaes . . . . . . . . . . PAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

313
314 316 318 320

1 7 Virtualizao com o Xen


17.1 17.2 17.3 17.4 17.5 Instalao do Xen . . . . . . . . Instalao do domnio . . . . . . Iniciando e controlando domnios do Soluo de problemas . . . . . . Mais informaes . . . . . . . . . . . . Xen . . . . . . . . . . . . com xm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

323
325 325 326 327 328

Parte 4

Servios

329 331
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 338 347 348 359 362 374

1 8 Rede bsica
18.1 18.2 18.3 18.4 18.5 18.6 18.7 Roteamento e endereos IP . . . . . . . . . . . . IPv6 A Internet da prxima gerao . . . . . . . Resoluo de nomes . . . . . . . . . . . . . . . Configurando uma conexo de rede com o YaST . . . Gerenciando conexes de rede com o NetworkManager Configurando uma conexo de rede manualmente . . smpppd como Assistente de Discagem . . . . . . .

1 9 Servios SLP na rede


19.1 19.2 19.3 19.4 Registrando seus prprios servios Front ends de SLP no SUSE Linux . Ativando o SLP . . . . . . . . Mais informaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

377
377 378 379 379

2 0 Domain Name System (Sistema de Nomes de Domnio)


20.1 20.2 20.3 20.4 20.5 20.6 20.7 20.8 20.9 Terminologia DNS . . . . . . . . . . . Configurao com o YaST . . . . . . . . Iniciando o BIND do servidor de nomes . . O arquivo de configurao /etc/named.conf Arquivos de zona . . . . . . . . . . . Atualizao dinmica dos dados da zona . Transaes de segurana . . . . . . . . Segurana do DNS . . . . . . . . . . . Mais informaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

381
381 382 390 392 397 401 402 403 403

2 1 Usando o NIS
21.1 21.2 Configurando servidores NIS . . . . . . . . . . . . . . . . . . . . Configurando clientes NIS . . . . . . . . . . . . . . . . . . . . .

405
405 412

2 2 Compartilhando sistemas de arquivos com o NFS


22.1 22.2 22.3 22.4 22.5 Importando sistemas de arquivos com o YaST . Importando sistemas de arquivos manualmente Exportando sistemas de arquivos com o YaST . Exportando sistemas de arquivos manualmente . Mais informaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

415
415 416 417 418 420

2 3 DHCP
23.1 23.2 23.3 23.4 Configurando um servidor DHCP com o YaST Pacotes de software DHCP . . . . . . . . O dhcpd do servidor DHCP . . . . . . . . Mais informaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

421
422 426 426 430

2 4 Sincronizao de horrio com NTP


24.1 24.2 24.3 Configurando um cliente NTP com YaST . . . . . . . . . . . . . . . Configurando o xntp na rede . . . . . . . . . . . . . . . . . . . Configurando um relgio de referncia local . . . . . . . . . . . . .

431
431 435 435

2 5 LDAP Um servio de diretrio


25.1 25.2 25.3 25.4 25.5 25.6 25.7 LDAP versus NIS . . . . . . . . . . . . . Estrutura de uma rvore de diretrios LDAP . Configurao do servidor com slapd.conf . . Tratamento de dados no diretrio LDAP . . . O cliente LDAP do YaST . . . . . . . . . . Configurando grupos e usurios LDAP no YaST Mais informaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

437
439 440 443 448 452 460 461

2 6 Servidor HTTP Apache


26.1 26.2 26.3 26.4 26.5 26.6 26.7 26.8 26.9 Inicializao Rpida . . . . . . . . . . . . Configurando o Apache . . . . . . . . . . . Iniciando e parando o Apache . . . . . . . . Instalando, ativando e configurando mdulos . Obtendo scripts CGI para trabalhar . . . . . . Configurando um servidor Web seguro com SSL Evitando problemas de segurana . . . . . . Soluo de problemas . . . . . . . . . . . Mais informaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

463
463 465 480 482 490 493 499 501 502

2 7 Sincronizao de arquivos
27.1 27.2 27.3 27.4 27.5 27.6 27.7 Software de sincronizao de dados disponvel . . . Determinando fatores para selecionar um programa Introduo ao Unison . . . . . . . . . . . . . Introduo ao CVS . . . . . . . . . . . . . . . Introduo ao Subversion . . . . . . . . . . . . Introduo ao rsync . . . . . . . . . . . . . . Introduo ao mailsync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

505
505 509 513 515 518 521 523

2 8 Samba
28.1 28.2 28.3 28.4 28.5 28.6 Terminologia . . . . . . . . . . Iniciando e interrompendo o Samba Configurando um servidor Samba . Configurando clientes . . . . . . Samba como servidor de login . . . Mais informaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

527
527 529 529 535 536 537

2 9 O Servidor Proxy Squid


29.1 29.2 29.3 29.4 29.5 29.6 29.7 29.8 29.9 Alguns fatos sobre caches proxy . . . . . . . Requisitos do sistema . . . . . . . . . . . . Iniciando o Squid . . . . . . . . . . . . . O arquivo de configurao /etc/squid/squid.conf Configurando um proxy transparente . . . . . cachemgr.cgi . . . . . . . . . . . . . . . squidGuard . . . . . . . . . . . . . . . . Gerao de relatrio de cache com o Calamaris Mais informaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

539
540 542 543 546 551 554 556 558 559

Parte 5

Mobilidade

561 563
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 571 572 572

3 0 Computao mvel com o Linux


30.1 30.2 30.3 30.4 Laptops . . . . . . . . Hardware mvel . . . . . Telefones celulares e PDAs Mais informaes . . . . . . . . . . . . . . . . . . . .

3 1 PCMCIA
31.1 31.2 31.3 Controlando placas PCMCIA usando pccardctl . . . . . . . . . . . . PCMCIA em detalhes . . . . . . . . . . . . . . . . . . . . . . . Soluo de problemas . . . . . . . . . . . . . . . . . . . . . .

575
576 576 579

3 2 System Configuration Profile Management


32.1 32.2 32.3 32.4 32.5 32.6 Terminologia . . . . . . . . . . . . . . . . . . . . . . Configurando o SCPM . . . . . . . . . . . . . . . . . . Configurando o SCPM usando uma interface grfica de usurio . Configurando o SCPM com a linha de comando . . . . . . . Soluo de problemas . . . . . . . . . . . . . . . . . . Mais informaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

583
584 584 585 592 595 596

3 3 Gerenciamento de energia
33.1 33.2 33.3 33.4 33.5 33.6 Funes de economia de energia . . . . APM . . . . . . . . . . . . . . . . ACPI . . . . . . . . . . . . . . . . Descanso do disco rgido . . . . . . . O Pacote powersave . . . . . . . . . O mdulo Gerenciamento de energia YaST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

597
598 599 600 608 610 618

3 4 Comunicao sem fio


34.1 34.2 34.3 LAN sem fio . . . . . . . . . . . . . . . . . . . . . . . . . . . Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmisso de dados infravermelhos . . . . . . . . . . . . . . . .

623
623 635 647

ndice Remissivo

651

Sobre este guia


Este manual oferece uma viso geral do SUSE Linux. Ele se destina principalmente a administradores de sistemas e usurios domsticos com conhecimentos bsicos de administrao de sistemas. Este manual apresenta uma seleo de aplicativos necessrios na vida quotidiana e oferece descries detalhadas de cenrios de instalao e configurao avanadas. Cenrios de distribuio avanada Informaes sobre como distribuir o SUSE Linux em ambientes complexos. Administrao Informaes sobre segurana no sistema SUSE Linux, controles de acesso a sistemas de arquivos e alguns importantes utilitrios para administradores do Linux. Sistema Informaes sobre o funcionamento dos componentes do sistema Linux e detalhes sobre sua interao. Servios Informaes sobre como configurar os diversos servios de rede e de arquivos oferecidos pelo SUSE Linux. Mobilidade Informaes bsicas sobre computao mvel com o SUSE Linux e configurao das diversas opes de computao sem fio, gerenciamento de energia e gerenciamento de perfil.

1 Feedback
Queremos receber seus comentrios e sugestes sobre este manual e sobre a documentao restante que acompanha este produto. Use a funo Comentrios do Usurio, situada na parte inferior de cada pgina da documentao online e digite seus comentrios.

2 Documentao adicional
H outros manuais disponveis sobre o produto SUSE Linux: online em http://www .novell.com/documentation/ ou no sistema instalado em /usr/share/ doc/manual/: Inicializao do SUSE Linux Este guia apresenta o procedimento de instalao do SUSE Linux e o uso bsico do ambiente de rea de trabalho. Uma verso online deste documento pode ser encontrada em http://www.novell.com/documentation/suse101/ Aplicativos do SUSE Linux Este guia apresenta uma seleo das ferramentas mais importantes fornecidas pelo SUSE Linux. Uma verso online deste documento pode ser encontrada em http://www.novell.com/documentation/suse101/. Guia de Administrao do Novell AppArmor 2.0 Este guia contm informaes detalhadas sobre o uso do AppArmor em seu ambiente. Uma verso online deste documento pode ser encontrada em http:// www.novell.com/documentation/apparmor/.

3 Convenes da documentao
As seguintes convenes tipogrficas so usadas neste manual: /etc/passwd: nomes de arquivo e diretrio marcador: substitua marcador pelo valor real PATH: a varivel de ambiente PATH ls, --help: comandos, opes e parmetros user: usurios ou grupos
Alt , Alt + F1 : uma tecla ou combinao de teclas para pressionar, mostradas em maisculas como no teclado

Arquivo, Arquivo Salvar Como: itens de menu, botes xii Referncia

Pingins danando (Captulo Pingins, Referncia): Referncia a um captulo em outro manual.

4 Sobre este manual


Este livro escrito em Novdoc, um subconjunto de DocBook (consulte http://www .docbook.org). Os arquivos de origem XML foram validados por xmllint, processados por xsltproc e convertidos em HTML usando uma verso personalizada das folhas de estilo de Norman Walsh.

5 Reconhecimento
Os desenvolvedores do Linux esto voluntariamente empenhados com a promoo do desenvolvimento do Linux em escala global. Agradecemos por seus esforos esta distribuio no seria possvel sem eles. Ademais, gostaramos de agradecer a Frank Zappa e a Pawar. Agradecimentos especiais, claro, a Linus Torvalds. Divirta-se! Equipe SUSE

Sobre este guia

xiii

Parte 1. Cenrios de distribuio avanada

Instalao remota
O SUSE Linux pode ser instalado de vrias maneiras. Como na instalao comum de CD ou DVD abordada no Captulo Instalao com o YaST (Inicializao), voc pode escolher entre vrios mtodos baseados em rede ou at mesmo optar por um mtodo totalmente sem interveno para a instalao do SUSE Linux. Cada mtodo apresentado por meio de duas listas de verificao breves: uma que relaciona os pr-requisitos do mtodo e outra que ilustra o procedimento bsico. So fornecidos mais detalhes para todas as tcnicas usadas nos cenrios de instalao. NOTA Nas sees a seguir, o sistema que manter a instalao do seu novo SUSE Linux conhecido como sistema de destino ou destino de instalao. O termo fonte de instalao usado para todas as fontes de dados de instalao. Isso inclui mdia fsica, como CD e DVD e servidores de rede que distribuem os dados de instalao na sua rede.

1.1 Cenrios de instalao para instalao remota


Esta seo apresenta os cenrios de instalao mais comuns para instalaes remotas. Para cada cenrio, verifique cuidadosamente a lista de pr-requisitos e siga o procedimento descrito para este cenrio. Se necessitar de instrues detalhadas para uma etapa especfica, siga os links fornecidos para cada uma. Instalao remota 17

IMPORTANTE A configurao do sistema X Window no faz parte de nenhum processo de instalao remota. Aps o trmino da instalao, efetue login no sistema de destino como root, digite telinit 3 e inicie SaX2 para configurar o hardware de vdeo, como descrito na Seo 14.1, Configurao do X11 com o SaX2 (p 281).

1.1.1 Instalao remota simples por VNC: configurao de rede esttica


Este tipo de instalao ainda requer algum grau de acesso fsico ao sistema de destino para inicializar na instalao. A instalao em si inteiramente controlada por uma estao de trabalho remota usando VNC para se conectar ao programa de instalao. A interao do usurio necessria, como na instalao manual no Captulo Instalao com o YaST (Inicializao). Para este tipo de instalao, verifique se os seguintes requisitos foram atendidos: Fonte da instalao remota: NFS, HTTP, FTP ou SMB com conexo de rede ativa Sistema de destino com conexo de rede ativa Sistema de controle com conexo de rede ativa e software visualizador VNC ou browser habilitado para Java (Firefox, Konqueror, Internet Explorer ou Opera) Mdia fsica de inicializao (CD ou DVD) para inicializar o sistema de destino Endereos IP esttico vlidos j atribudos fonte de instalao e ao sistema de controle Endereos IP esttico vlidos para atribuir ao sistema de destino Para executar este tipo de instalao, proceda da seguinte maneira: 1 Configure a fonte de instalao como descrito na Seo 1.2, Configurando o servidor que mantm as fontes de instalao (p 26).

18

Referncia

2 Inicialize o sistema de destino usando o primeiro CD ou DVD do kit de mdia do SUSE Linux. 3 Quando a tela de inicializao do sistema de destino for exibida, use o prompt de opes de inicializao para definir as opes de VNC apropriadas e o endereo da fonte de instalao. Isso est descrito detalhadamente na Seo 1.4, Inicializando o sistema de destino para instalao (p 46). O sistema de destino inicializado em um ambiente baseado em texto, apresentando o endereo de rede e nmero de exibio sob o qual o ambiente de instalao grfico pode ser endereado por qualquer aplicativo visualizador VNC ou browser. As instalaes VNC se anunciam em OpenSLP e podem ser encontradas usando-se o Konqueror no modo service:// ou slp://. 4 Na estao de trabalho de controle, abra um aplicativo de visualizao VNC ou browser da Web e conecte-se ao sistema de destino como descrito na Seo 1.5.1, Instalao VNC (p 51). 5 Execute a instalao como descrito no Captulo Instalao com o YaST (Inicializao). Ser necessrio reconectar-se ao sistema de destino depois de reinicializado, para concluir a parte final da instalao. 6 Conclua a instalao.

1.1.2 Instalao remota simples por VNC: configurao de rede dinmica por DHCP
Este tipo de instalao ainda requer algum grau de acesso fsico ao sistema de destino para inicializar na instalao. A configurao de rede feita com DHCP. A instalao em si inteiramente controlada por uma estao de trabalho remota usando VNC para conectar-se ao instalador, mas ainda requer a interao do usurio no trabalho real de configurao. Para este tipo de instalao, verifique se os seguintes requisitos foram atendidos:

Instalao remota

19

Fonte da instalao remota: NFS, HTTP, FTP ou SMB com conexo de rede ativa Sistema de destino com conexo de rede ativa Sistema de controle com conexo de rede ativa e software visualizador VNC ou browser habilitado para Java (Firefox, Konqueror, Internet Explorer ou Opera) Mdia fsica de inicializao (CD, DVD, disco de inicializao personalizado) para inicializar o sistema de destino Servidor DHCP em execuo fornecendo endereos IP Para executar este tipo de instalao, proceda da seguinte maneira: 1 Configure a fonte de instalao como descrito na Seo 1.2, Configurando o servidor que mantm as fontes de instalao (p 26). Escolha um servidor de rede NFS, HTTP ou FTP. No caso de uma fonte de instalao SMB, consulte a Seo 1.2.5, Gerenciando uma fonte de instalao SMB (p 35). 2 Inicialize o sistema de destino usando o primeiro CD ou DVD do kit de mdia do SUSE Linux. 3 Quando a tela de inicializao do sistema de destino for exibida, use o prompt de opes de inicializao para definir as opes de VNC apropriadas e o endereo da fonte de instalao. Isso est descrito detalhadamente na Seo 1.4, Inicializando o sistema de destino para instalao (p 46). O sistema de destino inicializado em um ambiente baseado em texto, apresentando o endereo de rede e nmero de exibio sob o qual o ambiente de instalao grfico pode ser endereado por qualquer aplicativo visualizador VNC ou browser. As instalaes VNC se anunciam em OpenSLP e podem ser encontradas usando-se o Konqueror no modo service:// ou slp://. 4 Na estao de trabalho de controle, abra um aplicativo de visualizao VNC ou browser da Web e conecte-se ao sistema de destino como descrito na Seo 1.5.1, Instalao VNC (p 51). 5 Execute a instalao como descrito no Captulo Instalao com o YaST (Inicializao). Ser necessrio reconectar-se ao sistema de destino depois de reinicializado, para concluir a parte final da instalao. 20 Referncia

6 Conclua a instalao.

1.1.3 Instalao remota por VNC: inicializao PXE e Wake on LAN


Este tipo de instalao ocorre totalmente sem interveno. A mquina de destino inicializada remotamente. A interao do usurio s necessria para a instalao em si. Este mtodo adequado para distribuies entre sites. Para executar este tipo de instalao, verifique se os seguintes requisitos foram atendidos: Fonte da instalao remota: NFS, HTTP, FTP ou SMB com conexo de rede ativa Servidor TFTP Servidor DHCP em execuo para sua rede Sistema de destino com recurso de inicializao PXE, rede e Wake on LAN, conectado rede Sistema de controle com conexo de rede ativa e software visualizador VNC ou browser habilitado para Java (Firefox, Konqueror, Internet Explorer ou Opera) Para executar este tipo de instalao, proceda da seguinte maneira: 1 Configure a fonte de instalao como descrito na Seo 1.2, Configurando o servidor que mantm as fontes de instalao (p 26). Escolha um servidor de rede NFS, HTTP, FTP ou configure uma fonte de instalao SMB como descrito na Seo 1.2.5, Gerenciando uma fonte de instalao SMB (p 35). 2 Configure um servidor TFTP para manter uma imagem de inicializao que possa ser extrada pelo sistema de destino. Isso est descrito na Seo 1.3.2, Configurando um servidor TFTP (p 38). 3 Configure um servidor DHCP para fornecer endereos IP a todas as mquinas e revelar a localizao do servidor TFTP para o sistema de destino. Isso est descrito na Seo 1.3.1, Configurando um servidor DHCP (p 37).

Instalao remota

21

4 Prepare o sistema de destino para a inicializao PXE. Isso est descrito detalhadamente na Seo 1.3.5, Preparando o sistema de destino para inicializao PXE (p 45). 5 Inicie o processo de inicializao do sistema de destino usando Wake on LAN. Isso est descrito na Seo 1.3.7, Wake on LAN (p 45). 6 Na estao de trabalho de controle, abra um aplicativo de visualizao VNC ou browser da Web e conecte-se ao sistema de destino como descrito na Seo 1.5.1, Instalao VNC (p 51). 7 Execute a instalao como descrito no Captulo Instalao com o YaST (Inicializao). Ser necessrio reconectar-se ao sistema de destino depois de reinicializado, para concluir a parte final da instalao. 8 Conclua a instalao.

1.1.4 Instalao remota simples por SSH: configurao de rede esttica


Este tipo de instalao ainda requer algum grau de acesso fsico ao sistema de destino para a inicializao na instalao e para determinar o endereo IP do destino de instalao. A instalao em si inteiramente controlada de uma estao de trabalho remota usando SSH para se conectar ao instalador. A interao do usurio necessria, como na instalao comum descrita no Captulo Instalao com o YaST (Inicializao). Para este tipo de instalao, verifique se os seguintes requisitos foram atendidos: Fonte da instalao remota: NFS, HTTP, FTP ou SMB com conexo de rede ativa Sistema de destino com conexo de rede ativa Sistema de controle com conexo de rede ativa e software cliente SSH ativo. Mdia fsica de inicializao (CD, DVD, disco de inicializao personalizado) para o sistema de destino

22

Referncia

Endereos IP esttico vlidos j atribudos fonte de instalao e ao sistema de controle Endereos IP esttico vlidos para atribuir ao sistema de destino Para executar este tipo de instalao, proceda da seguinte maneira: 1 Configure a fonte de instalao como descrito na Seo 1.2, Configurando o servidor que mantm as fontes de instalao (p 26). 2 Inicialize o sistema de destino usando o primeiro CD ou DVD do kit de mdia do SUSE Linux. 3 Quando a tela de inicializao do sistema de destino for exibida, use o prompt de opes de inicializao para definir os parmetros apropriados de conexo de rede, o endereo da fonte de instalao e a habilitao SSH. Isso est descrito detalhadamente na Seo 1.4.3, Usando opes de inicializao personalizadas (p 48). O sistema de destino inicializado em um ambiente baseado em texto, apresentando o endereo de rede sob o qual o ambiente de instalao grfica pode ser endereado por qualquer cliente SSH. 4 Na estao de trabalho de controle, abra uma janela de terminal e conecte-se ao sistema de destino como descrito em Conectando-se ao programa de instalao (p 53). 5 Execute a instalao como descrito no Captulo Instalao com o YaST (Inicializao). Ser necessrio reconectar-se ao sistema de destino depois de reinicializado, para concluir a parte final da instalao. 6 Conclua a instalao.

Instalao remota

23

1.1.5 Instalao remota simples por SSH: configurao de rede dinmica por DHCP
Este tipo de instalao ainda requer algum grau de acesso fsico ao sistema de destino para a inicializao na instalao e para determinar o endereo IP do destino de instalao. A instalao em si inteiramente controlada por uma estao de trabalho remota usando VNC para conectar-se ao instalador, mas ainda requer a interao do usurio no trabalho real de configurao. Para este tipo de instalao, verifique se os seguintes requisitos foram atendidos: Fonte da instalao remota: NFS, HTTP, FTP ou SMB com conexo de rede ativa Sistema de destino com conexo de rede ativa Sistema de controle com conexo de rede ativa e software cliente SSH ativo. Mdia fsica de inicializao (CD ou DVD) para inicializar o sistema de destino Servidor DHCP em execuo fornecendo endereos IP Para executar este tipo de instalao, proceda da seguinte maneira: 1 Configure a fonte de instalao como descrito na Seo 1.2, Configurando o servidor que mantm as fontes de instalao (p 26). Escolha um servidor de rede NFS, HTTP ou FTP. No caso de uma fonte de instalao SMB, consulte a Seo 1.2.5, Gerenciando uma fonte de instalao SMB (p 35). 2 Inicialize o sistema de destino usando o primeiro CD ou DVD do kit de mdia do SUSE Linux. 3 Quando a tela de inicializao do sistema de destino for exibida, use o prompt de opes de inicializao para passar os parmetros apropriados de conexo de rede, a localizao da fonte de instalao e a habilitao SSH. Consulte a Seo 1.4.3, Usando opes de inicializao personalizadas (p 48) para obter instrues detalhadas sobre o uso desses parmetros.

24

Referncia

O sistema de destino inicializado em um ambiente baseado em texto, apresentando o endereo de rede sob o qual o ambiente de instalao grfica pode ser endereado por qualquer cliente SSH. 4 Na estao de trabalho de controle, abra uma janela de terminal e conecte-se ao sistema de destino como descrito em Conectando-se ao programa de instalao (p 53). 5 Execute a instalao como descrito no Captulo Instalao com o YaST (Inicializao). Ser necessrio reconectar-se ao sistema de destino depois de reinicializado, para concluir a parte final da instalao. 6 Conclua a instalao.

1.1.6 Instalao remota por SSH: inicializao PXE e Wake on LAN


Este tipo de instalao ocorre totalmente sem interveno. A mquina de destino inicializada remotamente. Para executar este tipo de instalao, verifique se os seguintes requisitos foram atendidos: Fonte da instalao remota: NFS, HTTP, FTP ou SMB com conexo de rede ativa Servidor TFTP Servidor DHCP em execuo para sua rede, fornecendo um IP esttico para o host a ser instalado Sistema de destino com recurso de inicializao PXE, rede e Wake on LAN, conectado rede Sistema de controle com conexo de rede ativa e software cliente SSH Para executar este tipo de instalao, proceda da seguinte maneira: 1 Configure a fonte de instalao como descrito na Seo 1.2, Configurando o servidor que mantm as fontes de instalao (p 26). Escolha um servidor de Instalao remota 25

rede NFS, HTTP ou FTP. Para obter informaes sobre como configurar uma fonte de instalao SMB, consulte a Seo 1.2.5, Gerenciando uma fonte de instalao SMB (p 35). 2 Configure um servidor TFTP para manter uma imagem de inicializao que possa ser extrada pelo sistema de destino. Isso est descrito na Seo 1.3.2, Configurando um servidor TFTP (p 38). 3 Configure um servidor DHCP para fornecer endereos IP a todas as mquinas e revelar a localizao do servidor TFTP para o sistema de destino. Isso est descrito na Seo 1.3.1, Configurando um servidor DHCP (p 37). 4 Prepare o sistema de destino para a inicializao PXE. Isso est descrito detalhadamente na Seo 1.3.5, Preparando o sistema de destino para inicializao PXE (p 45). 5 Inicie o processo de inicializao do sistema de destino usando Wake on LAN. Isso est descrito na Seo 1.3.7, Wake on LAN (p 45). 6 Na estao de trabalho de controle, inicie um cliente SSH e conecte-se ao sistema de destino como descrito na Seo 1.5.2, Instalao SSH (p 53). 7 Execute a instalao como descrito no Captulo Instalao com o YaST (Inicializao). Ser necessrio reconectar-se ao sistema de destino depois de reinicializado, para concluir a parte final da instalao. 8 Conclua a instalao.

1.2 Configurando o servidor que mantm as fontes de instalao


Dependendo do sistema operacional executado na mquina a ser usada como fonte de instalao em rede para o SUSE Linux, h vrias opes para a configurao do servidor. A maneira mais fcil de configurar um servidor de instalao usar o YaST no SUSE LINUX Enterprise Server 9 ou SUSE Linux 9.3 e superior. Em outras verso do SUSE

26

Referncia

LINUX Enterprise Server ou do SUSE Linux, configure a fonte de instalao manualmente. DICA Voc pode usar uma mquina Microsoft Windows como servidor de instalao para a distribuio do Linux. Consulte a Seo 1.2.5, Gerenciando uma fonte de instalao SMB (p 35) para obter detalhes.

1.2.1 Configurando um servidor de instalao usando YaST


O YaST oferece uma ferramenta grfica para criar fontes de instalao em rede. Ele possui suporte a servidores de instalao em rede HTTP, FTP e NFS. 1 Efetue login como root na mquina que dever atuar como servidor de instalao. 2 Inicie YaST Diversos Servidor de Instalao. 3 Selecione Configurao de Servidor. 4 Selecione o tipo de servidor (HTTP, FTP ou NFS). O servio de servidor selecionado iniciado automaticamente toda vez que o sistema inicializa. Se um servio do tipo selecionado j estiver em execuo no seu sistema e voc quiser configur-lo manualmente para o servidor, desative a configurao automtica do servio de servidor com No configure servios de rede. Em ambos os casos, defina o diretrio em que os dados da instalao devem estar disponveis no servidor. 5 Configure o tipo de servidor necessrio. Esta etapa refere-se configurao automtica dos servios de servidor. Ela ignorada quando a configurao automtica est desativada. Defina um lias para o diretrio raiz do servidor FTP ou HTTP no qual os dados de instalao devem ser encontrados. A fonte de instalao posteriormente estar localizada em ftp://IP do servidor/lias/Nome (FTP) ou em http://IP do servidor/lias/Nome (HTTP). Nome significa o nome da fonte de

Instalao remota

27

instalao, que definida na etapa seguinte. Se voc selecionou NFS na etapa anterior, defina curingas e opes de exportaes. O servidor NFS estar disponvel em nfs://IP do servidor/Nome. Detalhes sobre NFS e exportaes so encontrados no Captulo 22, Compartilhando sistemas de arquivos com o NFS (p 415). 6 Configure a fonte de instalao. Antes que as mdias de instalao sejam copiadas para seu destino, defina o nome da fonte de instalao (de preferncia, uma abreviao fcil de ser lembrada do produto e da verso). O YaST permite fornecer imagens ISO da mdia em vez de cpias dos CDs de instalao. Se desejar, ative a caixa de seleo relevante e especifique o caminho de diretrio no qual os arquivos ISO podem ser encontrados localmente. Dependendo do produto a distribuir usando este servidor de instalao, talvez sejam necessrios mais CDs de expanso ou CDs de service pack para instalar o produto completamente. Se voc ativar Solicitar CDs adicionais, o YaST o lembrar automaticamente de fornecer essas mdias. Para anunciar o servidor de instalao na rede por OpenSLP, ative a opo adequada. DICA Considere anunciar a sua fonte de instalao por OpenSLP se a sua configurao de rede for compatvel com esta opo. Isto o livra de digitar o caminho de instalao da rede em todas as mquinas de destino. Os sistemas de destino, inicializados com a opo de inicializao SLP, encontraro a fonte de instalao de rede sem outras configuraes. Para obter detalhes sobre esta opo, consulte a Seo 1.4, Inicializando o sistema de destino para instalao (p 46). 7 Faa o upload dos dados de instalao. A etapa mais longa da configurao de um servidor de instalao copiar os CDs de instalao. Insira a mdia na seqncia solicitada pelo YaST e aguarde o trmino do procedimento de cpia. Quando as fontes tiverem sido completamente copiadas, volte para a viso geral das fontes de informaes existentes e feche a configurao selecionando Concluir. O seu servidor de instalao agora est totalmente configurado e pronto para servio. Ele inicializado automaticamente toda vez que o sistema iniciado. Nenhuma outra interveno necessria. Voc precisa apenas configurar e

28

Referncia

inicializar este servio de forma correta e manualmente se tiver desativado a configurao automtica do servio de rede selecionado com YaST como etapa inicial. Para desativar uma fonte de instalao, selecione Mudar na viso geral para chegar a uma lista de todas as fontes de instalao disponveis. Escolha a entrada para remover e selecione Apagar. Este procedimento de excluso s diz respeito desativao do servio de servidor. Os dados de instalao em si permanecem no diretrio escolhido. No entanto, voc pode remov-lo manualmente. Se o seu servidor de instalao fornecer os dados de instalao para mais de um produto da verso de produto, inicie o mdulo de servidor de instalao YaST e selecione Configurar na viso geral das fontes de instalao existentes para configurar a nova fonte de instalao.

1.2.2 Configurao manual de uma fonte de instalao NFS


A configurao de uma fonte NFS para instalao feita basicamente em duas etapas. Na primeira etapa, crie a estrutura de diretrio que manter os dados de instalao e copie a mdia de instalao nessa estrutura. Em seguida, exporte o diretrio que manter os dados de instalao para a rede. Para criar um diretrio para manter os dados de instalao, proceda da seguinte maneira: 1 Efetue login como Root. 2 Crie um diretrio que posteriormente manter todos os dados de instalaes e v at ele. Por exemplo:
mkdir install/produto/verso_do_produto cd install/produto/verso_do_produto

Substitua produto por uma abreviao do nome do produto (neste caso, SUSE Linux) e verso_do_produto por uma string que contenha o nome e a verso do produto. 3 Para cada CD contido no kit de mdia, execute os seguintes comandos:

Instalao remota

29

a Copie todo o contedo do CD de instalao para o diretrio do servidor de instalao:


cp -a /media/caminho_unidade_de_CD-ROM .

Substitua caminho_unidade_de_CD-ROM pelo caminho real no qual est endereada sua unidade de CD ou DVD. Dependendo do tipo de unidade usado no seu sistema, as opes so cdrom, cdrecorder, dvd ou dvdrecorder. b Renomeie o diretrio com o nmero do CD:
mv caminho_unidade_de_CD-ROM CDx

Substitua x pelo nmero real do seu CD. Para exportar as fontes de instalao por NFS usando YaST, proceda da seguinte maneira: 1 Efetue login como Root. 2 Inicie YaST Servios de Rede Servidor NFS. 3 Selecione Iniciar Servidor NFS e Abrir Porta no Firewall e clique em Prximo. 4 Selecione Adicionar Diretrio e digite o caminho do diretrio que mantm os dados de instalao. Neste caso, /verso_do_produto. 5 Selecione Adicionar Host e digite os nomes de host das mquinas para as quais exportar os dados de instalao. Em vez de especificar os nomes de host aqui, voc pode usar curingas, faixas de endereos de rede ou apenas o nome de domnio da sua rede. Digite as opes de exportao adequadas ou mantenha o padro, que funciona bem na maioria das configuraes. Para obter mais informaes sobre a sintaxe usada na exportao de compartilhamentos NFS, leia a pgina de manual sobre exports. 6 Clique em Concluir. O servidor NFS que mantm as fontes de instalao do SUSE Linux inicializado automaticamente e integrado ao processo de inicializao.

30

Referncia

Se voc preferir exportar manualmente as fontes de instalao por NFS em vez de usar o mdulo de servidor NFS do YaST, proceda da seguinte maneira: 1 Efetue login como Root. 2 Abra o arquivo /etc/exports e digite a seguinte linha:
/verso_do_produto *(ro,root_squash,sync)

Isso exporta o diretrio /verso_do_produto para qualquer host que faa parte desta rede ou para qualquer host que possa se conectar com este servidor. Para limitar o acesso a este servidor, use mscaras de rede ou nomes de domnio em vez do curinga geral *. Consulte a pgina de manual sobre export para obter detalhes. Grave e saia deste arquivo de configurao. 3 Para adicionar o servio NFS lista de servidores iniciados durante a inicializao do sistema, execute os seguintes comandos:
insserv /etc/init.d/nfsserver insserv /etc/init.d/portmap

4 Inicie o servidor NFS usando o seguinte comando:


rcnfsserver start

Se voc precisar mudar a configurao do seu servidor NFS posteriormente, modifique o arquivo de configurao e reinicie o daemon NFS com rcnfsserver restart. Anunciar o servidor NFS por OpenSLP faz o seu endereo ser conhecido por todos os clientes da sua rede. 1 Efetue login como Root. 2 Digite o diretrio /etc/slp.reg.d/. 3 Crie um arquivo de configurao chamado install.suse.nfs.reg contendo as seguintes linhas:
# Register the NFS Installation Server service:install.suse:nfs://$HOSTNAME/path_instsource/CD1,en,65535 description=NFS Installation Source

Instalao remota

31

Substitua caminho_fonte_inst pelo caminho real da fonte de instalao no seu servidor. 4 Grave este arquivo de configurao e inicie o daemon OpenSLP usando o seguinte comando:
rcslpd start

Para obter mais informaes sobre OpenSLP, consulte a documentao do pacote localizada em /usr/share/doc/packages/openslp/ ou consulte o Captulo 19, Servios SLP na rede (p 377).

1.2.3 Configurao manual de uma fonte de instalao FTP


Criar uma fonte de instalao FTP muito semelhante criao de uma fonte de instalao NFS. As fontes de instalao FTP podem ser anunciadas na rede tambm usando OpenSLP. 1 Crie um diretrio que mantenha as fontes de instalao como descrito na Seo 1.2.2, Configurao manual de uma fonte de instalao NFS (p 29). 2 Configure o servidor FTP para distribuir o contedo do seu diretrio de instalao: a Efetue login como root e instale o pacote pure-ftpd (um servidor FTP simples) usando o gerenciador de pacotes do YaST. b Digite o diretrio raiz do servidor FTP:
cd/srv/ftp

c Crie um subdiretrio que mantenha as fontes de instalao no diretrio raiz do FTP:


mkdir fonte_inst

Substitua fonte_inst pelo nome do produto. d Copie o contedo de todos os CDs de instalao no diretrio raiz do servidor FTP (semelhante ao procedimento descrito na Seo 1.2.2, Configurao manual de uma fonte de instalao NFS (p 29), Passo 3 (p 29)). 32 Referncia

Como alternativa, monte o contedo do repositrio de instalao j existente no ambiente raiz de mudanas do servidor FTP:
mount --bind caminho_fonte_inst /srv/ftp/fonte_inst

Substitua caminho_fonte_inst e fonte_inst pelos valores correspondentes sua configurao. Se precisar tornar os valores permanentes, adicione-os a /etc/fstab. e Inicie pure-ftpd:
pure-ftpd &

3 Anuncie a fonte de instalao por OpenSLP, se for suportado pela configurao da sua rede: a Crie um arquivo de configurao chamado install.suse.ftp.reg em /etc/slp/reg.d/ com as seguintes linhas:
# Register the FTP Installation Server service:install.suse:ftp://$HOSTNAME/srv/ftp/instsource/CD1,en,65535 description=FTP Installation Source

Substitua fonte_inst pelo nome real no diretrio da fonte de instalao do seu servidor. A linha service: deve ser digitada como uma linha contnua. b Grave este arquivo de configurao e inicie o daemon OpenSLP usando o seguinte comando:
rcslpd start

1.2.4 Configurao manual de uma fonte de instalao HTTP


Criar uma fonte de instalao HTTP muito semelhante criao de uma fonte de instalao NFS. As fontes de instalao HTTP podem ser anunciadas na rede tambm usando OpenSLP.

Instalao remota

33

1 Crie um diretrio que mantenha as fontes de instalao como descrito na Seo 1.2.2, Configurao manual de uma fonte de instalao NFS (p 29). 2 Configure o servidor HTTP para distribuir o contedo do seu diretrio de instalao: a Instale o servidor Web do Apache como descrito na Seo 26.1.2, Instalao (p 464). b Digite o diretrio raiz do servidor HTTP (/srv/www/htdocs) e crie um subdiretrio que manter as fontes de instalao:
mkdir fonte_inst

Substitua fonte_inst pelo nome do produto. c Crie um link simblico do local das fontes de instalao para o diretrio raiz do servidor Web (/srv/www/htdocs):
ln -s /caminho_fonte_inst /srv/www/htdocs/fonte_inst

d Modifique o arquivo de configurao do servidor HTTP (/etc/apache2/ default-server.conf) para faz-lo seguir links simblicos. Substitua a seguinte linha:
Options None

por
Options Indexes FollowSymLinks

e Recarregue a configurao do servidor HTTP usando rcapache2 reload. 3 Anuncie a fonte de instalao por OpenSLP, se for suportado pela configurao da sua rede: a Crie um arquivo de configurao chamado install.suse.http.reg em /etc/slp/reg.d/ com as seguintes linhas:
# Register the HTTP Installation Server service:install.suse:http://$HOSTNAME/srv/www/htdocs/instsource/CD1/,en,65535 description=HTTP Installation Source

34

Referncia

Substitua caminho_fonte_inst pelo caminho real da fonte de instalao no seu servidor. A linha service: deve ser digitada como uma linha contnua. b Grave este arquivo de configurao e inicie o daemon OpenSLP usando rcslpd restart.

1.2.5 Gerenciando uma fonte de instalao SMB


Com o SMB (Samba), possvel importar as fontes de instalao de um servidor Microsoft Windows e iniciar a distribuio do Linux mesmo sem nenhuma mquina Linux. Para configurar um Compartilhamento Windows exportado mantendo as suas fontes de instalao do SUSE Linux, proceda da seguinte maneira: 1 Efetue login na sua mquina Windows. 2 Inicie o Explorer e crie uma nova pasta que manter toda a rvore de instalao e denomine-a INSTALAR, por exemplo. 3 Exporte este compartilhamento de acordo com o procedimento descrito na sua documentao do Windows. 4 Digite este compartilhamento e crie uma subpasta, denominada produto. produto deve ser substitudo pelo nome real do produto (SUSE Linux neste caso). 5 Copie cada CD do SUSE Linux em uma pasta separada e denomine essas pastas CD1, CD2, CD3 etc. 6 Digite o diretrio superior do compartilhamento exportado (INSTALAR, neste exemplo) e copie os seguintes arquivos de produto/CD1 para esta pasta: content, media.1, control.xml e boot. 7 Crie uma nova pasta em INSTALAR e denomine-a yast.

Instalao remota

35

Digite a pasta yast e crie os arquivos order e instorder. 8 Abra o arquivo order e digite a seguinte linha:
/NLD/CD1 smb://usurio:senha@nome_do_host/produtoCD1

Substitua usurio pelo nome de usurio que voc usa na mquina Windows ou use Guest para habilitar o login de convidado a este compartilhamento. senha deve ser substitudo por sua senha de login ou qualquer outra string para login de convidado. nome_do_host deve ser substitudo pelo nome de rede da sua mquina Windows. 9 Abra o arquivo instorder e digite a seguinte linha:
/produto/CD1

Para usar um compartilhamento SMB montado como fonte de instalao, proceda da seguinte maneira: 1 Inicialize o destino de instalao. 2 Selecione Instalao. 3 Pressione
F3

F4

para obter uma seleo de fontes de instalao.

4 Escolha SMB e digite o nome ou endereo IP da mquina Windows, o nome de compartilhamento (INSTALAR, neste exemplo), nome de usurio e senha. Depois que voc pressionar a instalao.
Enter

, o YaST ser iniciado e voc poder executar

1.3 Preparando a inicializao do sistema de destino


Esta seo aborda as tarefas de configurao necessrias em cenrios complexos de inicializao. Contm exemplos de configuraes prontas para aplicar referentes a DHCP, inicializao PXE, TFTP e Wake on LAN.

36

Referncia

1.3.1 Configurando um servidor DHCP


A configurao de um servidor DHCP em SUSE Linux feita editando-se manualmente os arquivos de configurao apropriados. Esta seo aborda a extenso de configurao de um servidor DHCP existente visando fornecer os dados necessrios para atender um ambiente TFTP, PXE e WOL.

Configurao manual de um servidor DHCP


Tudo o que o servidor DHCP deve fazer, alm de fornecer alocao de endereo automtica para os seus clientes de rede, anunciar o endereo IP do servidor TFTP e o arquivo que deve ser extrado pelas rotinas de instalao na mquina de destino. 1 Efetue login como root na mquina que hospeda o servidor DHCP. 2 Anexe as linhas seguintes ao arquivo de configurao do seu servidor DHCP localizado em /etc/dhcpd.conf:
group { # PXE related stuff # # "next server" defines the tftp server that will be used next server ip_servidor_tftp: # # "filename" specifies the pxelinux image on the tftp server # the server runs in chroot under /srv/tftpboot filename "pxelinux.0"; }

Substitua ip_servidor_tftp pelo endereo IP real do servidor TFTP. Para obter mais informaes sobre as opes disponveis em dhcpd.conf, consulte a pgina de manual sobre dhcpd.conf. 3 Reinicie o servidor DHCP executando rcdhcpd restart. Se voc planeja usar SSH para controle remoto de uma instalao PXE e Wake on LAN, especifique explicitamente o endereo IP que o DHCP deve fornecer ao destino de instalao. Para isso, modifique a configurao DHCP mencionada acima de acordo com o exemplo a seguir:
group { # PXE related stuff

Instalao remota

37

# # "next server" defines the tftp server that will be used next server ip_servidor_tftp: # # "filename" specifiies the pxelinux image on the tftp server # the server runs in chroot under /srv/tftpboot filename "pxelinux.0"; host test { hardware ethernet endereo_mac; } fixed-address um_endereo_ip; } }

A declarao de host apresenta o nome de host do destino de instalao. Para vincular o nome de host e o endereo IP a um host especfico, voc precisa conhecer e especificar o endereo de hardware do sistema (MAC). Substitua todas as variveis usadas neste exemplo pelos valores reais que correspondem ao seu ambiente. Aps a reinicializao do servidor DHCP, ele fornece um IP esttico para o host especificado, habilitando-o a conectar-se ao sistema por SSH.

1.3.2 Configurando um servidor TFTP


Configure um servidor TFTP com YaST ou manualmente em qualquer outro sistema operacional Linux que tenha suporte a xinetd e tftp. O servidor TFTP fornece a imagem de boot para o sistema de destino uma vez que inicializa e envia uma solicitao ao mesmo.

Configurando um servidor TFTP usando YaST


1 Efetue login como Root. 2 Inicie YaST Servios de Rede Servidor TFTP e instale o pacote solicitado. 3 Clique em Habilitar para verificar se o servidor foi iniciado e includo nas rotinas de inicializao. De sua parte, no necessria nenhuma outra ao de proteo. O xinetd inicia o tftpd no momento de inicializao. 4 Clique em Abrir Porta no Firewall para abrir a porta adequada no firewall em execuo na sua mquina. Se nenhum firewall estiver em execuo no seu servidor, esta opo no est disponvel. 5 Clique em Pesquisar para pesquisar o diretrio de imagem de inicializao.

38

Referncia

O diretrio padro /tftpboot criado e selecionado automaticamente. 6 Clique em Concluir para aplicar as suas configuraes e iniciar o servidor.

Configurao manual de um servidor TFTP


1 Efetue login como root e instale os pacotes tftp e xinetd. 2 Se indisponvel, crie os diretrios /srv/tftpboot e /srv/tftpboot/ pxelinux.cfg. 3 Adicione os arquivos adequados para a imagem de boot como descrito na Seo 1.3.3, Inicializao PXE (p 39). 4 Modifique a configurao de xinetd localizada em /etc/xinetd.d/ para verificar se o servidor TFTP iniciado durante a inicializao: a Se no existir, crie um arquivo chamado tftp neste diretrio com touch tftp. Em seguida, execute chmod 755 tftp. b Abra o arquivo tftp e adicione as seguintes linhas:
service tftp { socket_type protocol wait user server server_args disable }

= = = = = = =

dgram udp yes root /usr/sbin/in.tftpd -s /tftpboot no

c Grave o arquivo e reinicie xinetd com rcxinetd restart.

1.3.3 Inicializao PXE


Informaes tcnicas e especificaes completas sobre PXE esto disponveis no documento Preboot Execution Environment (PXE) ftp://download.intel.com/ labs/manage/wfm/download/pxespec.pdf).

Instalao remota

39

1 V at o diretrio do seu repositrio de instalao e copie os arquivos linux, initrd, message e memtest para o diretrio /srv/tftpboot digitando o seguinte:
cp -a boot/loader/linux boot/loader/initrd boot/loader/message boot/loader/memtest /srv/tftpboot

2 Instale o pacote syslinux diretamente dos seus CDs ou DVDs de instalao com YaST. 3 Copie o arquivo /usr/share/syslinux/pxelinux.0 para o diretrio /srv/tftpboot digitando o seguinte:
cp -a /usr/share/syslinux/pxelinux.0 /srv/tftpboot

4 V at o diretrio do seu repositrio de instalao e copie o arquivo isolinux .cfg para /srv/tftpboot/pxelinux.cfg/default digitando o seguinte:
cp -a boot/loader/isolinux.cfg /srv/tftpboot/pxelinux.cfg/default

5 Edite o arquivo /srv/tftpboot/pxelinux.cfg/default e remova as linhas que comeam com gfxboot, readinfo e framebuffer. 6 Insira as seguintes entradas nas linhas anexas dos rtulos padro failsafe e apic: insmod=e100 Por meio desta entrada, o mdulo de kernel para uma placa de rede Intel 100MBit/s carregado nos clientes PXE. Esta entrada depende do hardware do cliente e deve ser adaptada de acordo. No caso de uma placa de rede Broadcom GigaBit, esta entrada deve indicar insmod=bcm5700. netdevice=eth0 Esta entrada define a interface de rede do cliente que deve ser usada para a instalao da rede. S ser necessria se o cliente possuir vrias placas de rede, devendo ser adaptada de acordo. No caso de uma nica placa de rede, esta entrada pode ser omitida. install=nfs://ip_servidor_inst/caminho_fonte_inst/CD1 Esta entrada define o servidor NFS e a fonte de instalao para a instalao do cliente. Substitua ip_servidor_inst pelo endereo IP real do seu

40

Referncia

servidor de instalao. caminho_fonte_inst deve ser substitudo pelo caminho real para as fontes de instalao. As fontes HTTP, FTP ou SMB so endereadas de maneira semelhante, exceto pelo prefixo de protocolo, que deve indicar http, ftp ou smb. IMPORTANTE Se precisar passar outras opes de inicializao para as rotinas de instalao, como parmetros de inicializao SSH ou VNC, anexe-os entrada install. Uma viso geral dos parmetros e alguns exemplos so apresentados na Seo 1.4, Inicializando o sistema de destino para instalao (p 46). A seguir, temos um exemplo de arquivo /srv/tftpboot/pxelinux.cfg/default. Ajuste o prefixo de protocolo para a fonte de instalao para corresponder configurao da sua rede e especifique o seu mtodo de conexo preferido para o instalador adicionando as opes vnc e vncpassword ou ssh e sshpassword entrada install. As linhas separadas por \ devem ser digitadas como uma linha contnua sem quebra de linha e sem \.
default linux # default label linux kernel linux append initrd=initrd ramdisk_size=65536 insmod=e100 \ install=nfs://ip_servidor_inst/ caminho_fonte_inst/produto # failsafe label failsafe kernel linux append initrd=initrd ramdisk_size=65536 ide=nodma apm=off acpi=off \ insmod=e100 install=nfs://ip_servidor_inst/caminho_fonte_inst/produto # apic label apic kernel linux append initrd=initrd ramdisk_size=65536 apic insmod=e100 \ install=nfs://ip_servidor_inst/caminho_fonte_inst/produto # manual label manual kernel linux

Instalao remota

41

append initrd=initrd ramdisk_size=65536 manual=1 # rescue label rescue kernel linux append initrd=initrd ramdisk_size=65536 rescue=1 # memory test label memtest kernel memtest # hard disk label harddisk kernel linux append SLX=0x202 implicit display prompt timeout 0 message 1 100

Substitua ip_servidor_inst e caminho_fonte_inst pelos valores usados na sua configurao. A seo a seguir serve como breve referncia s opes PXELINUX usadas nesta configurao. Mais informaes sobre as opes disponveis so encontradas na documentao do pacote syslinux localizada em /usr/share/doc/ packages/syslinux/.

1.3.4 Opes de configurao PXELINUX


As opes relacionadas aqui so um subconjunto de todas as opes disponveis para o arquivo de configurao PXELINUX. DEFAULT opes de kernel... Configura a linha de comando padro do kernel. Se PXELINUX inicializado automaticamente, atua como se as entradas aps DEFAULT tivessem sido digitadas no prompt de inicializao, exceto a opo auto, que adicionada automaticamente, indicando uma inicializao automtica. Se nenhum arquivo de configurao ou nenhuma entrada DEFAULT estiver presente no arquivo de configurao, o padro ser o nome de kernel linux sem opes.

42

Referncia

APPEND opes... Adicione uma ou mais opes linha de comando do kernel. So adicionadas para inicializaes manuais e automticas. As opes so adicionadas no incio da linha de comando do kernel, normalmente permitindo que as opes de kernel digitadas explicitamente as substituam. LABEL rtulo KERNEL imagem APPEND opes... Indica que, se rtulo for digitado como kernel de inicializao, PXELINUX deve inicializar imagem, e as opes APPEND especificadas devem ser usadas em vez das que esto especificadas na seo global do arquivo (antes do primeiro comando LABEL). O padro para imagem o mesmo de rtulo e, se no for fornecido nenhum APPEND, o padro ser usar a entrada global (se houver). At 128 entradas LABEL so permitidas. Observe que GRUB usa a seguinte sintaxe:
title meuttulo kernel meu_kernel opes_kernel initrd meuinitrd

enquanto que PXELINUX usa a seguinte sintaxe:


label meurtulo kernel meukernel append minhasopes

Os rtulos so desmembrados como se fossem nomes de arquivo e devem ser exclusivos aps o desmembramento. Por exemplo, no seria possvel distinguir os dois rtulos v2.1.30 e v2.1.31 em PXELINUX, pois ambos so desmembrados em um mesmo nome de arquivo do DOS. O kernel no tem precisa ser um kernel do Linux; pode ser um setor de inicializao ou um arquivo COMBOOT. APPEND No anexa nada. APPEND com um nico hfen como argumento em uma seo LABEL pode ser usado para anular um APPEND global. LOCALBOOT tipo Em PXELINUX, especificar LOCALBOOT 0 em vez de uma opo KERNEL significa chamar este rtulo especfico e causa uma inicializao de disco local em vez de uma inicializao de kernel.

Instalao remota

43

Argumento 0 4

Descrio Executa uma inicializao normal Executa uma inicializao local com o driver UNDI (Universal Network Driver Interface) ainda residente na memria Realiza uma inicializao local com toda a pilha PXE, incluindo o driver UNDI, ainda residente na memria

Todos os outros valores so indefinidos. Se voc no sabe quais so as pilhas UNDI ou PXE, especifique 0. TIMEOUT tempo_de_espera Indica quanto tempo esperar no prompt de inicializao at inicializar automaticamente, em unidades de 1/10 de segundo. O tempo de espera cancelado to logo o usurio digite algo no teclado, partindo do princpio de que o usurio conclui o comando iniciado. O tempo de espera zero desabilita completamente o tempo de espera (que tambm o padro). O valor do tempo de espera mximo possvel 35996 (pouco menos de uma hora). PROMPT val_flag Se val_flag for 0, s exibir o prompt de inicializao se Shift ou Alt estiver pressionado ou Caps Lock ou Scroll Lock estiver definido (que o padro). Se val_flag for 1, exibir sempre o prompt de inicializao.
F2 nome_do_arquivo F1 nome_do_arquivo ..etc... F9 nome_do_arquivo F10nome_do_arquivo

Exibe o arquivo indicado na tela quando uma tecla de funo pressionada no prompt de inicializao. Isso pode ser usado para implementar a ajuda online de pr-inicializao (supostamente para as opes de linha do comando do kernel). Para compatibilidade com verses anteriores, F10 tambm pode ser digitado como F0 . Observe que atualmente no h meio de vincular nomes de arquivo a F11 e F12 .

44

Referncia

1.3.5 Preparando o sistema de destino para inicializao PXE


Prepare o BIOS do sistema para a inicializao PXE incluindo a opo PXE na ordem de inicializao do BIOS. ATENO No coloque a opo PXE na frente da opo de inicializao do disco rgido no BIOS. Caso contrrio, este sistema tentar reinstalar-se toda vez que voc o inicializar.

1.3.6 Preparando o sistema de destino para Wake on LAN


Wake on LAN (WOL) requer que a opo de BIOS adequada seja habilitada antes da instalao. Alm disso, anote o endereo MAC do sistema de destino. Esses dados so necessrios para iniciar o Wake on LAN.

1.3.7 Wake on LAN


Wake on LAN permite que a mquina seja ligada por um pacote de rede especial que contm o endereo MAC da mquina. Como toda mquina no mundo tem um identificador MAC exclusivo, voc no precisa se preocupar em ligar acidentalmente a mquina errada. IMPORTANTE Se a mquina controladora no estiver localizada no mesmo segmento de rede que o destino de instalao que deve ser desperto, configure as solicitaes WOL para serem enviadas como multicasts ou controle remotamente uma mquina naquele segmento de rede para atuar como remetente das solicitaes.

Instalao remota

45

1.3.8 Wake on LAN manual


1 Efetue login como Root. 2 Inicie YaST Gerenciamento de Software e instale o pacote netdiag. 3 Abra um terminal e digite os seguintes comandos como root para despertar o destino:
ether-wakemac_do_destino

Substitua mac_do_destino pelo endereo MAC real do destino.

1.4 Inicializando o sistema de destino para instalao


Basicamente, h duas maneiras diferentes de personalizar o processo de inicializao para instalao, alm das mencionadas na Seo 1.3.7, Wake on LAN (p 45) e na Seo 1.3.3, Inicializao PXE (p 39). Voc pode usar as opes de inicializao padro e as teclas F ou usar o prompt de opes da tela de inicializao da instalao para passar quaisquer opes de inicializao que o kernel de instalao possa precisar neste hardware especfico.

1.4.1 Usando as opes padro de inicializao


As opes de inicializao j foram descritas detalhadamente no Captulo Instalao com o YaST (Inicializao). Geralmente, basta selecionar Instalao para iniciar o processo de inicializao de instalao. Se problemas ocorrerem, use InstalaoACPI Desabilitado ou InstalaoConfiguraes Seguras. Para obter mais informaes sobre soluo de problemas no processo de instalao, consulte a Seo Problemas de instalao (Captulo 9, Problemas comuns e suas solues, Inicializao).

46

Referncia

1.4.2 Usando as teclas F


A barra de menus na tela inferior oferece algumas funcionalidades avanadas necessrias em algumas configuraes. Usando as teclas F, voc pode especificar opes adicionais para passar as rotinas de instalao sem ter que conhecer a sintaxe detalhada dos parmetros que voc precisaria se os inserisse como opes de inicializao (consulte a Seo 1.4.3, Usando opes de inicializao personalizadas (p 48)). Consulte na tabela abaixo o conjunto completo das opes disponveis. Tabela 1.1 Tecla
F1 F2

Teclas F durante a instalao Opes disponveis Nenhum Todos os idiomas suportados Modo de texto VESA resoluo 1 resoluo 2 ... Valor padro Nenhum Ingls

Objetivo Fornecer ajuda Selecionar o idioma da instalao Mudar a resoluo de tela para instalao

F3

O valor padro depende do seu hardware de vdeo

F4

Selecionar a fonte de instalao

CD-ROM/DVD SLP FTP HTTP NFS SMB

CD-ROM/DVD

Instalao remota

47

Tecla

Objetivo

Opes disponveis Disco rgido

Valor padro

F5

Aplicar disco de atualizao do driver

Driver

Nenhum

1.4.3 Usando opes de inicializao personalizadas


Usar o conjunto adequado de opes de inicializao facilita o procedimento de instalao. Vrios parmetros tambm podem ser configurados posteriormente usando as rotinas linuxrc, mas usar as opes de inicializao mais fcil. Em algumas configuraes automatizadas, as opes de inicializao podem ser fornecidas com initrd ou um arquivo info. A tabela a seguir relaciona todos os cenrios de instalao mencionados neste captulo com os parmetros necessrios para inicializao e as opes de inicializao correspondentes. Basta anexar todos eles na ordem em que aparecem nesta tabela para obter uma string de opo de inicializao que passada para as rotinas de instalao. Por exemplo (todos em uma linha):
install=... netdevice=... hostip=...netmask=... vnc=... vncpassword=...

Substitua todos os valores (...) nesta string pelos valores adequados para a sua configurao. Tabela 1.2 Cenrios de instalao (inicializao) usados neste captulo Parmetros necessrios para inicializao Opes de inicializao

Cenrio de instalao

Captulo Instalao com Nenhum: o sistema o YaST (Inicializao) inicializado automaticamente

Nenhuma necessria

48

Referncia

Cenrio de instalao

Parmetros necessrios para inicializao Localizao do servidor de instalao Dispositivo de rede Endereo IP Mscara de rede Gateway Habilitao VNC Senha VNC

Opes de inicializao

Seo 1.1.1, Instalao remota simples por VNC: configurao de rede esttica (p 18)

install=(nfs,http, ftp,smb)://caminho _mdia_inst netdevice=um_disp _rede (necessrio apenas se vrios dispositivos de rede estiverem disponveis) hostip=um_ip netmask=uma _mscara_rede gateway=gateway_ip vnc=1 vncpassword=uma _senha install=(nfs,http, ftp,smb)://caminho _mdia_inst vnc=1 vncpassword=uma _senha No aplicvel; processo gerenciado via PXE e DHCP

Seo 1.1.2, Instalao remota simples por VNC: configurao de rede dinmica por DHCP (p 19)

Localizao do servidor de instalao Habilitao VNC Senha VNC

Seo 1.1.3, Instalao remota por VNC: inicializao PXE e Wake on LAN (p 21)

Localizao do servidor de instalao Localizao do servidor TFTP Habilitao VNC Senha VNC

Instalao remota

49

Cenrio de instalao

Parmetros necessrios para inicializao Localizao do servidor de instalao Dispositivo de rede Endereo IP Mscara de rede Gateway Habilitao SSH Senha SSH

Opes de inicializao

Seo 1.1.4, Instalao remota simples por SSH: configurao de rede esttica (p 22)

install=(nfs,http, ftp,smb)://caminho _mdia_inst netdevice=um_disp _rede (necessrio apenas se vrios dispositivos de rede estiverem disponveis) hostip=um_ip netmask=uma _mscara_rede gateway=gateway_ip usessh=1 sshpassword=uma _senha install=(nfs,http, ftp,smb)://caminho _mdia_inst usessh=1 sshpassword=uma _senha No aplicvel; processo gerenciado via PXE e DHCP

Seo 1.1.5, Instalao remota simples por SSH: configurao de rede dinmica por DHCP (p 24)

Localizao do servidor de instalao Habilitao SSH Senha SSH

Seo 1.1.6, Instalao remota por SSH: inicializao PXE e Wake on LAN (p 25)

Localizao do servidor de instalao Localizao do servidor TFTP Habilitao SSH Senha SSH

50

Referncia

DICA Saiba mais sobre as opes de inicializao linuxrc usadas para inicializar um sistema Linux em /usr/share/doc/packages/linuxrc/linuxrc.html.

1.5 Monitorando o processo de instalao


H vrias opes para monitorar o processo de instalao remotamente. Se as opes de inicializao adequadas tiverem sido especificadas ao inicializar para instalao, VNC ou SSH podem ser usados para controlar a instalao e a configurao do sistema a partir de uma estao de trabalho remota.

1.5.1 Instalao VNC


Usando um software visualizador VNC, voc pode controlar remotamente a instalao do SUSE Linux de virtualmente qualquer sistema operacional. Esta seo apresenta a configurao usando um visualizador VNC ou um browser da Web.

Preparando para instalao VNC


Tudo o que voc precisa fazer no destino da instalao para preparar uma instalao VNC fornecer as opes de inicializao adequadas na inicializao inicial para instalao (consulte a Seo 1.4.3, Usando opes de inicializao personalizadas (p 48)). O sistema de destino inicializa em um ambiente baseado em texto e espera que um cliente VNC conecte-se ao programa de instalao. O programa de instalao anuncia o endereo IP e exibe o nmero necessrio para conexo para a instalao. Se voc tiver acesso fsico ao sistema de destino, essas informaes so fornecidas logo depois do sistema ser inicializado para instalao. Digite esses dados quando eles forem solicitados pelo software cliente VNC e fornea a sua senha VNC. Como o destino da instalao anuncia a si mesmo por OpenSLP, voc pode recuperar a informao do endereo do destino da instalao com um browser SLP sem a

Instalao remota

51

necessidade de qualquer contato fsico com a instalao em si, desde que a sua configurao de rede e todas as mquinas tenham suporte a OpenSLP: 1 Inicie o arquivo KDE e o browser da Web Konqueror. 2 Digite service://yast.installation.suse na barra de localizao. O sistema de destino aparece como um cone na tela do Konqueror. Clicar neste cone inicia o visualizador VNC do KDE no qual executar a instalao. Outra alternativa executar o seu software visualizador VNC com o endereo IP fornecido e adicionar :1 no final do endereo IP para exibir a instalao que est sendo executada.

Conectando-se ao programa de instalao


Basicamente, h duas maneiras de se conectar a um servidor VNC (o destino de instalao, neste caso). Voc pode iniciar um visualizador VNC independente em qualquer sistema operacional ou conectar-se usando um browser da Web habilitado para Java. Com o VNC, possvel controlar a instalao de um sistema Linux de qualquer outro sistema operacional, incluindo outras variedades do Linux, Windows ou Mac OS. Em uma mquina Linux, verifique se o pacote tightvnc est instalado. Em uma mquina Windows, instale a porta Windows deste aplicativo, que pode ser obtida na home page do TightVNC (http://www.tightvnc.com/download.html). Para conectar-se ao programa de instalao executado na mquina de destino, proceda da seguinte maneira: 1 Inicie o visualizador VNC. 2 Digite o endereo IP e o nmero de exibio do destino de instalao como fornecidos pelo browser SLP ou pelo prprio programa de instalao:
endereo_ip:nmero_exibio

Uma janela aberta na rea de trabalho, mostrando as telas do YaST como em uma instalao local normal.

52

Referncia

Ao usar um browser da Web para conectar-se ao programa de instalao, voc fica totalmente independente de qualquer software VNC ou do sistema operacional subjacente. Visto que o aplicativo browser tenha o suporte Java habilitado, voc pode usar qualquer browser (Firefox, Internet Explorer, Konqueror, Opera etc.) para executar a instalao do sistema Linux. Para executar uma instalao VCN, proceda da seguinte maneira: 1 Inicie o seu browser da Web favorito. 2 Digite o seguinte no prompt de endereo:
http://endereo_ip_de_destino:5801

3 Digite sua senha VNC quando solicitado. A janela do browser agora exibe as telas do YaST como em uma instalao local normal.

1.5.2 Instalao SSH


Com o SSH, voc pode controlar remotamente a instalao da sua mquina Linux usando qualquer software cliente SSH.

Preparando para instalao SSH


Alm de instalar o pacote de software adequado (OpenSSH para Linux e PuTTY para Windows), voc s precisa passar as opes de inicializao adequadas para habilitar o SSH para instalao. Consulte a Seo 1.4.3, Usando opes de inicializao personalizadas (p 48) para obter detalhes. O OpenSSH instalado por padro em qualquer sistema operacional baseado no SUSE Linux.

Conectando-se ao programa de instalao


1 Recupere o endereo IP do destino da instalao. Se voc tiver acesso fsico mquina de destino, basta usar o endereo IP fornecido pelas rotinas de instalao no console aps a primeira inicializao. Caso contrrio, use o endereo IP que foi atribudo a este host especfico na configurao de servidor DHCP.

Instalao remota

53

2 Em uma linha de comando, digite o seguinte comando:


ssh -X root@endereo_ip_do_destino

Substitua endereo_ip_do_destino pelo endereo IP real do destino de instalao. 3 Quando for solicitado um nome de usurio, digite root. 4 Quando for solicitada uma senha, digite a senha que foi definida pela opo de inicializao do SSH. Depois que voc autenticar com xito, ser exibido um prompt de linha de comando para o destino da instalao. 5 Digite yast para iniciar o programa de instalao. Uma janela aberta mostrando as telas normais do YaST como descrito no Captulo Instalao com o YaST (Inicializao).

54

Referncia

Configurao de disco avanada


As configuraes sofisticadas do sistema requerem configuraes de disco especiais. Para obter uma nomeao persistente em dispositivos SCSI, use um script de inicializao especfico ou udev. O LVM (Logical Volume Management - Gerenciamento de Volumes Lgicos) um esquema de particionamento de disco projetado para ser muito mais flexvel que o particionamento fsico usado nas configuraes padro. Sua funcionalidade de instantneo permite criar facilmente backups de dados. A RAID (Redundant Array of Independent Disks - Matriz Redundante de Discos Independentes) oferece maior integridade de dados, desempenho e tolerncia a falhas.

2.1 Configurao da LVM


Esta seo descreve brevemente os princpios por trs do LVM e os recursos bsicos que o tornam teis em vrias circunstncias. Na Seo 2.1.2, Configurao do LVM com o YaST (p 58), aprenda como configurar o LVM com o YaST. ATENO A utilizao do LVM pode se associada a um aumento de risco, como perda de dados. O risco tambm inclui falhas de aplicativo, de energia e em comandos. Grave os dados antes de implementar o LVM ou reconfigurar volumes. Nunca trabalhe sem backup.

Configurao de disco avanada

55

2.1.1 Gerenciador de Volumes Lgicos


O LVM (Logical Volume Manager - Gerenciador de Volumes Lgicos) permite uma distribuio flexvel de espao em disco rgido em vrios sistemas de arquivos. Ele foi desenvolvido porque algumas vezes a necessidade de mudar a segmentao do espao no disco rgido surge apenas depois que feito o particionamento inicial durante a instalao. Como difcil modificar parties em um sistema em execuo, o LVM fornece um pool virtual, ou seja, VG (Volume Group - Grupo de Volume) de espao em memria com base no qual os LVs (Logical Volumes - Volumes Lgicos) podem ser criados conforme o necessrio. O sistema operacional acessa esses LVs, em vez de acessar as parties fsicas. Os grupos de volume podem ocupar mais de um disco; portanto, vrios discos ou partes deles podem constituir um nico VG. Dessa forma, o LVM fornece um tipo de abstrao a partir do espao do disco fsico que permite que sua segmentao seja mudada de uma forma mais fcil e segura do que o reparticionamento fsico proporciona. possvel encontrar outras informaes sobre o particionamento fsico em Tipos de partio (Captulo 1, Instalao com o YaST, Inicializao) e na Seo Particionador (Captulo 2, Configurao do sistema com YaST, Inicializao). Figura 2.1 Particionamento fsico versus LVM
DISK PART PART PART DISK 1 PART PART VG 1 PART DISK 2 PART PART

VG 2

LV 1

LV 2

LV 3

LV 4

MP

MP

MP

MP

MP

MP

MP

A Figura 2.1, Particionamento fsico versus LVM (p 56) compara o particionamento fsico (esquerda) com a segmentao do LVM (direita). Do lado esquerdo, um nico

56

Referncia

disco rgido foi dividido em trs PART (Physical Partitions - Parties Fsicas), cada uma com um MP (Mount Point - Ponto de Montagem) designado, de forma que o sistema operacional possa acess-las. Do lado direito, dois discos foram divididos em duas e trs parties fsicas cada. Foram definidos dois grupos de volume (VG1 e VG2) do LVM. O VG1 contm duas parties do DISCO 1 e uma do DISCO 2. O VG2 contm as duas parties restantes do DISCO 2. No LVM, as parties fsicas do disco incorporadas a um grupo de volume so chamadas de PVs (physical volumes - volumes fsicos). Nos grupos de volume, foram definidos quatro volumes lgicos (LV1 a LV4), que podem ser usados pelo sistema operacional por meio dos pontos de montagem associados. A fronteira entre os volumes lgicos diferentes no deve ser alinhada com as fronteiras das parties. Veja a fronteira entre LV1 e LV2 neste exemplo. Recursos do LVM: vrios discos rgidos ou parties podem ser combinados em um grande volume lgico. Desde que a configurao seja adequada, um LV (como /usr) pode ser ampliado quando o espao em disco estiver esgotado. Usando o LVM, adicione discos rgidos ou LVs em um sistema em execuo. No entanto, esse procedimento requer um hardware altamente permutvel, capaz de executar tais aes. possvel ativar um "modo de distribuio" que distribui o fluxo de dados de um volume lgico em vrios volumes fsicos. Se esses volumes fsicos residirem em discos diferentes, o desempenho de leitura e gravao poder ser melhorado como ocorre com o RAID 0. O recurso instantneo permite backups consistentes (especialmente para servidores) no sistema em execuo. Com esses recursos, a utilizao do LVM sensata em PCs domsticos muito usados ou pequenos servidores. Se voc tem um estoque de dados crescente, como no caso de bancos de dados, arquivos de msica ou diretrios de usurio, o LVM simplesmente a opo correta. Ele permite o uso de sistemas de arquivos maiores do que o disco rgido fsico. Outra vantagem do LVM a possibilidade de adicionar at 256 LVs. Entretanto, lembre-se de que trabalhar com o LVM diferente de trabalhar com parties convencionais. Instrues e informaes adicionais sobre a configurao do LVM esto disponveis no HOWTO (Como Fazer) oficial do LVM, em http://tldp.org/ HOWTO/LVM-HOWTO/. Configurao de disco avanada 57

Comeando na verso 2.6 do kernel, a verso 2 do LVM est disponvel, sendo compatvel com verses anteriores do LVM e permitindo o gerenciamento contnuo de antigos grupos de volume. Ao criar novos grupos de volume, decida se vai usar o novo formato ou a verso compatvel com verses anteriores. O LVM 2 no requer qualquer patch de kernel. Ele usa o mapeador de dispositivos integrado ao kernel 2.6. Esse kernel suporta somente a verso 2 do LVM. Portanto, sempre que o LVM for abordado nesta seo, ser considerada a verso 2.

2.1.2 Configurao do LVM com o YaST


A configurao do LVM com YaST pode ser feita com o Particionador Expert do YaST (consulte a Seo Particionador (Captulo 2, Configurao do sistema com YaST, Inicializao)). Essa ferramenta de particionamento permite editar e apagar parties existentes, e criar novas que devem ser usadas com o LVM. Crie uma partio do LVM clicando primeiro em Criar No formatar e selecionando 0x8E Linux LVM como identificador de partio. Depois de criar todas as parties para usar o LVM, clique em LVM para iniciar sua configurao.

Criando grupos de volume


Se ainda no houver grupos de volume no sistema, voc ser solicitado a adicionar um (consulte a Figura 2.2, Criando um grupo de volume (p 59)). possvel criar grupos adicionais com a opo Adicionar, mas normalmente um nico grupo de volume suficiente. O nome sugerido para o grupo de volume em que os arquivos do sistema SUSE Linux se localizaro system. O tamanho fsico de extenso define o tamanho de um bloco fsico no grupo de volume. Todo o espao em disco de um grupo de volume gerenciado em pacotes desse tamanho. Esse valor normalmente definido como 4 MB e permite um tamanho mximo de 256 GB para volumes fsicos e lgicos. O tamanho fsico de extenso s deve ser aumentado, por exemplo, para 8, 16 ou 32 MB, se voc precisar de volumes lgicos maiores que 256 GB.

58

Referncia

Figura 2.2 Criando um grupo de volume

Configurando volumes fsicos


Depois que um grupo de volume criado, a caixa de dilogo a seguir lista todas as parties com os tipos LVM do Linux ou nativas do Linux. No so exibidas parties do DOS ou de troca. Se uma partio j tiver sido designada a um grupo de volume, o nome dele ser exibido na lista. As parties no atribudas so indicadas com --. Se houver vrios grupos de volume, defina o grupo de volume atual na caixa de seleo do canto superior esquerdo. Os botes do canto superior direito permitem criar grupos de volume adicionais, bem como apagar grupos de volumes existentes. Somente grupos de volume sem parties designadas podem ser apagados. Todas as parties designadas a um grupo de volume tambm so citadas como um PV (Physical Volume - Volume Fsico).

Configurao de disco avanada

59

Figura 2.3 Configurao do volume fsico

Para adicionar uma partio previamente no designada ao grupo de volume selecionado, primeiro clique na partio, depois clique em Adicionar Volume. Nesse momento, o nome do grupo de volume inserido ao lado da partio selecionada. Designe todas as parties reservadas para o LVM a um grupo de volume. Caso contrrio, o espao na partio permanecer sem uso. Antes de sair da caixa de dilogo, necessrio designar pelo menos um volume fsico a cada grupo de volume. Depois de designar todos os volumes fsicos, clique em Prximo para continuar a configurao de volumes lgicos.

Configurando volumes lgicos


Depois de o grupo de volume ser preenchido com volumes fsicos, defina os volumes lgicos que o sistema operacional dever usar na prxima caixa de dilogo. Defina o grupo de volume atual em uma caixa de seleo no canto superior esquerdo. Ao lado dela, exibido o espao livre no grupo de volumes atual. A lista a seguir contm todos os volumes lgicos do grupo de volume. Todas as parties normais do Linux s quais um ponto de montagem designado, todas as parties de troca e todos os volumes lgicos j existentes so listados aqui. Adicione, edite e remova volumes lgicos conforme o necessrio, at esgotar todo o espao do grupo de volume. Designe pelo menos um volume lgico a cada grupo de volume.

60

Referncia

Figura 2.4 Gerenciamento de volume lgico

Para criar um novo volume lgico, clique em Adicionar e preencha a janela que aberta. No que diz respeito ao particionamento, digite o tamanho, o sistema de arquivos e o ponto de montagem. Normalmente, um sistema de arquivos, como reiserfs ou ext2, criado em um volume lgico e ento um ponto de montagem designado a ele. Os arquivos armazenados nesse volume lgico podem ser encontrados nesse ponto de montagem do sistema instalado. Alm disso, possvel distribuir o fluxo de dados no volume lgico entre vrios volumes fsicos. Se esses volumes fsicos residirem em discos rgidos diferentes, os desempenhos de leitura e gravao podem ser melhorados (como ocorre com RAID 0). No entanto, um LV de distribuio com n distribuies s poder ser criado corretamente se o espao em disco rgido necessrio para o LV puder ser distribudo uniformemente em n volumes fsicos. Se, por exemplo, houver apenas dois volumes fsicos disponveis, ser impossvel haver um volume lgico com trs distribuies. ATENO: Distribuindo A essa altura, o YaST no tem como verificar se suas entradas esto corretas no que diz respeito distribuio. Qualquer erro realizado aqui ser mostrado somente mais tarde, quando o LVM for implementado em disco.

Configurao de disco avanada

61

Figura 2.5 Criando volumes lgicos

Se voc j configurou o LVM no sistema, os volumes lgicos existentes podero ser inseridos agora. Antes de continuar, designe pontos de montagem apropriados a esses volumes lgicos tambm. Usando a opo Prximo, volte para o Particionador Expert do YaST e conclua seu trabalho.

Gerenciamento direto do LVM


Se voc j configurou o LVM e s quer mudar alguma coisa, h uma forma alternativa de faz-lo. No Centro de Controle do YaST, selecione Sistema LVM. Essa caixa de dilogo basicamente permite as mesmas aes descritas anteriormente, com a exceo do particionamento fsico. Ela mostra os volumes fsicos e os volumes lgicos existentes em duas listas, e voc pode gerenciar seu sistema LVM usando os mtodos j descritos.

62

Referncia

2.2 Configurao de RAID de software


A finalidade do RAID (redundant array of independent disks) combinar vrias parties de disco rgido em um grande disco rgido virtual para otimizar o desempenho, a segurana dos dados ou ambos. A maioria das controladoras RAID usa o protocolo SCSI porque ele capaz de lidar com um grande nmero de discos rgidos com mais eficincia que o protocolo IDE, alm de ser mais apropriado para o processamento de comandos em paralelo. Algumas controladoras RAID suportam discos rgidos IDE ou SATA. O RAID de software fornece as vantagens de sistemas RAID sem o custo adicional de controladoras RAID de hardware. Porm, isso exige algum tempo de CPU e tem requisitos de memria que o tornam inadequado para computadores de alto desempenho.

2.2.1 Nveis de RAID


O SUSE Linux oferece a opo de combinar vrios discos rgidos em um sistema RAID de software com a ajuda do YaST, uma alternativa bastante razovel ao RAID de hardware. O RAID requer diversas estratgias para a combinao de vrios discos rgidos em um sistema RAID, cada uma delas com diferentes objetivos, vantagens e caractersticas. Essas variaes geralmente so conhecidas como nveis de RAID. Os nveis de RAID comuns so: RAID 0 Esse nvel melhora o desempenho do acesso aos dados dividindo blocos de cada arquivo entre vrias unidades de disco. Na verdade, isso no realmente um RAID, porque no oferece backup dos dados, mas o nome RAID 0 para esse tipo de sistema tornou-se uma norma. Com o RAID 0, dois ou mais discos rgidos so unidos em um pool. O desempenho muito bom, mas, em caso de falha at mesmo de um disco rgido, o sistema RAID destrudo e seus dados so perdidos. RAID 1 Esse nvel fornece a segurana adequada para seus dados, porque eles so copiados para outro disco rgido 1:1. Isso conhecido como espelhamento de disco rgido. Se um disco for destrudo, uma cpia de seu contedo estar disponvel em outro disco. Mesmo que todos os discos, com exceo de um, sejam danificados, voc no corre o risco de perder seus dados. Porm, se no forem detectados danos, os dados danificados podero ser espelhados no disco correto e assim ocorrer a

Configurao de disco avanada

63

corrupo de dados. O desempenho de gravao fica um pouco prejudicado no processo de cpia, em comparao ao uso do acesso a um nico disco (dez a vinte por cento mais lento), mas o acesso de leitura significativamente mais rpido se comparado com o de qualquer um dos discos rgidos fsicos normais, uma vez que os dados so duplicados e, conseqentemente, podem ser explorados em paralelo. Em geral, pode-se dizer que o Nvel 1 fornece praticamente o dobro da velocidade de transao de leitura dos discos individuais e quase a mesma velocidade de transao de gravao que eles. RAID 2 e RAID 3 Essas so implementaes de RAID no muito comuns. O Nvel 2 divide os dados no nvel de bits, em vez de no nvel de blocos. O Nvel 3 fornece a diviso no nvel de bytes com um disco de paridade dedicada, e no pode atender vrias solicitaes ao mesmo tempo. Ambos os nveis raramente so usados. RAID 4 O Nvel 4 fornece a diviso no nvel de blocos, exatamente como o Nvel 0 combinado com um disco de paridade dedicada. No caso de uma falha de disco de dados, os dados de paridade so usados para criar um disco de substituio. No entanto, o disco de paridade pode criar um gargalo para o acesso de gravao. Mesmo assim, o Nvel 4 s vezes usado. RAID 5 O RAID 5 um compromisso otimizado entre o Nvel 0 e o Nvel 1 em termos de desempenho e redundncia. O espao em disco rgido igual ao nmero de discos usados menos um. Os dados so distribudos pelos discos rgidos, assim como no RAID 0. Os blocos de paridade, criados em uma das parties, esto l por motivos de segurana. Eles so vinculados uns aos outros com XOR, o que permite que o contedo seja reconstrudo pelo bloco de paridade correspondente no caso de uma falha do sistema. Com o RAID 5, apenas um disco rgido pode falhar por vez. Se um disco rgido falhar, ele dever ser substitudo assim que possvel, para evitar o risco da perda de dados. Outros nveis de RAID Vrios outros nveis de RAID foram desenvolvidos (RAIDn, RAID 10, RAID 0+1, RAID 30, RAID 50, etc.), sendo alguns deles implementaes proprietrias criadas por fornecedores de hardware. Esses nveis no esto muitos difundidos, portanto, no sero explicados aqui.

64

Referncia

2.2.2 Configurao de RAID de software com o YaST


A configurao de RAID de software do YaST pode ser obtida a partir do Particionador Expert do YaST, descrito na Seo Particionador (Captulo 2, Configurao do sistema com YaST, Inicializao). Essa ferramenta de particionamento permite editar e excluir parties existentes e criar novas parties que devem ser usadas com o RAID de software. Nela, voc cria parties RAID clicando em Criar No formatar e, em seguida, selecionando 0xFD Linux RAID como identificador de partio. Para o RAID 0 e o RAID 1, pelo menos duas parties so necessrias; para o RAID 1, geralmente so necessrias exatamente duas parties, no mais. Se o RAID 5 for usado, pelo menos trs parties sero necessrias. recomendvel usar apenas parties com o mesmo tamanho. As parties RAID devem ser armazenadas em diferentes discos rgidos para diminuir o risco da perda de dados caso um deles esteja danificado (RAID 1 e 5) e para otimizar o desempenho do RAID 0. Aps criar todas as parties para uso com o RAID, clique em RAID Criar RAID para iniciar a configurao do RAID. Na caixa de dilogo seguinte, escolha entre os nveis de RAID 0, 1 e 5 (consulte a Seo 2.2.1, Nveis de RAID (p 63) para obter detalhes). Aps clicar em Prximo, a caixa de dilogo a seguir lista todas as parties com o tipo RAID Linux ou nativo do Linux (consulte a Figura 2.6, Parties RAID (p 66)). No so exibidas parties do DOS ou de troca. Se uma partio j estiver atribuda a um volume RAID, o nome do dispositivo de RAID (por exemplo, /dev/md0) ser exibido na lista. As parties no atribudas so indicadas com --.

Configurao de disco avanada

65

Figura 2.6 Parties RAID

Para adicionar uma partio anteriormente no atribuda ao volume RAID selecionado, primeiro clique na partio e, em seguida, em Adicionar. Nesse ponto, o nome do dispositivo de RAID inserido ao lado da partio selecionada. Atribua todas as parties reservadas para o RAID. Caso contrrio, o espao na partio permanecer sem uso. Aps atribuir todas as parties, clique em Prximo para continuar na caixa de dilogo de configuraes, onde voc pode ajustar o desempenho (consulte a Figura 2.7, Configuraes do sistema de arquivos (p 67)).

66

Referncia

Figura 2.7 Configuraes do sistema de arquivos

Assim como no particionamento convencional, defina o sistema de arquivos a ser usado, assim como a criptografia e o ponto de montagem do volume RAID. Marcar Superbloco Persistente garante que as parties RAID sejam reconhecidas como tais na inicializao. Aps concluir a configurao com Concluir, verifique o dispositivo /dev/md0 e outros dispositivos indicados com RAID no particionador expert.

2.2.3 Soluo de problemas


Verifique o arquivo /proc/mdstats para saber se uma partio RAID foi destruda. No caso de uma falha do sistema, encerre o sistema Linux e substitua o disco rgido danificado por um novo, particionado da mesma maneira. Depois, reinicie o sistema e digite o comando mdadm /dev/mdX --add /dev/sdX. Substitua 'X' por seus prprios identificadores de dispositivo. Isso integra o disco rgido automaticamente ao sistema RAID e o reconstri totalmente.

Configurao de disco avanada

67

2.2.4 Mais informaes


Instrues de configurao e mais detalhes sobre o RAID de software podem ser encontrados nos HOWTOs, em: /usr/share/doc/packages/raidtools/Software-RAID.HOWTO .html http://en.tldp.org/HOWTO/Software-RAID-HOWTO.html Tambm esto disponveis listas de discusso relacionadas ao RAID do Linux, como em http://marc.theaimsgroup.com/?l=linux-raid&r=1&w=2.

68

Referncia

Atualizando o gerenciamento de sistemas e pacotes


O SUSE Linux fornece a opo de atualizar um sistema existente sem ter que reinstallo novamente por inteiro. H dois tipos de atualizao: atualizao de pacotes de software individuais e atualizao do sistema inteiro. Os pacotes tambm podem ser instalados manualmente com o gerenciador de pacotes RPM.

3.1 Atualizando o SUSE Linux


O software tende a crescer a cada verso. Portanto, verifique o espao de partio disponvel com df antes de atualizar. Se voc suspeitar de que tem pouco espao em disco, proteja os seus dados antes de atualizar e reparticionar o sistema. No h nenhuma regra geral sobre quanto espao deve haver em cada partio. Os requisitos de espao dependem do seu perfil de particionamento especfico, do software selecionado e da verso do SUSE Linux.

3.1.1 Preparaes
Antes de atualizar, copie os arquivos de configurao antigos em uma mdia separada, como streamer, disco rgido removvel, chaveiro USB ou unidade ZIP para proteger os dados. Isso se aplica basicamente aos arquivos armazenados em /etc, assim como a alguns dos diretrios e arquivos em /var e /opt. Voc tambm pode gravar os dados do usurio em /home (os diretrios HOME) em uma mdia de backup. Faa o backup desses dados como root. Apenas roottem permisso de leitura para todos os arquivos locais.

Atualizando o gerenciamento de sistemas e pacotes

69

Antes de iniciar a atualizao, anote a partio raiz. O comando df / relaciona o nome do dispositivo da partio raiz. Em Exemplo 3.1, Listar com df -h (p 70), a partio raiz a ser anotada a /dev/hda3 (montada como /). Exemplo 3.1 Listar com df -h
Filesystem /dev/hda3 tmpfs /dev/hda5 /dev/hda1 /dev/hda2 Size 74G 506M 116G 39G 4.6G Used Avail Use% Mounted on 22G 53G 29% / 0 506M 0% /dev/shm 5.8G 111G 5% /home 1.6G 37G 4% /windows/C 2.6G 2.1G 57% /windows/D

3.1.2 Problemas possveis


Se voc atualizar um sistema padro da verso anterior para esta, o YaST far e executar as mudanas necessrias. Dependendo das suas personalizaes, algumas etapas ou todo o procedimento de atualizao poder falhar e voc ter que copiar os dados de backup. Aqui, assinalamos mais questes a verificar antes de iniciar a atualizao do sistema

Verificando passwd e group em /etc


Antes de atualizar o sistema, verifique se /etc/passwd e /etc/group no contm erros de sintaxe. Para isso, inicie os utilitrios de verificao pwck e grpck como raiz e elimine quaisquer erros reportados.

PostgreSQL
Antes de atualizar PostgreSQL (postgres), descarte os bancos de dados. Consulte a pgina de manual de pg_dump. Isso s ser necessrio se voc realmente usou PostgreSQL antes da sua atualizao.

3.1.3 Atualizando com o YaST


Aps os procedimentos de preparao apresentados na Seo 3.1.1, Preparaes (p 69), voc j pode atualizar o sistema:

70

Referncia

1 Inicialize o sistema como para a instalao, descrita na Seo Inicializao do sistema para instalao (Captulo 1, Instalao com o YaST, Inicializao). No YaST, escolha um idioma e selecione Atualizar na caixa de dilogo Modo de Instalao. No selecione Nova Instalao. 2 O YaST determina se h diversas parties raiz. Se houver apenas uma, continue com a prxima etapa. Se houver vrias, selecione a partio correta e confirme com Prximo (/dev/hda3 foi selecionado no exemplo da Seo 3.1.1, Preparaes (p 69)). O YaST l o antigo fstab nessa partio para analisar e montar os sistemas de arquivos listados. 3 Na caixa de dilogo Configuraes de Instalao, ajuste as configuraes de acordo com suas necessidades. Normalmente, voc pode deixar as configuraes padro intactas, mas se pretende aprimorar o sistema, verifique os pacotes oferecidos nos submenus Seleo de Software ou adicione suporte para idiomas extras. Voc tambm tem a possibilidade de fazer backups de vrios componentes do sistema. Selecionar backups torna lento o processo de atualizao. Use essa opo se no tiver um backup de sistema recente. 4 Na caixa de dilogo a seguir, escolha atualizar apenas o software que j est instalado ou adicionar novos componentes de software ao sistema (modo de upgrade) recomendvel aceitar a composio sugerida, por exemplo, Atualizao baseada na seleo "Sistema Padro com KDE" ou "Sistema Padro com GNOME". Os ajustes podem ser feitos posteriormente com o YaST.

3.1.4 Atualizando pacotes individuais


Independentemente do seu ambiente atualizado em geral, sempre possvel atualizar pacotes individuais. A partir desse ponto, porm, sua responsabilidade garantir que o seu sistema permanea consistente. Dicas sobre atualizao podem ser encontradas em http://www.novell.com/linux/download/updates/. Selecione os componentes da lista de seleo do pacote do YaST segundo as suas necessidades. Se voc selecionar um pacote essencial para a operao geral do sistema, o YaST emitir um aviso. Os pacotes s devem ser atualizados no modo de atualizao. Vrios pacotes, por exemplo, contm bibliotecas compartilhadas. Se voc atualizar

Atualizando o gerenciamento de sistemas e pacotes

71

esses programas e aplicativos no sistema em execuo, podero ocorrer problemas de funcionamento.

3.2 Mudanas no software de verso para verso


Os aspectos individuais mudados de verso para verso so resumidos detalhadamente a seguir. O resumo indica, por exemplo, se as configuraes bsicas foram completamente reconfiguradas, se arquivos de configurao foram movidos para outros locais ou se os aplicativos comuns sofreram mudanas considerveis. As modificaes significativas que afetam o uso dirio do sistema no nvel do usurio ou no nvel do administrador so mencionadas aqui. Os problemas e as questes especiais das respectivas verses so publicados online medida que so identificados. Consulte os links relacionados abaixo. As atualizaes importantes de pacotes individuais podem ser acessadas em http://www.novell .com/products/linuxprofessional/downloads/ usando o YOU (YaST Online Update) consulte a Seo Atualizando software online (Captulo 2, Configurao do sistema com YaST, Inicializao).

3.2.1 Do 9.0 ao 9.1


Consulte o artigo Known Problems and Special Features in SUSE Linux 9,1 no banco de dados de suporte do SUSE em http://portal.suse.com na palavra-chave special features. Os artigos so publicados em todas as verses do SUSE Linux.

Atualizando para o Kernel 2.6


O SUSE Linux baseia-se agora inteiramente no kernel 2.6. A verso anterior 2.4 no pode mais ser usada, porque os aplicativos fornecidos no funcionam com o kernel 2.4. Observe os seguintes detalhes: O carregamento de mdulos configurado por meio do arquivo /etc/modprobe .conf. O arquivo /etc/modules.conf est obsoleto. O YaST tenta converter o arquivo (consulte tambm o script /sbin/generate-modprobe.conf).

72

Referncia

Os mdulos tm o sufixo .ko. O mdulo ide-scsi no mais necessrio para a gravao de CDs. O prefixo snd_ foi removido das opes do mdulo de som ALSA . sysfs agora complementa o sistema de arquivos /proc. O gerenciamento de energia (especialmente ACPI) foi aperfeioado e pode ser configurado por meio de um mdulo do YaST.

Montando parties VFAT


Na montagem de parties VFAT, o parmetro code deve ser mudado para codepage. Se voc tiver dificuldades de montar uma partio VFAT, verifique se o arquivo /etc/ fstab contm o antigo nome de parmetro.

Standby e suspender com ACPI


O kernel 2.6 suporta standby e suspender com ACPI. Esta funo ainda est no estgio experimental e pode no ser suportada por alguns componentes do hardware. Para usla, ser necessrio o pacote powersave. Informaes sobre esse pacote tambm esto disponveis em /usr/share/doc/packages/powersave. Um front end grfico pode ser encontrado no pacote kpowersave.

Dispositivos de entrada
Com relao s mudanas em conexo com os dispositivos de entrada, consulte o artigo do portal j mencionado Known Problems and Special Features in SUSE LINUX 9.1 no bando de dados de suporte http://portal.suse.com com a palavra-chave special features.

Biblioteca nativa de threads POSIX e glibc 2.3.x


Os aplicativos associados ao NGPT (Next Generation POSIX Threading) no funcionam com glibc 2.3.x. Todos os aplicativos afetados que no acompanham o SUSE Linux devem ser compilados com linuxthreads ou com NPTL (Native POSIX Thread Library

Atualizando o gerenciamento de sistemas e pacotes

73

- Biblioteca Nativa de Threads POSIX). O NPTL prefervel, porque o padro do futuro. Se o NPTL causar dificuldades, poder ser usada a antiga implementao dos linuxthreads, configurando a seguinte varivel de ambiente (substituir verso_do_kernel pelo nmero de verso do respectivo kernel):
LD_ASSUME_KERNEL=verso-do-kernel

Os seguintes nmeros de verso so possveis: 2.2.5 (i386, i586): linuxthreads sem pilhas flutuantes 2.4.1 (AMD64, IPF, s390x, i586, i686):, 2.4.1 (AMD64, i586, i686): linuxthreads com pilhas flutuantes Notas referentes ao kernel e linuxthreads com pilhas flutuantes: Aplicativos que usam errno, h_errno e _res devem incluir os arquivos de cabealho (errno.h, netdb .h e resolv.h) com #include. Para programas C++ com suporte multithread que usam cancelamento de thread, a varivel de ambiente LD_ASSUME_KERNEL=2.4.1 deve ser usada para solicitar o uso da biblioteca linuxthreads.

Adaptaes para Native POSIX Thread Library


O NPTL est includo no SUSE Linux 9.1 como o pacote de thread. O NPTL compatvel binariamente com a biblioteca dos antigos linuxthreads. Porm, as reas em que os linuxthreads violam o padro POSIX exigem adaptaes NPTL. Isso inclui o seguinte: o tratamento de sinais, getpid retornando o mesmo valor em todos os threads e handlers de threads registrados com pthread_atfork que no funcionam se vfork for usado.

Configurao da interface de rede


A configurao da interface de rede mudou. Anteriormente, o hardware era inicializado de acordo com a configurao de uma interface inexistente. Agora, o sistema procura o novo hardware e o inicializa imediatamente, habilitando a configurao da nova interface de rede.

74

Referncia

Novos nomes foram apresentados para os arquivos de configurao. Como o nome de uma interface de rede gerado dinamicamente e o uso dos dispositivos hotplug est aumentando consideravelmente, um nome como eth0 ou eth1 no mais adequado para fins de configurao. Por essa razo, designaes exclusivas, como endereo MAC ou slot PCI, so usadas para nomear configuraes de interface. Voc pode usar nomes de interface assim que aparecerem. Comandos como ifup eth0 ou ifdown eth0 ainda so possveis. As configuraes de dispositivo esto localizadas em /etc/sysconfig/hardware. As interfaces fornecidas por esses dispositivos geralmente esto localizadas em /etc/ sysconfig/network (com nomes diferentes). Consulte a descrio detalhada em /usr/share/doc/packages/sysconfig/README.

Configurao de Som
Aps uma atualizao, as placas de som devem ser reconfiguradas. Isso pode ser feito com o mdulo de som do YaST. Como root, digite /sbin/yast2 sound.

Domnio superior .local como domnio link-local


A biblioteca resolver trata o domnio superior .local como domnio link-local e envia solicitaes do DNS multicast para a porta 5353 do endereo multicast 224.0.0.251, em vez de consultas de DNS normais. uma mudana incompatvel. Se o domnio .local j usado na configurao de nome de servidor, use um nome de domnio diferente. Para obter mais informaes sobre multicast DNS, consulte http://www.multicastdns.org.

Codificao UTF-8 em todo o sistema


A codificao padro do sistema UTF-8. Assim, quando voc fizer uma instalao padro, um local ser configurado com a codificao UTF-8, como en_US.UTF-8. Para obter mais informaes, consulte http://www.suse.de/~mfabian/ suse-cjk/locales.html.

Convertendo nomes de arquivo em UTF-8


Os arquivos em sistemas de arquivos criados anteriormente no usam codificao UTF8 para os nomes de arquivo (a menos que especificado de outra forma). Se houver Atualizando o gerenciamento de sistemas e pacotes 75

caracteres no-ASCII nesses nomes de arquivo, eles no sero exibidos corretamente. Para corrigir, use o script convmv, que converte a codificao de nomes de arquivo em UTF-8.

Ferramentas shell compatveis com padro POSIX do 2001


Na configurao padro, as ferramentas shell do pacote do coreutils (tail, chown, head, sort, etc.) no so mais compatveis com o padro POSIX de 1992 mas com o padro POSIX de 2001 (Single UNIX Specification, verso 3== IEEE Std 1003.12001 == ISO/IEC 9945:2002). O comportamento antigo pode ser forado com uma varivel de ambiente:
_POSIX2_VERSION=199209

O novo valor 200112 e usado como padro em _POSIX2_VERSION. O padro SUS pode ser analisado (gratuitamente, mas necessrio registro) em http://www .unix.org. DICA Software de terceiros podem ainda no ser compatveis com o novo padro. Nesse caso, configure a varivel de ambiente como descrito acima.

/etc/gshadow Obsoleto
/etc/gshadow foi abandonado e removido, porque esse arquivo suprfluo pelas seguintes razes: No suportado por glibc. No h interface oficial para esse arquivo. Nem mesmo a sute transitria contm essa interface. A maioria das ferramentas que verifica a senha do grupo no oferece suporte ao arquivo e o ignora pelas referidas razes.

76

Referncia

OpenLDAP
Como o formato do banco de dados mudou, os bancos de dados devem ser gerados novamente. Durante a atualizao, o sistema tenta efetuar essa converso automaticamente. Porm, haver casos em que a converso falha. A verificao do esquema sofreu aprimoramentos substanciais. Assim, diversas operaes padro no compatveis que eram permitidas com o antigo servidor LDAP no so mais possveis. A sintaxe do arquivo de configurao mudou parcialmente com uma viso para ACLs. Aps a instalao, h informaes com relao atualizao no arquivo /usr/share/ doc/packages/powersave/README.thermal.

Apache 1.3 substitudo por Apache 2


O servidor Web do Apache (verso 1.3) foi substitudo pelo Apache 2. A documentao detalhada da verso 2.0 est disponvel na pgina da Web http://httpd.apache .org/docs-2.0/en/. Em um sistema com uma instalao de servidor HTTP, uma atualizao remove o pacote Apache e instala o Apache 2. Posteriormente, o sistema deve ser adaptado com o YaST ou manualmente. Os arquivos de configurao em /etc/httpd agora esto localizados em /etc/apache2. Threads ou processos podem ser selecionados para tratar vrias consultas simultneas. O gerenciamento do processo mudou para um mdulo independente, o mdulo multiprocessamento (MPM). Da mesma maneira, o Apache 2 precisa do pacote apache2-prefork (recomendado para fins de estabilidade) ou do pacote apache2-worker. Dependendo do MPM, o Apache 2 reage de forma diferente s consultas. Isso afeta o desempenho, assim como o uso dos mdulos. Essas caractersticas so discutidas detalhadamente na Seo 26.4.4, Mdulos de multiprocessamento (p 486). O Apache 2 agora oferece suporte para o IPv6 (protocolo da Internet avanado). Foi implementado um mecanismo para que os programadores de mdulo possam especificar a seqncia de carregamento desejada dos mdulos, liberando os usurios dessa tarefa. Em geral, importante a seqncia em que os mdulos so executados. Nas verses anteriores, isso era determinado atravs da seqncia de carregamento. Por exemplo, um mdulo que s d acesso a determinados recursos para usurios

Atualizando o gerenciamento de sistemas e pacotes

77

autenticados deve ser carregado primeiro, para impedir que usurios sem permisso de acesso vejam as pginas. As consultas e respostas do Apache podem ser processadas com filtros.

Do Samba 2.x ao Samba 3.x


Aps a atualizao do Samba 2.x para o Samba 3.x, a autenticao winbind no est mais disponvel. Os outros mtodos de autenticao ainda podem ser usados. Por isso, os seguintes programas foram removidos:
/usr/sbin/wb_auth /usr/sbin/wb_ntlmauth /usr/sbin/wb_info_group.pl

Consulte tambm http://www.squid-cache.org/Doc/FAQ/FAQ-23.html #ss23.5.

Atualizao do OpenSSH (verso 3.8p1)


O suporte gssapi foi substitudo pelo gssapi-with-mic para impedir possveis ataques do tipo MITM. Essas duas verses no so compatveis. Isso significa que no possvel autenticar com tickets Kerberos a partir de distribuies mais antigas, visto que outros mtodos de autenticao so usados.

Aplicativos SSH e de terminal


Ao se estabelecer uma conexo de um host remoto (especialmente via SSH, telnet e RSH) entre a verso 9 (configurao padro com UTF-8 ativado) e sistemas mais antigos (SUSE Linux 9.0 e verses anteriores em que UTF-8 no est ativado por padro ou no suportado), aplicativos de terminal podem exibir caracteres com erro. Isso ocorre porque o OpenSSH no encaminha as configuraes locais. Portanto, so usados os padres do sistema que podem no corresponder s configuraes do terminal remoto. Isso afeta o YaST no modo de texto e os aplicativos executados de um host remoto como usurio normal (no root). Os aplicativos iniciados por root so afetados somente quando os usurios mudam os locais padro de root (apenas LC_CTYPE definido por padro).

78

Referncia

libiodbc descartado
Os usurios do FreeRADIUS devem se conectar ao unixODBC, pois o libiodbc foi descartado.

Recursos XML em /usr/share/xml


Os recursos XML (DTDs, folhas de estilo, etc.) so instalados em /usr/share/xml. Portanto, alguns diretrios no esto mais disponveis em /usr/share/sgml. Se voc tiver problemas, modifique os scripts e makefiles ou use os catlogos oficiais (principalmente /etc/xml/catalog ou /etc/sgml/catalog).

Mdia removvel com subfs


A mdia removvel est agora integrada ao uso de subfs. No mais necessrio montar a mdia manualmente com mount. Para montar a mdia, basta mudar o respectivo diretrio de dispositivo em /media. A mdia no pode ser ejetada enquanto for acessada por um programa.

3.2.2 Do 9,1 ao 9,2


Consulte o artigo Known Problems and Special Features in SUSE LINUX 9.2 no banco de dados de suporte do SUSE em http://portal.suse.com com a palavrachave special features.

Ativao do firewall na caixa de dilogo de proposta durante a instalao


Para aumentar a segurana, a soluo de firewall SuSEFirewall2 fornecida ativada no fim da instalao na caixa de dilogo de proposta. Isso significa que todas as portas esto fechadas inicialmente e podem ser abertas na caixa de dilogo de proposta, se necessrio. Por padro, no possvel efetuar login de sistemas remotos. Tambm interfere na navegao na rede e aplicativos multicast, como SLP, Samba ("Ambiente de rede") e alguns jogos. Voc pode fazer o ajuste fino das configuraes firewall com o YaST.

Atualizando o gerenciamento de sistemas e pacotes

79

Se for necessrio acesso rede durante a instalao ou configurao de um servio, o mdulo respectivo do YaST abre as portas TCP e UDP exigidas de todas as interfaces internas e externas. Se no desejar, o usurio poder fechar as portas no mdulo do YaST ou especificar outras configuraes de firewall detalhadas.

KDE e suporte IPv6


Por padro, o suporte IPv6 no est habilitado para KDE. possvel habilit-lo usando o editor do YaST /etc/sysconfig. A razo de desabilitar esse recurso que os endereos IPv6 no recebem o suporte adequado de todos os provedores de servios de Internet e, em conseqncia, leva a mensagens de erro ao navegar na Web e atrasos na exibio de pginas da Web

YaST Online Update e pacotes Delta


O YaST Online Update agora suporta um tipo especial de pacotes RPM que armazena apenas a diferena binria de determinado pacote bsico. Essa tcnica reduz consideravelmente o tamanho do pacote e o tempo de download em detrimento de uma maior carga da CPU para reorganizar o pacote final. Em /etc/sysconfig/ onlineupdate, configure se VOC deve usar esses pacotes delta. Consulte /usr/ share/doc/packages/deltarpm/README para obter detalhes tcnicos.

Configurao do sistema de impresso


Ao trmino da instalao (caixa de dilogo de proposta), as portas necessrias para o sistema de impresso devem ser abertas na configurao do firewall. A porta 631/TCP e a porta 631/UDP so necessrias para o CUPS e no devem ser fechadas para operao normal. A porta 515/TCP (para o antigo protocolo LPD) e as portas usadas pelo Samba tambm devem ser abertas para impresso via LPD ou SMB.

Mudar para X.Org


A mudana de XFree86 para X.Org facilitada pelos links de compatibilidade que habilitam acesso a arquivos e comandos importantes com os nomes antigos.

80

Referncia

Tabela 3.1 XFree86 XFree86

Comandos X.Org Xorg xorgconfig xorgcfg Arquivos de registro em /var/log X.Org Xorg.0.log Xorg.0.log.old

xf86config xf86cfg Tabela 3.2 XFree86 XFree86.0.log XFree86.0.log.old

No processo de mudana para X.Org, os pacotes foram renomeados de XFree86* para xorg-x11*.

Emuladores de terminal para X11


Removemos diversos emuladores de terminal porque no eram mais mantidos ou no funcionavam no ambiente padro, especialmente por no oferecerem suporte para UTF8. O SUSE Linux oferece terminais padro, como xterm, os terminais KDE e GNOME e mlterm (emulador de terminal multilinge para X), que podem ser substitutos do aterm e do term.

Mudanas no pacote powersave


Os arquivos de configurao em /etc/sysconfig/powersave mudaram:

Atualizando o gerenciamento de sistemas e pacotes

81

Tabela 3.3 Antigos

Divida os arquivos de configurao em /etc/sysconfig/powersave Agora divida em

/etc/sysconfig/powersave/ common common cpufreq events battery sleep thermal /etc/powersave.conf tornou-se obsoleto. As variveis existentes mudaram para os arquivos relacionados na Tabela 3.3, Divida os arquivos de configurao em /etc/sysconfig/powersave (p 82). Se voc modificou as variveis event em /etc/ powersave.conf, essas agora devem ser adaptadas em /etc/sysconfig/ powersave/events. Os nomes dos estados de espera mudaram de: suspender (ACPI S4, suspender APM) suspender (ACPI S4, standby APM) Para: suspender para disco (ACPI S4, suspender APM) suspender para ram (ACPI S3, suspender APM) standby (ACPI S1, standby APM)

82

Referncia

OpenOffice.org (OOo)
Diretrios: OOo agora est instalado em /usr/lib/ooo-1.1 em vez de em /opt/ OpenOffice.org. O diretrio padro para configuraes de usurio agora /usr/lib/ooo-1.1 em vez de /opt/OpenOffice.org. Agrupador: H alguns agrupadores novos para inicializar os componentes OOo. Os novos nomes so mostrados na Tabela 3.4, Agrupador (p 83). Tabela 3.4 Antigos /usr/X11R6/bin/OOo-calc /usr/X11R6/bin/OOo-draw /usr/X11R6/bin/OOo-impress /usr/X11R6/bin/OOo-math /usr/X11R6/bin/OOo-padmin /usr/X11R6/bin/OOo-setup /usr/X11R6/bin/OOo-template /usr/X11R6/bin/OOo-web /usr/X11R6/bin/OOo-writer /usr/X11R6/bin/OOo /usr/X11R6/bin/OOo-wrapper Agrupador Nova /usr/bin/oocalc /usr/bin/oodraw /usr/bin/ooimpress /usr/bin/oomath /usr/sbin/oopadmin /usr/bin/oofromtemplate /usr/bin/ooweb /usr/bin/oowriter /usr/bin/ooffice /usr/bin/ooo-wrapper

O agrupador agora tem suporte para a opo --icons-set para alternar entre os cones KDE e GNOME. As opes a seguir no so mais suportadas: --default-configuration, --gui, --java-path, --skip-check, Atualizando o gerenciamento de sistemas e pacotes 83

--lang (o idioma agora determinado por meio de locais), --messages-in-window e --quiet. Suporte a KDE e GNOME: As extenses KDE e GNOME esto disponveis nos pacotes OpenOffice_org-kde e OpenOffice_org-gnome.

Mixer de som kmix


O mixer de som kmix predefinido como o padro. No caso de hardware high-end, h outros mixers, como QAMix. KAMix, envy24control (apenas ICE1712) ou hdspmixer (apenas RME Hammerfall).

Gravao de DVDs
No passado, era aplicado um patch ao arquivo binrio cdrecord do pacote cdrecord para garantir o suporte gravao de DVDs. Agora, est instalado um novo arquivo binrio cdrecord-dvd que tem esse patch. O programa growisofs do pacote dvd+rw-tools agora pode gravar todas as mdias de DVD (DVD+R, DVD-R, DVD+RW, DVD-RW, DVD+RL). Tente usar esta, em vez de cdrecord-dvd com patch.

Vrios kernels
possvel instalar diversos kernels lado a lado. Esse recurso visa possibilitar os administradores de fazer o upgrade de um kernel para outro, instalando o novo kernel, verificando se o novo kernel funciona como esperado e desinstalando o antigo kernel. Embora o YaST ainda no tenha suporte para esse recurso, kernels podem ser instalados e desinstalados facilmente do shell usando rpm -i package.rpm. Os menus padro de carregador de boot contm uma entrada de kernel. Antes de instalar diversos kernels, til adicionar uma entrada para os kernels extras, de maneira que possam ser facilmente selecionados. O kernel que estava ativo antes da instalao de um novo kernel pode ser acessado como vmlinuz.previous e initrd .previous. Ao se criar uma entrada de carregador de boot similar entrada padro e tendo em vista que essa entrada faz referncia a vmlinuz.previous e initrd .previous em vez de a vmlinuz e initrd, possvel acessar o kernel anteriormente ativo. Como opo, GRUB e LILO tem suporte para entradas de 84 Referncia

carregador de boot de curingas. Consulte as pginas de informaes sobre GRUB (info grub) e a pgina de manual sobre o lilo.conf (5) para obter mais detalhes.

3.2.3 Do 9.2 ao 9.3


Consulte o artigo Known Problems and Special Features in SUSE Linux 9,3 no banco de dados de suporte do SUSE em http://portal.suse.com na palavra-chave special features.

Iniciando a instalao manual no prompt do kernel


O modo Instalao Manual no aparece mais na tela do carregador de boot. Voc ainda pode obter linuxrc no modo manual usando manual=1 no prompt do boot. Normalmente isso no necessrio porque voc pode configurar as opes de instalao diretamente no prompt do kernel, como textmode=1 ou um URL como a fonte de instalao.

Kerberos para autenticao de rede


Kerberos o padro para autenticao de rede em vez de heimdal. No possvel converter automaticamente uma configurao heimdal existente. Durante uma atualizao do sistema, so criadas cpias de backup dos arquivos de configurao como mostrado na Tabela 3.5, Arquivos de backup (p 85). Tabela 3.5 Arquivos de backup Arquivo de backup /etc/krb5.conf.heimdal /etc/krb5.keytab.heimdal

Arquivo antigo /etc/krb5.conf /etc/krb5.keytab

A configurao de cliente (/etc/krb5.conf) muito similar heimdal. Se no foi configurado nada especial, basta substituir o parmetro kpasswd_server por admin_server. No possvel copiar os dados relacionados ao servidor (kdc e kadmind). Aps a atualizao do sistema, o antigo banco de dados heimdal ainda est disponvel em Atualizando o gerenciamento de sistemas e pacotes 85

/var/heimdal. O MIT kerberos mantm o banco de dados em /var/lib/ kerberos/krb5kdc.

JFS: no mais suportado


Devido a problemas tcnicos com JFS, ele no mais suportado. O driver do sistema de arquivo kernel ainda existe, mas o YaST no oferece particionamento com JFS.

AIDE como substituto do Tripwire


Como sistema de deteco de intrusos, use AIDE (nome do pacote aide), que lanado sob o GPL. O Tripwire no est mais disponvel no SUSE Linux.

Arquivo de configurao X.Org


A ferramenta de configurao SaX2 grava as definies da configurao X.Org em /etc/X11/xorg.conf. Durante uma instalao do zero, nenhum link de compatibilidade criado de XF86Config para xorg.conf.

Suporte XView e OpenLook suspenso


Os pacotes xview, xview-devel, xview-devel-examples, olvwm e xtoolpl foram suspensos. No passado, fornecamos apenas o sistema base XView (OpenLook). As bibliotecas XView no so mais fornecidas aps a atualizao do sistema. Mais importante ainda, o OLVWM (OpenLook Virtual Window Manager) no est mais disponvel.

Configurao PAM
Novos arquivos de configurao (que contm comentrios para obter mais informaes) common-auth Configurao PAM padro da seo auth common-account Configurao PAM padro da seo account

86

Referncia

common-password Configurao PAM padro para mudana de senha common-session Configurao PAM padro para gerenciamento de sesso preciso incluir esses arquivos de configurao padro do seu arquivo de configurao especfico do aplicativo, porque mais fcil modificar e manter um arquivo em vez dos cerca de 40 arquivos que existiam no sistema. Se voc instalar um aplicativo posteriormente, ele herdar as mudanas j aplicadas e o administrador no ser obrigado a se lembrar de ajustar a configurao. As mudanas so simples. Se voc tiver o arquivo de configurao a seguir (que deve ser o padro na maioria dos aplicativos):
#%PAM-1.0 auth required account required password required password required #password required session required pam_unix2.so pam_unix2.so pam_pwcheck.so pam_unix2.so pam_make.so pam_unix2.so

use_first_pass use_authtok /var/yp

poder mud-lo para:


#%PAM-1.0 auth include account include password include session include common-auth common-account common-password common-session

Sintaxe tar mais restrita


O uso da sintaxe tar est mais restrito agora. As opes do tar devem vir antes das especificaes de arquivo ou diretrio. Opes de adio, como --atime-preserve ou --numeric-owner, provocam a falha de tar se colocadas depois das especificaes de arquivo ou diretrio. Verifique os seus scripts de backup. Comandos como os seguintes no funcionam mais:
tar czf etc.tar.gz /etc --atime-preserve

Consulte as pginas de informaes sobre tar para obter mais detalhes.

Atualizando o gerenciamento de sistemas e pacotes

87

3.2.4 Do 9.3 ao 10.0


Consulte o artigo Known Problems and Special Features in SUSE Linux 10 no banco de dados de suporte do SUSE em http://portal.suse.com na palavra-chave special features.

Tornando-se um superusurio usando o su


Por padro, chamar su para tornar-se root no define PATH para raiz. Chame su - para iniciar um login de shell com o ambiente completo para raiz ou defina ALWAYS_SET_PATH como sim em /etc/default/su, caso deseje mudar o comportamento padro de su.

Variveis da configurao powersave


Os nomes das variveis da configurao powersave mudaram para fins de consistncia, mas os arquivos sysconfig ainda so os mesmos. Mais informaes podem ser encontradas na Seo 33.5.1, Configurando o Pacote powersave (p 610).

PCMCIA
cardmgr no gerencia mais as placas PC. Em vez disso, como nas placas Cardbus e outros subsistemas, elas so gerenciadas pelo mdulo kernel. Todas as aes necessrias so executadas por hotplug. O script de inicializao do pcmcia fo removido e cardctl foi substitudo por pccardctl. Para obter mais informaes, consulte /usr/share/doc/packages/pcmciautils/README.SUSE.

Configurando o D-BUS para a comunicao entre processos em .xinitrc


Muitos aplicativos agora usam o D-BUS para a comunicao entre processos (IPC). Chamar dbus-launch inicia dbus-daemon. O /etc/X11/xinit/xinitrc em todo o sistema usa dbus-launch para iniciar o gerenciador de janelas. Se voc tem um arquivo ~/.xinitrc local, deve mud-lo de acordo. Caso contrrio, aplicativos como f-spot, banshee, tomboy ou Network Manager banshee podem falhar.

88

Referncia

Salve o seu ~/.xinitrc antigo. Em seguida, copie o novo arquivo de modelo no seu diretrio pessoal com: cp /etc/skel/.xinitrc.template ~/.xinitrc Finalmente, adicione suas personalizaes do .xinitrc salvo.

Arquivos relacionados a NTP renomeados


Por motivos de compatibilidade com o LSB (Linux Standard Base - Base de padres Linux), a maioria dos arquivos de configurao e o script init foram renomeados de xntp para ntp. Os novos nomes de arquivo so: /etc/slp.reg.d/ntp.reg /etc/init.d/ntp /etc/logrotate.d/ntp /usr/sbin/rcntp /etc/sysconfig/ntp

Eventos de hotplug tratados pelo daemon udev


Eventos de hotplug agora so totalmente tratados pelo daemon udev (udevd). No usamos mais o sistema de multiplexador de eventos em /etc/hotplug.d e /etc/ dev.d. Em vez disso, o udevd chama todas as ferramentas auxiliares de hotplug diretamente, de acordo com suas regras. Regras de udev e ferramentas auxiliares so fornecidas por udev e diversos outros pacotes.

Folhas de estilo TEI XSL


Localize as folhas de estilo TEI XSL (tei-xsl-stylesheets) com um novo layout de diretrio em /usr/share/xml/tei/stylesheet/rahtz/current. A partir da, por exemplo, use base/p4/html/tei.xsl para produzir sadas para HTML. Para obter mais informaes, consulte http://www.tei-c.org/ Stylesheets/teic/

Atualizando o gerenciamento de sistemas e pacotes

89

Notificao de mudana de sistema de arquivos para aplicativos GNOME


Para a funcionalidade adequada, os aplicativos GNOME dependem do suporte da notificao de mudana de sistema de arquivos. Para sistemas de arquivos somente locais, instale o pacote (preferido) ou execute o daemon FAM. Para sistemas de arquivo remotos, execute o FAM no servidor e no cliente e abra o firewall para chamadas do RPC pelo FAM. O GNOME (gnome-vfs2 e libgda) contm um agrupador que seleciona gamin ou fam para fornecer a notificao de mudana de sistema de arquivos: Se o daemon FAM no estiver em execuo, o gamin ser prefervel. (Motivo: Inotify suportado somente por gamin e mais eficiente para sistemas de arquivos locais). Se o daemon FAM estiver em execuo, o FAM ser prefervel (Motivo: Se o FAM estiver em execuo, voc provavelmente desejar notificao remota, que suportada somente pelo FAM).

3.2.5 Do 10.0 ao 10.1


Consulte o artigo Known Problems and Special Features in SUSE Linux 10 no banco de dados de suporte do SUSE em http://portal.suse.com na palavra-chave special features.

Apache 2.2
Para o Apache verso 2.2, o Captulo 26, Servidor HTTP Apache (p 463) foi completamente reformulado. Alm disso, encontre informaes de atualizao genricas em http://httpd.apache.org/docs/2.2/upgrading.html e a descrio de novos recursos em http://httpd.apache.org/docs/2.2/new_features _2_2.html.

90

Referncia

Iniciando um servidor FTP (vsftpd)


Por padro, xinetd no inicia mais o servidor FTP vsftpd. Agora um daemon independente e voc deve configur-lo com o editor de tempo de execuo do YaST.

Firefox 1.5: O comando aberto de URL


Com o Firefox 1.5, o mtodo para aplicativos abrirem uma janela ou instncia do Firefox foi modificado. O novo mtodo j estava parcialmente disponvel em verses anteriores onde o comportamento foi implementado no script do agrupador. Se o seu aplicativo no usa mozilla-xremote-client ou firefox -remote, no necessrio efetuar mudanas. Caso contrrio, o novo comando para abrir um URL firefox url e no importa se o Firefox j est em execuo ou no. Se ele j estiver em execuo, seguir a preferncia configurada em Abrir links de outros aplicativos em. A partir da linha de comando, voc pode influenciar o comportamento usando firefox -new-window url ou firefox -new-tab url.

3.3 RPM o Gerenciador de pacotes


No SUSE Linux, o RPM (Gerenciador de pacotes RPM) usado para gerenciar os pacotes de software. Seus principais programas so o rpm e o rpmbuild. O banco de dados avanado RPM pode ser consultado pelos usurios, administradores de sistema e construtores de pacotes para obteno de informaes detalhadas sobre o software instalado. Essencialmente, o rpm tem cinco modos: instalao, desinstalao ou atualizao de pacotes de software; reconstruo do banco de dados RPM; consulta de bases RPM ou arquivos RPM individuais; verificao de integridade de pacotes; e assinatura de pacotes. O rpmbuild pode ser usado para construir pacotes instalveis de fontes antigas. Os arquivos RPM instalveis so compactados em um formato binrio especial. Esses so arquivos de programa para instalao e determinadas metainformaes usadas durante a instalao pelo comando rpm para configurar o pacote de softwares. Tambm so armazenados no banco de dados RPM com o objetivo de documentao. Os arquivos RPM normalmente tm a extenso .rpm.

Atualizando o gerenciamento de sistemas e pacotes

91

DICA: Pacotes de desenvolvimento de software Para vrios pacotes, os componentes necessrios para o desenvolvimento de software (bibliotecas, cabealhos, arquivos de incluso, etc.) foram colocados em pacotes separados. Os pacotes de desenvolvimento so necessrios somente se voc desejar compilar seu prprio software, por exemplo, os pacotes GNOME mais recentes. Eles podem ser identificados pela extenso de nome -devel, como os pacotes alsa-devel, gimp-devel e kdelibs3-devel.

3.3.1 Verificando a autenticidade do pacote


Os pacotes RPM do SUSE Linux tm a assinatura GnuPG. A chave que inclui a impresso digital :
Chave de assinatura de pacote do SUSE: 1024D/9C800ACA 2000-10-19 <build@suse.de> Impresso digital da chave = 79C1 79B2 E1C8 20C1 890F A84E DAE8 9C80 0ACA 9994

O comando rpm --checksig pacote-1.2.3.rpm pode ser usado para verificar a assinatura de um pacote RPM e determinar se ele realmente se origina do SUSE Linux ou de outra instalao confivel. Isso especialmente recomendado para pacotes de atualizao da Internet. A chave pblica de assinatura de pacote do SUSE Linux normalmente se localiza em /root/.gnupg/. A chave tambm est localizada no diretrio /usr/lib/rpm/gnupg/ para permitir que usurios comuns verifiquem a assinatura de pacotes RPM.

3.3.2 Gerenciando pacotes: instalao, atualizao e desinstalao


Normalmente, a instalao do arquivo RPM bastante simples: rpm -i pacote.rpm. Com esse comando, o pacote ser instalado, mas somente se as dependncias forem preenchidas e no houver conflitos com outros pacotes. Com uma mensagem de erro, o rpm solicita os pacotes que devem ser instalados para atender a requisitos de dependncia. No segundo plano, o banco de dados RPM garante que no surjam conflitos: um arquivo especfico s pode pertencer a um pacote. Ao escolher opes diferentes, voc pode forar o rpm a ignorar esses padres, mas isso somente para especialistas. Caso contrrio, h o risco de comprometer a integridade do sistema e possivelmente colocar em risco a capacidade de atualizao do sistema.

92

Referncia

As opes -U ou --upgrade e -F ou --freshen podem ser usadas para atualizar um pacote, por exemplo, rpm -F pacote.rpm. Esse comando remove os arquivos da verso antiga e instala os novos arquivos imediatamente. A diferena entre as duas verses que o -U instala pacotes que no existiam no sistema anteriormente, mas -F atualiza somente pacotes previamente instalados. Durante a atualizao, o rpm atualiza arquivos de configurao cuidadosamente com a seguinte estratgia: Se um arquivo de configurao no tiver sido modificado pelo administrador de sistema, o rpm instalar a nova verso do arquivo apropriado. O administrador de sistema no precisa adotar nenhuma ao. Se um arquivo de configurao tiver sido modificado pelo administrador de sistema antes da atualizao, o rpm salvar o arquivo modificado com a extenso .rpmorig ou .rpmsave (arquivo de backup) e instalar a verso do novo pacote, mas somente se o arquivo instalado originalmente e a verso mais nova forem diferentes. Nesse caso, compare o arquivo de backup (.rpmorig ou .rpmsave) com o arquivo recm-instalado e faa novamente as modificaes no novo arquivo. Depois, verifique se apagou todos os arquivos .rpmorig e .rpmsave para evitar problemas em atualizaes futuras. Arquivos .rpmnew so exibidos se o arquivo de configurao j existir e se o rtulo noreplace tiver sido especificado no arquivo .spec. Aps uma atualizao, os arquivos .rpmsave e .rpmnew devem ser removidos depois de comparados para que no impeam atualizaes futuras. A extenso .rpmorig ser atribuda se o arquivo no tiver sido previamente reconhecido pelo banco de dados RPM. Caso contrrio, o .rpmsave ser usado. Em outras palavras, o .rpmorig resulta da atualizao de um formato estranho ao RPM. O .rpmsave resulta da atualizao de um RPM mais antigo para um RPM mais novo. O .rpmnew no revela nenhuma informao sobre se o administrador de sistema fez modificaes no arquivo de configurao. Uma lista destes arquivos est disponvel em /var/adm/ rpmconfigcheck. Alguns arquivos de configurao (como /etc/httpd/httpd .conf) no so sobregravados para permitir operao continuada. O switch -U no somente um equivalente para a desinstalao com a opo -e e a instalao com a opo -i. Use -U sempre que possvel. Para remover um pacote, digite rpm -e package. O rpm apaga o pacote somente se todas as dependncias tiverem sido resolvidas. teoricamente impossvel apagar Atualizando o gerenciamento de sistemas e pacotes 93

Tcl/Tk, por exemplo, enquanto outro aplicativo exigir sua existncia. Mesmo nesse caso, o RPM pede ajuda do banco de dados. Se tal excluso for, por qualquer motivo e sob circunstncias no comuns, impossvel, mesmo se no houver dependncias adicionais, talvez seja til reconstruir o banco de dados RPM com a opo --rebuilddb.

3.3.3 RPM e patches


Para garantir a segurana operacional de um sistema, pacotes de atualizao devem ser instalados no sistema periodicamente. Anteriormente, um erro em um pacote s poderia ser eliminado com a substituio de todo o pacote. Pacotes grandes com erros em arquivos pequenos podiam facilmente resultar em grande quantidade de dados. Porm, o RPM do SUSE oferece um recurso que permite a instalao de patches em pacotes. Como exemplo, as consideraes mais importantes so demonstradas com o pine: O RPM com patch adequado para meu sistema? Para verificar isso, consulte primeiro a verso instalada do pacote. No caso do pine, isso pode ser feito com
rpm -q pine pine-4.44-188

Em seguida, verifique se o RPM com patch adequado para essa verso do pine:
rpm -qp --basedon pine-4.44-224.i586.patch.rpm pine = 4.44-188 pine = 4.44-195 pine = 4.44-207

Esse patch adequado para trs verses diferentes do pine. A verso instalada no exemplo tambm est listada para que o patch possa ser instalado. Quais arquivos sero substitudos pelo patch? Os arquivos afetados por um patch podem ser facilmente vistos no RPM com patch. O parmetro rpm -P permite a seleo de recursos de patch especiais. Exiba a lista de arquivos com o seguinte comando:
rpm -qpPl pine-4.44-224.i586.patch.rpm /etc/pine.conf /etc/pine.conf.fixed /usr/bin/pine

ou, se o patch j estiver instalado, com o seguinte comando: 94 Referncia

rpm -qPl pine /etc/pine.conf /etc/pine.conf.fixed /usr/bin/pine

Como instalar um RPM com patch no sistema? RPMs com patch so usados como RPMs comuns. A nica diferena que um RPM adequado j deve estar instalado. Quais patches j esto instalados no sistema e para quais verses do pacote? possvel exibir uma lista de todos os patches instalados no sistema com o comando rpm -qPa. Se somente um patch for instalado em um novo sistema (como no exemplo), a lista ser exibida como a seguir:
rpm -qPa pine-4.44-224

Se posteriormente voc desejar saber qual verso de pacote foi originalmente instalada, essas informaes tambm estaro disponveis no banco de dados RPM. No caso do pine, possvel exibir essas informaes com o seguinte comando:
rpm -q --basedon pine pine = 4.44-188

Mais informaes, incluindo informaes sobre o recurso de patch do RPM, esto disponveis nas pginas de manual de rpm e rpmbuild.

3.3.4 Pacotes RPM Delta


Os pacotes RPM Delta possuem uma diferena entre uma verso nova e antiga de um pacote RPM. Aplicar um RPM delta em um RPM antigo resulta em um RPM completamente novo. No necessrio ter uma cpia do RPM antigo, pois um RPM delta tambm pode funcionar com um RPM instalado. Os pacotes RPM delta tm tamanho ainda menor que os RPMs com patch, o que uma vantagem durante a transferncia de pacotes de atualizao na Internet. A desvantagem que operaes de atualizao que envolvem RPMs delta consomem consideravelmente mais ciclos de CPU do que as operaes com RPMs com patch ou simples. Para que o YaST use pacotes RPM delta durante sesses do YOU, defina YOU_USE_DELTAS como yes em /etc/sysconfig/onlineupdate. Neste caso, esteja preparado para ter a mdia de instalao disponvel. Se YOU_USE_DELTAS estiver vazio ou definido para filesystem, o YOU tentar fazer o download de pacotes delta que se apliquem a arquivos instalados. Voc no precisa da mdia de instalao nesse caso, mas o tempo

Atualizando o gerenciamento de sistemas e pacotes

95

de download poderia ser maior. Se estiver definido para no, o YOU usar somente RPMs com patch e RPMs comuns. Os binrios prepdeltarpm, writedeltarpm e applydeltarpm so parte de uma sute de RPM delta (pacote deltarpm) e ajudam na criao e aplicao de pacotes RPM delta. Com os seguintes comandos, crie um RPM delta chamado new.delta .rpm. O comando a seguir pressupe que old.rpm e new.rpm esto presentes:
prepdeltarpm -s seq -i info old.rpm > old.cpio prepdeltarpm -f new.rpm > new.cpio xdelta delta -0 old.cpio new.cpio delta writedeltarpm new.rpm delta info new.delta.rpm rm old.cpio new.cpio delta

Usando applydeltarpm, voc pode reconstruir o novo RPM do arquivo de sistema se o pacote antigo j estiver instalado:
applydeltarpm new.delta.rpm new.rpm

Para deriv-lo do RPM antigo sem acessar o sistema de arquivos, use a opo -r:
applydeltarpm -r old.rpm new.delta.rpm new.rpm

Consulte /usr/share/doc/packages/deltarpm/README" para obter detalhes tcnicos.

3.3.5 Consultas de RPM


Com a opo -q, o rpm inicia consultas, o que permite inspecionar um arquivo RPM (adicionando-se a opo -p) e tambm consultar o banco de dados RPM de pacotes instalados. Vrios switches esto disponveis para especificar o tipo de informao necessria. Consulte a Tabela 3.6, Opes mais importantes de consulta de RPM (p 96). Tabela 3.6 -i -l Opes mais importantes de consulta de RPM Informaes de pacote Lista de arquivos

96

Referncia

-f ARQUIVO

Consulte o pacote que contm o arquivo ARQUIVO (o caminho completo deve ser especificado com ARQUIVO) Lista de arquivos com informaes de status (requer -l) Lista somente arquivos de documentao (requer -l) Lista somente arquivos de configurao (requer -l) Lista de arquivos com detalhes completos (a ser usada com -l, -c ou -d) Lista recursos do pacote que outro pacote pode solicitar com --requires Recursos exigidos pelo pacote Scripts de instalao (pr-instalao, ps-instalao, desinstalao)

-s -d -c --dump

--provides

--requires, -R --scripts

Por exemplo, o comando rpm -q -i wget exibe as informaes exibidas no Exemplo 3.2, rpm -q -i wget (p 97). Exemplo 3.2 rpm -q -i wget
Name : wget Relocations: (not relocatable) Version : 1.9.1 Vendor: SUSE LINUX AG, Nuernberg, Germany Release : 50 Build Date: Sat 02 Oct 2004 03:49:13 AM CEST Install date: Mon 11 Oct 2004 10:24:56 AM CEST Build Host: f53.suse.de Group : Productivity/Networking/Web/Utilities Source RPM: wget-1.9.1-50.src.rpm Size : 1637514 License: GPL Signature : DSA/SHA1, Sat 02 Oct 2004 03:59:56 AM CEST, Key ID a84edae89c800aca Packager : http://www.suse.de/feedback URL : http://wget.sunsite.dk/ Summary : A tool for mirroring FTP and HTTP servers Description : Wget enables you to retrieve WWW documents or FTP files from a server. This can be done in script files or via the command line. [...]

Atualizando o gerenciamento de sistemas e pacotes

97

A opo -f funciona somente se voc especificar o nome de arquivo e seu caminho completos. Fornea quantos nomes de arquivo desejar. Por exemplo, o seguinte comando
rpm -q -f /bin/rpm /usr/bin/wget

resulta em:
rpm-4.1.1-191 wget-1.9.1-50

Se somente parte do nome de arquivo for conhecido, use um script de shell conforme mostrado no Exemplo 3.3, Script para pesquisar pacotes (p 98). Passe o nome de arquivo parcial para o script mostrado como um parmetro ao execut-lo. Exemplo 3.3 Script para pesquisar pacotes
#! /bin/sh for i in $(rpm -q -a -l | grep $1); do echo "\"$i\" is in package:" rpm -q -f $i echo "" done

O comando rpm -q --changelog rpm exibe uma lista detalhada de informaes de mudana sobre um pacote especfico, classificada por data. Este exemplo mostra informaes sobre o pacote rpm. Com a ajuda do banco de dados RPM instalado, possvel realizar verificaes. Inicie as verificaes com -V, -y ou --verify. Com essa opo, o rpm mostra todos os arquivos em um pacote que foram modificados desde a instalao. O rpm usa oito smbolos de caracteres para fornecer algumas dicas sobre as seguintes mudanas: Tabela 3.7 5 S L T D Opes de verificao do RPM Resumo de verificao MD5 Tamanho do arquivo Link simblico Tempo de modificao Nmeros de dispositivo principais e auxiliares

98

Referncia

U G S

Proprietrio Grupo Modo (tipo de arquivo e permisses)

No caso de arquivos de configurao, a letra c impressa. Por exemplo, para mudanas para /etc/wgetrc (wget):
rpm -V wget S.5....T c /etc/wgetrc

Os arquivos do banco de dados RPM so colocados em /var/lib/rpm. Se a partio /usr tiver o tamanho de 1 GB, esse banco de dados poder ocupar praticamente 30 MB, especialmente aps uma atualizao completa. Se o banco de dados for maior do que o esperado, ser til reconstruir o banco de dados com a opo --rebuilddb. Antes disso, faa um backup do banco de dados antigo. O script cron cron.daily faz cpias dirias do banco de dados (compactado com gzip) e armazena essas cpias em /var/adm/backup/rpmdb. O nmero de cpias controlado pela varivel MAX_RPMDB_BACKUPS (padro: 5) em /etc/sysconfig/backup. O tamanho de um nico backup de aproximadamente 1 MB para 1 GB em /usr.

3.3.6 Instalando e compilando pacotes de fonte


Todos os pacotes de fontes do SUSE Linux carregam uma extenso .src.rpm (RPM de fonte). DICA Pacotes de fonte podem ser copiados da mdia de instalao para o disco rgido e descompactados com o YaST. Porm, eles no so marcados como instalados ([i]) no gerenciador de pacotes. Isso porque os pacotes de fontes no so inseridos no banco de dados RPM. Somente o software do sistema operacional instalado est listado no banco de dados RPM. Quando voc instalar um pacote de fontes, somente o cdigo-fonte ser adicionado ao sistema.

Atualizando o gerenciamento de sistemas e pacotes

99

Os diretrios a seguir devem estar disponveis para rpm e rpmbuild em /usr/src/ packages (a menos que voc tenha especificado configuraes personalizadas em um arquivo como /etc/rpmrc): SOURCES para as fontes originais (arquivos .tar.bz2 ou .tar.gz, etc.) e para ajustes especficos de distribuio (geralmente arquivos .diff ou .patch) SPECS para os arquivos .spec, similares a um metaMakefile, que controla o processo de construo BUILD diretrio em que todas as fontes so descompactadas, modificadas e compiladas RPMS local em que os pacotes binrios concludos so armazenados SRPMS local em que esto os RPMs de fonte Quando voc instala um pacote de fontes com o YaST, todos os componentes necessrios so instalados em /usr/src/packages: as fontes e os ajustes em SOURCES e o arquivo .spec relevante em SPECS. ATENO No experimente com componentes de sistema (glibc, rpm, sysvinit, etc.), pois isso coloca em risco a operabilidade do sistema. O exemplo a seguir usa o pacote wget.src.rpm. Aps instalar o pacote com o YaST, voc dever ter arquivos similares seguinte lista:
/usr/src/packages/SOURCES/nops_doc.diff /usr/src/packages/SOURCES/toplev_destdir.diff /usr/src/packages/SOURCES/wget-1.9.1+ipvmisc.patch /usr/src/packages/SOURCES/wget-1.9.1-brokentime.patch /usr/src/packages/SOURCES/wget-1.9.1-passive_ftp.diff /usr/src/packages/SOURCES/wget-LFS-20040909.tar.bz2 /usr/src/packages/SOURCES/wget-wrong_charset.patch /usr/src/packages/SPECS/wget.spec

100

Referncia

rpmbuild -b X /usr/src/packages/SPECS/wget.spec inicia a compilao. X um curinga para vrios estgios do processo de construo (consulte a sada de --help ou a documentao do RPM para obter detalhes). Veja a seguir uma breve explicao: -bp Prepara fontes em /usr/src/packages/BUILD: decompacta e modifica. -bc Faz o mesmo que -bp, mas com compilao adicional. -bi Faz o mesmo que -bp, mas com a instalao adicional do software criado. Cuidado: se o pacote no aceitar o recurso BuildRoot, talvez voc sobregrave os arquivos de configurao. -bb Faz o mesmo que -bi, mas com a criao adicional do pacote binrio. Se a compilao tiver sido bem-sucedida, o binrio dever estar em /usr/src/ packages/RPMS. -ba Faz o mesmo que -bb, mas com a criao adicional do RPM de fonte. Se a compilao tiver sido bem-sucedida, o binrio dever estar em /usr/src/ packages/SRPMS. --short-circuit Ignora algumas etapas. O RPM binrio criado agora pode ser instalado com rpm -i ou, de preferncia, com rpm -U. A instalao com rpm faz com que ele aparea no banco de dados RPM.

3.3.7 Compilando pacotes RPM com build


O perigo de vrios pacotes que arquivos indesejados so adicionados ao sistema em execuo durante o processo de construo. Para evitar isso, use build, o que cria um ambiente definido para construo do pacote. Para estabelecer esse ambiente chroot, o script build deve ser fornecido com uma rvore de pacote completa. Essa rvore pode ser disponibilizada no disco rgido, atravs do NFS ou DVD. Defina a posio com build --rpms diretrio. Ao contrrio do comando rpm, o comando build Atualizando o gerenciamento de sistemas e pacotes 101

procura o arquivo SPEC no diretrio de origem. Para construir wget (como no exemplo acima) com o DVD montado no sistema em /media/dvd, use os comandos seguintes como root:
cd /usr/src/packages/SOURCES/ mv ../SPECS/wget.spec . build --rpms /media/dvd/suse/ wget.spec

Depois disso, um ambiente mnimo estabelecido em /var/tmp/build-root. O pacote criado nesse ambiente. Aps a concluso, os pacotes resultantes estaro localizados em /var/tmp/build-root/usr/src/packages/RPMS. O script build oferece vrias opes adicionais. Por exemplo, faz com que o script prefira seus prprios RPMs, omite a inicializao do ambiente de construo ou limita o comando rpm a um dos estgios mencionados acima. Acesse informaes adicionais com build --help e a leitura da pgina de manual build.

3.3.8 Ferramentas para arquivos RPM e banco de dados RPM


O Midnight Commander (mc) pode exibir o contedo de arquivos RPM e copiar partes deles. Ele representa arquivos como sistemas de arquivos virtuais, oferecendo todas as opes de menu usuais do Midnight Commander. Exiba o HEADER com F3 . Exiba a estrutura de arquivos com as teclas de cursor e Enter . Copie componentes de arquivos com F5 . O KDE oferece a ferramenta kpackage como front-end para rpm. Um gerenciador de pacotes com recursos completos est disponvel como um mdulo do YaST (consulte a Seo Instalando e removendo software (Captulo 2, Configurao do sistema com YaST, Inicializao)).

102

Referncia

Parte 2. Administrao

Segurana no Linux
O mascaramento e um firewall garantem um fluxo de dados e um intercmbio de dados controlados. O SSH (secure shell) permite que voc efetue login em hosts remotos por uma conexo criptografada. A criptografia de arquivos ou parties inteiras protege seus dados no caso de terceiros obterem acesso ao seu sistema. Encontre instrues tcnicas e informaes sobre aspectos de segurana das redes Linux.

4.1 Mascaramento e firewalls


Sempre que o Linux usado em um ambiente de rede, voc pode usar as funes de kernel que permitem a manipulao de pacotes de rede, para manter uma separao entre as reas de rede interna e externa. O framework do filtro de rede do Linux oferece meios de estabelecer um firewall eficiente que mantm redes diferentes distanciadas. Com a ajuda de iptables, uma estrutura de tabela genrica para a definio de conjuntos de regras, controle precisamente os pacotes com permisso de passagem por uma interface de rede. Um filtro de pacote como esse pode ser configurado facilmente com a ajuda do SuSEfirewall2 e o mdulo YaST correspondente.

4.1.1 Filtragem de pacotes com iptables


Os componentes netfilter e iptables so responsveis pela filtragem e manipulao de pacotes de rede, assim como pela NAT (Network Address Translation - Converso de Endereos de Rede). Os critrios de filtragem e quaisquer aes associadas a eles so armazenados em cadeias, que precisam estar relacionadas uma aps a outra, por pacotes de rede individuais, medida que forem chegando. As cadeias a serem relacionadas Segurana no Linux 105

so armazenadas em tabelas. O comando iptables permite alterar esses conjuntos regras e tabelas. O kernel do Linux mantm trs tabelas, cada qual para uma categoria de funes especficas do filtro do pacote: filter Essa tabela contm o volume das regras do filtro, pois ele implementa o mecanismo de filtragem de pacotes em sentido restrito, que determina se os pacotes passam por (ACCEPT) ou se so descartados (DROP), por exemplo. nat Essa tabela define quaisquer mudanas feitas nos endereos de origem e de destino dos pacotes. O uso dessas funes permite implementar um mascaramento, que um caso especial da NAT, usado para vincular uma rede privada Internet. mangle As regras determinadas nessa tabela possibilitam manipular valores armazenados em cabealhos IP (como o tipo do servio). Figura 4.1 iptables: Caminhos possveis de um pacote
PREROUTING

incoming packet

mangle nat

INPUT

mangle filter

Routing

FORWARD

Processes in the local system filter mangle

OUTPUT

Routing mangle nat

filter
POSTROUTING

mangle nat

outgoing packet

Estas tabelas contm vrias cadeias predefinidas para relacionar pacotes:

106

Referncia

PREROUTING Esta cadeia aplicada a pacotes recebidos. INPUT Esta cadeia aplicada a pacotes destinados aos processos internos do sistema. FORWARD Esta cadeia aplicada a pacotes roteados somente pelo sistema. OUTPUT Esta cadeia aplicada a pacotes originados do prprio sistema. POSTROUTING Esta cadeia aplicada a todos os pacotes enviados. A Figura 4.1, iptables: Caminhos possveis de um pacote (p 106) ilustra os caminhos pelos quais um pacote de rede pode viajar em um determinado sistema. Para manter a simplicidade, a figura lista tabelas como partes de cadeias. Contudo, na realidade, essas cadeias esto contidas nas prprias tabelas. Em um dos casos mais simples possvel, um pacote recebido destinado ao prprio sistema chega na interface eth0. Primeiro, o pacote reconhecido pela cadeia PREROUTING da tabela mangle e, depois, na cadeia PREROUTING da tabela nat. A etapa a seguir, referente ao roteamento do pacote, determina que o destino real do pacote um processo do prprio sistema. Depois de passar pelas cadeias INPUT das tabelas mangle e filter, o pacote por fim chega ao seu destino, desde que as regras da tabela filter tenham sido realmente relacionadas.

4.1.2 Informaes bsicas sobre mascaramento


Mascaramento a forma especfica do Linux para a NAT. Pode ser usado para conectar uma LAN pequena (em que hosts usam endereos IP da faixa privada consulte a Seo 18.1.2, Mscaras de rede e roteamento (p 335)) Internet (em que endereos IP oficiais so usados). Para que os hosts da LAN sejam capazes de se conectar Internet, seus endereos privados so convertidos em um oficial. Isso feito no roteador, que atua como gateway entre a LAN e a Internet. O princpio subjacente bastante simples: o roteador possui mais de uma interface de rede, normalmente uma placa de rede e uma interface separada conectadas Internet. Enquanto a ltima vincula o roteador Segurana no Linux 107

ao mundo externo, uma ou vrias outras o vinculam-no aos hosts da LAN. Com esses hosts na rede local conectados placa de rede (como o eth0) do roteador, eles podem enviar qualquer pacote no destinado rede local para seus roteadores ou gateways padro. IMPORTANTE: Usando a mscara de rede correta Ao configurar a rede, verifique se o endereo de broadcast e a mscara de rede so os mesmos para todos os hosts locais. Sem essa verificao, os pacotes podero no ser roteados corretamente. Conforme mencionado, sempre que um dos hosts da LAN enviar um pacote destinado a um endereo da Internet, ele ir para o roteador padro. Entretanto, o roteador precisar estar configurado antes de encaminhar esse pacote. Por razes de segurana, o SUSE Linux no habilita essa funo em sua instalao padro. Para habilit-la, configure a varivel IP_FORWARD no arquivo /etc/sysconfig/sysctl para IP_FORWARD=yes. O host de destino da conexo poder ver o roteador, mas no saber sobre o host da rede interna, do qual os pacotes so provenientes. Essa a razo de a tcnica ser chamada de mascaramento. Devido converso do endereo, o roteador o primeiro destino de qualquer pacote de resposta. O roteador precisa identificar esses pacotes recebidos e converter seus endereos de destino, para que os pacotes possam ser encaminhados ao host correto na rede local. Com o roteamento do trfego de entrada, dependendo da tabela de mascaramento, no h como abrir uma conexo para um host interno pela parte externa. Para uma conexo como essa, no haveria entrada na tabela. Alm disso, qualquer conexo j estabelecida possui uma entrada de status que lhe foi designada na tabela; portanto, a entrada no pode ser usada por outra conexo. Como conseqncia de tudo isso, talvez voc tenha alguns problemas com um nmero de protocolos de aplicativos, como ICQ, cucme, IRC (DCC, CTCP) e FTP (no modo PORTA). Netscape, o programa padro de FTP, e muitos outros usam o modo PASV. Esse modo passivo bem menos problemtico, contanto que o mascaramento e a filtragem de pacotes estejam envolvidos.

108

Referncia

4.1.3 Informaes bsicas sobre firewall


Firewall , provavelmente, o termo mais amplamente usado para descrever um mecanismo que fornece e gerencia um link entre redes e, ao mesmo tempo, controla o fluxo de dados entre eles. Falando estritamente, o mecanismo descrito nesta seo chamado de filtro de pacote. Um filtro de pacote regula o fluxo de dados de acordo com certos critrios, como protocolos, portas e endereos IP. Isso permite bloquear pacotes que, de acordo com seus respectivos endereos, no deveriam entrar em sua rede. Para permitir acesso pblico ao seu servidor Web, por exemplo, abra explicitamente a porta correspondente. Entretanto, um filtro de pacote no explora o contedo de pacotes com endereos legtimos, como aqueles direcionados para o servidor Web. Por exemplo, se pacotes recebidos tivessem a finalidade de comprometer um programa CGI no servidor Web, o filtro de pacote os deixaria entrar mesmo assim. Um mecanismo mais eficiente, porm mais complexo, a combinao de vrios tipos de sistemas, como um filtro de pacote interagindo com um proxy ou gateway de aplicativo. Nesse caso, o filtro de pacote rejeita qualquer pacote destinado a portas desabilitadas. Somente pacotes direcionados ao gateway do aplicativo so aceitos. Esse gateway ou proxy finge ser o cliente real do servidor. De certo modo, tal proxy poderia ser considerado um host de mascaramento no nvel de protocolo usado pelo aplicativo. Um exemplo desse proxy o Squid, um servidor de proxy HTTP. Para usar o Squid, o browser precisa estar configurado para se comunicar atravs do proxy. Quaisquer pginas HTTP solicitadas so atendidas pelo cache do proxy e as no encontradas no cache so obtidas na Internet pelo proxy. Como exemplo adicional, o SUSE proxy-suite (proxy-suite) oferece um proxy para o protocolo FTP. A seo a seguir enfoca o filtro de pacote que vem com o SUSE Linux. Para obter mais informaes sobre firewall e filtragem de pacotes, leia o HOWTO do Firewall, includo no pacote howto. Se esse pacote estiver instalado, leia o HOWTO com o less /usr/share/doc/howto/en/txt/Firewall-HOWTO.gz.

4.1.4 SuSEfirewall2
O SuSEfirewall2 um script que l as variveis configuradas em /etc/sysconfig/ SuSEfirewall2 para gerar um conjunto de regras iptables. Ele define trs zonas de segurana, apesar de somente a primeira e a segunda serem consideradas na configurao de amostra a seguir:

Segurana no Linux

109

Zona externa Considerando que no h como controlar o que ocorre na rede externa, os hosts precisam ser protegidos contra ela. Na maioria dos casos, a rede externa a Internet, mas poderia ser outra rede sem segurana, como uma WLAN. Zona interna Ela se refere rede privada, normalmente, a LAN. Se os hosts dessa rede usam endereos IP do intervalo privado (consulte a Seo 18.1.2, Mscaras de rede e roteamento (p 335)), habilite a NAT, para que os hosts da rede interna possam acessar a externa. DMZ (Demilitarized Zone - Zona Desmilitarizada) Apesar de os hosts localizados nessa zona poderem ser localizados tanto da rede externa quanto da interna, eles no conseguem acessar sozinhos a rede interna. Essa configurao pode ser usada para incluir uma linha adicional de defesa na frente da rede interna, pois os sistemas DMZ ficam isolados da rede interna. Qualquer tipo de trfego de rede no explicitamente permitido pelo conjunto de regras de filtragem suprimido por iptables. Portanto, cada uma das interfaces com trfego recebido precisa ser posicionada em uma das trs zonas. Para cada uma das zonas, defina os servios ou protocolos permitidos. O conjunto de regras aplicado somente em pacotes originados de hosts remotos. Pacotes gerados localmente no so capturados pelo firewall. A configurao pode ser executada com o YaST (consulte Configurando com o YaST (p 110)). Tambm pode ser feita manualmente no arquivo /etc/sysconfig/ SuSEfirewall2, que contm vrios comentrios. Alm disso, vrios cenrios de exemplo esto disponveis em /usr/share/doc/packages/SuSEfirewall2/ EXAMPLES.

Configurando com o YaST


IMPORTANTE: Configurao automtica de firewall Depois da instalao, o YaST inicia um firewall automaticamente em todas as interfaces configuradas. Se um servidor for configurado e ativado no sistema, o YaST poder modificar a configurao de firewall gerada automaticamente com as opes Abrir Portas da Interface Selecionada no Firewall ou Abrir Portas no Firewall nos mdulos de configurao do servidor. Algumas caixas de dilogo

110

Referncia

do mdulo do servidor incluem o boto Detalhes do Firewall para ativar servios e portas adicionais. O mdulo de configurao de firewall do YaST pode ser usado para ativar, desativar ou reconfigurar o firewall. As caixas de dilogo do YaST para a configurao grfica podem ser acessadas no Centro de Controle do YaST. Selecione Segurana e Usurios Firewall. A configurao dividida em sete sees que podem ser acessadas diretamente da estrutura em rvore no lado esquerdo. Inicializao Configure o comportamento de inicializao nesta caixa de dilogo. Em uma instalao padro, o SUSEfirewall2 iniciado automaticamente. Voc tambm pode iniciar e parar o firewall aqui. Para implementar suas novas configuraes em um firewall em execuo, use Salvar Configuraes e Reiniciar Firewall Agora. Figura 4.2 A configurao de firewall do YaST

Interfaces Todas as interfaces de rede conhecidas esto listadas aqui. Para remover uma interface de uma zona, selecione-a, pressione Modificar e escolha Nenhuma Zona Designada. Para adicionar uma interface a uma zona, selecione-a, pressione Modificar e escolha qualquer das zonas disponveis. Voc tambm pode criar uma interface especial com suas prprias configuraes usando Personalizar.

Segurana no Linux

111

Servios permitidos Essa opo necessria para oferecer servios do seu sistema para uma zona da qual ele protegido. Por padro, o sistema protegido somente de zonas externas. Permita, de forma explcita, os servios que devem estar disponveis para hosts externos. Ative os servios aps selecionar a zona desejada em Servios permitidos para zona selecionada. Mascaramento O mascaramento oculta sua rede interna das redes externas, como a Internet, e habilita hosts na rede interna para acessarem a rede externa de forma transparente. As solicitaes da rede externa para a interna so bloqueadas e as solicitaes da rede interna parecem ser emitidas pelo servidor de mascaramento quando vistas externamente. Se servios especiais de uma mquina interna precisarem estar disponveis para a rede externa, adicione regras especiais de redirecionamento ao servio. Broadcast Nessa caixa de dilogo, configure as portas UDP que permitem broadcasts. Adicione os servios ou nmeros de porta solicitados zona apropriada, separados por espaos. Consulte tambm o arquivo /etc/services. O registro de broadcasts no aceitos pode ser habilitado aqui. Isso pode ser problemtico, pois os hosts do Windows usam broadcasts para sua identificao e, assim, geram muitos pacotes que no so aceitos. Suporte a IPsec Configure nesta caixa de dilogo se o servio IPsec deve estar disponvel para a rede externa. Configure quais pacotes so confiveis em Detalhes. Nvel de registro H duas regras para o registro: pacotes aceitos e no aceitos. Pacotes no aceitos so DESCARTADOS ou REJEITADOS. Selecione Registrar Tudo, Registrar Apenas Crticos ou No Registrar Nenhum para as duas opes. Ao concluir a configurao do firewall, saia dessa caixa de dilogo com Prximo. Ser aberto um resumo orientado por zona da configurao do firewall. Nele, verifique todas as configuraes. Todos os servios, portas e protocolos permitidos esto listados nesse resumo. Para modificar a configurao, use Voltar. Pressione Aceitar para gravar as configuraes.

112

Referncia

Configurando manualmente
Os pargrafos a seguir fornecem instrues passo a passo para executar uma configurao bem-sucedida. Cada item de configurao marcado se relevante para firewall ou para mascaramento. Os aspectos relacionados DMZ, conforme mencionado no arquivo de configurao, no sero abordados aqui. Eles so aplicveis somente a uma infraestrutura de rede mais complexa, encontrada em organizaes maiores (redes corporativas), que exigem uma configurao extensa e conhecimento profundo sobre o assunto. Primeiro, use o mdulo do YaST Servios do Sistema (Nvel de Execuo) para habilitar o SuSEfirewall2 no seu nvel de execuo (provavelmente, 3 ou 5). Ele configura os symlinks para o SuSEfirewall2_* scripts nos diretrios /etc/init.d/rc?.d/. FW_DEV_EXT (firewall, mascaramento) O dispositivo vinculado Internet. Para obter uma conexo via modem, digite ppp0. Para obter um link ISDN, use o ippp0. As conexes DSL usam o dsl0. Especifique auto para usar a interface que corresponde rota padro. FW_DEV_INT (firewall, mascaramento) O dispositivo vinculado rede privada, interna (como a eth0). Deixe esse espao vazio se no houver rede interna e o firewall proteger somente o host em que estiver sendo executado. FW_ROUTE (firewall, mascaramento) Se voc precisar da funo mascaramento, configure como yes. Os hosts internos no ficaro visveis de fora, pois seus endereos de rede privada (por exemplo, 192.168.x.x) sero ignorados pelos roteadores da Internet. Para um firewall sem mascaramento, configure como yes somente se desejar permitir acesso rede interna. Os hosts internos precisam usar IPs registrados oficialmente nesse caso. No entanto, normalmente voc no deveria permitir o acesso externo sua rede interna. FW_MASQUERADE (mascaramento) Configure como yes, se voc precisar da funo mascaramento. Com isso, voc ter uma conexo praticamente direta com a Internet para os hosts internos. mais seguro haver um servidor proxy entre os hosts da rede interna e a Internet. O mascaramento no necessrio para servios fornecidos por um servidor proxy.

Segurana no Linux

113

FW_MASQ_NETS (mascaramento) Especifique as redes ou os hosts que devem ser mascarados, deixando um espao entre as entradas individuais. Por exemplo:
FW_MASQ_NETS="192.168.0.0/24 192.168.10.1"

FW_PROTECT_FROM_INT (firewall) Configure como yes e o host do firewall ficar protegido contra ataques que surgirem em sua rede interna. Os servios s estaro disponveis para a rede interna se estiverem explicitamente habilitados. Consulte tambm os servios FW_SERVICES_INT_TCP e FW_SERVICES_INT_UDP. FW_SERVICES_EXT_TCP (firewall) Digite as portas TCP que devem ficar disponveis. Deixe esse espao vazio para uma estao de trabalho residencial normal, que no deve oferecer servios. FW_SERVICES_EXT_UDP (firewall) Deixe esse espao vazio, a menos que voc execute um servio UDP e deseje disponibiliz-lo externamente. Os servios que usam o UDP incluem os servidores DNS, IPSec, TFTP, DHCP e outros. Nesse caso, digite as portas UDP a serem usadas. FW_SERVICES_INT_TCP (firewall) Com essa varivel, defina os servios disponveis para a rede interna. A notao a mesma do FW_SERVICES_EXT_TCP, mas as configuraes so aplicadas rede interna. A varivel s precisar ser configurada se o FW_PROTECT_FROM_INT estiver configurado como yes. FW_SERVICES_INT_UDP (firewall) Consulte o FW_SERVICES_INT_TCP. Depois de configurar o firewall, teste sua configurao. Os conjuntos de regras de firewall so criados digitando SuSEfirewall2 start como root. Depois, use telnet, por exemplo, de um host externo para ver se a conexo foi realmente negada. Depois disso, reveja /var/log/messages, em que dever aparecer algo semelhante a:
Mar 15 13:21:38 linux kernel: SFW2-INext-DROP-DEFLT IN=eth0 OUT= MAC=00:80:c8:94:c3:e7:00:a0:c9:4d:27:56:08:00 SRC=192.168.10.0 DST=192.168.10.1 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=15330 DF PROTO=TCP SPT=48091 DPT=23 WINDOW=5840 RES=0x00 SYN URGP=0 OPT (020405B40402080A061AFEBC0000000001030300)

114

Referncia

Outros pacotes que testam a configurao de um firewall so o nmap ou o nessus. A documentao do nmap pode ser encontrada em /usr/share/doc/packages/ nmap e a do nessus no diretrio /usr/share/doc/packages/nessus-core depois que o respectivo pacote estiver instalado.

4.1.5 Mais informaes


As informaes mais recentes e outras documentaes sobre o pacote SuSEfirewall2 podem ser encontradas em /usr/share/doc/packages/SuSEfirewall2. A home page do projeto iptables e netfilter, http://www.netfilter.org, oferece uma grande coleo de documentos em vrios idiomas.

4.2 SSH: operaes seguras de rede


Com cada vez mais computadores instalados em ambientes de rede, sempre torna-se necessrio acessar hosts de um local remoto. Isso normalmente significa que um usurio envia strings de login e senha para fins de autenticao. Como essas strings so transmitidas como texto simples, elas podem ser interceptadas e usadas de forma incorreta para obter acesso conta do usurio sem que o usurio autorizado sequer saiba disso. Alm da possibilidade de todos os arquivos do usurio serem abertos por um invasor, a conta ilegal pode ser usada para obter acesso de administrador ou root, ou para penetrar em outros sistemas. Anteriormente, as conexes remotas eram estabelecidas com telnet, que no oferece proteo contra espionagem na forma de criptografia nem de outros mecanismos de segurana. H outros canais de comunicao sem proteo, como o tradicional protocolo FTP e alguns programas de cpia remotos. A sute do SSH fornece a proteo necessria, criptografando as strings de autenticao (normalmente um nome de login e uma senha) e todos os outros dados que sofrem intercmbio nos hosts. Com o SSH, o fluxo de dados ainda pode ser registrado por terceiros, mas o contedo criptografado e no pode ser revertido em texto simples, a menos que a chave de criptografia seja conhecida. Dessa forma, o SSF permite a comunicao segura em redes desprotegidas, como a Internet. O padro de SSH que vem com o SUSE Linux o OpenSSH.

Segurana no Linux

115

4.2.1 Pacote OpenSSH


O SUSE Linux instala o pacote OpenSSH por padro. Os programas ssh, scp e sftp so alternativas disponveis ao telnet, rlogin, rsh, rcp e ftp. Na configurao padro, o acesso a um sistema SUSE Linux s possvel com os utilitrios do OpenSSH e somente se o firewall permitir acesso.

4.2.2 Programa ssh


Usando o programa ssh, possvel fazer login em sistemas remotos e trabalhar de forma interativa. Ele substitui o telnet e o rlogin. O programa slogin apenas um link simblico para o ssh. Por exemplo, efetue login no host sun com o comando ssh sun. O host solicita a senha para o sun. Depois da autenticao bem-sucedida, voc pode trabalhar na linha de comando remota ou usar aplicativos interativos, como o YaST. Se o nome de usurio local for diferente do nome de usurio remoto, voc poder efetuar login usando um nome de login diferente, com ssh -l augustine sun ou ssh augustine@sun. Alm disso, o ssh oferece a possibilidade de executar comandos em sistemas remotos, como conhecido no rsh. No exemplo a seguir, execute o comando uptime no host sun e crie um diretrio com o nome tmp. A sada do programa ser exibida no terminal local do host earth.
ssh otherplanet "uptime; mkdir tmp" tux@otherplanet's password: 1:21pm up 2:17, 9 users, load average: 0.15, 0.04, 0.02

As aspas so necessrias aqui para enviar as duas instrues com um comando. Somente com esse procedimento o segundo comando executado no sun.

4.2.3 scp (Secure Copy - Cpia Segura)


O scp copia arquivos em uma mquina remota. Ele um substituto seguro e criptografado para o rcp. Por exemplo, scp MyLetter.tex sun: copia o arquivo MyLetter .tex do host earth para o host sun. Se o nome de usurio do earth for diferente do nome de usurio do sun, especifique o do sun usando o formato username@host. No h opo -l para esse comando.

116

Referncia

Depois que a senha correta digitada, o scp inicia a transferncia de dados e mostra uma linha crescente de asteriscos para simular uma barra de progresso. Alm disso, o programa exibe o tempo estimado de chegada direita da barra de progresso. Suprima toda a sada fornecendo a opo -q. O scp tambm fornece um recurso de cpia recursiva para diretrios inteiros. O comando scp -r src/ sun:backup/ copia todo o contedo do diretrio src, incluindo todos os subdiretrios, no diretrio backup do host sun. Se esse subdiretrio ainda no existir, ele ser criado automaticamente. A opo -p avisa ao scp para no mudar a marcao de horrio dos arquivos. A opo -C compacta a transferncia de dados. Assim o volume de dados a ser transferido minimizado, embora seja criada uma carga mais pesada para o processador.

4.2.4 sftp (Secure File Transfer Transferncia Segura de Arquivos)


O programa sftp pode ser usado como alternativa ao scp para a transferncia segura de arquivos. Durante uma sesso do sftp, voc pode usar muitos comandos conhecidos do ftp. O programa sftp pode ser uma alternativa melhor ao scp, especialmente na transferncia de dados em que os nomes de arquivos so desconhecidos.

4.2.5 Daemon SSH (sshd) - executado no servidor


Para trabalhar com os programas clientes do SSH ssh e scp, o servidor daemon SSH deve estar em execuo em segundo plano, escutando conexes na porta TCP/IP 22. O daemon garante trs pares de chaves quando iniciado pela primeira vez. Cada par de chaves consiste em uma chave privada e uma pblica. Portanto, esse procedimento conhecido como baseado em chave pblica. Para garantir a segurana da comunicao via SSH, o acesso a arquivos de chave privada deve ser restrito ao administrador do sistema. As permisses de arquivos so definidas adequadamente pela instalao padro. As chaves privadas s so exigidas localmente pelo daemon SSH e no devem ser fornecidas a ningum mais. Os componentes da chave pblica (reconhecidos pela extenso de nome .pub) so enviados para o cliente que solicita a conexo. Todos os usurios podem l-los.

Segurana no Linux

117

O cliente SSH inicia uma conexo. O daemon SSH e o cliente SSH que solicitou a conexo fazem um intercmbio de dados de identificao para comparar as verses de software e o protocolo, e para evitar conexes pela porta errada. Como um processo filho do daemon SSH original responde solicitao, vrias conexes de SSH podem ser feitas ao mesmo tempo. Para a comunicao entre o servidor SSH e o cliente SSH, o OpenSSH suporta as verses 1 e 2 do protocolo SSH. Os sistemas SUSE Linux recentes tm a verso 2 como padro. Para continuar usando a verso 1 depois de uma atualizao, siga as instrues de /usr/share/doc/packages/openssh/README.SuSE. Este documento tambm descreve como um ambiente SSH 1 pode ser transformado em um ambiente de trabalho SSH 2 em apenas algumas etapas. Ao usar a verso 1 do SSH, o servidor envia sua chave pblica de host e uma chave de servidor, que gerada novamente pelo daemon SSH a cada hora. Ambas permitem que o cliente SSH criptografe uma chave de sesso escolhida livremente, que enviada ao servidor SSH. O cliente SSH tambm comunica ao servidor qual mtodo de criptografia (cifra) deve ser usado. A verso 2 do protocolo de SSH no requer uma chave de servidor. Os dois lados usam um algoritmo de acordo com Diffie-Helman para fazer o intercmbio de suas chaves. O host privado e as chaves do servidor so absolutamente necessrios para descriptografar a chave da sesso e no podem ser derivados de partes pblicas. Somente o daemon SSH contatado pode descriptografar a chave da sesso usando suas chaves privadas (consulte man /usr/share/doc/packages/openssh/RFC.nroff). Essa fase inicial de conexo pode ser observada de perto, se voc ativar a opo de depurao verbosa -v do cliente SSH. A verso 2 do protocolo SSH usada por padro. Substitua-a pela verso 1 do protocolo com o switch -1. O cliente armazena todas as chaves pblicas do host no arquivo ~/ .ssh/known_hosts depois de seu primeiro contato com um host remoto. Esse procedimento evita ataques man-in-the-middle (MITM) - tentativas de servidores SSH estrangeiros usarem nomes e endereos IP falsos. Esses ataques so detectados por uma chave de host no includa em ~/.ssh/known_hosts ou pela incapacidade do servidor de descriptografar a chave da sesso na ausncia de um correlativo privado apropriado. recomendvel fazer backup das chaves pblicas e privadas armazenadas em /etc/ ssh/ em um local externo seguro. Desta forma, as modificaes das chaves podem

118

Referncia

ser detectadas e as chaves antigas podem ser usadas novamente depois de uma reinstalao. Esse procedimento poupa os usurios de avisos de desproteo. Verificouse que, apesar do aviso - na realidade trata-se do servidor SSH correto -, a entrada para o sistema existente deve ser removida de ~/.ssh/known_hosts.

4.2.6 Mecanismos de autenticao do SSH


Agora hora da verdadeira autenticao, que, em sua forma mais simples, consiste na digitao de uma senha, conforme mencionado anteriormente. A meta do SSH apresentar um software seguro que tambm seja fcil de usar. Como ele deve substituir o rsh e o rlogin, o SSH tambm deve ser capaz de fornecer um mtodo de autenticao apropriado para uso dirio. O SSH consegue isso por meio de outro par de chaves, gerado pelo usurio. O pacote do SSH fornece um programa de auxlio para isso: sshkeygen. Depois da digitao de ssh-keygen -t rsa ou ssh-keygen -t dsa, o par de chaves gerado e voc dever informar o nome do arquivo base em que as chaves sero armazenadas. Confirme a configurao padro e responda solicitao de uma frase secreta. Mesmo se o software sugerir que a frase secreta fique em branco, recomendvel inserir um texto de 10 a 30 caracteres para o procedimento descrito aqui. No use palavras e frases curtas e simples. Confirme a frase secreta repetindo-a. Depois, voc ver o local de armazenamento das chaves pblica e privada, neste exemplo os arquivos id_rsa e id_rsa.pub. Use ssh-keygen -p -t rsa ou ssh-keygen -p -t dsa para mudar sua frase secreta antiga. Copie o componente da chave pblica (id_rsa.pub, no exemplo) na mquina remota e salve-o como ~/.ssh/authorized_keys. Voc ser solicitado a autenticar-se com sua frase secreta na prxima vez em que estabelecer uma conexo. Se isso no ocorrer, verifique o local e o contedo desses arquivos. A longo prazo, esse procedimento ser mais importuno do que fornecer sempre a senha. Portanto, o pacote do SSH fornece outra ferramenta, o ssh-agent, que mantm as chaves privadas durante uma sesso X. Toda a sesso X iniciada como um processo-filho do ssh-agent. A forma mais fcil de fazer isso definir a varivel usessh no comeo do arquivo .xsession como yes e efetuar login por meio de um gerenciador de vdeo, como o KDM ou o XDM. Como alternativa, digite ssh-agent startx. Agora voc pode usar o ssh ou o scp como de costume. Se tiver distribudo sua chave pblica como descrito acima, no ser mais solicitado a informar sua senha. Fique

Segurana no Linux

119

atento para concluir a sesso X ou bloque-la com um aplicativo de proteo de senha, como o xlock. Todas as mudanas relevantes resultantes do lanamento da verso 2 do protocolo SSH tambm esto documentadas no arquivo /usr/share/doc/packages/openssh/ README.SuSE.

4.2.7 X, autenticao e mecanismos de encaminhamento


Alm das melhorias relativas a segurana descritas anteriormente, o SSH tambm simplifica o uso dos aplicativos X remotos. Se voc executar ssh com a opo -X, a varivel DISPLAY ser automaticamente definida na mquina remota, e todas as sadas X sero exportadas para a mquina remota pela conexo SSH existente. Ao mesmo tempo, os aplicativos X iniciados remotamente e visualizados localmente com esse mtodo no podero ser interceptados por pessoas sem autorizao. Com a adio da opo -A, o mecanismo de autenticao ssh-agent passa para a prxima mquina. Dessa forma, voc poder trabalhar em mquinas diferentes sem precisar digitar a senha, mas somente se tiver distribudo sua chave pblica nos hosts de destino e a gravado adequadamente neles. Os dois mecanismos so desativados nas configuraes padro, mas podem ser ativados de forma permanente a qualquer momento no arquivo de configurao de todo o sistema /etc/ssh/sshd_config ou pelo ~/.ssh/config do usurio. O ssh tambm pode ser usado para redirecionar conexes TCP/IP. Nos exemplos abaixo, o SSH foi configurado para redirecionar as portas SMTP e POP3, respectivamente.
ssh -L 25:sun:25 earth

Com esse comando, qualquer conexo direcionada para a porta 25 (SMTP) do earth redirecionada para a porta SMTP do sun por meio de um canal criptografado. Esse recurso especialmente til para os que usam servidores SMTP sem os recursos SMTPAUTH ou POP-before-SMTP. De qualquer local arbitrrio conectado a uma rede, possvel transferir e-mails para o servidor de correio eletrnico domstico para entrega. Da mesma forma, todas as solicitaes de POP3 (porta 110) do earth podem ser encaminhadas para a porta POP3 do sun com esse comando.
ssh -L 110:sun:110 earth

120

Referncia

Os dois comandos devem ser executados como root, pois a conexo feita para portas locais privilegiadas. Os e-mails so enviados e recuperados por usurios normais em uma conexo SSH existente. Os hosts SMTP e POP3 devem ser definidos como localhost para que isso funcione. Outras informaes podem ser encontradas nas pginas de manual referentes a cada programa descrito acima, bem como nos arquivos em /usr/share/doc/packages/openssh.

4.3 Criptografando parties e arquivos


Todo usurio tem alguns dados confidenciais que no devem ser acessados por terceiros. Quanto mais abrangentes forem sua conexo e mobilidade, mais cuidado voc deve ter para tratar seus dados. A criptografia de arquivos ou de parties inteiras ser recomendvel se outras pessoas tiverem acesso por uma conexo de rede ou acesso fsico direto. ATENO: A mdia criptografada uma proteo limitada Lembre-se de que, com os mtodos descritos nesta seo, voc no pode impedir que seu sistema em execuo seja comprometido. Aps a montagem da mdia criptografada, todas as pessoas com permisses adequadas tero acesso a ela. A mdia criptografada ser til se voc perder seu computador ou se ele for roubado e pessoas no autorizadas quiserem ler seus dados confidenciais. A lista a seguir apresenta diversos cenrios de uso imaginveis. Laptops Se voc levar seu laptop em uma viagem, uma boa idia criptografar as parties do disco rgido que contenham dados confidenciais. Se voc perder o laptop ou se ele for roubado, seus dados ficaro fora de alcance se residirem em um sistema de arquivos criptografado ou em um nico arquivo criptografado. Mdia removvel Unidades flash USB ou discos rgidos externos so to suscetveis a roubo quanto laptops. Um sistema de arquivos criptografado fornece proteo contra o acesso de terceiros.

Segurana no Linux

121

Estaes de trabalho Em empresas nas quais quase todas as pessoas tm acesso ao seu computador, pode ser til criptografar a partio ou arquivos individuais.

4.3.1 Configurando um sistema de arquivos criptografado com o YaST


O YaST permite a criptografia de arquivos ou parties durante a instalao, bem como em um sistema j instalado. possvel criar um arquivo criptografado a qualquer momento, pois ele se ajusta perfeitamente ao layout de uma partio existente. Para criptografar uma partio inteira, separe uma no layout de parties. A proposta padro de particionamento, como sugerida pelo YaST, no inclui por padro uma partio criptografada. Adicione-a manualmente na caixa de dilogo de particionamento.

Criando uma partio criptografada durante a instalao


ATENO: Entrada de senha Observe os avisos sobre segurana de senhas ao definir a senha de parties criptografadas e memorize-a tambm. Sem a senha, os dados criptografados no podem ser acessados nem restaurados. A caixa de dilogo do especialista do YaST em particionamento, descrita na Seo Particionador (Captulo 2, Configurao do sistema com YaST, Inicializao), oferece as opes necessrias para criar uma partio criptografada. Clique em Criar como se estivesse criando uma partio normal. Na caixa de dilogo exibida, digite os parmetros de particionamento para a nova partio, como a formatao desejada e o ponto de montagem. Para concluir o processo, clique em Sistema de Arquivo Criptografado. Na caixa de dilogo seguinte, digite a senha duas vezes. A nova partio criptografada criada depois que voc clica em OK para fechar a caixa de dilogo de particionamento. Durante a inicializao, o sistema operacional solicita a senha antes da montagem da partio. Se voc no quiser montar a partio criptografada durante a inicializao, clique em Enter quando a senha for solicitada. Em seguida, no digite a senha novamente. Nesse caso, o sistema de arquivos criptografado no ser montado, e o sistema operacional

122

Referncia

continuar a inicializao bloqueando o acesso aos seus dados. Uma vez montada, a partio estar disponvel a todos os usurios. Se o sistema de arquivos criptografado somente for montado quando necessrio, habilite a opo No Montar na Inicializao do Sistema na caixa de dilogo Opes de fstab. A respectiva partio no ser montada durante a inicializao do sistema. Para tornla disponvel no futuro, monte-a manualmente com mount nome_da_partio ponto_de_montagem. Digite a senha quando solicitada. Aps terminar o trabalho na partio, desmonte-a com umount nome_da_partio para proteg-la contra o acesso de outros usurios.

Criando uma partio criptografada em um sistema em execuo


ATENO: Ativando a criptografia em um sistema em execuo Tambm possvel criar parties criptografadas em um sistema em execuo como ocorre na instalao. Contudo, a criptografia de uma partio existente destri todos os respectivos dados. Em um sistema em execuo, selecione Sistema Particionamento no centro de controle do YaST. Clique em Sim para continuar. Em vez de selecionar Criar como mencionado acima, clique em Editar. O restante do procedimento igual.

Instalando arquivos criptografados


Em vez de usar uma partio, possvel criar sistemas de arquivos criptografados dentro de arquivos individuais para armazenar dados confidenciais. Esses sistemas so criados na mesma caixa de dilogo do YaST. Selecione Arquivo Crypt e digite o caminho do arquivo a ser criado, bem como seu tamanho pretendido. Aceite as configuraes de formatao propostas e o tipo do sistema de arquivos. Em seguida, especifique o ponto de montagem e decida se o sistema de arquivos criptografado deve ser montado quando o sistema for inicializado. A vantagem dos arquivos criptografados que eles podem ser adicionados sem o reparticionamento do disco rgido. Eles so montados com a ajuda de um dispositivo de loop e se comportam como parties normais.

Segurana no Linux

123

Usando o vi para criptografar arquivos


A desvantagem de usar parties criptografadas que, enquanto elas so montadas, pelo menos root pode acessar os dados. Para evitar isso, o vi pode ser usado no modo criptografado. Use vi -x nomedoarquivo para editar um novo arquivo. O vi solicita que voc defina uma senha e, em seguida, criptografa o contedo do arquivo. Sempre que voc acessar esse arquivo, o vi solicitar a senha correta. Para obter mais segurana, voc pode incluir o arquivo de texto criptografado em uma partio criptografada. Isso recomendvel porque a criptografia usada no vi no muito eficiente.

4.3.2 Criptografando o contedo da mdia removvel


O YaST trata a mdia removvel, ou seja, discos rgidos externos ou unidades flash USB, como qualquer outro disco rgido. possvel criptografar arquivos ou parties nesse tipo de mdia, como descrito acima. Contudo, no faa a montagem dessas mdias durante a inicializao do sistema, pois normalmente elas s ficam conectadas enquanto o sistema est em execuo.

4.4 Delimitando privilgios com o AppArmor


Muitas vulnerabilidades de segurana resultam de erros em programas confiveis. Um programa confivel executado com privilgios que algum invasor gostaria de ter e o programa deixa de manter aquela confiana se houver um erro no programa permitindo que o ataque adquira esses privilgios. O Novell AppArmor uma soluo de segurana de aplicativos projetada especificamente para fornecer menos delimitao de privilgios para programas suspeitos. O AppArmor permite que o administrador especifique o domnio de atividades que o programa pode realizar, desenvolvendo um perfil de segurana para aquele

124

Referncia

aplicativo (uma lista de arquivos que o programa pode acessar e as operaes que o programa pode realizar). A proteo avanada e efetiva de um sistema de computador requer a minimizao do nmero de programas que media privilgios, dessa forma protegendo os programas tanto quanto possvel. Com o Novell AppArmor, voc s precisa criar perfil para os programas que so expostos a ataques em seu ambiente, o que reduz drasticamente o trabalho necessrio para proteger melhor o seu computador. Os perfis do AppArmor obrigam as polticas a verificar que os programas cumpram sua funo e nada mais. Os administradores s precisam cuidar dos aplicativos que so vulnerveis a ataques e gerar perfis para eles. A proteo avanada de sistema equivale, pois, a construir e manter o conjunto de perfis do AppArmor e a monitorar quaisquer violaes de poltica ou excees registradas pelo gerador de relatrios do AppArmor. A construo de perfis do AppArmor para delimitar um aplicativo muito fcil e intuitiva. O AppArmor fornece vrias ferramentas que auxiliam na criao de perfis. O AppArmor no requer que voc faa nenhuma programao nem manipulao de scripts. A nica tarefa exigida do administrador determinar uma poltica de acesso mais rgida e executar permisses para cada aplicativo que necessite de uma proteo avanada. Atualizaes ou modificaes aos perfis do aplicativo s so necessrias se a configurao do software ou a faixa de atividades desejada mudar. O AppArmor oferece ferramentas intuitivas para manipular atualizaes ou modificaes de perfil. Os usurios nem percebero o AppArmor. Ele executado por trs dos bastidores e no requer nenhuma interao com o usurio. O desempenho no ser afetado de maneira a ser percebida pelo AppArmor. Se alguma atividade do aplicativo no for protegida por um perfil do AppArmor ou se alguma atividade do aplicativo for impedida pelo AppArmor, o administrador deve ajustar o perfil deste aplicativo para cobrir este tipo de comportamento. Este guia resume as tarefas bsicas que devem ser realizadas com o AppArmor para implementar uma proteo avanada e efetiva a um sistema. Para obter mais informaes, consulte o Guia de Administrao do Novell AppArmor 2.0.

Segurana no Linux

125

4.4.1 Instalando o Novell AppArmor


Os usurios que instalam um GNOME ou a seleo de rea de trabalho KDE podem ignorar esta seo, porque o Novell AppArmor instalado, por padro, como parte destas selees. Se no instalar nenhuma destas reas de trabalho nem for para um ambiente inteiramente baseado em texto, faa o seguinte para instalar os pacotes necessrios usando o gerenciador de pacotes do YaST. 1 Efetue login como root e inicie o YaST. 2 No Centro de Controle do YaST selecione Software Gerenciamento de Software. 3 Use a funcionalidade de pesquisa do YaST (palavra-chave AppArmor) para instalar os seguintes pacotes: apparmor-parser libapparmor apparmor-docs yast2-apparmor apparmor-profiles apparmor-utils

4 Selecione todos estes pacotes para instalao e selecione Aceitar. O YaST resolve quaisquer dependncias e instala todos os pacotes para voc. 5 Quando o YaST terminar de atualizar a configurao do sistema, selecione Concluir para sair do gerenciador de pacote.

4.4.2 Habilitando o Novell AppArmor


Quando o Novell AppArmor estiver instalado, habilite-o explicitamente para que ele seja iniciado sempre que o sistema inicializar. Use o mdulo do YaST Servios do Sistema (Nvel de Execuo) para esta tarefa: 1 Efetue login como root e inicie o YaST.

126

Referncia

2 Inicie Sistema Servios do Sistema (Runlevel). 3 Na lista de servios exibidos, selecione apparmor. Consulte a Figura 4.3, Habilitando o Novell AppArmor atravs do YaST (p 127). 4 Clique em Habilitar para habilitar o AppArmor permanentemente. 5 Clique em Concluir para aceitar suas configuraes. Figura 4.3 Habilitando o Novell AppArmor atravs do YaST

Usando a ferramenta Runlevel do YaST, possvel habilitar os servios permanentemente. Estas configuraes sobrevivem reinicializao do seu sistema. Para habilitar o AppArmor temporariamente, pela durao de uma sesso apenas, faa o seguinte: 1 Efetue login como root e inicie o YaST. 2 Inicie o Novell AppArmor Painel de Controle do AppArmor. 3 Defina o Status do AppArmor em AppArmor est habilitado clicando em Configurar Habilitar OK.

Segurana no Linux

127

4 Aplique suas configuraes com Concludo.

4.4.3 Noes bsicas de aplicativos de perfis


Prepare uma distribuio bem-sucedida do Novell AppArmor no seu sistema considerando cuidadosamente os seguintes itens: 1 Determine os aplicativos para os quais criar perfil. Leia mais sobre isto em Escolhendo os aplicativos para os quais criar perfil (p 128). 2 Construa os perfis necessrios como resumido em Construindo e modificando perfis (p 129). Verifique os resultados e ajuste os perfis quando necessrio. 3 Para controlar o que est acontecendo no sistema, execute os relatrios do AppArmor e trabalhe com eventos de segurana. Consulte Configurando notificao de evento e relatrios do Novell AppArmor (p 131). 4 Atualize seus perfis sempre que seu ambiente mudar ou voc precisar reagir a eventos de segurana registrados pela ferramenta de relatrio do AppArmor. Consulte Atualizando seus perfis (p 133).

Escolhendo os aplicativos para os quais criar perfil


necessrio proteger apenas os programas expostos a ataques na sua configurao particular, assim, s use perfis para os aplicativos que voc realmente executa. Use a seguinte lista para determinar os candidatos mais provveis: Agentes de rede Programas (servidores e clientes) tm portas de rede abertas e agentes de rede so programas de servidor que respondem a estas portas de rede. Clientes de usurio (como clientes de correio e browsers da Web) tambm tm portas de rede abertas e mediam privilgios. Aplicativos da Web Scripts Perl CGI, pginas PHP e aplicativos mais complexos da Web podem ser chamados atravs de um browser da Web.

128

Referncia

Tarefas cron Programas que o daemon cron executa periodicamente lem entradas de diversas fontes. Para saber que processos esto sendo executados atualmente com portas de rede abertas e podem precisar de um perfil para delimit-los, execute unconfined como root. Exemplo 4.1 Sada de unconfined
19848 19887 19947 29205 /usr/sbin/cupsd not confined /usr/sbin/sshd not confined /usr/lib/postfix/master not confined /usr/sbin/sshd confined by '/usr/sbin/sshd (enforce)'

Cada um dos processos no exemplo acima rotulado de no delimitado pode precisar de um perfil personalizado para delimit-lo. Os processos rotulados delimitado por j so protegidos pelo AppArmor. DICA: Mais informaes Para obter mais informaes sobre a escolha dos aplicativos corretos para os quais criar perfil, consulte o Captulo Selecionando programas a imunizar (Guia de Administrao do Novell AppArmor 2.0).

Construindo e modificando perfis


O Novell AppArmor no SUSE Linux fornecido com um conjunto de perfis prconfigurado para os aplicativos mais importantes. Alm disso, voc pode usar o AppArmor para criar seus prprios perfis para um conjunto de aplicativos definidos em /etc/apparmor/README.profiles. H duas maneiras de gerenciar perfis. Uma usar o grfico front end fornecido pelos mdulos Novell AppArmor do YaST e a outra usar as ferramentas de linha de comando fornecidas pela prpria sute do AppArmor. Ambos os mtodos funcionam basicamente da mesma maneira. Executar no delimitado como descrito em Escolhendo os aplicativos para os quais criar perfil (p 128) identifica uma lista de aplicativos que podem precisar de um perfil para serem executados de modo seguro. Para cada aplicativo, realize as seguintes etapas para criar um perfil:

Segurana no Linux

129

1 Como root, deixe o AppArmor criar um resumo do perfil do aplicativo, executando genprof programname ou executando YaST Novell AppArmor Assistente para Adicionar Perfil e especificando o caminho completo do aplicativo para o qual criar perfil. Um perfil bsico traado e o AppArmor colocado no modo de aprendizado, o que significa que ele registra qualquer atividade do programa que voc esteja executando mas no o restringe. 2 Execute a gama completa de aes do aplicativo para que o AppArmor obtenha um quadro bastante especfico de suas atividades. 3 Deixe o AppArmor analisar os arquivos de registro gerados na Passo 2 (p 130). Faa-o digitando S em genprof ou clicando em Explorar eventos do AppArmor no registro do sistema no Assistente para Adicionar Perfil e siga as instrues fornecidas no assistente at concluir o perfil. O AppArmor explora os registros feitos durante a execuo do aplicativo e pede para voc configurar os direitos de acesso para cada evento para o qual foi efetuado login. Configure-os para cada arquivo ou use globbing. 4 Uma vez que todas as permisses de acesso estejam configuradas, o seu perfil definido para o modo forado. O perfil aplicado e o AppArmor restringe o aplicativo de acordo com o perfil que acabou de ser criado. Se iniciou genprof para um aplicativo que tinha um perfil existente que estava no modo de reclamao, este perfil permanecer no modo de aprendizado at sair deste ciclo de aprendizado. Para obter mais informaes sobre como mudar o modo de um perfil, consulte a Seo Modo de reclamao ou aprendizado (Captulo 3, Construindo perfis do Novell AppArmor, Guia de Administrao do Novell AppArmor 2.0) e a Seo Modo Forado (Captulo 3, Construindo perfis do Novell AppArmor, Guia de Administrao do Novell AppArmor 2.0).

130

Referncia

Teste as suas configuraes de perfil realizando todas as tarefas com o aplicativo que acabou de delimitar. Normalmente, o programa delimitado tem uma execuo uniforme e voc no percebe as atividades do AppArmor. No entanto, se observar um certo comportamento inadequado no seu aplicativo, verifique os registros do sistema e veja se o AppArmor est delimitando demais o seu aplicativo. Localize os registros adequados em /var/log/messages ou execute dmesg. Qualquer sada semelhante ao exemplo a seguir sugere que o AppArmor est delimitando demais o seu aplicativo:
AppArmor: REJECTING w access to /var/run/nscd/socket (traceroute(2050) profile /usr/sbin/traceroute active /usr/sbin/traceroute)

Para ajustar o perfil, execute o Assistente para Adicionar Perfil novamente como descrito acima e deixe que ele analise as mensagens de registro relativas ao aplicativo especfico. Determine os direitos ou restries de acesso quando solicitado pelo YaST. DICA: Mais informaes Para obter mais informaes sobre construo e modificao de perfil, consulte o Captulo Construindo perfis do Novell AppArmor (Guia de Administrao do Novell AppArmor 2.0).

Configurando notificao de evento e relatrios do Novell AppArmor


Configure a notificao de evento no Novell AppArmor para que voc possa analisar os eventos de segurana. A notificao de evento um recurso do Novell AppArmor que informa um destinatrio especfico de e-mail sobre a ocorrncia de uma atividade sistmica no Novell AppArmor no nvel de gravidade escolhido. Esse recurso est disponvel atualmente na interface do YaST. Para configurar a notificao de evento no YaST, proceda da seguinte maneira: 1 Verifique se o servidor de correio est sendo executado no seu sistema para fornecer as notificaes de evento. 2 Efetue login como root e inicie o YaST. Em seguida, selecione Novell AppArmor Painel de Controle do AppArmor.

Segurana no Linux

131

3 Na seo Habilitar Notificao de Evento de Segurana, selecione Configurar. 4 Para cada tipo registrado (Conciso, Resumo e Verboso) configure uma freqncia de relatrio, digite um endereo de e-mail para receber os relatrios e determine a gravidade dos eventos a registrar. Se quiser incluir eventos desconhecidos nos relatrios de evento, marque Incluir Eventos de Gravidade Desconhecidos. NOTA A menos que voc esteja familiarizado com categorizao de evento do AppArmor, escolha ser notificado sobre eventos de todos os nveis de segurana. 5 Deixe esta caixa de dilogo com OK Concluir para aplicar suas configuraes. Configure relatrios do Novell AppArmor. Usando relatrios, possvel ler eventos de segurana importantes do Novell AppArmor relatados nos arquivos de registro sem precisar peneirar manualmente as mensagens pesadas, teis apenas para a ferramenta logprof. possvel restringir o tamanho do relatrio, filtrando por faixa de data ou nome de programa. Para configurar os relatrios do AppArmor proceda da seguinte maneira: 1 Efetue login como root e inicie o YaST. Selecione Novell AppArmor Relatrios do AppArmor. 2 Selecione o tipo de relatrio que voc quer examinar ou configurar de Resumo de Segurana Executivo, Auditoria de Aplicativos e Relatrio de Incidente de Segurana. 3 Edite a freqncia de gerao de relatrio, endereo de e-mail, formato de exportao e a localizao dos relatrios selecionando Editar e fornecendo os dados solicitados. 4 Para executar um relatrio do tipo selecionado, clique em Executar Agora. 5 Pesquise nos relatrios arquivados de um determinado tipo, selecionando Visualizar Arquivo e especificando o tipo de relatrio. ou

132

Referncia

Apague os relatrios desnecessrios ou adicione novos. DICA: Mais informaes Para obter mais informaes sobre configurao de notificao de evento no Novell AppArmor, consulte a Seo Configurando notificaes de evento (Captulo 4, Gerenciando aplicativos em perfil, Guia de Administrao do Novell AppArmor 2.0). Mais informaes sobre configurao de relatrio so encontradas na Seo Relatrios (Captulo 4, Gerenciando aplicativos em perfil, no Guia de Administrao do Novell AppArmor 2.0).

Atualizando seus perfis


Configuraes de software e sistema mudam com o tempo. Por isso a sua configurao de perfil para o AppArmor pode precisar de um ajuste manual periodicamente. O AppArmor verifica o seu registro de sistema em busca de violaes de poltica ou outros eventos do AppArmor e deixa voc ajustar a sua configurao de perfil adequadamente. Qualquer comportamento de aplicativo que esteja fora de qualquer definio de perfil tambm pode ser tratado usando o Assistente para Atualizar Perfil. Para atualizar o seu conjunto de perfis, proceda da seguinte maneira: 1 Efetue login como root e inicie o YaST. 2 Inicie o Novell AppArmor Assistente para Atualizar Perfil. 3 Ajuste o acesso ou execute direitos para qualquer recurso ou para qualquer executvel ao qual tenha sido efetuado login quando solicitado. 4 Saia do YaST aps ter respondido a todas as perguntas. Suas mudanas so aplicadas aos respectivos perfis. DICA: Mais informaes Para obter mais informaes sobre atualizao dos seus perfis dos registros do sistema, consulte a Seo Atualizando perfis a partir de entradas de registros do sistema (Captulo 3, Construindo perfis do Novell AppArmor, Guia de Administrao do Novell AppArmor 2.0).

Segurana no Linux

133

4.5 Segurana e confidencialidade


Uma das principais caractersticas de um sistema Linux ou UNIX sua capacidade de manter vrios usurios ao mesmo tempo (multiusurio) e permitir que esses usurios executem inmeras tarefas (multitarefas) no mesmo computador simultaneamente. Alm disso, o sistema operacional transparente rede. Os usurios normalmente no sabem se os dados e aplicativos que usam so fornecidos localmente por suas mquinas ou disponibilizados pela rede. Com o recurso multiusurio, os dados de usurios diferentes precisam ser armazenados separadamente. A segurana e privacidade precisam ser garantidas. A segurana dos dados j era considerada uma questo importante, mesmo antes de os computadores poderem se vincular atravs de redes. Como nos dias de hoje, a maior preocupao era a capacidade de manter os dados disponveis, apesar da perda ou danificao do meio dos dados, na maioria das vezes, um disco rgido. Esta seo enfoca, principalmente, problemas de confidencialidade e formas de proteger a privacidade de usurios. Porm, ela no se estende o suficiente para abordar o conceito abrangente de segurana, que deve sempre incluir procedimentos para ter um backup regularmente atualizado, utilizvel e testado disposio. Sem isso, voc pode ter muita dificuldade na recuperao de seus dados no s no caso de algum defeito de hardware, mas tambm se suspeitar de algum ter adquirido acesso no autorizado e falsificado arquivos.

4.5.1 Segurana local e de rede


H vrias formas de acessar dados: comunicao pessoal com quem possui as informaes desejadas ou acesso aos dados atravs de um computador diretamente do console de um computador (acesso fsico) atravs de uma linha serial usando um link de rede Em todos esses casos, o usurio deve ser autenticado antes de acessar os recursos ou dados em questo. Um servidor da Web talvez seja menos restritivo a esse respeito,

134

Referncia

ainda assim, voc no gostaria que ele divulgasse todos os seus dados pessoais para qualquer pessoa na rede. Na lista acima, o primeiro caso onde a maior quantidade de interao humana est envolvida, por exemplo, quando voc contacta um funcionrio de um banco e ele solicita que voc prove que a pessoa proprietria daquela conta de banco. Ento, solicitam sua assinatura, um PIN ou uma senha para provar que voc aquela pessoa. Em alguns casos, pode ser possvel extrair informaes de uma pessoa esclarecida apenas mencionando poucos detalhes conhecidos, suficientes para ganhar a confiana dessa pessoa, usando uma retrica inteligente. A vtima pode ser levada a revelar, gradativamente, mais informaes, talvez sem nem mesmo se dar conta disso. Entre os hackers, isso chamado de engenharia social. A nica forma de se proteger contra isso educar as pessoas e saber lidar com linguagem e informaes de uma forma consciente. Antes de invadirem sistemas de computador, os invasores geralmente tentam atingir recepcionistas, auxiliares que trabalham na empresa ou at mesmo membros de uma famlia. Em muitos casos, como um ataque baseado em engenharia social, ele s descoberto muito tempo depois. Uma pessoa que deseja obter acesso no autorizado aos seus dados poderia tambm tentar obt-lo da forma tradicional, diretamente atravs do seu hardware. Portanto, a mquina deve ser protegida contra qualquer falsificao, para que ningum possa remover, substituir ou danificar seus componentes. Isso tambm se aplica a backups e, at mesmo, a qualquer cabo de rede ou de energia. Proteja tambm o procedimento de inicializao, pois h algumas combinaes de tecla bastante conhecidas que podem provocar um comportamento anormal. Proteja-se contra isso, configurando senhas para o BIOS e para o carregador de boot. Os terminais seriais conectados a portas seriais ainda so usados em muitos locais. Diferente das interfaces de rede, eles no usam um protocolo de rede para se comunicar com o host. Um cabo simples ou porta infravermelha envia e retorna caracteres simples entre os dispositivos. O prprio cabo o ponto mais fraco de um sistema desses: com uma impressora mais antiga conectada a ele, fcil registrar qualquer coisa que seja transmitida pelos cabos. O que se consegue com uma impressora tambm pode ser feito de outras formas, dependendo do esforo envolvido no ataque. Ler um arquivo localmente em um host exige outras regras de acesso, diferentes de abrir uma conexo de rede com um servidor em um host diferente. No h distino entre segurana local e segurana de rede. A linha desenhada onde os dados devem ser colocados em pacotes para serem enviados para outro local.

Segurana no Linux

135

Segurana local
A segurana local comea com o ambiente fsico, no local onde o computador executado. Configure sua mquina em um local onde a segurana esteja de acordo com suas expectativas e necessidades. O principal objetivo da segurana local manter usurios separados entre si, para que nenhum assuma a permisso ou a identidade do outro. Essa uma regra geral a ser observada, mas extremamente verdadeira para o root do usurio, que contm a fora suprema do sistema. root pode assumir a identidade de qualquer usurio local sem que lhe seja solicitada uma senha e pode ler qualquer arquivo armazenado localmente.

Senhas
Em um sistema Linux, as senhas no so armazenadas como texto simples e a string de texto digitada no corresponde diretamente com o padro salvo. Se fosse assim, todas as contas do seu sistema estariam comprometidas assim que algum tivesse acesso ao arquivo correspondente. Em vez disso, a senha armazenada criptografada e, toda vez que digitada, novamente criptografada para que as duas strings criptografadas sejam comparadas. Isso oferece mais segurana somente se a senha criptografada no puder ser computada de forma inversa na string de texto original. Isso pode ser feito atravs de um tipo especial de algoritmo, tambm chamado de algoritmo trapdoor, pois ele s funciona em uma direo. Um invasor que obteve a string criptografada no capaz de obter sua senha simplesmente aplicando o mesmo algoritmo novamente. Em vez disso, seria preciso testar todas as combinaes de caracteres possveis, at encontrar uma que se parecesse com sua senha quando criptografada. Em senhas com oito caracteres, h um nmero considervel de combinaes possveis de serem calculadas. Nos anos setenta, dizia-se que esse mtodo seria mais seguro do que outros, devido relativa lentido do algoritmo usado, que levava alguns segundos para criptografar apenas uma senha. Entretanto, enquanto isso, os PCs foram se tornando mais potentes o suficiente para executar centenas de milhares ou at milhes de criptografias por segundo. Por causa disso, as senhas criptografadas no devem ficar visveis para usurios regulares (/etc/shadow no pode ser lida por usurios normais). at mais importante que senhas no sejam fceis de adivinhar, no caso de um arquivo de senha ficar visvel por algum erro. Conseqentemente, no de muita utilidade traduzir uma senha como tantalize para t@nt@1lz3.

136

Referncia

Substituir algumas letras da palavra por nmeros parecidos no seguro o suficiente. Programas para fraudar senhas, que usam dicionrios para adivinhar palavras, tambm testam substituies como essa. Uma forma melhor criar uma palavra sem um significado comum, mas que s faa sentido para voc, como as primeiras letras das palavras de uma frase ou do ttulo de um livro, como The Name of the Rose by Umberto Eco (O Nome da Rosa, de Umberto Eco). A senha segura criada ficaria assim: TNotRbUE9. Diferentemente, senhas como beerbuddy ou jasmine76 so de fcil adivinhao, mesmo por algum que tenha pouco conhecimento a seu respeito.

O procedimento de inicializao
Configure o sistema de forma que no possa ser inicializado de um disquete ou CD, removendo totalmente as unidades ou configurando uma senha para o BIOS e configurando-o para que inicialize somente a partir de um disco rgido. Normalmente, um sistema Linux iniciado por um carregador de boot, permitindo que voc passe opes adicionais para o kernel inicializado. Para evitar que outros usem esses parmetros durante a inicializao, configure uma senha adicional em /boot/grub/ menu.lst (consulte o Captulo 9, O Carregador de Boot (p 201)). Isso imprescindvel para a segurana do sistema. O kernel no s executado com permisses de root, como tambm a primeira autoridade a conceder permisses de root na inicializao do sistema.

Permisses de arquivo
Como regra geral, sempre trabalhe com os privilgios mais restritivos possveis para uma determinada tarefa. Por exemplo, definitivamente, no necessrio ser root para ler ou gravar e-mails. Se o programa de correio possuir um bug, esse bug pode ser explorado para um ataque que atue com as permisses exatas do programa quando foi inicializado. Ao seguir a regra acima, os possveis danos sero minimizados. As permisses de mais de 200.000 arquivos includos em uma distribuio SUSE so escolhidos cuidadosamente. Um administrador de sistemas que instale softwares adicionais ou outros arquivos deve ser cuidadoso ao faz-lo, especialmente quando configurar os bits de permisso. Administradores de sistemas experientes e atentos segurana sempre usam a opo -l com o comando ls, para obter uma lista de arquivos extensa, que ajuda na deteco imediata de qualquer permisso de arquivo incorreta. Um atributo de arquivo incorreto no significa somente que os arquivos podem ser mudados ou apagados. Esses arquivos modificados podem ser executados pelo root ou, no caso de arquivos de configurao, programas poderiam usar tais arquivos com Segurana no Linux 137

as permisses do root. Isso aumenta significativamente as possibilidades de um ataque. Ataques como esse so chamados de cuckoo eggs (ovos de cuco), pois o programa (o ovo) executado (quebrado) por um usurio diferente (pssaro), exatamente como um cuco engana outros pssaros para quebrar seus ovos. Um sistema SUSE Linux inclui os arquivos permissions, permissions.easy, permissions.secure e permissions.paranoid, todos no diretrio /etc. A funo desses arquivos definir permisses especiais, como diretrios gravveis mundialmente ou, para arquivos, o bit do setuser ID (programas com o conjunto de bits setuser ID no so executados com as permisses do usurio que os inicializou e sim com as do proprietrio do arquivo, na maioria dos casos, o root). Um administrador pode usar o arquivo /etc/permissions.local para adicionar suas prprias configuraes. Para definir qual dos arquivos acima usado pelos programas de configurao do SUSE para definir permisses compatveis, selecione Segurana no YaST. Para saber mais sobre esse tpico, leia os comentrios em /etc/permissions ou consulte a pgina do manual do chmod (man chmod).

Bugs de string de formato e overflows de buffer


Deve-se ter extremo cuidado sempre que um programa cuja funo processar dados possa ser modificado por um usurio. Porm, esse um problema mais para o programador de um aplicativo do que para usurios regulares. O programador deve verificar se o aplicativo interpreta os dados de forma correta, sem grav-lo em reas da memria muito pequenas para mant-lo. Da mesma forma, o programa deve manter os dados de forma consistente, usando as interfaces definidas para esse fim. Um overflow de buffer pode ocorrer se o tamanho real do buffer da memria no for levado em conta quando uma gravao for feita nesse buffer. H casos em que esses dados (como os gerados pelo usurio) usam mais espao do que o disponibilizado no buffer. Como conseqncia, os dados so gravados alm da rea final do buffer, o que, em certas circunstncias, possibilita que um programa execute seqncias de programa influenciado pelo usurio (e no pelo programador), em vez de apenas processar os dados do usurio. Um bug desse tipo pode trazer srias conseqncias, especialmente se o programa estiver sendo executado com privilgios especiais (consulte Permisses de arquivo (p 137)). Bugs de string de formato funciona um pouco diferente, porm novamente a entrada do usurio que pode controlar a bandeja do programa. Na maioria dos casos, esses erros 138 Referncia

de programao so explorados com programas executados com permisses especiais programas setuid e setgid o que tambm significa que voc pode proteger os dados e o sistema desses bugs, removendo dos programas os privilgios de execuo correspondentes. Novamente, a melhor forma aplicar uma poltica de uso de privilgios mais baixos possveis (consulte Permisses de arquivo (p 137)). Como os overflows de buffer e bugs de string de formato so bugs relacionados ao manuseio de dados do usurio, eles no so s explorveis se o acesso tiver sido concedido a uma conta local. Muitos dos bugs relatados tambm podem ser explorados por um link de rede. Da mesma forma, bugs de string de formato e overflows de buffer devem ser classificados como relevantes tanto para a segurana de rede quanto a local.

Vrus
Contrrio ao que dizem algumas pessoas, h vrus que so executados no Linux. Entretanto, os vrus conhecidos foram criados por seus autores como um prottipo, para provar que a tcnica funciona como determinado. Nenhum desses vrus foi apontado em lugar algum at agora. Os vrus no conseguem sobreviver e se espalharem sem que haja um host onde possam permanecer. Nesse caso, o host seria um programa ou uma rea de armazenamento importante do sistema, como o MBR (Master Boot Record), que precisa ser gravvel para o cdigo de programa do vrus. Devido aos seus recursos de multiusurio, o Linux pode restringir o acesso de gravao a certos arquivos especialmente importantes para arquivos do sistema. Portanto, se voc trabalhou normalmente com as permisses de root, as chances de o sistema ser infectado por vrus aumentaro. Por outro lado, se voc seguiu os princpios do uso de privilgios mais baixos possveis, conforme mencionado anteriormente, h poucas chances de um vrus entrar no computador. Independente disso, nunca execute um programa s pressas a partir de algum site da Internet que voc no conhea bem. Os pacotes RPM do SUSE possuem uma assinatura criptogrfica como rtulo digital indicando o extremo cuidado utilizado durante sua criao. Os vrus so um sinal tpico de que o administrador ou o usurio no possuem uma precauo de segurana necessria, colocando em risco um sistema que deveria estar altamente protegido. Vrus no devem ser confundidos com worms, que pertencem inteiramente ao mundo das redes. Worms no precisam de um host para se espalharem.

Segurana no Linux

139

Segurana de rede
A segurana da rede importante para a proteo contra um ataque iniciado externamente. O procedimento de login tpico, que exige um nome de usurio e senha para a autenticao do usurio ainda uma questo de segurana local. No caso especfico de efetuar login em uma rede, existe uma diferena entre os dois aspectos de segurana. O que acontece at a autenticao real a segurana da rede e tudo o que acontece depois disso a segurana local.

Sistema x window e autenticao x


Conforme mencionado no incio, a transparncia da rede uma das caractersticas principais de um sistema UNIX. X, o sistema de janelas dos sistemas operacionais do UNIX, usa esse recurso de uma forma impressionante. Com X, basicamente no h problemas para efetuar login em um host remoto e iniciar um programa grfico que ser, depois, enviado para a rede para ser exibido no computador. Quando um cliente X deve ser exibido remotamente usando um servidor X, o ltimo deve proteger o recurso gerenciado por ele (a tela) de acessos no autorizados. Em termos mais concretos, certas permisses precisam ser fornecidas ao programa cliente. Com o sistema X Window, h duas formas de fazer isso, chamadas controle de acesso baseado em host e controle de acesso baseado em cookie. O anterior se baseia no endereo IP do host onde o cliente deve ser executado. O programa que controla isso o xhost. O xhost. insere o endereo IP de um cliente legtimo em um banco de dados mnimo pertencente ao servidor X. Entretanto, basear-se em endereos IP para autenticao no muito seguro. Por exemplo, se houvesse um segundo usurio trabalhando no host que envia o programa cliente, esse usurio tambm teria acesso ao servidor X o mesmo acesso de algum que desejasse roubar o endereo IP. Devido a essas faltas, esse mtodo de autenticao no descrito mais detalhadamente aqui, mas voc pode obter mais informaes sobre ele com o man xhost. No caso do controle de acesso baseado em cookie, uma string de caracteres gerada conhecida somente pelo servidor X e pelo usurio legtimo, da mesma forma que uma placa ID de algum tipo. Esse cookie (a palavra originada no de cookies (biscoitos) comuns, mas dos fortune cookies chineses (biscoitos da sorte chineses) que contm um epigrama) armazenado durante o login no arquivo .Xauthority no diretrio principal do usurio e fica disponvel para qualquer cliente X que deseje usar o servidor X para exibir uma janela. O arquivo .Xauthority pode ser examinado pelo usurio com a ferramenta xauth. Se voc renomeasse o .Xauthority ou se apagasse

140

Referncia

acidentalmente o arquivo do seu diretrio principal, no conseguiria abrir nenhuma janela ou cliente X novos. Leia mais sobre os mecanismos de segurana do sistema X Window na pgina do manual do Xsecurity (man Xsecurity). O SSH (secure shell) pode ser usado para criptografar uma conexo de rede completamente e encaminh-la para um servidor X de forma transparente, sem que o mecanismo de criptografia seja percebido pelo usurio. Tambm chamado de encaminhamento de X. O encaminhamento de X feito simulando um servidor X no lado do servidor e configurando uma varivel DISPLAY para o shell no host remoto. Informaes detalhadas sobre o SSH podem ser encontradas na Seo 4.2, SSH: operaes seguras de rede (p 115). ATENO Se voc no considera seguro o host onde efetua login, no use o encaminhamento de X. Com o encaminhamento de X habilitado, um invasor pode se autenticar atravs da conexo SSH e invadir o servidor X para farejar sua entrada de teclado, por exemplo.

Bugs de string de formato e overflows de buffer


Conforme discutido na Bugs de string de formato e overflows de buffer (p 138), os bugs de overflows de buffer e de strings de formato devem ser classificados como relevantes tanto para a segurana de rede quanto a local. Como as variantes locais desses bugs, os overflows de buffer em programas de rede, quando so explorados com sucesso, quase sempre so usados para obter permisses de root. Mesmo que no seja o caso, um invasor poderia usar o bug para ter acesso a uma conta local no privilegiada para explorar quaisquer outras vulnerabilidades que pudessem existir no sistema. Bugs de overflows de buffer e de strings de formato explorveis em um link de rede so, certamente, a forma mais freqente de ataques remotos em geral. As exploraes desses programas que exploram furos de segurana recentemente encontrados geralmente so enviadas para listas de discusso de segurana. Elas podem ser usadas para identificar a vulnerabilidade, sem saber os detalhes do cdigo. Atravs dos anos, a experincia mostrou que a disponibilidade de cdigos de explorao contribuiu para a criao de sistemas operacionais mais seguros, obviamente devido ao fato de os criadores de sistemas operacionais terem sido forados a consertar os problemas em seus softwares. Com software livre, qualquer pessoa tem acesso ao cdigo fonte (o SUSE Linux vem com todos os cdigos fonte disponveis) e qualquer um que encontre

Segurana no Linux

141

uma vulnerabilidade e seu cdigo de explorao poder submeter um patch para consertar o bug correspondente.

DoS (Denial of Service)


A finalidade de um ataque DoS (denial of service) bloquear um programa de servidor ou mesmo todo o sistema, algo que pode ser realizado de vrias formas: sobrecarregar o servidor, mantendo-o ocupado com pacotes de lixo ou explorar um overflow de buffer remoto. Geralmente, a nica finalidade de um ataque DoS fazer o servio desaparecer. Entretanto, quando um determinado servio no est mais disponvel, as comunicaes podem ficar vulnerveis a ataques man-in-the-middle (farejamento, roubo de conexo de TCP, falsificao) e envenenamento do DNS.

Man in the middle: farejamento, roubo, falsificao


Em geral, qualquer ataque remoto executado por um invasor que se coloca entre os hosts de comunicao chamado de ataque man-in-the-middle. O que a maioria dos tipos de ataques man-in-the-middle tem em comum que a vtima, geralmente, no percebe o que est acontecendo. H muitas variantes possveis, por exemplo, o invasor pode escolher uma solicitao de conexo e encaminh-la para a mquina de destino. Agora, a vtima estabeleceu, involuntariamente, uma conexo com o host errado, porque a outra extremidade est posando como a mquina de destino legtima. A forma mais simples de um ataque man-in-the-middle o farejamento o invasor apenas escuta a passagem do trfego de rede. Em um ataque mais complexo, o man in the middle pode tentar controlar uma conexo j estabelecida (roubar). Para fazer isso, o invasor precisa analisar os pacotes durante algum tempo, para ser capaz de prever os nmeros da seqncia do TCP pertencentes conexo. Quando o invasor finalmente identifica a funo do host de destino, as vtimas percebem isso, pois elas recebem uma mensagem de erro informando que a conexo foi encerrada devido a uma falha. O que facilita os invasores o fato de haver protocolos pouco seguros contra roubos atravs de criptografia, que apenas executam um procedimento de autenticao simples quando estabelecem a conexo. Falsificao um ataque onde os pacotes so modificados para conter dados de origem falsificada, normalmente, o endereo IP. A maioria dos ataques ativos consiste em enviar esses pacotes falsos algo que, em uma mquina Linux, s pode ser feito pelo superusurio (root).

142

Referncia

Muitos dos ataques mencionados so executados junto com um DoS. Se um invasor vir uma oportunidade de desativar abruptamente um host, mesmo que por um curto perodo, ser mais fcil para ele usar o ataque ativo, pois o host no ser capaz de interferir contra o ataque por algum tempo.

Envenenamento de DNS
O envenenamento de DNS significa que o invasor corrompe o cache de um servidor DNS respondendo a ele com pacotes de respostas de DNS falsificados, para tentar fazer com que o servidor envie certos dados a uma vtima que esteja solicitando informaes a esse servidor. Muitos servidores mantm uma relao de confiana com outros hosts, baseada nos endereos IP ou nos nomes de host. O invasor precisa ter um bom conhecimento da estrutura real das relaes de confiana entre os hosts, para ser distinguido como um dos hosts confiveis. Normalmente, o invasor analisa alguns pacotes recebidos do servidor para obter as informaes necessrias. O invasor geralmente tambm precisa planejar um ataque DoS bem programado ao servidor de nomes. Proteja-se, usando conexes criptografadas que possam verificar a identidade dos hosts aos quais deve se conectar.

Worms
Worms geralmente so confundidas com vrus, mas h uma clara diferena entre os dois. Diferente dos vrus, worms no precisam infectar um programa de host para viverem. Em vez disso, suas especialidades so se espalharem o mais rpido possvel por estruturas de rede. Os worms que apareciam antigamente, como Ramen, Lion ou Adore, faziam uso de falhas conhecidas na segurana dos programas de servidor, como bind8 ou lprNG. A proteo contra worms relativamente fcil. Considerando que um certo tempo decorre entre a descoberta de uma falha na segurana e o momento em que o worm entra no servidor, h uma boa chance de uma verso atualizada do programa afetado estar disponvel a tempo. Isso s tem utilidade se o administrador realmente instalar as atualizaes de segurana nos sistemas em questo.

4.5.2 Algumas dicas e truques gerais de segurana


Para usar a segurana de forma competente, importante estar atualizado com os novos produtos desenvolvidos e manter-se informado sobre as questes de segurana mais

Segurana no Linux

143

recentes. Uma boa forma de proteger o sistema contra problemas de todos os tipos obter e instalar os pacotes atualizados recomendados pelos anncios de segurana o mais rpido possvel. Os anncios de segurana do SUSE so publicados em uma lista de discusso na qual voc pode se inscrever atravs do link http://www.novell .com/linux/security/securitysupport.html. A lista suse-security-announce@suse.de a fonte principal de informaes referente a pacotes atualizados e inclui membros da equipe de segurana do SUSE entre seus contribuintes ativos. A lista de discusso suse-security@suse.de um bom local para discutir quaisquer problemas de segurana de seu interesse. Inscreva-se nela na mesma pgina da Web. bugtraq@securityfocus.com uma das listas de discusso sobre segurana mais conhecidas no mundo. A leitura dessa lista, que recebe entre 15 a 20 publicaes por dia, recomendada. Mais informaes podem ser encontradas em http://www .securityfocus.com. A seguir, uma lista de regras que podem ser teis para lidar com questes de segurana bsica: De acordo com a regra de uso do conjunto de permisses mais restritivo para cada trabalho, evite fazer seus trabalho regulares no root. Isso reduzir o risco de obter um cuckoo egg (ovo do cuco) ou um vrus e proteger seu computador dos seus prprios erros. Se possvel, tente sempre usar conexes criptografadas para trabalhar em uma mquina remota. O uso de ssh (shell seguro) para substituir telnet, ftp, rsh e rlogin deve ser uma prtica padro. Evite usar mtodos de autenticao baseados em endereos IP isolados. Tente manter os pacotes relacionados rede mais importantes atualizados e inscrevase nas listas de discusso correspondentes, para receber anncios sobre novas verses desses programas (bind, sendmail, ssh, etc.). O mesmo deve se aplicar aos softwares relevantes segurana local. Mude o arquivo /etc/permissions, para otimizar as permisses dos arquivos cruciais para a segurana do seu sistema. Se voc remover o setuid bit de um programa, haver grandes chances de ele no ser mais capaz de executar suas respectivas funes da forma devida. Por outro lado, considere que, na maioria dos

144

Referncia

casos, o programa no ser mais um risco potencial segurana. Voc pode usar um mtodo semelhante, com arquivos e diretrios internacionalmente gravveis. Desabilite quaisquer servios de rede que no sejam absolutamente necessrios para o servidor funcionar adequadamente. Isso torna o sistema mais seguro. Portas abertas, com o estado do socket LISTEN, podem ser encontradas no programa netstat. Quanto s opes, recomendvel usar netstat -ap ou netstat -anp. A opo -p permite que voc veja que processo est ocupando uma porta com qual nome. Compare os resultados do netstat com os de uma explorao de porta mais completa feita fora do host. Um programa excelente para esse trabalho o nmap, que no s verifica as portas da mquina, como tambm conclui quais servios esto aguardando atrs delas. Entretanto, a explorao da porta pode ser interpretada como um ato agressivo, portanto, no a faa em um host sem a aprovao explcita do administrador. Por fim, lembre-se de que importante no s explorar as portas TCP, mas tambm as portas UDP (opes -sS e -sU). Para monitorar a integridade dos arquivos do seu sistema de forma confivel, use o programa AIDE (Advanced Intrusion Detection Environment), disponvel no SUSE Linux. Criptografe o banco de dados criado pelo AIDE, para evitar que algum o falsifique. Alm disso, mantenha um backup desse banco de dados disponvel fora da mquina, armazenado em um meio de dados externo no conectado rede. Instale cuidadosamente qualquer software de terceiros. Houve casos de um hacker ter criado um Cavalo de Tria no arquivo tar de um pacote de softwares de segurana, mas, felizmente, o ataque foi descoberto rapidamente. Se voc instalar um pacote binrio, no tenha dvidas quanto ao site de onde foi feito o seu download. Os pacotes RPM do SUSE so gpg-signed (assinados pelo gpg). A chave usada pelo SUSE para a assinatura : Chave de assinatura de pacote do SUSE: ID:9C800ACA 2000-10-19 <build@suse.de> Impresso digital da chave = 79C1 79B2 E1C8 20C1 890F 9994 A84E DAE8 9C80 0ACA

Segurana no Linux

145

O comando rpm --checksig package.rpm mostra se o checksum e a assinatura de um pacote desinstalado esto corretos. Encontre a chave no primeiro CD de distribuio e na maioria dos servidores de chaves em todo o mundo. Verifique os backups de arquivos do sistema e usurio regularmente. Considere que, se voc no testar os backups para ver se funcionam, eles sero, na verdade, inteis. Verifique seus arquivos de registro. Sempre que possvel, grave um pequeno script para pesquisar entradas suspeitas. Com certeza, essa no exatamente uma tarefa trivial. No final, somente voc saber quais entradas no so comuns e quais so. Use o tcp_wrapper para restringir o acesso a servios individuais executados na sua mquina, para que voc tenha controle total sobre quais endereos IP podem se conectar a um servio. Para obter informaes adicionais referentes ao tcp_wrapper, consulte as pginas do manual do tcpd e do hosts_access (man 8 tcpd, man hosts_access). Use o SuSEfirewall para aprimorar a segurana fornecida pelo tcpd (tcp_wrapper). Defina suas medidas de segurana para serem redundantes: uma mensagem vista duas vezes melhor do que no ver mensagem alguma.

4.5.3 Usando o Central Security Reporting Address (Endereo de Relatrios de Segurana Central)
Se encontrar um problema relacionado segurana (verifique, primeiro, os pacotes de atualizao disponveis), escreva um e-mail para security@suse.de. Inclua uma descrio detalhada do problema e o nmero de verso do pacote em questo. O SUSE tentar enviar uma resposta o mais rpido possvel. Voc incentivado a criptografar por pgp suas mensagens de e-mail. A chave pgp do SUSE :
ID:3D25D3D9 1999-03-06 SUSE Security Team <security@suse.de> Impresso digital da chave = 73 5F 2E 99 DF DB 94 C4 8F 5A A3 AE AF 22 F2 D5

Essa chave tambm est disponvel para download em http://www.novell.com/ linux/security/securitysupport.html.

146

Referncia

Listas de controle de acesso no Linux


As ACLs (listas de controle de acesso) POSIX podem ser usadas como expanso do conceito tradicional de permisso para objetos do sistema de arquivos. Com as ACLs, as permisses podem ser definidas com mais flexibilidade do que permite o conceito de permisso tradicional. O termo ACL POSIX sugere que este um verdadeiro padro POSIX (portable operating system interface). Os respectivos padres de rascunho POSIX 1003.1e e POSIX 1003.2c foram removidos por vrios motivos. Contudo, as ACLs, como encontradas em vrios sistemas pertencentes famlia UNIX, so baseadas nesses rascunhos, e a implementao das ACLs do sistema de arquivos, como descrita neste captulo, tambm segue esses padres. Elas podem ser vistas em http://wt.xpilot.org/publications/ posix.1e/.

5.1 Permisses de arquivo tradicionais


Os fundamentos bsicos das permisses de arquivo tradicionais do Linux so explicadas na Seo Usurios e permisses de acesso (Captulo 3, Trabalhando com o Shell, Inicializao). Mais recursos avanados so setuid, setgid e sticky bit.

5.1.1 setuid Bit


Em determinadas situaes, as permisses de acesso podem ser muito restritivas. No entanto, o Linux possui configuraes adicionais para permitir a mudana temporria do usurio atual e da identidade do grupo para uma ao especfica. Por exemplo, o

Listas de controle de acesso no Linux

147

programa passwd normalmente requer permisses de root para acessar /etc/passwd. Este arquivo contm algumas informaes importantes, como os diretrios pessoais de usurios e IDs de usurio e grupo. Sendo assim, um usurio normal no poderia mudar passwd, j que seria muito arriscado conceder a todos os usurios acesso direto a este arquivo. Uma possvel soluo para esse problema o mecanismo setuid. O setuid (definir ID do usurio) um atributo de arquivo especial que instrui o sistema a executar programas marcados adequadamente com um ID de usurio especfico. Considere o comando passwd:
-rwsr-xr-x 1 root shadow 80036 2004-10-02 11:08 /usr/bin/passwd

Voc pode ver o s que denota que setuid bit est definido para a permisso do usurio. Por meio do setuid bit, todos os usurios iniciando o comando passwd o executam como root.

5.1.2 setgid Bit


O setuid bit se aplica a usurios. Entretanto, existe tambm uma propriedade equivalente para grupos: o setgid bit. Um programa para o qual esse bit foi definido executado com o ID do grupo no qual ele foi gravado, independentemente do usurio que iniciou o programa. No entanto, em um diretrio com o setgid bit, todos os arquivos e diretrios criados recentemente so atribudos ao grupo ao qual o diretrio pertence. Considere o seguinte diretrio de exemplo:
drwxrws--- 2 tux archive 48 Nov 19 17:12 backup

Voc pode ver o s que denota que o setuid bit est definido para a permisso do usurio. O proprietrio do diretrio e membros do grupo archive podero acessar este diretrio. Os usurios que no so membros deste grupo so mapeados para o grupo respectivo. O ID de grupo efetivo de todos os arquivos gravados ser archive. Por exemplo, um programa de backup que executado com o ID de grupo archive capaz de acessar este diretrio mesmo sem privilgios de root.

5.1.3 Sticky Bit


Tambm existe o sticky bit. Existe uma diferena caso ele pertena a um programa executvel ou a um diretrio. Se ele pertencer a um programa, qualquer arquivo marcado dessa forma ser carregado na memria RAM a fim de evitar a necessidade de obt-lo no disco rgido toda vez que for usado. Esse atributo usado raramente, pois os discos

148

Referncia

rgidos modernos so muito rpidos. Se este bit estiver designado a um diretrio, ele impedir que usurios apaguem arquivos de outros usurios. Exemplos tpicos incluem os diretrios /tmp e /var/tmp:
drwxrwxrwt 2 root root 1160 2002-11-19 17:15 /tmp

5.2 Vantagens das ACLs


Tradicionalmente, trs conjuntos de permisses so definidos para cada objeto de arquivo em um sistema Linux. Esses conjuntos incluem as permisses de leitura (r), gravao (w) e execuo (x) para cada um dos trs tipos de usurios: o proprietrio do arquivo, o grupo e os outros usurios. Alm disso, possvel definir o set user id, o set group id e o sticky bit. Este conceito simples completamente adequado para a maioria dos casos prticos. Porm, para os cenrios mais complexos ou aplicativos avanados, os administradores de sistema tiveram que usar anteriormente vrias estratgias para se esquivar das limitaes do conceito tradicional de permisso. As ACLs podem ser usadas como extenso do conceito tradicional de permisso para arquivos. Elas admitem a atribuio de permisses a usurios individuais ou a grupos, mesmo que eles no correspondam ao proprietrio original ou ao grupo proprietrio. As listas de controle de acesso so um recurso do kernel do Linux e so atualmente suportadas por ReiserFS, Ext2, Ext3, JFS e XFS. Com as ACLs, cenrios complexos podem ser realizados sem a implementao de modelos de permisso complexos no nvel do aplicativo. As vantagens das ACLs ficam evidentes quando voc substitui um servidor Windows por um servidor Linux. Algumas das estaes de trabalho conectadas podem continuar em execuo no Windows, mesmo aps a migrao. O sistema Linux oferece servios de arquivo e impresso para os clientes Windows com Samba. Com o suporte do Samba s listas de controle de acesso, as permisses de usurio podem ser configuradas em servidores Linux e Windows com uma interface grfica do usurio (somente Windows NT e posterior). Com o winbindd, parte da sute do samba, possvel at mesmo atribuir permisses a usurios que existem somente no domnio do Windows sem nenhuma conta no servidor Linux.

Listas de controle de acesso no Linux

149

5.3 Definies
classe de usurio O conceito convencional de permisso POSIX utiliza trs classes de usurios para atribuir permisses no sistema de arquivos: o proprietrio, o grupo proprietrio e os outros usurios. Trs bits de permisses podem ser definidos para cada classe de usurio, concedendo permisso de leitura (r), gravao (w) e execuo (x). ACL de acesso As permisses de acesso de usurio e grupo para todos os tipos de objetos Sistema de arquivos (arquivos e diretrios) so determinadas atravs das ACLs de acesso. ACL padro As ACLs padro podem ser aplicadas somente a diretrios. Elas determinam as permisses que um objeto Sistema de arquivos herda de seu diretrio pai quando criado. entrada de ACL Cada ACL consiste em um conjunto de entradas de ACL. Uma entrada de ACL contm um tipo, um qualificador para o usurio ou grupo ao qual a entrada se refere e um conjunto de permisses. Para alguns tipos de entrada, o qualificador para o grupo ou usurios indefinido.

5.4 Gerenciando ACLs


A Tabela 5.1, Tipos de entrada de ACL (p 151) resume os seis tipos possveis de entradas de ACL, cada um definindo permisses para um usurio ou um grupo de usurios. A entrada proprietrio define as permisses do usurio proprietrio do arquivo ou diretrio. A entrada grupo proprietrio define as permisses do grupo proprietrio do arquivo. O superusurio pode mudar o proprietrio ou o grupo proprietrio com chown ou chgrp. Neste caso, as entradas de proprietrio e grupo proprietrio referemse ao novo usurio e grupo proprietrio. Cada entrada usurio nomeado define as permisses do usurio especificado no campo qualificador da entrada. Cada entrada grupo nomeado define as permisses do grupo especificado no campo qualificador da entrada. Somente as entradas usurio nomeado e grupo nomeado possuem um campo qualificador que no est vazio. A entrada outros define as permisses de todos os outros usurios.

150

Referncia

A entrada mscara limita ainda mais as permisses concedidas pelas entradas usurio nomeado, grupo nomeado e grupo proprietrio, pois define quais das permisses nessas entradas so efetivas e quais esto mascaradas. Se existirem permisses em uma das entradas mencionadas, assim como na mscara, elas sero efetivas. As permisses contidas somente na mscara ou somente na entrada real no so efetivas, significando que as permisses no so concedidas. Todas as permisses definidas nas entradas proprietrio e grupo proprietrio so sempre efetivas. O exemplo na Tabela 5.2, Mascarando permisses de acesso (p 151) demonstra este mecanismo. Existem duas classes bsicas de ACLs. Uma ACL mnima contm somente as entradas dos tipos proprietrio, grupo proprietrio e outros, que correspondem aos bits de permisso convencionais para arquivos e diretrios. Uma ACL estendida vai alm disso. Ela deve conter uma entrada mscara e pode conter vrias entradas dos tipos usurio nomeado e grupo nomeado. Tabela 5.1 Tipo proprietrio usurio nomeado grupo proprietrio grupo nomeado mscara outros Tabela 5.2 Tipos de entrada de ACL Formato do texto user::rwx user:name:rwx group::rwx group:name:rwx mask::rwx other::rwx Mascarando permisses de acesso Formato do texto user:geeko:r-x mask::rwPermisses r-x rw-

Tipo de entrada usurio nomeado mscara

Listas de controle de acesso no Linux

151

Tipo de entrada

Formato do texto permisses efetivas:

Permisses r--

5.4.1 Entradas de ACL e bits de permisso do modo do arquivo


A Figura 5.1, ACL mnima: entradas de ACL comparadas a bits de permisso (p 152) e a Figura 5.2, ACL estendida: entradas de ACL comparadas a bits de permisso (p 153) ilustram os dois casos de uma ACL mnima e de uma ACL estendida. As figuras so estruturadas em trs blocos: o bloco esquerdo mostra as especificaes de tipo das entradas de ACL, o bloco central mostra um exemplo de ACL e o bloco direito mostra os respectivos bits de permisso, de acordo com o conceito convencional de permisso; por exemplo, como mostrado pelo comando ls -l. Em ambos os casos, as permisses classe proprietria so mapeadas para a entrada de ACL proprietrio. As permisses outra classe so mapeadas para a respectiva entrada de ACL. Porm, o mapeamento das permisses classe de grupo diferente nos dois casos. Figura 5.1 ACL mnima: entradas de ACL comparadas a bits de permisso

No caso de uma ACL mnima (sem mscara), as permisses classe de grupo so mapeadas para a entrada de ACL grupo proprietrio. Voc pode ver isso na Figura 5.1, ACL mnima: entradas de ACL comparadas a bits de permisso (p 152). No caso de uma ACL estendida (com mscara), as permisses classe de grupo so mapeadas para a entrada mscara. Voc pode ver isso na Figura 5.2, ACL estendida: entradas de ACL comparadas a bits de permisso (p 153).

152

Referncia

Figura 5.2 ACL estendida: entradas de ACL comparadas a bits de permisso

Este mtodo de mapeamento assegura uma interao uniforme de aplicativos, tenham eles suporte a ACL ou no. As permisses de acesso que foram atribudas atravs de bits de permisso representam o limite superior para todos os outros ajustes finos feitos com uma ACL. As mudanas feitas nos bits de permisso so refletidas pela ACL e vice-versa.

5.4.2 Diretrio com uma ACL de acesso


Com getfacl e setfacl na linha de comando, voc pode acessar ACLs. O uso desses comandos demonstrado no exemplo a seguir. Antes de criar o diretrio, use o comando umask para definir quais permisses de acesso devem ser mascaradas toda vez que um objeto de arquivo for criado. O comando umask 027 define as permisses ao conceder ao proprietrio todas as permisses (0), ao negar o acesso de gravao de grupo (2) e ao no conceder nenhuma permisso aos outros usurios (7). O comando umask, na verdade, mascara os bits de permisso correspondentes ou os desativa. Para obter detalhes, consulte a pgina de manual correspondente a umask. O comando mkdir meudir cria o diretrio meudir com as permisses padro, como definido por umask. Use ls -dl meudir para verificar se todas as permisses foram atribudas corretamente. A sada para este exemplo :
drwxr-x--- ... tux project3 ... meudir

Com o comando getfacl meudir, verifique o estado inicial da ACL. Ele fornece informaes como:
# file: meudir # owner: tux # group: project3

Listas de controle de acesso no Linux

153

user::rwx group::r-x other::---

As primeiras trs linhas de sada mostram o nome, o proprietrio e o grupo proprietrio do diretrio. As prximas trs linhas contm as trs entradas de ACL proprietrio, grupo proprietrio e outros. Na verdade, no caso desta ACL mnima, o comando getfacl no produz nenhuma informao que voc no pudesse obter com o comando ls. Modifique a ACL para atribuir permisses de leitura, gravao e execuo para um usurio geeko adicional e um grupo mascotes com:
setfacl -m user:geeko:rwx,group:mascotes:rwx meudir

A opo -m solicita que setfacl modifique a ACL existente. O argumento a seguir indica as entradas de ACL a serem modificadas (vrias entradas so separadas por vrgulas). A parte final especifica o nome do diretrio no qual essas modificaes devem ser aplicadas. Use o comando getfacl para dar uma olhada na ACL resultante.
# file: meudir # owner: tux # group: project3 user::rwx user:geeko:rwx group::r-x group:mascotes:rwx mask::rwx other::---

Alm das entradas iniciadas para o usurio geeko e o grupo mascotes, uma entrada mscara foi gerada. A entrada mscara definida automaticamente para que todas as permisses sejam efetivas. O comando setfacl adapta automaticamente as entradas mscara existentes s configuraes modificadas, a no ser que voc desative este recurso com -n. mscara define as permisses mximas de acesso efetivas para todas as entradas na classe de grupo. Isso inclui usurio nomeado, grupo nomeado e grupo proprietrio. Os bits de permisso de classe de grupo exibidos pelo comando ls -dl meudir agora correspondem entrada mscara.
drwxrwx---+ ... tux project3 ... meudir

A primeira coluna da sada agora contm um sinal de + extra para indicar que existe uma ACL estendida para esse item. De acordo com a sada do comando ls, as permisses para a entrada mscara incluem acesso de gravao. Tradicionalmente, esses bits de permisso significariam que o grupo proprietrio (aqui, project3) tambm teria acesso de gravao no diretrio

154

Referncia

meudir. Porm, as permisses de acesso efetivas para o grupo proprietrio correspondem parte sobreposta das permisses definidas para o grupo proprietrio e para a mscara, que r-x em nosso exemplo (consulte a Tabela 5.2, Mascarando permisses de acesso (p 151)). Em relao s permisses efetivas do grupo proprietrio do exemplo, nada mudou mesmo aps a adio das entradas de ACL. Edite a entrada mscara com setfacl ou chmod. Por exemplo, use chmod g-w meudir. O comando ls -dl meudir mostrar:
drwxr-x---+ ... tux project3 ... meudir

getfacl meudir fornece a seguinte sada:


# file: meudir # owner: tux # group: project3 user::rwx user:geeko:rwx # effective: r-x group::r-x group:mascotes:rwx # effective: r-x mask::r-x other::---

Aps executar o comando chmod para remover a permisso de gravao dos bits classe de grupo, a sada do comando ls ser suficiente para indicar que os bits mscara devem ter mudado de acordo: a permisso de gravao novamente limitada ao proprietrio de meudir. A sada de getfacl confirma isso. Esta sada inclui um comentrio para todas as entradas nas quais os bits de permisso efetiva no correspondem s permisses originais, porque eles so filtrados de acordo com a entrada mscara. As permisses originais podem ser restauradas a qualquer momento com chmod g+w meudir.

5.4.3 Diretrio com uma ACL padro


Os diretrios podem ter uma ACL padro, que um tipo especial de ACL que define permisses de acesso herdadas pelos objetos no diretrio quando so criados. Uma ACL padro afeta subdiretrios e arquivos.

Efeitos em uma ACL padro


Existem dois modos de passar as permisses de uma ACL padro do diretrio para os seus arquivos e subdiretrios:

Listas de controle de acesso no Linux

155

Um subdiretrio herda a ACL padro do diretrio pai como sua ACL padro e como uma ACL de acesso. Um arquivo herda a ACL padro como a sua ACL de acesso. Todas as chamadas de sistema que criam objetos Sistema de arquivos utilizam um parmetro mode que define as permisses de acesso para o objeto Sistema de arquivos recm-criado. Se o diretrio pai no tiver uma ACL padro, os bits de permisso, como definidos por umask, sero subtrados das permisses quando passados pelo parmetro mode, e o resultado ser atribudo ao novo objeto. Se existir uma ACL padro para o diretrio pai, os bits de permisso atribudos ao novo objeto correspondero parte sobreposta das permisses do parmetro mode e daqueles definidos na ACL padro. O comando umask desconsiderado neste caso.

Aplicao das ACLs padro


Os trs exemplos a seguir mostram as operaes principais de diretrios e ACLs padro: 1. Adicione uma ACL padro ao diretrio meudir existente com:
setfacl -d -m group:mascotes:r-x meudir

A opo -d do comando setfacl solicita que setfacl realize as seguintes modificaes (opo -m) na ACL padro. Preste bem ateno no resultado deste comando:
getfacl meudir # file: meudir # owner: tux # group: project3 user::rwx user:geeko:rwx group::r-x group:mascotes:rwx mask::rwx other::--default:user::rwx default:group::r-x default:group:mascotes:r-x default:mask::r-x default:other::---

156

Referncia

getfacl retorna a ACL de acesso e a ACL padro. A ACL padro formada por todas as linhas que comeam com default. Embora voc tenha simplesmente executado o comando setfacl com uma entrada para o grupo mascotes na ACL padro, setfacl copiou automaticamente todas as outras entradas da ACL de acesso para criar uma ACL padro vlida. As ACLs padro no tm efeito imediato nas permisses de acesso. Elas apenas surgem quando os objetos Sistema de arquivos so criados. Esses novos objetos herdam permisses somente da ACL padro de seu diretrio pai. 2. No prximo exemplo, use mkdir para criar um subdiretrio em meudir, que herda a ACL padro.
mkdir meudir/meusubdir getfacl meudir/meusubdir # file: meudir/meusubdir # owner: tux # group: project3 user::rwx group::r-x group:mascotes:r-x mask::r-x other::--default:user::rwx default:group::r-x default:group:mascotes:r-x default:mask::r-x default:other::---

Como esperado, o subdiretrio meusubdir recm-criado tem permisses da ACL padro do diretrio pai. A ACL de acesso de meusubdir um reflexo exato da ACL padro de meudir. A ACL padro que este diretrio transmitir para os seus objetos subordinados tambm a mesma. 3. Use o comando touch para criar um arquivo no diretrio meudir, por exemplo, touch meudir/meuarq. O comando ls -l meudir/meuarq mostrar:
-rw-r-----+ ... tux project3 ... meudir/meuarq

O resultado de getfacl meudir/meuarq ser:


# file: meudir/meuarq # owner: tux # group: project3 user::rwgroup::r-x # effective:r-group:mascotes:r-x # effective:r--

Listas de controle de acesso no Linux

157

mask::r-other::---

touch usa um mode com o valor 0666 quando cria novos arquivos, o que significa que os arquivos so criados com permisses de leitura e gravao para todas as classes de usurios, desde que no existam outras restries em umask ou na ACL padro (consulte Efeitos em uma ACL padro (p 155)). Na verdade, isto significa que todas as permisses de acesso no contidas no valor mode so removidas de suas respectivas entradas de ACL. Embora nenhuma permisso tenha sido removida da entrada de ACL da classe de grupo, a entrada mscara foi modificada para mascarar permisses no definidas em mode. Este mtodo assegura uma interao uniforme de aplicativos, como compiladores, com as ACLs. Voc pode criar arquivos com permisses de acesso restritas e marc-los como executveis. O mecanismo mask garante que os usurios e grupos corretos podero execut-los como desejado.

5.4.4 Algoritmo de verificao da ACL


Um algoritmo de verificao aplicado antes que qualquer processo ou aplicativo receba acesso a um objeto Sistema de arquivos protegido por ACL. Como regra bsica, as entradas de ACL so examinadas na seguinte seqncia: proprietrio, usurio nomeado, grupo proprietrio ou grupo nomeado e outros. O acesso gerenciado de acordo com a entrada que melhor se adequar ao processo. Permisses no so cumulativas. A situao ser mais complicada se um processo pertencer a mais de um grupo e precisar se adaptar a vrias entradas de grupo. Uma entrada selecionada aleatoriamente das entradas adequadas com as permisses necessrias. No importa qual das entradas aciona o resultado final acesso concedido. Do mesmo modo, se nenhuma das entradas adequadas de grupo contiver as permisses necessrias, uma entrada selecionada aleatoriamente acionar o resultado final acesso negado.

5.5 Suporte a ACL em aplicativos


As ACLs podem ser usadas para implementar cenrios de permisso complexos que satisfaam os requisitos dos aplicativos modernos. O conceito tradicional de permisso

158

Referncia

e as ACLs podem ser combinados de maneira inteligente. Os comandos de arquivo bsicos (cp, mv, ls etc.) suportam ACLs, assim como o Samba e o Konqueror. Infelizmente, muitos editores e gerenciadores de arquivos ainda no possuem suporte a ACL. Quando se copia arquivos com o Emacs, por exemplo, as ACLs desses arquivos so perdidas. Quando se modifica arquivos com um editor, as ACLs dos arquivos s vezes so mantidas, outras vezes no, dependendo do modo de backup do editor usado. Se o editor gravar as mudanas no arquivo original, a ACL de acesso ser mantida. Se o editor gravar o contedo atualizado em um novo arquivo renomeado posteriormente com o antigo nome de arquivo, as ACLs podero ser perdidas, a no ser que o editor suporte as ACLs. No existe atualmente nenhum aplicativo de backup que mantenha ACLs, exceto o star archiver.

5.6 Mais informaes


Informaes detalhadas sobre as ACLs esto disponveis em http://acl.bestbits .at/. Consulte tambm as pginas de manual de getfacl(1), acl(5) e setfacl(1).

Listas de controle de acesso no Linux

159

Utilitrios de monitoramento do sistema


Vrios programas e mecanismos, alguns dos quais apresentamos aqui, podem ser usados para examinar o status do sistema. Tambm so descritos alguns utilitrios para o trabalho de rotina, bem como seus parmetros mais importantes. Para cada comando apresentado, so fornecidos exemplos das sadas relevantes. Nesses exemplos, a primeira linha o comando propriamente dito (aps o sinal de > ou #). As omisses so indicadas entre colchetes ([...]) e linhas extensas so reduzidas quando necessrio. Quebras de linhas extensas so indicadas por uma barra invertida (\).
# comando -x -y linha de sada 1 linha de sada 2 linha de sada 3 muito longa, por isso \ quebramos para a linha de sada 3 [...] linha de sada 98 linha de sada 99

Procuramos oferecer descries curtas para podermos mencionar o maior nmero possvel de utilitrios. Para obter mais informaes sobre os comandos, consulte as pginas de manual. A maior parte dos comandos tambm compreende o parmetro --help, que gera uma breve lista de parmetros possveis.

6.1 Lista de arquivos abertos: lsof


Para ver uma lista de todos os arquivos abertos para o processo com ID PID, use -p. Por exemplo, para ver todos os arquivos usados pelo shell atual, digite:

Utilitrios de monitoramento do sistema

161

tester@linux:~> lsof -p $$ COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME bash 5552 tester cwd DIR 3,3 1512 117619 /home/tester bash 5552 tester rtd DIR 3,3 584 2 / bash 5552 tester txt REG 3,3 498816 13047 /bin/bash bash 5552 tester mem REG 0,0 0 [heap] (stat: No such \ file or directory) bash 5552 tester mem REG 3,3 217016 115687 /var/run/nscd/passwd bash 5552 tester mem REG 3,3 208464 11867 \ /usr/lib/locale/en_GB.utf8/LC_CTYPE bash 5552 tester mem REG 3,3 882134 11868 \ /usr/lib/locale/en_GB.utf8/LC_COLLATE bash 5552 tester mem REG 3,3 1386997 8837 /lib/libc-2.3.6.so bash 5552 tester mem REG 3,3 13836 8843 /lib/libdl-2.3.6.so bash 5552 tester mem REG 3,3 290856 12204 /lib/libncurses.so.5.5 bash 5552 tester mem REG 3,3 26936 13004 /lib/libhistory.so.5.1 bash 5552 tester mem REG 3,3 190200 13006 /lib/libreadline.so.5.1 bash 5552 tester mem REG 3,3 54 11842 \ /usr/lib/locale/en_GB.utf8/LC_NUMERIC bash 5552 tester mem REG 3,3 2375 11663 \ /usr/lib/locale/en_GB.utf8/LC_TIME bash 5552 tester mem REG 3,3 290 11736 \ /usr/lib/locale/en_GB.utf8/LC_MONETARY bash 5552 tester mem REG 3,3 52 11831 \ /usr/lib/locale/en_GB.utf8/LC_MESSAGES/SYS_LC_MESSAGES bash 5552 tester mem REG 3,3 34 11862 \ /usr/lib/locale/en_GB.utf8/LC_PAPER bash 5552 tester mem REG 3,3 62 11839 \ /usr/lib/locale/en_GB.utf8/LC_NAME bash 5552 tester mem REG 3,3 127 11664 \ /usr/lib/locale/en_GB.utf8/LC_ADDRESS bash 5552 tester mem REG 3,3 56 11735 \ /usr/lib/locale/en_GB.utf8/LC_TELEPHONE bash 5552 tester mem REG 3,3 23 11866 \ /usr/lib/locale/en_GB.utf8/LC_MEASUREMENT bash 5552 tester mem REG 3,3 21544 9109 \ /usr/lib/gconv/gconv-modules.cache bash 5552 tester mem REG 3,3 366 9720 \ /usr/lib/locale/en_GB.utf8/LC_IDENTIFICATION bash 5552 tester mem REG 3,3 97165 8828 /lib/ld-2.3.6.so bash 5552 tester 0u CHR 136,5 7 /dev/pts/5 bash 5552 tester 1u CHR 136,5 7 /dev/pts/5 bash 5552 tester 2u CHR 136,5 7 /dev/pts/5 bash 5552 tester 255u CHR 136,5 7 /dev/pts/5

Foi usada a varivel de shell especial $$, cujo valor o ID do processo do shell. O comando lsof lista todos os arquivos atualmente abertos quando usado com quaisquer outros parmetros. Como h milhares de arquivos abertos, raramente til list-los. No entanto, a lista de todos os arquivos pode ser combinada com funes de

162

Referncia

pesquisa para gerar listas teis. Por exemplo, listar todos os dispositivos de caracteres usados:
tester@linux:~> lsof | grep CHR bash 3838 tester 0u bash 3838 tester 1u bash 3838 tester 2u bash 3838 tester 255u bash 5552 tester 0u bash 5552 tester 1u bash 5552 tester 2u bash 5552 tester 255u X 5646 root mem lsof 5673 tester 0u lsof 5673 tester 2u grep 5674 tester 1u grep 5674 tester 2u CHR CHR CHR CHR CHR CHR CHR CHR CHR CHR CHR CHR CHR 136,0 136,0 136,0 136,0 136,5 136,5 136,5 136,5 1,1 136,5 136,5 136,5 136,5 2 2 2 2 7 7 7 7 1006 7 7 7 7 /dev/pts/0 /dev/pts/0 /dev/pts/0 /dev/pts/0 /dev/pts/5 /dev/pts/5 /dev/pts/5 /dev/pts/5 /dev/mem /dev/pts/5 /dev/pts/5 /dev/pts/5 /dev/pts/5

6.2 Arquivos de acesso do usurio: fuser


Pode ser til determinar os processos ou usurios que esto acessando atualmente determinados arquivos. Suponha, por exemplo, que voc queira desmontar um sistema de arquivos montado em /mnt. unmount retorna "device is busy" (dispositivo ocupado). O comando fuser pode ser usado para determinar os processos que esto acessando o dispositivo:
tester@linux:~> fuser -v /mnt/* USER tester PID ACCESS COMMAND 26597 f.... less

/mnt/notes.txt

Ao fim do processo less, que estava sendo executado em outro terminal, o sistema de arquivos poder ser desmontado com xito.

6.3 Propriedades de arquivo: stat


O comando stat exibe propriedades de arquivo:
tester@linux:~> stat /etc/profile File: `/etc/profile' Size: 7930 Blocks: 16 Device: 303h/771d Inode: 40657

IO Block: 4096 Links: 1

regular file

Utilitrios de monitoramento do sistema

163

Access: Access: Modify: Change:

(0644/-rw-r--r--) Uid: ( 0/ root) 2006-01-06 16:45:43.000000000 +0100 2005-11-21 14:54:35.000000000 +0100 2005-12-19 09:51:04.000000000 +0100

Gid: (

0/

root)

O parmetro --filesystem produz detalhes das propriedades do sistema de arquivos no qual o arquivo especfico est localizado:
tester@linux:~> stat /etc/profile --filesystem File: "/etc/profile" ID: 0 Namelen: 255 Type: reiserfs Block size: 4096 Fundamental block size: 4096 Blocks: Total: 2622526 Free: 1809771 Available: 1809771 Inodes: Total: 0 Free: 0

6.4 Dispositivos USB: lsusb


O comando lsusb lista todos os dispositivos USB. Com a opo -v, imprima uma lista mais detalhada. As informaes detalhadas so lidas do diretrio /proc/bus/ usb/. A seguir est a sada de lsusb com os seguintes dispositivos USB anexados: hub, dispositivo de memria, disco rgido e um mouse.
linux:/ # lsusb Bus 004 Device 007: ID 0ea0:2168 2.0 / Astone USB Drive Bus 004 Device 006: ID 04b4:6830 Adapter Bus 004 Device 005: ID 05e3:0605 Bus 004 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000:0000 Bus 002 Device 001: ID 0000:0000 Bus 001 Device 005: ID 046d:c012 Bus 001 Device 001: ID 0000:0000 Ours Technology, Inc. Transcend JetFlash \ Cypress Semiconductor Corp. USB-2.0 IDE \ Genesys Logic, Inc.

Logitech, Inc. Optical Mouse

6.5 Informaes sobre um dispositivo SCSI: scsiinfo


O comando scsiinfo lista informaes sobre um dispositivo SCSI. Com a opo -l, liste todos os dispositivos SCSI conhecidos pelo sistema (informaes semelhantes so obtidas com o comando lsscsi). Veja abaixo a sada de scsiinfo -i /dev/sda, que fornece informaes sobre o disco rgido. A opo -a fornece ainda mais informaes.

164

Referncia

linux:/ # scsiinfo -i /dev/sda Inquiry command --------------Relative Address 0 Wide bus 32 0 Wide bus 16 1 Synchronous neg. 1 Linked Commands 1 Command Queueing 1 SftRe 0 Device Type 0 Peripheral Qualifier 0 Removable? 0 Device Type Modifier 0 ISO Version 0 ECMA Version 0 ANSI Version 3 AENC 0 TrmIOP 0 Response Data Format 2 Vendor: FUJITSU Product: MAS3367NP Revision level: 0104A0K7P43002BE

A opo -d exibe uma lista de defeitos com duas tabelas de blocos defeituosos de um disco rgido: primeiro, o oferecido pelo fornecedor (tabela do fabricante) e, depois, a lista de blocos deficientes que apareceu na operao (tabela de crescimento). Se o nmero de entradas da tabela de crescimento aumentar, convm substituir o disco rgido.

6.6 Processos: top


O comando top, que o acrnimo de "tabela de processos" em ingls, exibe uma lista de processos que so atualizados a cada dois segundos. Para finalizar o programa, pressione Q . O parmetro -n 1 finaliza o programa aps uma nica exibio da lista de processos. Veja abaixo um exemplo da sada do comando top -n 1:
tester@linux:~> top -n 1 top - 17:06:28 up 2:10, 5 users, load average: 0.00, 0.00, 0.00 Tasks: 85 total, 1 running, 83 sleeping, 1 stopped, 0 zombie Cpu(s): 5.5% us, 0.8% sy, 0.8% ni, 91.9% id, 1.0% wa, 0.0% hi, 0.0% si Mem: 515584k total, 506468k used, 9116k free, 66324k buffers Swap: 658656k total, 0k used, 658656k free, 353328k cached PID 1 2 3 USER root root root PR 16 34 10 NI 0 19 -5 VIRT 700 0 0 RES 272 0 0 SHR 236 0 0 S %CPU %MEM S 0.0 0.1 S 0.0 0.0 S 0.0 0.0 TIME+ 0:01.33 0:00.00 0:00.27 COMMAND init ksoftirqd/0 events/0

Utilitrios de monitoramento do sistema

165

4 5 11 12 472 473 475 474 681 839 923 1343 1587 1746 1752 2151 2165 2166 2171 2235 2289 2403 2709 2714

root root root root root root root root root root root root root root root root messageb root root root root root root root

10 10 10 20 20 15 11 15 10 10 13 10 20 15 15 16 16 15 16 15 16 23 19 16

-5 -5 -5 -5 0 0 -5 0 -5 -5 -4 -5 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 S 0 0 0 S 0 0 0 S 0 0 0 S 0 0 0 S 0 0 0 S 0 0 0 S 0 0 0 S 0 0 0 S 0 0 0 S 1712 552 344 S 0 0 0 S 0 0 0 S 0 0 0 S 0 0 0 S 1464 496 416 S 3340 1048 792 S 1840 752 556 S 1600 516 320 S 1736 800 652 S 4192 2852 1444 S 1756 600 524 S 2668 1076 944 S 1756 648 564 S

0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.1 0.2 0.1 0.1 0.2 0.6 0.1 0.2 0.1

0:00.01 0:00.00 0:00.05 0:00.00 0:00.00 0:00.06 0:00.00 0:00.07 0:00.01 0:00.02 0:00.67 0:00.00 0:00.00 0:00.00 0:00.00 0:00.00 0:00.64 0:00.01 0:00.00 0:00.10 0:02.05 0:00.00 0:00.00 0:00.56

khelper kthread kblockd/0 kacpid pdflush pdflush aio/0 kswapd0 kseriod reiserfs/0 udevd khubd shpchpd_event w1_control w1_bus_master1 acpid dbus-daemon syslog-ng klogd resmgrd hald hald-addon-acpi NetworkManagerD hald-addon-stor

Se voc pressionar F enquanto o comando top estiver em execuo, aparecer um menu no qual ser possvel mudar o formato da sada. O parmetro -U UID monitora apenas os processos associados a um usurio especfico. Substitua UID pelo ID do usurio. O comando top -U `id -u` retorna o UID do usurio na base do nome do usurio e exibe seus processos.

6.7 Lista de processos: ps


O comando ps gera uma lista de processos. A maioria dos parmetros deve ser escrita sem o sinal de subtrao. Consulte ps --help para obter uma ajuda breve ou a pgina de manual para ajuda ampla. Para listar todos os processos com informaes de linha de comando e usurio, use ps axu:
tester@linux:~> ps axu USER PID %CPU %MEM root 1 0.0 0.0 root 2 0.0 0.0 root 3 0.0 0.0 VSZ 696 0 0 RSS TTY 272 ? 0 ? 0 ? STAT START TIME COMMAND S 12:59 0:01 init [5] SN 12:59 0:00 [ksoftirqd/0] S< 12:59 0:00 [events/0]

166

Referncia

[...] tester 4047 0.0 6.0 158548 31400 ? Ssl 13:02 --debug /usr/lib/beagle/Best.exe --autostarted tester 4057 0.0 0.7 9036 3684 ? Sl 13:02 /opt/gnome/sbin/gnome-vfs-daemon --oaf-activate-iid=OAFIID:GNOME_VFS_Daemon_Factory --oa tester 4067 0.0 0.1 2204 636 ? S 13:02 /opt/gnome/lib/nautilus/mapping-daemon tester 4072 0.0 1.0 15996 5160 ? Ss 13:02 gnome-screensaver tester 4114 0.0 3.7 130988 19172 ? SLl 13:06 tester 4818 0.0 0.3 4192 1812 pts/0 Ss 15:59 tester 4959 0.0 0.1 2324 816 pts/0 R+ 16:17

0:06 mono-best \ 0:00 \

0:00 \ 0:00 \ 0:04 sound-juicer 0:00 -bash 0:00 ps axu

Para verificar quantos processos sshd esto sendo executados, use a opo -p junto com o comando pidof, que lista os IDs de processo dos processos determinados.
tester@linux:~> ps -p PID TTY STAT 3524 ? Ss 4813 ? Ss 4817 ? R `pidof sshd` TIME COMMAND 0:00 /usr/sbin/sshd -o PidFile=/var/run/sshd.init.pid 0:00 sshd: tester [priv] 0:00 sshd: tester@pts/0

A lista de processos pode ser formatada de acordo com suas necessidades. A opo -L retorna uma lista com todas as palavras-chave. Digite o comando a seguir para gerar uma lista de todos os processos classificados conforme o uso de memria:
tester@linux:~> ps ax --format pid,rss,cmd --sort rss PID RSS CMD 2 0 [ksoftirqd/0] 3 0 [events/0] 4 0 [khelper] 5 0 [kthread] 11 0 [kblockd/0] 12 0 [kacpid] 472 0 [pdflush] 473 0 [pdflush] [...] 4028 17556 nautilus --no-default-window --sm-client-id default2 4118 17800 ksnapshot 4114 19172 sound-juicer 4023 25144 gnome-panel --sm-client-id default1 4047 31400 mono-best --debug /usr/lib/beagle/Best.exe --autostarted 3973 31520 mono-beagled --debug /usr/lib/beagle/BeagleDaemon.exe \ --bg --autostarted

Utilitrios de monitoramento do sistema

167

6.8 rvore de processos: pstree


O comando pstree gera uma lista de processos na forma de rvore:
tester@linux:~> pstree init-+-NetworkManagerD |-acpid |-3*[automount] |-cron |-cupsd |-2*[dbus-daemon] |-dbus-launch |-dcopserver |-dhcpcd |-events/0 |-gpg-agent |-hald-+-hald-addon-acpi | `-hald-addon-stor |-kded |-kdeinit-+-kdesu---su---kdesu_stub---yast2---y2controlcenter | |-kio_file | |-klauncher | |-konqueror | |-konsole-+-bash---su---bash | | `-bash | `-kwin |-kdesktop---kdesktop_lock---xmatrix |-kdesud |-kdm-+-X | `-kdm---startkde---kwrapper [...]

O parmetro -p adiciona o ID do processo a um nome determinado. Para que as linhas de comando tambm sejam exibidas, use o parmetro -a:

6.9 Quem est fazendo o qu: w


Com o comando w, voc pode saber quem efetuou login no sistema e o que cada usurio est fazendo. Por exemplo:
tester@linux:~> w 16:33:03 up 3:33, 2 users, load average: 0.14, 0.06, 0.02 USER TTY LOGIN@ IDLE JCPU PCPU WHAT tester :0 16:33 ?xdm? 9.42s 0.15s /bin/sh /opt/kde3/bin/startkde tester pts/0 15:59 0.00s 0.19s 0.00s w

168

Referncia

Se algum usurio do sistema tiver efetuado login remotamente, o parmetro -f mostrar os computadores dos quais ele estabeleceu a conexo.

6.10 Uso da memria: free


O utilitrio free examina o uso da RAM. So mostrados detalhes da memria livre e da memria utilizada (em reas de troca):
ester@linux:~> free total Mem: 515584 -/+ buffers/cache: Swap: 658656 used 501704 94072 0 free 13880 421512 658656 shared 0 buffers 73040 cached 334592

As opes -b,-k,-m,-g mostram a sada em bytes, KB, MB ou GB, respectivamente. O parmetro -d delay assegura que a exibio seja atualizada a cada atraso segundos. Por exemplo, free -d 1.5 produz uma atualizao a cada 1,5 segundo.

6.11 Buffer do anel de kernel: dmesg


O kernel Linux mantm certas mensagens em um buffer em anel. Para ver essas mensagens, digite o comando dmesg:
$ dmesg [...] end_request: I/O error, dev fd0, sector 0 subfs: unsuccessful attempt to mount media (256) e100: eth0: e100_watchdog: link up, 100Mbps, half-duplex NET: Registered protocol family 17 IA-32 Microcode Update Driver: v1.14 <tigran@veritas.com> microcode: CPU0 updated from revision 0xe to 0x2e, date = 08112004 IA-32 Microcode Update Driver v1.14 unregistered bootsplash: status on console 0 changed to on NET: Registered protocol family 10 Disabled Privacy Extensions on device c0326ea0(lo) IPv6 over IPv4 tunneling driver powernow: This module only works with AMD K7 CPUs bootsplash: status on console 0 changed to on

Eventos mais antigos so registrados nos arquivos /var/log/messages e /var/ log/warn.

Utilitrios de monitoramento do sistema

169

6.12 Sistemas de arquivos e sua utilizao: mount, df e du


O comando mount mostra o sistema de arquivos (dispositivo e tipo) que est montado e seu ponto de montagem:
tester@linux:~> mount /dev/hda3 on / type reiserfs (rw,acl,user_xattr) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) udev on /dev type tmpfs (rw) devpts on /dev/pts type devpts (rw,mode=0620,gid=5) /dev/hda1 on /boot type ext2 (rw,acl,user_xattr) /dev/hda4 on /local type reiserfs (rw,acl,user_xattr) /dev/fd0 on /media/floppy type subfs (rw,nosuid,nodev,noatime,fs=floppyfss,procuid)

Obtenha informaes sobre a utilizao total dos sistemas de arquivos com o comando df. O parmetro -h (ou --human-readable) transforma a sada em um formato inteligvel para o usurio comum.
tester@linux:~> df -h Filesystem Size /dev/hda3 11G udev 252M /dev/hda1 16M /dev/hda4 27G Used Avail Use% Mounted on 3.2G 6.9G 32% / 104K 252M 1% /dev 6.6M 7.8M 46% /boot 34M 27G 1% /local

Exiba o tamanho total de todos os arquivos de um determinado diretrio e seus subdiretrios com o comando du. O parmetro -s suprime a sada de informaes detalhadas. -h novamente transforma os dados em forma legvel:
tester@linux:~> du -sh /local 1.7M /local

6.13 O sistema de arquivos /proc


O sistema de arquivos /proc um pseudossistema de arquivos no qual o kernel reserva informaes importantes na forma de arquivos virtuais. Por exemplo, exiba o tipo de CPU com este comando:
ester@linux:~> cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD

170

Referncia

cpu family model model name stepping cpu MHz cache size fdiv_bug [...]

: : : : : : :

6 8 AMD Athlon(tm) XP 2400+ 1 2009.343 256 KB no

A alocao e o uso de interrupes podem ser consultados com o seguinte comando:


tester@linux:~> cat /proc/interrupts CPU0 0: 3577519 XT-PIC timer 1: 130 XT-PIC i8042 2: 0 XT-PIC cascade 5: 564535 XT-PIC Intel 82801DB-ICH4 7: 1 XT-PIC parport0 8: 2 XT-PIC rtc 9: 1 XT-PIC acpi, uhci_hcd:usb1, ehci_hcd:usb4 10: 0 XT-PIC uhci_hcd:usb3 11: 71772 XT-PIC uhci_hcd:usb2, eth0 12: 101150 XT-PIC i8042 14: 33146 XT-PIC ide0 15: 149202 XT-PIC ide1 NMI: 0 LOC: 0 ERR: 0 MIS: 0

Alguns arquivos importantes e seu contedo: /proc/devices dispositivos disponveis /proc/modules mdulos kernel carregados /proc/cmdline linha de comando do kernel /proc/meminfo detalhes sobre a utilizao da memria /proc/config.gz arquivo de configurao gzip compactado do kernel executado atualmente

Utilitrios de monitoramento do sistema

171

Mais informaes esto disponveis no arquivo de texto /usr/src/linux/ Documentation/filesystems/proc.txt. Voc pode encontrar informaes sobre os processos em execuo nos diretrios /proc/NNN, onde NNN o ID do processo (PID) relevante. Cada processo pode encontrar suas prprias caractersticas em /proc/self/:
tester@linux:~> ls -l /proc/self lrwxrwxrwx 1 root root 64 2006-01-09 13:03 /proc/self -> 5356 tester@linux:~> ls -l /proc/self/ total 0 dr-xr-xr-x 2 tester users 0 2006-01-09 17:04 attr -r-------- 1 tester users 0 2006-01-09 17:04 auxv -r--r--r-- 1 tester users 0 2006-01-09 17:04 cmdline lrwxrwxrwx 1 tester users 0 2006-01-09 17:04 cwd -> /home/tester -r-------- 1 tester users 0 2006-01-09 17:04 environ lrwxrwxrwx 1 tester users 0 2006-01-09 17:04 exe -> /bin/ls dr-x------ 2 tester users 0 2006-01-09 17:04 fd -rw-r--r-- 1 tester users 0 2006-01-09 17:04 loginuid -r--r--r-- 1 tester users 0 2006-01-09 17:04 maps -rw------- 1 tester users 0 2006-01-09 17:04 mem -r--r--r-- 1 tester users 0 2006-01-09 17:04 mounts -rw-r--r-- 1 tester users 0 2006-01-09 17:04 oom_adj -r--r--r-- 1 tester users 0 2006-01-09 17:04 oom_score lrwxrwxrwx 1 tester users 0 2006-01-09 17:04 root -> / -rw------- 1 tester users 0 2006-01-09 17:04 seccomp -r--r--r-- 1 tester users 0 2006-01-09 17:04 smaps -r--r--r-- 1 tester users 0 2006-01-09 17:04 stat -r--r--r-- 1 tester users 0 2006-01-09 17:04 statm -r--r--r-- 1 tester users 0 2006-01-09 17:04 status dr-xr-xr-x 3 tester users 0 2006-01-09 17:04 task -r--r--r-- 1 tester users 0 2006-01-09 17:04 wchan

A atribuio de endereo de executveis e bibliotecas pode ser encontrada no arquivo maps:


tester@linux:~> cat /proc/self/maps 08048000-0804c000 r-xp 00000000 03:03 17753 0804c000-0804d000 rw-p 00004000 03:03 17753 0804d000-0806e000 rw-p 0804d000 00:00 0 b7d27000-b7d5a000 r--p 00000000 03:03 11867 /usr/lib/locale/en_GB.utf8/LC_CTYPE b7d5a000-b7e32000 r--p 00000000 03:03 11868 /usr/lib/locale/en_GB.utf8/LC_COLLATE b7e32000-b7e33000 rw-p b7e32000 00:00 0 b7e33000-b7f45000 r-xp 00000000 03:03 8837 b7f45000-b7f46000 r--p 00112000 03:03 8837 b7f46000-b7f48000 rw-p 00113000 03:03 8837 b7f48000-b7f4c000 rw-p b7f48000 00:00 0 b7f52000-b7f53000 r--p 00000000 03:03 11842 /usr/lib/locale/en_GB.utf8/LC_NUMERIC [...] /bin/cat /bin/cat [heap] \ \

/lib/libc-2.3.6.so /lib/libc-2.3.6.so /lib/libc-2.3.6.so \

172

Referncia

b7f5b000-b7f61000 r--s 00000000 03:03 9109 /usr/lib/gconv/gconv-modules.cache b7f61000-b7f62000 r--p 00000000 03:03 9720 /usr/lib/locale/en_GB.utf8/LC_IDENTIFICATION b7f62000-b7f76000 r-xp 00000000 03:03 8828 b7f76000-b7f78000 rw-p 00013000 03:03 8828 bfd61000-bfd76000 rw-p bfd61000 00:00 0 ffffe000-fffff000 ---p 00000000 00:00 0

\ \ /lib/ld-2.3.6.so /lib/ld-2.3.6.so [stack] [vdso]

6.13.1 procinfo
Informaes importantes do sistema de arquivos /proc so resumidas pelo comando procinfo:
tester@linux:~> procinfo Linux 2.6.15-rc5-git3-2-default (geeko@buildhost) (gcc 4.1.0 20051129) #1 Wed Dec 14 13:10:38 UTC 2005 1CPU [linux.suse.de] Memory: Mem: Swap: Total 515584 658656 Used 509472 0 Free 6112 658656 Shared 0 Buffers 73024

Bootup: Mon Jan user : 13476w nice : system: IOwait: hw irq: sw irq: idle : uptime: irq irq irq irq irq irq irq irq 0: 1: 2: 3: 4: 5: 6: 7:

9 12:59:08 2006 0,8%

Load average: 0.10 0.04 0.05 1/86 5406 page in : 442638 134950 70577 11696 1423622 0 0 3813145 2 rtc 1 acpi, uhci_hcd:usb1, 0 uhci_hcd:usb3 75905 uhci_hcd:usb2, eth0 101150 i8042 33733 ide0 157045 ide1 disk 1: 20125r

00:02:070,98

00:02:200,91 0,9% page out: 0:00:42.93 0.3% page act: 0:01:25.40 0.6% page dea: 0:00:08.94 0.1% page flt: 00:00:010,29 0.0% swap in : 04:06:300,54 97,3% swap out: 4:13:20.72 context : 3799268 timer 130 i8042 0 cascade [4] 8 8 564535 Intel 82801DB-ICH4 9 1 parport0 [3] irq 8: irq 9:

irq 10: irq 11: irq 12: irq 14: irq 15:

Para ver todas as informaes, use o parmetro -a. O parmetro -nN produz atualizaes das informaes a cada N segundos. Nesse caso, termine o programa pressionando Q .

Utilitrios de monitoramento do sistema

173

Por padro, so exibidos valores cumulativos. O parmetro -d produz valores diferenciais. procinfo -dn5 exibe os valores modificados nos ltimos cinco segundos:

6.14 Recursos PCI: lspci


O comando lspci lista os recursos PCI:
linux:~ # lspci 00:00.0 Host bridge: Intel Corporation 82845G/GL[Brookdale-G]/GE/PE \ DRAM Controller/Host-Hub Interface (rev 01) 00:01.0 PCI bridge: Intel Corporation 82845G/GL[Brookdale-G]/GE/PE \ Host-to-AGP Bridge (rev 01) 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM \ (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01) 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM \ (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01) 00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM \ (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01) 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM \ (ICH4/ICH4-M) USB2 EHCI Controller (rev 01) 00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 81) 00:1f.0 ISA bridge: Intel Corporation 82801DB/DBL (ICH4/ICH4-L) \ LPC Interface Bridge (rev 01) 00:1f.1 IDE interface: Intel Corporation 82801DB (ICH4) IDE \ Controller (rev 01) 00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) \ SMBus Controller (rev 01) 00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM \ (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01) 01:00.0 VGA compatible controller: Matrox Graphics, Inc. G400/G450 (rev 85) 02:08.0 Ethernet controller: Intel Corporation 82801DB PRO/100 VE (LOM) \ Ethernet Controller (rev 81)

Usar -v resulta em uma lista mais detalhada:


linux:~ # lspci [...] 02:08.0 Ethernet controller: Intel Corporation 82801DB PRO/100 VE (LOM)\ Ethernet Controller (rev 81) Subsystem: Fujitsu Siemens Computer GmbH: Unknown device 1001 Flags: bus master, medium devsel, latency 66, IRQ 11 Memory at d1000000 (32-bit, non-prefetchable) [size=4K] I/O ports at 3000 [size=64] Capabilities: [dc] Power Management version 2

174

Referncia

Informaes sobre a resoluo de nomes do dispositivo podem ser obtidas do arquivo /usr/share/pci.ids. Os IDs do PCI no listados nesse arquivo so marcados como Unknown device (arquivo desconhecido). O parmetro -w produz todas as informaes que poderiam ser consultadas pelo programa. Para ver valores puramente numricos, use o parmetro -n.

6.15 Chamadas do sistema de uma execuo de programa: strace


O utilitrio strace permite rastrear todas as chamadas do sistema de um processo em execuo. Digite o comando normalmente, adicionando strace ao incio da linha:
tester@linux:~> strace ls execve("/bin/ls", ["ls"], [/* 61 vars */]) = 0 uname({sys="Linux", node="linux", ...}) = 0 brk(0) = 0x805c000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=89696, ...}) = 0 mmap2(NULL, 89696, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7ef2000 close(3) = 0 open("/lib/librt.so.1", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\36\0"..., 512) \ = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=36659, ...}) = 0 [...] stat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) \ = 0xb7ca7000 write(1, "bin Desktop Documents music\tM"..., 55bin Desktop Documents \ \ music Music public_html tmp ) = 55 close(1) = 0 munmap(0xb7ca7000, 4096) = 0 exit_group(0) = ?

Por exemplo, para rastrear todas as tentativas de abertura de um arquivo especfico, use:
tester@linux:~> strace -e open ls .bashrc open("/etc/ld.so.cache", O_RDONLY) = open("/lib/librt.so.1", O_RDONLY) = open("/lib/libacl.so.1", O_RDONLY) = open("/lib/libc.so.6", O_RDONLY) = open("/lib/libpthread.so.0", O_RDONLY) = 3 3 3 3 3

Utilitrios de monitoramento do sistema

175

open("/lib/libattr.so.1", O_RDONLY) [...]

= 3

Para rastrear todos os processos-filho, use o parmetro -f. O comportamento e o formato da sada de strace podem ser amplamente controlados. Para obter informaes, consulte man strace.

6.16 Chamadas da biblioteca de uma execuo de programa: ltrace


O comando ltrace permite rastrear as chamadas de biblioteca de um processo. Esse comando usado de forma semelhante a strace. O parmetro -c gera o nmero e a durao das chamadas de biblioteca ocorridas:
tester@linux:~> ltrace -c find ~ % time seconds usecs/call calls ------ ----------- ----------- --------34.37 6.758937 245 27554 33.53 6.593562 788 8358 12.67 2.490392 144 17212 11.97 2.353302 239 9845 2.37 0.466754 27 16716 1.18 0.231189 27 8531 1.17 0.230765 27 8358 [...] 0.00 0.000036 36 1 ------ ----------- ----------- --------100.00 19.662715 105717 function -------------------__errno_location __fprintf_chk strlen readdir64 __ctype_get_mb_cur_max strcpy memcpy textdomain -------------------total

6.17 Especificao da biblioteca necessria: ldd


O comando ldd pode ser usado para descobrir as bibliotecas que carregariam o executvel dinmico especificado como argumento:
tester@linux:~> ldd /bin/ls linux-gate.so.1 => (0xffffe000) librt.so.1 => /lib/librt.so.1 (0xb7f97000) libacl.so.1 => /lib/libacl.so.1 (0xb7f91000) libc.so.6 => /lib/libc.so.6 (0xb7e79000) libpthread.so.0 => /lib/libpthread.so.0 (0xb7e67000)

176

Referncia

/lib/ld-linux.so.2 (0xb7fb6000) libattr.so.1 => /lib/libattr.so.1 (0xb7e63000)

Binrios estticos no precisam de bibliotecas dinmicas:


tester@linux:~> ldd /bin/sash not a dynamic executable tester@linux:~> file /bin/sash /bin/sash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.4, statically linked, for GNU/Linux 2.6.4, stripped

6.18 Informaes adicionais sobre binrios ELF


O contedo dos binrios pode ser lido com o utilitrio readelf. Isso tambm funciona com arquivos ELF criados para outras arquiteturas de hardware:
tester@linux:~> readelf --file-header /bin/ls ELF Header: Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Class: ELF32 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: EXEC (Executable file) Machine: Intel 80386 Version: 0x1 Entry point address: 0x8049b60 Start of program headers: 52 (bytes into file) Start of section headers: 81112 (bytes into file) Flags: 0x0 Size of this header: 52 (bytes) Size of program headers: 32 (bytes) Number of program headers: 9 Size of section headers: 40 (bytes) Number of section headers: 30 Section header string table index: 29

6.19 Comunicao entre processos: ipcs


O comando ipcs produz uma lista dos recursos IPC em uso: Utilitrios de monitoramento do sistema 177

------ Shared Memory Segments -------key shmid owner perms 0x00000000 58261504 tester 600 0x00000000 58294273 tester 600 0x00000000 83886083 tester 666 0x00000000 83951622 tester 666 0x00000000 83984391 tester 666 0x00000000 84738056 root 644 ------ Semaphore Arrays -------key semid owner perms 0x4d038abf 0 tester 600 ------ Message Queues -------key msqid owner

bytes 393216 196608 43264 192000 282464 151552

nattch 2 2 2 2 2 2

status dest dest

dest

nsems 8

perms

used-bytes

messages

6.20 Medio do tempo com time


O tempo usado pelos comandos pode ser determinado com o utilitrio time. Esse utilitrio est disponvel em duas verses: como shell interno e como programa (/usr/bin/time).
tester@linux:~> time find . > /dev/null real user sys 0m4.051s 0m0.042s 0m0.205s

178

Referncia

Parte 3. Sistema

Aplicativos de 32 bits e 64 bits em um ambiente de sistema de 64 bits


O SUSE Linux est disponvel para vrias plataformas de 64 bits. Isso no significa necessariamente que todos os aplicativos includos tenham sido transpostos para plataformas de 64 bits. O SUSE Linux suporta o uso de aplicativos de 32 bits em um ambiente de sistema de 64 bits. Este captulo oferece uma breve viso geral de como este suporte implementado em plataformas Linux de 64 bits. Ele explica como aplicativos de 32 bits so executados (suporte do tempo de execuo) e como aplicativos de 32 bits devem ser compilados para que possam ser executados em ambientes de sistema de 32 bits e 64 bits. Alm disso, voc vai encontrar informaes sobre API do Kernel e uma explicao sobre como aplicativos de 32 bits podem ser executados com um kernel de 64 bits. O SUSE Linux para as plataformas de 64 bits AMD64 e EM64T foi criado para que os aplicativos de 32 bits existentes sejam executados no ambiente de 64 bits sem necessidade de mudanas. Este suporte significa que voc pode continuar a usar os aplicativos de 32 bits de sua preferncia sem esperar que uma porta de 64 bits correspondente se torne disponvel.

7.1 Suporte ao tempo de execuo


IMPORTANTE: Conflitos entre verses de aplicativos Se um aplicativo estiver disponvel para ambientes de 32 bits e de 64 bits, a instalao paralela das duas verses provavelmente resultar em problemas. Em tais casos, opte pela instalao e pelo uso de uma das duas verses.

Aplicativos de 32 bits e 64 bits em um ambiente de sistema de 64 bits

181

Para que os aplicativos sejam executados corretamente, cada um deles requer uma variedade de bibliotecas. Infelizmente, os nomes das verses de 32 bits e 64 bits das bibliotecas so idnticos. Eles devem ser diferenciados uns dos outros de outra forma. Para obter compatibilidade com a verso de 32 bits, as bibliotecas so armazenadas no mesmo local no sistema e no ambiente de 32 bits. A verso de 32 bits de libc.so.6 est localizada em /lib/libc.so.6 nos ambientes de 32 bits e 64 bits. Todos os arquivos de objetos e todas as bibliotecas de 64 bits esto localizados em diretrios denominados lib64. Os arquivos de objetos de 64 bits que normalmente so encontrados em /lib, /usr/lib e usr/X11R6/lib agora esto em /lib64, /usr/lib64 e /usr/X11R6/lib64. Isso significa que h espao para bibliotecas de 32 bits em /lib /usr/lib e /usr/X11R6/lib, de forma que os nomes de arquivo das duas verses possam permanecer inalterados. Nenhum subdiretrio dos diretrios de objetos cujo contedo de dados no dependa do tamanho da palavra ser movido. Por exemplo, as fontes X11 ainda se encontram no local habitual, em /usr/X11R6/lib/X11/fonts. Este esquema est em conformidade com a LSB (Linux Standards Base - Base de padres Linux) e com o FHS (File System Hierarchy Standard - Padro de hierarquia de sistema de arquivos).

7.2 Desenvolvimento de software


Uma cadeia de ferramentas de desenvolvimento biarch permite a gerao de objetos de 32 bits e 64 bits. O padro compilar objetos de 64 bits. possvel gerar objetos de 32 bits usando sinalizadores especiais. Para GCC, o sinalizador especial -m32. Todos os arquivos de cabealho devem ser escritos em um formato independente de arquitetura. As bibliotecas de 32 bits e 64 bits instaladas devem ter uma API (application programming interface - interface de programao de aplicativo) que corresponda aos arquivos de cabealho instalados. O ambiente SUSE normal projetado de acordo com esse princpio. No caso de bibliotecas atualizadas manualmente, solucione esses problemas por conta prpria.

182

Referncia

7.3 Compilao de software em plataformas biarch


Para desenvolver binrios para outra arquitetura em uma arquitetura biarch, as respectivas bibliotecas da segunda arquitetura devem ser instaladas adicionalmente. Esses pacotes so chamados de rpmname-32bit. Voc tambm precisar dos respectivos cabealhos e bibliotecas dos pacotes rpmname-devel e das bibliotecas de desenvolvimento para a segunda arquitetura de rpmname-devel-32bit. A maioria dos programas de cdigo-fonte aberto usa uma configurao de programa baseada em autoconf. Para usar o autoconf com o objetivo de configurar um programa para a segunda arquitetura, sobregrave as configuraes do compilador normal e do linker de autocong executando o script configure com variveis de ambiente adicionais. Os exemplos a seguir se referem a um sistema AMD64 ou EM64T com x86 como segunda arquitetura: 1. Defina autoconf para usar o compilador de 32 bits:
CC="gcc -m32"

2.

Instrua o linker a processar objetos de 32 bits:


LD="ld -m elf64_i386"

3.

Defina o assembler para gerar objetos de 32 bits:


AS="gcc -c -m32"

4.

Determine que as bibliotecas para libtool e as demais venham de /usr/ lib:


LDFLAGS="-L/usr/lib"

5.

Determine que as bibliotecas sejam armazenadas no subdiretrio lib:


--libdir=/usr/lib

6.

Determine que as bibliotecas X de 32 bits sejam usadas:

Aplicativos de 32 bits e 64 bits em um ambiente de sistema de 64 bits

183

--x-libraries=/usr/X11R6/lib/

Nem todas essas variveis so necessrias para todos os programas. Adapte-as para o respectivo programa.
CC="gcc -m64" \ LDFLAGS="-L/usr/lib64;" \ .configure \ --prefix=/usr \ --libdir=/usr/lib64 make make install

7.4 Especificaes do kernel


Os kernels de 64 bits para AMD64 e EM64T oferecem uma ABI (application binary interface - interface binria de aplicativo) de kernel de 32 bits e de 64 bits. A de 64 bits idntica ABI do kernel de 32 bits correspondente. Isso significa que o aplicativo de 32 bits pode se comunicar com o kernel de 64 bits da mesma forma que com o kernel de 32 bits. A emulao de 32 bits de chamadas do sistema para um kernel de 64 bits no suporta vrias APIs usadas pelos programas do sistema. Isso depende da plataforma. Por esta razo, alguns aplicativos, como lspci ou os programas de administrao LVM, devem ser compilados como programas de 64 bits para funcionar adequadamente. Um kernel de 64 bits s pode carregar mdulos de kernel de 64 bits especificamente compilados para esse kernel. No possvel usar mdulos de kernel de 32 bits. DICA Alguns aplicativos requerem mdulos separados carregveis pelo kernel. Se voc pretende usar um aplicativo de 32 bits desse tipo em um ambiente de sistema de 64 bits, entre em contato com o provedor do aplicativo e do SUSE para verificar se a verso de 64 bits do mdulo carregvel pelo kernel e a verso compilada de 32 bits da API do kernel esto disponveis para esse mdulo.

184

Referncia

Inicializando e configurando um sistema Linux


A inicializao de um sistema Linux envolve vrios componentes. Este captulo descreve os princpios subjacentes e reala os componentes envolvidos, alm de abordar o conceito de runlevels e a configurao do sistema SUSE com osysconfig.

8.1 Processo de inicializao do Linux


O processo de inicializao do Linux consiste em vrios estgios, e cada um deles representado por outro componente. A lista a seguir resume o processo de inicializao e apresenta todos os principais componentes envolvidos. 1. BIOS Depois que o computador desligado, o BIOS inicializa a tela e o teclado e testa a memria principal. At esse estgio, a mquina no acessa nenhuma mdia de armazenamento em massa. Em seguida, as informaes sobre a data e o horrio atuais e sobre os perifricos mais importantes so carregadas dos valores do CMOS. Quando o primeiro disco rgido e sua geometria so reconhecidos, o controle do sistema passa do BIOS para o carregador de boot. Carregador de boot O primeiro setor de dados fsico de 512 bytes do primeiro disco rgido carregado na memria principal e o carregador de boot existente no incio desse setor assume o controle. Os comandos executados pelo carregador de boot determinam a parte restante do processo de boot. Desse modo, os primeiros 512 bytes do primeiro disco rgido so chamados de MBR (Master Boot Record - Registro Mestre de Inicializao). O carregador de boot passa o controle para o sistema operacional real, nesse caso, o kernel Linux. Mais

2.

Inicializando e configurando um sistema Linux

185

informaes sobre o GRUB, o carregador de boot do Linux, podem ser encontradas no Captulo 9, O Carregador de Boot (p 201). 3. Kernel e initramfs Para passar o controle do sistema, o carregador de boot carrega na memria o kernel e um sistema de arquivos inicial baseado em RAM (initramfs). O contedo do ramfs inicial pode ser usado diretamente pelo kernel. O init ramfs contm um pequeno executvel chamado init que realiza a montagem do sistema de arquivos raiz. Em verses anteriores do SUSE Linux, essas tarefas eram realizadas pelo initrd e linuxrc, respectivamente. Para obter mais informaes sobre o initramfs, consulte a Seo 8.1.1, initramfs (p 186). init no initramfs Este programa executa todas as aes necessrias para montar o sistema de arquivos raiz adequado, por exemplo, fornecer a funcionalidade de kernel para o sistema de arquivos e os drivers de dispositivo necessrios aos controladores de armazenamento em massa com udev. Uma vez encontrado o sistema de arquivos raiz, ele verificado quanto a erros e montado. Se esse procedimento for bem-sucedido, o initramfs ser limpo e o programa init no sistema de arquivos raiz ser executado. Para obter mais informaes sobre o init, consulte a Seo 8.1.2, init no initramfs (p 187). H mais informaes a respeito do udev no Captulo 12, Gerenciamento de dispositivo de kernel dinmico com udev (p 261). init O init realiza a inicializao do sistema atravs de diversos nveis, oferecendo funcionalidades diferentes. Ele descrito na Seo 8.2, O processo init (p 189).

4.

5.

8.1.1 initramfs
initramfs um pequeno arquivo cpio que pode ser carregado pelo kernel em um disco RAM. Ele fornece um ambiente Linux mnimo que permite a execuo de programas antes da montagem do sistema de arquivos raiz. Esse ambiente carregado na memria pelas rotinas de BIOS e no tm requisitos de hardware especficos, alm de memria suficiente. O initramfs deve sempre fornecer um executvel chamado init que deve executar o programa init no sistema de arquivos raiz para a continuao do processo de boot. Antes da montagem do sistema de arquivos raiz e a inicializao do sistema operacional, o kernel precisa dos drivers correspondentes para acessar o dispositivo em que o sistema de arquivos raiz est localizado. Esses drivers podem incluir drivers especiais para

186

Referncia

determinados tipos de unidades de disco rgido ou at drivers de rede para acesso a um sistema de arquivos de rede. Os mdulos necessrios para o sistema de arquivos raiz podem ser carregados pelo init no initramfs. Aps os mdulos serem carregados, o udev fornece ao initramfs os dispositivos necessrios. O initramfs est disponvel durante todo o processo de boot. Assim, possvel manipular todos os eventos de dispositivo gerados durante o boot. Se voc precisar mudar o hardware (discos rgidos) em um sistema instalado e esse hardware necessitar da existncia de diversos drivers no kernel durante o boot, ser necessrio atualizar o initramfs. Para isso, basta chamar o mkinitrd, o que tambm era feito no initrd, predecessor do initramfs. A chamada de mkinitrd sem argumentos cria um initramfs. A chamada de mkinitrd -R cria um initrd. No SUSE Linux, os mdulos a serem carregados so especificados pela varivel INITRD_MODULES em /etc/sysconfig/kernel. Aps a instalao, essa varivel definida automaticamente com o valor correto. Os mdulos so carregados na mesma ordem em que so exibidos em INITRD_MODULES. Isso ser especialmente importante se vrios drivers SCSI forem usados, pois, caso contrrio, os nomes dos discos rgidos seriam mudados. Em suma, seria suficiente apenas carregar os drivers necessrios para acessar o sistema de arquivos raiz. Contudo, todos os drivers SCSI necessrios instalao so carregados por meio do initramfs ou initrd porque o carregamento posterior poderia ser problemtico. IMPORTANTE: Atualizando o initramfs ou o initrd O carregador de boot carrega o initramfs ou initrd da mesma maneira que o kernel. No necessrio reinstalar o GRUB aps a atualizao do initramfs ou initrd, pois o GRUB procura o arquivo correto no diretrio durante a inicializao.

8.1.2 init no initramfs


O principal objetivo do init no initramfs preparar a montagem do sistema de arquivos raiz e o acesso a este. Dependendo da configurao do sistema, o init responsvel pelas tarefas a seguir. Carregamento de mdulos Kernel Dependendo da configurao do seu hardware, drivers especiais podem ser necessrios para acessar os componentes de hardware do computador (sendo que o componente mais importante a unidade de disco rgido). Para acessar o sistema Inicializando e configurando um sistema Linux 187

de arquivos raiz final, o kernel precisa carregar os drivers adequados do sistema de arquivos. Fornecendo arquivos de bloco especiais Para cada mdulo carregado, o kernel gera eventos de dispositivo. O udev gerencia esses eventos e gera os arquivos especiais de dispositivo necessrios em um sistema de arquivos RAM em /dev. Sem esses arquivos especiais, o sistema de arquivos no estaria acessvel. Gerenciamento de configuraes RAID e LVM Se voc tiver configurado o sistema para armazenar o sistema de arquivos raiz na RAID ou LVM, o init configurar a LVM ou a RAID para permitir acesso posterior ao sistema de arquivos raiz. Informaes sobre a RAID podem ser encontradas na Seo 2.2, Configurao de RAID de software (p 63). Informaes sobre a LVM podem ser encontradas na Seo 2.1, Configurao da LVM (p 55). Gerenciamento de conexes de rede Se voc tiver configurado o sistema para usar um sistema de arquivos raiz montado em rede (via NFS), o init dever ter certeza de que os drivers de rede corretos foram carregados e de que estejam configurados para permitir acesso ao sistema de arquivos raiz. Quando o init chamado durante a primeira inicializao como parte do processo de instalao, suas tarefas so diferentes daquelas mencionadas anteriormente: Localizao da mdia de instalao Quando o processo de instalao iniciado, a mquina carrega um kernel de instalao e um initrd especial com o instalador do YaST proveniente da mdia de instalao. O instalador do YaST, que executado em um sistema de arquivos RAM, precisa ter informaes sobre a localizao da mdia de instalao para acess-la e instalar o sistema operacional. Inicializao do reconhecimento de hardware e carregamento dos mdulos kernel adequados Como mencionado na Seo 8.1.1, initramfs (p 186), o processo de boot inicia com um conjunto mnimo de drivers que pode ser usado com a maioria das configuraes de hardware. O init inicia um processo de explorao de hardware que determina o conjunto de drivers adequado para sua configurao de hardware. Esses valores so posteriormente gravados em INITRD_MODULES no /etc/ sysconfig/kernel a fim de habilitar qualquer processo de boot subsequente

188

Referncia

para usar um initrd personalizado ou em um arquivo /etc/sysconfig/ hardware/hwconfig-* se o dispositivo no for necessrio durante o processo de boot. Durante o processo de instalao, o init carrega esse conjunto de mdulos. Carregamento do sistema de instalao ou do sistema de recuperao Depois que o hardware for reconhecido adequadamente, os drivers adequados forem carregados e o udev tiver criado os arquivos especiais de dispositivo, o init iniciar o sistema de instalao, que contm o instalador do YaST ou o sistema de recuperao. Inicializao do YaST Por fim, o init inicia o YaST que, por sua vez, inicia a instalao do pacote e a configurao do sistema.

8.2 O processo init


O programa init o processo com nmero de ID 1. Ele responsvel pela inicializao do sistema da maneira necessria e, alm disso, tem uma funo especial. Ele iniciado diretamente pelo kernel e resiste ao sinal 9, que normalmente elimina os processos. Todos os outros programas so iniciados diretamente pelo init ou por um de seus processos-filho. O init configurado centralmente no arquivo /etc/inittab em que os runlevels so definidos (consulte a Seo 8.2.1, Runlevels (p 189)). O arquivo tambm especifica os servios e os daemons disponveis em cada um dos nveis. Dependendo das entradas em /etc/inittab, vrios scripts so executados pelo init. Para fins de clareza, esses scripts, chamados scripts init, residem no diretrio /etc/init.d (consulte a Seo 8.2.2, Scripts Init (p 192)). Todo o processo de inicializao e encerramento do sistema mantido pelo init. Desse ponto de vista, o kernel pode ser considerado um processo em segundo plano cuja tarefa manter todos os outros processos e ajustar o horrio da CPU e o acesso ao hardware, de acordo com as solicitaes de outros programas.

8.2.1 Runlevels
No Linux, os runlevels definem como o sistema iniciado e quais servios esto disponveis no sistema em execuo. Aps a inicializao, o sistema iniciado conforme Inicializando e configurando um sistema Linux 189

definido em /etc/inittab na linha initdefault. Normalmente, 3 ou 5. Consulte a Tabela 8.1, Runlevels disponveis (p 190). Como alternativa, possvel especificar o runlevel durante a inicializao (no prompt, por exemplo). Os parmetros que no forem avaliados diretamente pelo prprio kernel sero passados para o init. Tabela 8.1 Runlevel 0 S Runlevels disponveis Descrio Desligamento do sistema Modo de usurio nico; do prompt de inicializao, somente com mapeamento de teclado americano Modo de usurio nico Modo multiusurio local sem rede remota (NFS, etc.) Modo multiusurio completo com rede No usado Modo multiusurio completo com rede e gerenciador de vdeo X KDM, GDM ou XDM Reinicializao do sistema

1 2 3 4 5

IMPORTANTE: Evite o Nvel de execuo 2 com uma partio montada via NFS Voc no dever usar o nvel de execuo 2 se seu sistema montar uma partio como /usr atravs do NFS. O sistema pode comportar-se de forma inesperada se as bibliotecas ou arquivos de programa estiverem ausentes pois o servio NFS no est disponvel no nvel de execuo 2 (modo multiusurio local sem rede remota). Para mudar os nveis de execuo durante a execuo do sistema, digite telinit e o nmero correspondente como um argumento. Somente o administrador do sistema

190

Referncia

pode fazer isso. A lista a seguir resume os comandos mais importantes na rea de runlevel. telinit 1 ou shutdown now O sistema muda para o modo de usurio nico. Esse modo usado para manuteno do sistema e tarefas de administrao. telinit 3 Todos os programas e servios essenciais (incluindo a rede) so iniciados, e os usurios comuns podem efetuar login e trabalhar no sistema sem um ambiente grfico. telinit 5 O ambiente grfico habilitado. Geralmente um gerenciador de exibio como XDM, GDM ou KDM iniciado. Se o login automtico estiver habilitado, o usurio local ser conectado ao gerenciador de janelas pr-selecionado (GNOME ou KDE ou qualquer outro gerenciador de janelas). telinit 0 ou shutdown -h now O sistema desligado. telinit 6 ou shutdown -r now O sistema desligado e, em seguida, reinicializado. Runlevel 5 o runlevel padro em todas as instalaes padro do SUSE Linux. solicitado o login dos usurios com uma interface grfica ou o usurio padro est conectado automaticamente. Se o runlevel padro for 3, o Sistema Windows X dever ser configurado adequadamente, conforme descrito no Captulo 14, O sistema X Window (p 281), antes que o runlevel seja alternado para 5. Se isso for feito, verifique se o sistema funciona da maneira desejada, digitando telinit 5. Se tudo ocorrer conforme o esperado, voc poder usar o YaST para definir o runlevel padro como 5. Geralmente, h duas situaes quando os runlevels so mudados. Primeiro, os scripts de parada do runlevel atual so iniciados, fechando alguns programas essenciais ao runlevel atual. Em seguida, os scripts do novo runlevel so iniciados. Na maioria dos casos, vrios programas so iniciados. Por exemplo, ocorre o seguinte quando o runlevel 3 muda para 5: 1. O administrador (root) solicita que o init mude para um nvel de execuo diferente digitando telinit 5.

Inicializando e configurando um sistema Linux

191

2. 3.

O init consulta seu arquivo de configurao (/etc/inittab) e determina se ele deve iniciar /etc/init.d/rc com o novo runlevel como parmetro. O rc chama todos os scripts de parada do runlevel atual, mas somente aqueles para os quais no h script de incio no novo runlevel. Neste exemplo, todos os scripts residem em /etc/init.d/rc3.d (o runlevel antigo era 3) e iniciam com K. O nmero depois de K especifica a ordem de incio, pois algumas dependncias devem ser consideradas. Os scripts do novo runlevel so os ltimos a serem iniciados. Neste exemplo, eles esto em /etc/init.d/rc5.d e comeam com S. O mesmo procedimento relativo ordem em que eles foram iniciado se aplica nesse caso.

4.

Ao mudar para o mesmo runlevel que o atual, o init somente verifica as mudanas em /etc/inittab e inicia as etapas adequadas, por exemplo, para iniciar um getty em outra interface. A mesma funcionalidade pode ser obtida com o comando telinit q.

8.2.2 Scripts Init


H dois tipos de scripts em /etc/init.d: Scripts executados diretamente pelo init Isso s ocorrer durante o processo de boot ou se um encerramento imediato do sistema for iniciado (falha de energia ou pressionamento de Ctrl + Alt + Del ). A execuo desses scripts definida em /etc/inittab. Scripts executados indiretamente pelo init So executados durante a mudana do runlevel e sempre chamam o script master /etc/init.d/rc, que garante a ordem correta dos scripts relevantes. Todos os scripts esto localizados em /etc/init.d. Scripts que so executados durante o boot so chamados atravs de links simblicos de /etc/init.d/boot .d. Os scripts para mudana do nvel de execuo so chamados atravs de links simblicos em um dos subdiretrios (/etc/init.d/rc0.d para /etc/init.d/ rc6.d). Isso s serve para fins de clareza, alm de evitar scripts duplicados se forem usados em vrios runlevels. Como todos os scripts podem ser executados como de incio ou de parada, eles devem entender os parmetros start e stop. Os scripts tambm entendem as opes restart, reload, force-reload e status. Essas diversas

192

Referncia

opes so explicadas na Tabela 8.2, Opes possveis do script init (p 193). Os scripts executados diretamente pelo init no tm esses links. Eles so executados independentemente do runlevel, quando necessrio. Tabela 8.2 Opo start stop restart Opes possveis do script init Descrio Inicia o servio. Pra o servio. Se o servio estiver sendo executado, o pra e o reinicia. Se no estiver, o inicia. Recarrega a configurao sem parar e reiniciar o servio. Recarrega a configurao se o servio suport-la. Caso contrrio, age como se restart tivesse sido ativado. Mostra o status atual do servio.

reload force-reload

status

Os links em cada subdiretrio especfico de runlevel possibilitam a associao de scripts a diferentes runlevels. Durante a instalao ou desinstalao de pacotes, esses links so adicionados e removidos com a ajuda do programa insserv (ou usando /usr/lib/ lsb/install_initd, que um script que chama esse programa). Consulte a pgina de manual insserv(8) para obter detalhes. Veja a seguir uma pequena apresentao dos scripts de boot e de parada iniciados primeiro e por ltimo, respectivamente, bem como uma explicao do script de manuteno. boot Executado na inicializao do sistema usando diretamente o init. independente do runlevel escolhido e s executado uma vez. Nesse momento, os sistemas de arquivos proc e pts so montados e o blogd (boot logging daemon) ativado. Se o sistema for inicializado pela primeira vez aps uma atualizao ou instalao, a configurao inicial do sistema ser iniciada.

Inicializando e configurando um sistema Linux

193

O daemon blogd um servio iniciado por boot e rc antes de qualquer outro. Ele ser parado depois que os acionamentos feitos pelos scripts acima (por meio da execuo de vrios subscripts, por exemplo) forem concludos. O blogd gravar a sada de tela no arquivo de registro /var/log/boot.msg, mas somente se e quando /var for montado para leitura-gravao. Caso contrrio, o blogd armazenar no buffer todos os dados de tela at que /var se torne disponvel. Obtenha mais informaes sobre o blogd na pgina de manual blogd(8). O script boot tambm responsvel pela inicializao de todos os scripts em /etc/init.d/boot.d com um nome iniciado com S. Nesse local, todos os sistemas de arquivos so verificados e os dispositivos de loop so configurados se necessrio. O horrio do sistema tambm definido. Se ocorrer um erro durante a verificao e o reparo automticos do sistema de arquivos, o administrador do sistema poder intervir aps digitar a senha raiz. Por fim, executado o script boot.local. boot.local Digite aqui comandos adicionais a serem executados na inicializao antes de mudar para um runlevel. Ele pode ser comparado ao AUTOEXEC.BAT em sistemas DOS. boot.setup Este script executado quando o modo de usurio nico mudado para outro runlevel e responsvel por vrias configuraes bsicas, como o layout do teclado e a inicializao dos consoles virtuais. halt Este script executado somente durante a mudana para o nvel de execuo 0 ou 6. Ele executado como halt ou reboot. O modo como halt chamado determina se o sistema deve ser encerrado ou reinicializado. rc Este script chama os scripts de parada adequados do runlevel atual e os scripts de incio do runlevel recm-selecionado. Voc pode criar seus prprios scripts e integr-los facilmente no esquema descrito acima. Para obter instrues sobre como formatar, nomear e organizar scripts personalizados, consulte as especificaes do LSB e as pginas de manual do init, init.d e insserv. Alm disso, consulte as pginas de manual do startproc e killproc.

194

Referncia

ATENO: Scripts init defeituosos podem desligar o seu sistema Scripts init defeituosos podem travar sua mquina. Edite esses scripts com muito cuidado e, se possvel, submeta-os a testes detalhados no ambiente multiusurio. Algumas informaes teis sobre os scripts init podem ser encontradas na Seo 8.2.1, Runlevels (p 189). Para criar um script init personalizado para determinado programa ou servio, use o arquivo /etc/init.d/skeleton como gabarito. Grave uma cpia desse arquivo com o novo nome e edite o programa relevante e nomes de arquivos, caminhos e outros detalhes necessrios. Voc tambm pode precisar aprimorar o script com suas prprias partes, de modo que os acionamentos corretos sejam feitos pelo procedimento init. O bloco INIT INFO na parte superior uma parte necessria do script e deve ser editada. Consulte o Exemplo 8.1, Um bloco INIT INFO mnimo (p 195). Exemplo 8.1 Um bloco INIT INFO mnimo
### BEGIN INIT INFO # Provides: # Required-Start: # Required-Stop: # Default-Start: # Default-Stop: # Description: ### END INIT INFO FOO $syslog $remote_fs $syslog $remote_fs 3 5 0 1 2 6 Start FOO to allow XY and provide YZ

Na primeira linha do bloco INFO, aps Provides:, especifique o nome do programa ou servio controlado pelo script init. Nas linhas Required-Start: e Required-Stop:, especifique todos os servios que precisam ser iniciados ou parados antes de o prprio servio ser iniciado ou parado. Essas informaes so usadas posteriormente para gerar a numerao dos nomes de script, como encontrada nos diretrios de runlevel. Aps Default-Start: e Default-Stop:, especifique os runlevels em que o servio deve ser iniciado ou parado automaticamente. Por fim, para Description:, fornea uma breve descrio do servio em questo. Para criar os links dos diretrios de runlevel (/etc/init.d/rc?.d/) para os scripts correspondentes em /etc/init.d/, digite o comando insserv new-script-name. O programa insserv avalia o cabealho INIT INFO para criar os links necessrios para os scripts de incio e parada nos diretrios de runlevel (/etc/ init.d/rc?.d/). O programa tambm se encarrega da ordem correta de incio e parada para cada runlevel, incluindo os nmeros necessrios nos nomes desses links.

Inicializando e configurando um sistema Linux

195

Se voc preferir uma ferramenta grfica para criar esses links, use o editor de runlevel fornecido pelo YaST, como descrito na Seo 8.2.3, Configurando servios do sistema (runlevel) com o YaST (p 196). Se um script j existir em /etc/init.d/, deve ser integrado ao esquema de runlevel existente. Crie os links nos diretrios de runlevel imediatamente com insserv ou por meio do servio correspondente no editor de runlevel do YaST. As mudanas sero aplicadas durante a prxima reinicializao, e o novo servio ser iniciado automaticamente. No defina esses links manualmente. Se houver algum erro no bloco INFO, surgiro problemas quando insserv for executado posteriormente para algum outro servio. O servio adicionado manualmente ser removido com a prxima execuo de insserv.

8.2.3 Configurando servios do sistema (runlevel) com o YaST


Depois que o mdulo YaST iniciado com YaST Sistema Servios do Sistema (Runlevel), ele exibe uma viso geral que lista todos os servios disponveis e o status atual de cada um deles (desabilitado ou habilitado). Decida se o mdulo deve ser usado no Modo Simples ou no Modo de Especialista. O Modo Simples padro deve ser suficiente na maior parte dos casos. A coluna esquerda mostra o nome do servio, a coluna ao centro indica seu status atual e a coluna direita fornece uma descrio resumida. Para o servio selecionado, uma descrio mais detalhada fornecida na parte inferior da janela. Para habilitar um servio, selecione-o na tabela e, em seguida, selecione Habilitar. As mesmas etapas se aplicam para desabilitar um servio.

196

Referncia

Figura 8.1 Servios do Sistema (Runlevel)

Para ter mais controle sobre os runlevels em que um servio iniciado ou parado ou para mudar o runlevel padro, selecione primeiro Modo de Especialista. O runlevel padro atual ou o initdefault (o runlevel em que o sistema inicializado por padro) exibido na parte superior. Normalmente, o runlevel padro de um sistema SUSE Linux o 5 (modo multiusurio completo com rede e X). Uma alternativa adequada poderia ser o runlevel 3 (modo multiusurio completo com rede). Esta caixa de dilogo do YaST permite a seleo de um dos runlevels (como listado na Tabela 8.1, Runlevels disponveis (p 190)) como o novo padro. Alm disso, use a tabela mostrada nessa janela para habilitar ou desabilitar servios e daemons individuais. A tabela lista os servios e daemons disponveis, mostra se eles esto habilitados no sistema e, se estiverem, para quais runlevels. Aps selecionar uma das linhas com o mouse, clique nas caixas de seleo que representam os runlevels (B, 0, 1, 2, 3, 5, 6 e S) para definir os runlevels em que o servio ou daemon selecionado deve estar em execuo. O runlevel 4 inicialmente indefinido para permitir a criao de um runlevel personalizado. Uma breve descrio do servio ou daemon selecionado no momento fornecida abaixo da viso geral da tabela. Com Iniciar, Parar ou Atualizar, decida se um servio deve ser ativado. Situao da Renovao verifica o status atual. Inicializar/Reinicializar permite selecionar se voc deseja aplicar as mudanas ao sistema ou restaurar as configuraes existentes antes

Inicializando e configurando um sistema Linux

197

da inicializao do editor de runlevel. A seleo de Concluir grava no disco as configuraes mudadas. ATENO: Configuraes de runlevel defeituosas podem danificar o sistema Configuraes de runlevel defeituosas podem tornar um sistema inutilizvel. Antes de aplicar as mudanas, tenha absoluta certeza sobre suas conseqncias.

8.3 Configurao do sistema via /etc/sysconfig


A configurao principal do SUSE Linux controlada pelos arquivos de configurao em /etc/sysconfig. Os arquivos individuais em /etc/sysconfig so lidos somente pelos scripts para os quais so relevantes. Isso garante que as configuraes de rede, por exemplo, somente precisem ser analisadas pelos scripts relacionados rede. Muitos outros arquivos de configurao do sistema so gerados de acordo com as configuraes em /etc/sysconfig. Essa tarefa executada pelo SuSEconfig. Por exemplo, se voc mudar a configurao da rede, o SuSEconfig tambm poder fazer mudanas no arquivo /etc/host.conf, pois esse um dos arquivos relevantes para a configurao da rede. Esse conceito permite realizar mudanas bsicas na configurao sem a necessidade de reinicializar o sistema. H duas maneiras de editar a configurao do sistema. Use o Editor sysconfig do YaST ou edite manualmente os arquivos de configurao.

8.3.1 Mudando a configurao do sistema usando o Editor sysconfig do YaST


O editor sysconfig do YaST fornece um front end fcil de usar para a configurao do sistema. Sem conhecimento do local da varivel de configurao que precisa ser mudada, voc pode apenas usar a funo de pesquisa interna desse mdulo, mudar o valor dessa varivel conforme o necessrio, e permitir que o YaST se encarregue de aplicar essas mudanas, atualizando as configuraes que dependem dos valores definidos no sysconfig e reiniciando os servios.

198

Referncia

ATENO: A modificao dos arquivos /etc/sysconfig/* pode danificar a instalao No modifique os arquivos /etc/sysconfig se voc no tiver experincia e conhecimento prvios. Isso pode causar srios danos ao sistema. Os arquivos em /etc/sysconfig contm um pequeno comentrio sobre cada varivel para explicar seu efeito real. Figura 8.2 Configurao do sistema usando o Editor sysconfig

A caixa de dilogo do Editor sysconfig do YaST divida em trs partes. A parte esquerda mostra uma tela de rvore de todas as variveis configurveis. Quando voc seleciona uma varivel, a parte direita exibe a seleo e a definio atuais dessa varivel. Abaixo, uma terceira janela exibe uma pequena descrio da finalidade da varivel, os valores possveis, o valor padro e o arquivo de configurao do qual essa varivel se origina. A caixa de dilogo tambm fornece informaes sobre qual script de configurao executado aps a mudana da varivel e qual novo servio iniciado como resultado da mudana. O YaST solicita a confirmao das mudanas e informa quais scripts sero executados depois que voc sair da caixa de dilogo selecionando Concluir. Alm disso, selecione os servios e scripts que devem ser ignorados agora e iniciados mais tarde. O YaST aplica todas as mudanas automaticamente e reinicia os servios envolvidos para que elas sejam efetivadas.

Inicializando e configurando um sistema Linux

199

8.3.2 Mudando manualmente a configurao do sistema


Para mudar manualmente a configurao do sistema, faa o seguinte 1 Torne-se root. 2 Coloque o sistema no modo de usurio nico (nvel de execuo 1) com init 1. 3 Mude os arquivos de configurao, conforme o necessrio, com um editor de sua preferncia. Se voc no usar o YaST para mudar os arquivos de configurao em /etc/ sysconfig, verifique se os valores das variveis vazias esto representados por duas aspas (KEYTABLE="") e se os valores com espaos em branco esto delimitados por aspas. Os valores constitudos de somente uma palavra no precisam ficar entre aspas. 4 Execute SuSEconfig para verificar se as mudanas foram efetivadas. 5 Coloque o sistema de volta no runlevel anterior com o comando init default_runlevel. Substitua runlevel_padro pelo runlevel padro do sistema. Escolha 5 para retornar ao modo multiusurio completo com rede e X ou escolha 3 se preferir trabalhar no modo multiusurio completo com rede. Esse procedimento relevante principalmente durante a mudana das configuraes em todo o sistema, como a configurao da rede. Pequenas mudanas no devem requerer alternar para o modo de usurio nico, mas voc pode fazer isso para ter certeza de que todos os programas em questo foram reiniciados corretamente. DICA: Definindo a configurao automatizada do sistema Para desabilitar a configurao automatizada do sistema pelo SuSEconfig, defina a varivel ENABLE_SUSECONFIG em /etc/sysconfig/suseconfig como no. No desabilite o SuSEconfig se quiser usar o suporte de instalao do SUSE. Tambm possvel desabilitar parcialmente a configurao automtica.

200

Referncia

O Carregador de Boot
Este captulo descreve como configurar o GRUB, o carregador de boot utilizado no SUSE Linux. Para realizar todas as configuraes, h disponvel um mdulo especial YaST. Se voc no estiver familiarizado com a idia de entrar para o Linux, leia as sees a seguir para obter algumas informaes de apoio. Este captulo tambm descreve alguns problemas freqentemente encontrados quando se inicializa com o GRUB e mostra as solues para eles. Este captulo se concentra no gerenciamento de boot e na configurao do carregador de boot do GRUB. O procedimento de boot como um todo detalhado no Captulo 8, Inicializando e configurando um sistema Linux (p 185). O carregador de boot representa a interface entre a mquina (BIOS) e o sistema operacional (SUSE Linux). A configurao do carregador de boot influencia diretamente o boot do sistema operacional. Os termos a seguir aparecem com freqncia neste captulo e talvez precisem de alguma explicao: Registro Mestre de Inicializao A estrutura do MBR definida por uma conveno que independe do sistema operacional. Os primeiros 446 bytes so reservados para o cdigo do programa. Eles geralmente mantm o programa do carregador de boot, neste caso, GRUB stage 1. Os prximos 64 bytes fornecem espao para uma tabela de partio com at quatro entradas (consulte Tipos de partio (Captulo 1, Instalao com o YaST, Inicializao)). A tabela de partio contm informaes sobre o particionamento do disco rgido e sobre o tipo de sistema de arquivos. O sistema operacional precisa dessa tabela para lidar com o disco rgido. Com o GRUB stage 1 no MBR, exatamente uma partio deve ser marcada como ativa. Os dois ltimos

O Carregador de Boot

201

bytes do MBR devem conter um nmero mgico esttico (AA55). Um MBR contendo um valor diferente considerado como invlido pelo BIOSs. Setores de Boot Os setores de boot so os primeiros setores das parties do disco rgido, com a execuo da partio estendida, que serve meramente como container para outras parties. Esses setores de boot tm 512 bytes de espao para o cdigo usado para inicializar um sistema operacional instalado na partio respectiva. Isso se aplica aos setores de boot das parties formatadas do DOS, Windows e OS/2, que tambm contm alguns dados bsicos importantes do sistema de arquivos. Por outro lado, os setores de boot das parties do Linux esto inicialmente vazios depois de se configurar um sistema de arquivos diferente do XFS. Portanto, uma partio do Linux no inicializvel por si mesma, mesmo que contenha um kernel e um sistema vlido de arquivos raiz. Um setor de boot com cdigo vlido para inicializar o sistema tem o mesmo nmero mgico que o MBR em seus dois ltimos bytes (AA55).

9.1 Selecionando um carregador de boot


Por padro, o carregador de boot GRUB usado no SUSE Linux. No entanto, em alguns casos e para grupos especiais de hardwares e softwares, o LILO pode ser necessrio. Se voc atualizar de uma verso mais antiga do SUSE Linux que usa LILO, este instalado. No Banco de Dados de Suporte, na palavra-chave LILO e em /usr/share/doc/ packages/lilo, h informaes disponveis sobre a instalao e a configurao do LILO.

9.2 Inicializando com o GRUB


O GRUB (Grand Unified Bootloader) tem dois estgios. O stage1 consiste em 512 bytes e sua nica tarefa carregar o segundo estgio do carregador de boot. Depois disso, o stage2 carregado. Este estgio contm a parte principal do carregador de boot.

202

Referncia

Em algumas configuraes, um estgio intermedirio 1.5 pode ser usado, que localiza e carrega o estgio 2 de um sistema de arquivos apropriado. Se possvel, este mtodo escolhido por padro durante a instalao ou durante a configurao inicial do GRUB com o YaST. O stage2 consegue acessar vrios sistemas de arquivos. Atualmente, so suportados o Ext2, Ext3, ReiserFS, Minix e o sistema de arquivos FAT do DOS usado pelo Windows. At certo ponto, JFS, XFS, e UFS e FFS usados pelos sistemas BSD tambm so suportados. Desde a verso 0.95, o GRUB tambm pode ser inicializado de um CD ou DVD que contenha um sistema de arquivos padro ISO 9660 que est de acordo com a especificao El Torito. Mesmo antes de o sistema ser inicializado, o GRUB pode acessar os sistemas de arquivos dos dispositivos de disco BIOS suportados (disquetes ou discos rgidos, unidades de CD e unidades de DVD detectadas pelo BIOS). Portanto, as alteraes realizadas no arquivo de configurao do GRUB (menu.lst) no exigem a reinstalao do gerenciador de boot. Quando o sistema inicializado, o GRUB carrega o arquivo de menu com os caminhos e dados de partio vlidos do kernel ou do disco RAM inicial (initrd) e localiza os arquivos. A configurao atual do GRUB se baseia em trs arquivos que so descritos a seguir: /boot/grub/menu.lst Este arquivo contm todas as informaes sobre parties ou sistemas operacionais que podem ser inicializados com o GRUB. Sem essas informaes, a linha de comando do GRUB pergunta ao usurio como proceder (consulte Editando as entradas de menu durante o procedimento de boot (p 208) para obter detalhes). /boot/grub/device.map Esse arquivo traduz os nomes dos dispositivos da notao do GRUB e do BIOS para os nomes de dispositivos do Linux. /etc/grub.conf Esse arquivo contm os comandos, os parmetros e as opes que o shell do GRUB precisa para instalar corretamente o carregador de boot. O GRUB pode ser controlado de vrias maneiras. As entradas de boot de uma configurao existente podem ser selecionadas no menu grfico (tela de apresentao). A configurao carregada a partir do arquivo menu.lst. No GRUB, todos os parmetros de boot podem ser alterados antes do boot. Por exemplo, os erros cometidos durante a edio do arquivo de menu podem ser corrigidos desta maneira. Os comandos de boot tambm podem ser inseridos de forma interativa atravs O Carregador de Boot 203

de um tipo de prompt de entrada (consulte Editando as entradas de menu durante o procedimento de boot (p 208)). O GRUB oferece a possibilidade de determinar a localizao do kernel e do initrd antes do boot. Dessa maneira, voc pode at inicializar um sistema operacional instalado para o qual no existe entrada na configurao do carregador de boot. O GRUB existe em duas verses: como carregador de boot e como programa normal do Linux em /usr/sbin/grub. Esse programa conhecido como shell do GRUB. Ele fornece uma emulao do GRUB no sistema instalado e pode ser usado para instalar o GRUB ou testar novas configuraes antes de aplic-las. A funcionalidade para instalar o GRUB como carregador de boot em um disco rgido ou em um disquete integrada no GRUB na forma dos comandos install e setup. Isso est disponvel no shell do GRUB quando o Linux carregado.

9.2.1 O menu de boot do GRUB


A tela de apresentao grfica com o menu de boot baseia-se no arquivo de configurao do GRUB /boot/grub/menu.lst, que contm todas as informaes sobre todas as parties ou sistemas operacionais que podem ser inicializados pelo menu. Todas as vezes em que o sistema inicializado, o GRUB carrega o arquivo de menu a partir do sistema de arquivos. Por essa razo, o GRUB no precisa ser reinstalado depois de todas as modificaes no arquivo. Use o carregador de boot YaST para modificar a configurao do GRUB conforme descrito no Seo 9.3, Configurando o carregador de boot com o YaST (p 212). O arquivo de menu contm comandos. A sintaxe muito simples. Cada linha contm um comando seguido de parmetros opcionais separados por espaos, como ocorre no shell. Por razes histricas, alguns comandos admitem um = na frente do primeiro parmetro. Os comentrios so introduzidos por um hash (#). Para identificar os itens do menu na viso geral do menu, defina um ttulo para cada entrada. O texto (incluindo os espaos) que vem depois da palavra-chave ttulo exibido como opo selecionvel no menu. Todos os comandos at o prximo ttulo so executados quando se seleciona esse item de menu. O caso mais simples o redirecionamento para os carregadores de boot de outros sistemas operacionais. O comando chainloader, e o argumento geralmente o bloco de boot de outra partio na notao do bloco do GRUB. Por exemplo:

204

Referncia

chainloader (hd0,3)+1

Os nomes de dispositivo no GRUB so explicados em Convenes de nomenclatura para discos rgidos e parties (p 205). Este exemplo especifica o primeiro bloco da quarta partio do primeiro disco rgido. Use o comando kernel para especificar uma imagem do kernel. O primeiro argumento o caminho para a imagem do kernel em uma partio. Os outros argumentos so passados para o kernel na linha de comando. Se o kernel no contiver drivers incorporados para acesso partio raiz ou um sistema Linux recente com recursos de hotplug avanados for usado, o initrd deve ser especificado com um comando separado do GRUB cujo nico argumento o caminho para o arquivo initrd. Como o endereo de carregamento do initrd gravado na imagem do kernel carregado, o comando initrd deve vir imediatamente aps o comando kernel. O comando root simplifica a especificao do kernel e dos arquivos initrd. O nico argumento de root um dispositivo ou uma partio. Esse dispositivo usado para todos os kernels, initrd, ou para outros caminhos de arquivo para os quais no h dispositivos explicitamente especificados at o prximo comando root. O comando boot est implcito no fim de cada entrada do menu, assim ele no precisa ser gravado no arquivo de menu. No entanto, para usar o GRUB interativamente para o boot, voc deve inserir o comando boot no final. O comando em si no tem argumentos. Ele meramente inicializa a imagem do kernel carregado ou do carregador de cadeia especificado. Depois de gravar todas as entradas de menu, defina uma delas como entrada default. Do contrrio, utilizada a primeira (entrada 0). Voc tambm pode especificar um tempo de espera em segundos, aps o qual a entrada padro deve inicializar. timeout e default geralmente precedem as entradas de menu. Um arquivo de exemplo descrito em Um exemplo de arquivo de menu (p 206).

Convenes de nomenclatura para discos rgidos e parties


As convenes de nomenclatura que o GRUB utiliza para discos rgidos e parties diferem daquelas usadas para os dispositivos normais do LINUX. No GRUB, a numerao das parties comea no zero. Isso significa que (hd0,0) a primeira

O Carregador de Boot

205

partio do primeiro disco rgido. Em uma mquina desktop comum, com um disco rgido conectado como master principal, o nome do dispositivo correspondente no Linux /dev/hda1. As quatro parties principais possveis so atribudas aos nmeros de partio de 0 a 3. As parties lgicas so numeradas a partir de 4:
(hd0,0) (hd0,1) (hd0,2) (hd0,3) (hd0,4) (hd0,5) primeira partio primria do primeiro disco rgido segunda partio primria terceira partio primria quarta partio primria (em geral uma partio estendida) primeira partio lgica segunda partio lgica

Sendo dependente de dispositivos BIO, o GRUB no distingue entre dispositivos IDE, SATA, SCSI e RAID de hardware. Todos os discos rgidos reconhecidos pelo BIOS ou por outras controladoras so numerados de acordo com a seqncia de boot predefinido no BIOS. Infelizmente, geralmente no possvel mapear os nomes dos dispositivos do Linux exatamente para os nomes dos dispositivos do BIOS. Ele gera esse mapeamento com a ajuda de um algoritmo e o salva no arquivodevice.map, que pode ser editado se necessrio. Na Seo 9.2.2, O arquivo device.map (p 209), h informaes sobre o arquivo device.map. O caminho completo do GRUB consiste em um nome de dispositivo escrito entre parnteses e no caminho para o arquivo no sistema de arquivos na partio especificada. O caminho comea com uma barra. Por exemplo, o kernel inicializvel poderia ser especificado como segue em um sistema com um disco rgido nico de IDE que contm o Linux em sua primeira partio:
(hd0,0)/boot/vmlinuz

Um exemplo de arquivo de menu


O exemplo a seguir mostra a estrutura de um arquivo de menu do GRUB. A instalao de exemplo compreende uma partio de boot do Linux em /dev/hda5, uma partio raiz em /dev/hda7 e uma instalao do Windows em /dev/hda1.
gfxmenu (hd0,4)/message color white/blue black/light-gray default 0 timeout 8 title linux

206

Referncia

kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791 initrd (hd0,4)/initrd title windows chainloader(hd0,0)+1 title floppy chainloader(fd0)+1 title failsafe kernel (hd0,4)/vmlinuz.shipped root=/dev/hda7 ide=nodma \ apm=off acpi=off vga=normal nosmp maxcpus=0 3 initrd (hd0,4)/initrd.shipped

O primeiro bloco define a configurao da tela de apresentao: gfxmenu (hd0,4)/message A mensagem da imagem de segundo plano localiza-se em /dev/hda5. color white/blue black/light-gray Esquema de cor: branco (primeiro plano), azul (segundo plano), preto (seleo) e cinza-claro (segundo plano da seleo). O esquema de cores no tem efeito sobre a tela de apresentao, apenas sobre o menu personalizvel do GRUB que voc pode acessar saindo da tela de apresentao com Esc . default 0 Por padro, a primeira entrada do menu, title linux, a utilizada para inicializar. timeout 8 Aps oito segundos sem nenhuma entrada do usurio, o GRUB inicializa automaticamente a entrada default. Para desativar o boot automtico, exclua a linha timeout. Se voc definir timeout 0, o GRUB inicializa a entrada default imediatamente. O segundo e maior bloco lista os vrios sistemas operacionais inicializveis. As sees para os sistemas operacionais individuais so introduzidas pelo ttulo. A primeira entrada (title linux) responsvel por inicializar o SUSE Linux. O kernel (vmlinuz) localiza-se na primeira partio lgica (a partio de boot) do primeiro disco rgido. Os parmetros do kernel, tais como a partio raiz e o modo VGA, so anexados aqui. A partio raiz especificada de acordo com a conveno de nomenclatura do Linux (/dev/hda7/), pois essas informaes so

O Carregador de Boot

207

lidas pelo kernel e no tm nada a ver com o GRUB. O initrd tambm se localiza na primeira partio lgica do primeiro disco rgido. A segunda entrada responsvel por carregar o Windows. O Windows inicializado a partir da primeira partio do primeiro disco rgido (hd0,0). O comando chainloader +1 faz com que o GRUB leia e execute o primeiro setor da partio especificada. A prxima entrada permite o boot a partir do disco rgido sem modificar as configuraes do BIOS. A opo de boot failsafe inicia o Linux com uma seleo de parmetros do kernel que permite que o Linux seja inicializado nos sistemas problemticos. O arquivo de menu pode ser alterado sempre que for necessrio. O GRUB utiliza, ento, as configuraes modificadas durante o prximo boot. Edite o arquivo permanentemente usando o YaST ou um editor da sua escolha. Como alternativa, faa as alteraes temporrias de forma interativa usando a funo de edio do GRUB. Consulte Editando as entradas de menu durante o procedimento de boot (p 208).

Editando as entradas de menu durante o procedimento de boot


No menu grfico de boot, selecione o sistema operacional a ser inicializado com as teclas de seta. Se selecionar um sistema Linux, voc pode inserir parmetros extras de boot no prompt de boot. Para editar diretamente as entradas individuais do menu, pressione Esc para sair da tela de apresentao e entrar no menu baseado em texto do GRUB e depois pressione E . As alteraes feitas desta maneira s se aplicam ao boot atual, no sendo adotadas permanentemente. IMPORTANTE: Layout do teclado durante o procedimento de boot O layout do teclado norte-americano o nico disponvel na hora de inicializar. Editar entradas de menu facilita o reparo de um sistema com defeito que no pode mais ser inicializado, pois o arquivo de configurao defeituoso do carregador de boot pode ser evitado ao se inserir parmetros manualmente. A insero manual de parmetros durante o procedimento de boot tambm til para testar novas configuraes sem danificar o sistema nativo.

208

Referncia

Depois de ativar o modo de edio, use as teclas de seta para selecionar a entrada de menu cuja configurao deve ser editada. Para tornar a configurao editvel, pressione E novamente. Dessa maneira, edite as especificaes incorretas das parties ou do caminho antes que tenham um efeito negativo sobre o processo de boot. Pressione Enter para sair do modo de edio e retornar ao menu. Depois pressione B para inicializar essa entrada. No texto de ajuda da parte inferior, so mostradas mais aes possveis. Para inserir permanentemente as opes alteradas de boot e pass-las para o kernel, abra o arquivo menu.lst como raiz do usurio e anexe os respectivos parmetros do kernel linha existente, separados por espaos:
title linux kernel (hd0,0)/vmlinuz root=/dev/hda3 additional parameter initrd (hd0,0)/initrd

O GRUB adota automaticamente os novos parmetros na prxima vez em que o sistema inicializado. Como alternativa, essa alterao tambm pode ser feita com o mdulo do carregador de boot YaST. Anexe os novos parmetros linha existente, separados por espaos.

9.2.2 O arquivo device.map


O arquivo device.map mapeia os nomes de dispositivos do GRUB e do BIOS para os nomes de dispositivos do Linux. Em um sistema misto que contm discos rgidos IDE e SCSI, o GRUB deve tentar determinar a seqncia de boot atravs de um procedimento especial, pois o GRUB no tem acesso s informaes do BIOS na seqncia de boot. O GRUB salva o resultado desta anlise no arquivo /boot/grub/ device.map. Para um sistema no qual a seqncia de boot no BIOS configurada como IDE antes de SCSI, o arquivo device.map poderia aparecer da seguinte forma:
(fd0) (hd0) (hd1) /dev/fd0 /dev/hda /dev/sda

Como a ordem da IDE, da SCSI e de outros discos rgidos depende de vrios fatores, e como o Linux no consegue identificar o mapeamento, a seqncia no arquivo device .map pode ser configurada manualmente. Se voc encontrar problemas na hora do boot, verifique se a seqncia neste arquivo corresponde seqncia no BIOS e use o prompt do GRUB para modific-la temporariamente, se necessrio. Depois que o sistema Linux for inicializado, o arquivo device.map pode ser permanentemente editado com o mdulo do carregador de boot YaST ou com um editor da sua preferncia. O Carregador de Boot 209

IMPORTANTE: Discos SATA Dependendo do controlador, os discos SATA so reconhecidos como dispositivos IDE (/dev/hdx) ou SCSI (/dev/sdx). Depois de alterar manualmente o device.map, execute o seguinte comando para reinstalar o GRUB. Este comando faz com que o arquivo device.map seja recarregado e os comandos listados em grub.conf sejam executados:
grub --batch < /etc/grub.conf

9.2.3 O arquivo /etc/grub.conf


O terceiro arquivo importante de configurao do GRUB, depois do menu.lst e do device.map, o /etc/grub.conf. Esse arquivo contm os comandos, os parmetros e as opes que o shell do GRUB precisa para instalar corretamente o carregador de boot:
root (hd0,4) install /grub/stage1 (hd0,3) /grub/stage2 0x8000 (hd0,4)/grub/menu.lst quit

Significado das entradas individuais: root (hd0,4) Esse comando diz para o GRUB aplicar os seguintes comandos primeira partio lgica do primeiro disco rgido (o local dos arquivos de boot). install parameter O comando grub deve ser executado com o parmetro install. O stage1 do carregador de boot deve ser instalado no container da partio estendida (/grub/stage1 (hd0,3)). O stage2 deve ser carregado no endereo da memria 0x8000 (/grub/stage2 0x8000). A ltima entrada ((hd0,4)/grub/menu.lst) mostra para o GRUB onde ele deve procurar o arquivo de menu.

9.2.4 Configurando uma senha de boot


Mesmo antes de o sistema operacional ser inicializado, o GRUB permite acesso aos sistema de arquivos. Os usurios que no tm permisses raiz podem acessar os arquivos

210

Referncia

no seu sistema Linux aos quais no tm acesso depois que o sistema inicializado. Para bloquear esse tipo de acesso ou impedir que os usurios inicializem certos sistemas operacionais, defina uma senha de boot. IMPORTANTE: Senha de boot e tela de apresentao Se voc usar uma senha de boot para o GRUB, a tela normal de apresentao no ser exibida. Como a raiz do usurio, proceda da seguinte forma para definir uma senha de boot: 1 No prompt raiz, insira grub. 2 Criptografe a senha no shell do GRUB:
grub> md5crypt Password: **** Encrypted: $1$lS2dv/$JOYcdxIn7CJk9xShzzJVw/

3 Cole a string criptografada na seo global do arquivo menu.lst:


gfxmenu (hd0,4)/message color white/blue black/light-gray default 0 timeout 8 password --md5 $1$lS2dv/$JOYcdxIn7CJk9xShzzJVw/

Agora os comandos do GRUB s podem ser executados no prompt raiz depois que se pressionar P e se inserir a senha. No entanto, os usurios ainda podem inicializar todos os sistemas operacionais a partir do menu de boot. 4 Para impedir que um ou vrios sistemas operacionais sejam inicializados a partir do menu de boot, acrescente a entrada lock em cada seo no menu.lst que no deveria ser inicializada sem se inserir uma senha. Por exemplo:
title linux kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791 initrd (hd0,4)/initrd lock

Depois de reiniciar o sistema e selecionar a entrada no Linux no menu de boot, exibida a seguinte mensagem de erro:
Erro 32: Precisa de autenticao

O Carregador de Boot

211

Pressione Enter para inserir o menu. Depois pressione P para obter o prompt da senha. Depois de inserir a senha e pressionar Enter , o sistema operacional selecionado (o Linux, neste caso) no deve inicializar.

9.3 Configurando o carregador de boot com o YaST


O modo mais fcil de configurar o carregador de boot em seu sistema SUSE Linux utilizar o mdulo do YaST. No Centro de Controle do YaST, selecione Sistema Configurao do Carregador de Boot. Como na Figura 9.1, Configurando o carregador de boot com o YaST (p 212), isso mostra a configurao do carregador de boot atual do sistema e permite fazer mudanas. Figura 9.1 Configurando o carregador de boot com o YaST

Use a guia Gerenciamento de Sees para editar, mudar e apagar sees do carregador de boot referentes aos sistemas operacionais individuais. Para adicionar uma opo, clique em Adicionar. Para mudar o valor de uma opo existente, selecione-o com o mouse e clique em Editar. Se no quiser usar nenhuma opo existente, selecione-a e

212

Referncia

clique em Apagar. Se no estiver familiarizado com as opes do carregador de boot, leia primeiro a Seo 9.2, Inicializando com o GRUB (p 202). Use a guia Instalao do Carregador de Boot para exibir e mudar configuraes relativas a tipo, local e configuraes de carregador avanadas.

9.3.1 Tipo de Carregador de Boot


Defina o tipo de carregador de boot em Instalao do Carregador de Boot. O carregador de boot padro no SUSE Linux o GRUB. Para usar o LILO, proceda da seguinte maneira: Procedimento 9.1 Mudando o tipo de carregador de boot 1 Selecione a guia Instalao do Carregador de Boot. 2 Para Carregador de Boot, selecione LILO. 3 Na caixa de dilogo aberta, selecione uma das seguintes aes: Propor Nova Configurao Faa com que o YaST proponha uma nova configurao. Converter Configurao Atual Faa com que o YaST converta a configurao atual. Na converso da configurao, algumas definies podem ser perdidas. Iniciar Nova Configurao do Incio Grave uma configurao personalizada. Esta ao no fica disponvel durante a instalao do SUSE Linux. Ler Configurao Salva em Disco Carregue o /etc/lilo.conf. Esta ao no fica disponvel durante a instalao do SUSE Linux. 4 Clique em OK para gravar as mudanas. 5 Clique em Concluir na caixa de dilogo principal para aplicar as mudanas.

O Carregador de Boot

213

Durante a converso, a antiga configurao do GRUB gravada no disco. Para utilizla, basta voltar o tipo de carregador de boot para GRUB e selecionar Recuperar Configurao Salva Antes da Converso. Esta ao fica disponvel somente em um sistema instalado. NOTA: Carregador de boot personalizado Se quiser usar um carregador de boot que no seja o GRUB nem o LILO, selecione No Instalar Nenhum Carregador de Boot. Leia a documentao do seu carregador de boot cuidadosamente antes de escolher esta opo.

9.3.2 Localizao do carregador de boot


Para mudar o local do carregador de boot, siga estas etapas: Procedimento 9.2 Mudando a localizao do carregador de boot 1 Selecione a guia Instalao do Carregador de Boot e selecione uma das seguintes opes para Localizao do Carregador de Boot: MBR (Master Boot Record) de /dev/hdX Isso instalar o carregador de boot no MBR de um disco. X identifica o disco rgido, por exemplo, a, b, c ou d:
hda hdb hdc hdd => => => => ide0 ide0 ide1 ide1 master slave master slave

Setor de Boot da Partio de Boot /dev/hdXY Setor de inicializao da partio /boot. Esta opo ser padro se voc tiver vrios sistemas operacionais instalados no disco rgido. O Y corresponde partio (1, 2, 3, 4, 5, etc.) como em:
/dev/hda1

Setor de Boot da Partio Raiz /dev/hdXY O setor de inicializao da partio / (raiz). A menos que uma partio /boot seja necessria ou o MBR precise ser usado, esse o padro preferido.

214

Referncia

Outros Use esta opo para especificar a localizao do carregador de boot manualmente. 2 Clique em Concluir para aplicar suas mudanas.

9.3.3 Sistema padro


Para mudar o sistema que inicializado por padro, proceda da seguinte maneira: Procedimento 9.3 Definindo o sistema padro 1 Abra a guia Gerenciamento de Sees. 2 Selecione o sistema desejado na lista. 3 Clique em Definir como Padro. 4 Clique em Concluir para ativar essas mudanas.

9.3.4 Tempo de espera do carregador de boot


O carregador de boot no inicializa o sistema padro imediatamente. Durante o tempo de espera, voc pode selecionar o sistema para inicializar ou gravar alguns parmetros de kernel. Para definir o tempo de espera do carregador de boot, proceda da seguinte maneira: Procedimento 9.4 Mudando o tempo de espera do carregador de boot 1 Abra a guia Instalao do Carregador de Boot. 2 Clique em Opes do Carregador de Boot. 3 Marque a opo Mostrar Menu de Boot.

O Carregador de Boot

215

4 No Menu de Boot, mude o valor de Tempo de Espera do Menu de Boot digitando um novo valor, clicando na tecla de seta apropriada com o mouse ou utilizando as teclas de seta do teclado. 5 Clique em OK. 6 Clique em Concluir para salvar as mudanas. Defina o menu de boot para que seja exibido permanentemente sem o tempo de espera atravs da desabilitao de Continuar Boot aps Tempo de Espera.

9.3.5 Configuraes de segurana


Utilizando este mdulo do YaST, possvel definir uma senha para proteger a inicializao. Este procedimento aumenta o nvel de segurana. Procedimento 9.5 Configurando uma senha do carregador de boot 1 Abra a guia Instalao do Carregador de Boot. 2 Clique em Opes do Carregador de Boot. 3 Em Proteo por Senha, marque a opo Proteger Carregador de Boot com Senha e defina a senha. 4 Clique em OK. 5 Clique em Concluir para salvar as mudanas.

9.3.6 Ordem do disco


Se o seu computador tiver mais de um disco rgido, possvel especificar a seqncia de inicializao dos discos para corresponder configurao do BIOS da mquina (consulte a Seo 9.2.2, O arquivo device.map (p 209)). Para fazer isso, proceda da seguinte maneira:

216

Referncia

Procedimento 9.6 Configurando a ordem do disco 1 Abra a guia Instalao do Carregador de Boot. 2 Clique em Detalhes de Instalao do Carregador de Boot. 3 Se mais de um disco for listado, selecione um disco e clique em Para cima ou Para baixo para reordenar os discos exibidos. 4 Clique em OK para gravar as mudanas. 5 Clique em Concluir para salvar as mudanas. Utilizando este mdulo, tambm possvel substituir o MBR por um cdigo genrico, que inicializa a partio ativa. Clique em Substituir MBR por Cdigo Genrico em Atualizao da rea do Sistema do Disco. Habilite Ativar Partio do Carregador de Boot para ativar a partio que contm o carregador de boot. Clique em Concluir para salvar as mudanas.

9.4 Desinstalando a controladora de boot do Linux


O YaST pode ser usado para desinstalar o carregador de boot do Linux e recuperar o MBR para o estado que ele tinha antes da instalao do Linux. Durante a instalao, o YaST cria automaticamente uma cpia de backup do MBR original e o restaura sob solicitao. Para desinstalar o GRUB, inicie o mdulo do carregador de boot YaST (Sistema Configurao do Carregador de Boot). Nessa primeira caixa de dilogo, selecione Redefinir Restaurar MBR do Disco Rgido e clique em Concluir para sair.

9.5 Criando CDs de boot


Se a inicializao do sistema com um gerenciador de boot apresentar problemas ou se o gerenciador de boot no puder ser instalado no MBR do disco rgido ou do disquete,

O Carregador de Boot

217

tambm ser possvel criar um CD inicializvel com os arquivos de inicializao necessrios para o Linux. necessrio haver um gravador de CD instalado no sistema. A criao de um CR-ROM inicializvel com GRUB requer simplesmente um formato especial de stage2 chamadostage2_eltorito e, opcionalmente, um menu.lst personalizado. Os clssicos arquivos stage1 e stage2 no so necessrios. Procedimento 9.7 Criando CDs de boot 1 Crie um diretrio no qual voc criar a imagem ISO, por exemplo:
cd /tmp mkdir iso

2 Crie um subdiretrio para GRUB:


mkdir -p iso/boot/grub

3 Copie o kernel, os arquivos stage2_eltorito, initrd, menu.lst e /boot/message para iso/boot/:


cp cp cp cp /boot/vmlinuz iso/boot/ /boot/initrd iso/boot/ /boot/message iso/boot/ /boot/grub/menu.lst iso/boot/grub

4 Ajuste as entradas do caminho em iso/boot/menu.lst para que apontem para um dispositivo de CD-ROM. Faa isso substituindo o nome do dispositivo dos discos rgidos, listados no formato (hd*), nos nomes de caminho, pelo nome de dispositivo da unidade do CD-ROM, que (cd):
gfxmenu (cd)/boot/message timeout 8 default 0 title Linux kernel (cd)/boot/vmlinuz root=/dev/hda5 vga=794 resume=/dev/hda1 \ splash=verbose showopts initrd (cd)/boot/initrd

5 Crie a imagem ISO com o seguinte comando:


mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot \ -boot-load-size 4 -boot-info-table -o grub.iso iso

218

Referncia

6 Grave o arquivo resultante grub.iso em um CD usando seu utilitrio preferido.

9.6 A tela grfica do SUSE


Desde o SUSE Linux 7.2, a tela grfica do SUSE exibida no primeiro console se a opo vga=<value> for usada como parmetro de kernel. Se voc fizer a instalao usando o YaST, essa opo automaticamente ativada de acordo com a resoluo e a placa de vdeo selecionadas. H trs maneiras de desativar a tela SUSE, se desejado: Desabilitando a tela do SUSE quando necessrio Insira o comando echo 0 >/proc/splash na linha de comando para desativar a tela grfica. Para ativ-la novamente, insira echo 1 >/proc/splash. Desabilitando a tela do SUSE por padro. Acrescente o parmetro de kernel splash=0 configurao do seu carregador de boot. O Captulo 9, O Carregador de Boot (p 201) fornece mais informaes sobre isso. No entanto, se voc preferir o modo de texto, que foi o padro nas verses anteriores, configure vga=normal. Desativando completamente a tela SUSE Compile um novo kernel e desative a opo Usar a tela de apresentao em vez do logotipo de boot no suporte a framebuffer. DICA A desabilitao do suporte a framebuffer no kernel tambm desabilita automaticamente a tela de apresentao. O SUSE no pode fornecer suporte ao seu sistema se voc o executar com um kernel personalizado.

9.7 Soluo de problemas


Essa seo lista alguns dos problemas freqentemente encontrados na hora de inicializar com o GRUB e uma breve descrio das possveis solues. Alguns desses problemas so analisados em artigos do Banco de Dados de Suporte, em http://portal.suse .de/sdb/en/index.html. Se o seu problema especfico no estiver includo nesta lista, use a caixa de dilogo de pesquisa do Banco de Dados de Suporte, no endereo

O Carregador de Boot

219

https://portal.suse.com/PM/page/search.pm, para pesquisar palavraschave como GRUB, boot e carregador de boot. GRUB e XFS O XFS no deixa espao para o stage1 no bloco de boot da partio. Portanto, no especifique uma partio XFS como local do carregador de boot. Esse problema pode ser resolvido com a criao de uma partio separada de boot que no formatada com o XFS. GRUB e JFS Embora tecnicamente possvel, a combinao do GRUB com o JFS problemtica. Nesse caso, crie uma partio separada de boot (/boot) e formate-a com o Ext2. Instale o GRUB nessa partio. O GRUB relata um erro de geometria no GRUB O GRUB verifica a geometria dos discos rgidos conectados quando o sistema inicializado. s vezes, a BIOS retorna informaes inconsistentes e o GRUB cria um erro de geometria do GRUB. Se este for o caso, use o LILO ou atualize a BIOS. No Banco de Dados de Suporte, na palavra-chave LILO, h informaes detalhadas sobre a instalao, configurao e manuteno do LILO. O GRUB tambm retorna essa mensagem de erro se o Linux foi instalado em um disco rgido adicional no registrado no BIOS. O stage1 do carregador de boot foi encontrado e carregado corretamente, mas o stage2 no foi encontrado. Esse problema pode ser remediado registrando-se o novo disco rgido na BIOS. O sistema contendo discos rgidos IDE e SCSI no inicializa Durante a instalao, o YaST talvez tenha determinado incorretamente a seqncia de boot dos discos rgidos. Por exemplo, o GRUB pode considerar /dev/hda como hd0 e /dev/sda como hd1, embora a seqncia de boot no BIOS seja ao contrrio (SCSI antes de IDE). Nesse caso, corrija os discos rgidos durante o processo de boot com a ajuda da linha de comando do GRUB. Depois que o sistema for inicializado, edite device .map para aplicar o novo mapeamento permanentemente. Depois verifique os nomes de dispositivo do GRUB nos arquivos /boot/grub/menu.lst e /boot/grub/device.map e reinstale o carregador de boot com o seguinte comando:
grub --batch < /etc/grub.conf

220

Referncia

Inicializando o Windows do segundo disco rgido Alguns sistemas operacionais, como o Windows, podem ser inicializados apenas do primeiro disco rgido. Se um sistema operacional desse tipo for instalado em um disco rgido que no for o primeiro, voc pode efetuar uma mudana lgica na respectiva entrada do menu.
... title windows map (hd0) (hd1) map (hd1) (hd0) chainloader(hd1,0)+1 ...

Nesse exemplo, o Windows iniciado a partir do segundo disco rgido. Para essa finalidade, a ordem lgica dos discos rgidos alterada com map. Essa alterao no afeta a lgica dentro do arquivo de menu do GRUB. Portanto, o segundo disco rgido deve ser especificado para chainloader.

9.8 Mais informaes


Em http://www.gnu.org/software/grub/, h informaes abrangentes sobre o GRUB. Consulte tambm a pgina de informaes grub. Voc tambm pode pesquisar a palavra-chave GRUB no Banco de Dados de Suporte, em http:// portal.suse.de/sdb/en/index.html, para obter informaes sobre problemas especficos.

O Carregador de Boot

221

Recursos especiais do SUSE Linux

10

Este captulo comea com informaes sobre vrios pacotes de software, os consoles virtuais e o layout de teclado. Abordamos componentes de software como bash, cron e logrotate, porque eles foram mudados ou aperfeioados durante os ltimos ciclos de lanamento. Mesmo que eles sejam pequenos ou considerados de menor importncia, talvez os usurios desejem mudar o seu comportamento padro, porque esses componentes muitas vezes esto intimamente ligados ao sistema. O captulo termina com uma seo sobre configuraes especficas de pas e idioma (I18N e L10N).

10.1 Informaes sobre pacotes de software especiais


Os programas bash, cron, logrotate, locate, ulimit e free, e o arquivo resolv.conf so muito importantes para os administradores de sistema e para vrios usurios. Pginas do manual e de informaes so duas fontes teis de informaes sobre comandos, mas nem sempre ambas esto disponveis. O GNU Emacs um editor de texto popular e muito configurvel.

10.1.1 O pacote bash e /etc/profile


Bash o shell padro no SUSE Linux. Quando usado com um shell de login, ele l vrios arquivos de inicializao. O Bash os processa na ordem que so exibidos na lista. 1. /etc/profile

Recursos especiais do SUSE Linux

223

2. 3. 4.

~/.profile /etc/bash.bashrc ~/.bashrc

Configuraes personalizadas podem ser feitas em ~/.profile ou em ~/.bashrc. Para assegurar o processamento correto desses arquivos, necessrio copiar as configuraes bsicas de /etc/skel/.profile ou /etc/skel/.bashrc no diretrio pessoal do usurio. recomendvel copiar as configuraes de /etc/skel aps uma atualizao. Execute os seguintes comandos de shell para evitar a perda de ajustes pessoais:
mv cp mv cp ~/.bashrc ~/.bashrc.old /etc/skel/.bashrc ~/.bashrc ~/.profile ~/.profile.old /etc/skel/.profile ~/.profile

Em seguida, copie os ajustes pessoais novamente dos arquivos *.old.

10.1.2 O pacote cron


Se voc deseja executar comandos de maneira regular e automtica em segundo plano, em momentos pr-definidos, o cron a ferramenta tradicional a ser utilizada. O cron regido por tabelas de tempo formatadas especialmente. Algumas delas so fornecidas com o sistema e os usurios podem gravar as suas prprias tabelas, se necessrio. As tabelas cron esto localizadas em /var/spool/cron/tabs. A /etc/crontab atua como uma tabela cron global do sistema. Digite o nome de usurio para executar o comando diretamente aps a tabela de tempo e antes do comando. No Exemplo 10.1, Entrada in /etc/crontab (p 224), root digitado. Tabelas especficas de pacote, localizadas em /etc/cron.d, possuem o mesmo formato. Consulte a pgina de manual cron (man cron). Exemplo 10.1 Entrada in /etc/crontab
1-59/5 * * * * root test -x /usr/sbin/atrun && /usr/sbin/atrun

Voc no pode editar /etc/crontab chamando o comando crontab -e. Este arquivo deve ser carregado diretamente em um editor, modificado e, em seguida, gravado.

224

Referncia

Alguns pacotes instalam scripts de shell nos diretrios /etc/cron.hourly, /etc/ cron.daily, /etc/cron.weekly e /etc/cron.monthly, cuja execuo controlada por /usr/lib/cron/run-crons. /usr/lib/cron/run-crons executado a cada 15 minutos da tabela principal (/etc/crontab). Isso garante que os processos que tenham sido negligenciados possam ser executados no momento adequado. Para executar os scripts de manuteno por hora, dirio ou outros scripts de manuteno peridica em horrios personalizados, remova os arquivos de marcao de horrio regularmente, utilizando as entradas /etc/crontab (consulte o Exemplo 10.2, /etc/crontab: Remoo de Arquivos de Marcao de Hora (p 225), que remove a opo por hora antes de cada hora cheia, a opo dirio uma vez ao dia s 2h14, etc.). Exemplo 10.2 /etc/crontab: Remoo de Arquivos de Marcao de Hora
59 14 29 44 * 2 2 2 * * * 1 * * * * * * 6 * root root root root rm rm rm rm -f -f -f -f /var/spool/cron/lastrun/cron.hourly /var/spool/cron/lastrun/cron.daily /var/spool/cron/lastrun/cron.weekly /var/spool/cron/lastrun/cron.monthly

Os trabalhos de manuteno diria de sistema foram distribudos a vrios scripts por motivos de clareza. Eles esto contidos no pacote aaa_base. /etc/cron.daily contm, por exemplo, os componentes suse.de-backup-rpmdb, suse .de-clean-tmp ou suse.de-cron-local.

10.1.3 Arquivos de registro: Pacote logrotate


Existem vrios servios de sistema (daemons) que, junto com o prprio kernel, gravam regularmente o status do sistema e eventos especficos em arquivos de registro. Desta maneira, o administrador pode verificar regularmente o status do sistema em um determinado momento, reconhecer erros ou funes defeituosas e solucion-los com total preciso. Esses arquivos de registro so normalmente armazenados em /var/ log, como especificado pelo FHS e crescem em uma base diria. O pacote logrotate ajuda a controlar o crescimento desses arquivos. Configure o logrotate com o arquivo /etc/logrotate.conf. Em particular, a especificaoinclude configura principalmente os arquivos adicionais a serem lidos. O SUSE Linux assegura que os programas que produzem arquivos de registro instalam

Recursos especiais do SUSE Linux

225

arquivos de configurao individual em /etc/logrotate.d. Por exemplo, tais programas acompanham os pacotes apache2 (/etc/logrotate.d/apache2) e syslogd (/etc/logrotate.d/syslog). Exemplo 10.3 Exemplo para /etc/logrotate.conf
# consulte "man logrotate" para obter os detalhes # rotacione os arquivos de registro semanalmente semanalmente # mantenha 4 semanas de backlogs rotacione 4 # crie arquivos de registro novos (vazios) aps rotacionar os antigos criados # ative esta opo se deseja que os arquivos de registro sejam compactados #compactar # As informaes de rotao de registro de drop de pacotes RPM neste diretrio incluem /etc/logrotate.d # nenhum pacote possui lastlog ou wtmp - ns iremos rotacion-los aqui #/var/log/wtmp { # mensal # criar 0664 root utmp # rotacionar 1 #} # registros especficos de sistema tambm podem ser configurados aqui.

logrotate controlado pelo cron e chamado diariamente por /etc/cron.daily/ logrotate. IMPORTANTE A opo create l todas as configuraes feitas pelo administrador em /etc/ permissions*. Certifique-se de que no haja conflitos devido a modificaes pessoais.

10.1.4 O comando locate


locate, um comando para localizao rpida de arquivos, no est includo no escopo padro do software instalado. Se desejado, instale o pacote find-locate. O processo

226

Referncia

updatedb iniciado automaticamente a cada noite ou aproximadamente 15 minutos aps a inicializao do sistema.

10.1.5 O comando ulimit


Com o comando ulimit (user limits), possvel definir limites para o uso de recursos do sistema e fazer com que sejam exibidos. ulimit particularmente til para a limitao da memria disponvel para aplicativos. Com ele, pode-se evitar que um aplicativo utilize muita memria, o que poderia travar o sistema. O comando ulimit pode ser usado com vrias opes. Para limitar o uso da memria, use as opes listadas na Tabela 10.1, ulimit: Configurao de Recursos para o Usurio (p 227). Tabela 10.1 -m -v -s -c -a ulimit: Configurao de Recursos para o Usurio Tamanho mximo da memria fsica Tamanho mximo da memria virtual Tamanho mximo da pilha Tamanho mximo dos arquivos bsicos Exibio de definio de limites

Entradas globais de sistema podem ser feitas em /etc/profile. L, habilite a criao de arquivos bsicos, necessrios para os programadores para depurao. Um usurio normal no pode aumentar os valores especificados em /etc/profile pelo administrador do sistema, mas pode fazer entradas especiais em ~/.bashrc. Exemplo 10.4 ulimit: Configuraes em ~/.bashrc
# limite de memria fsica: ulimit -m 98304 # limite de memria virtual: ulimit -v 98304

As quantidades de memria devem ser especificadas em KB. Para obter informaes mais detalhadas, consulte man bash. Recursos especiais do SUSE Linux 227

IMPORTANTE Nem todos os shells suportam as diretivas ulimit. O PAM (por exemplo, pam_limits) oferece possibilidades abrangentes de ajustes se voc depende de configuraes abrangentes para essas restries.

10.1.6 O comando free


O comando free um pouco confuso se a sua meta determinar a quantidade de memria RAM usada no momento. Essas informaes podem ser encontradas em /proc/meminfo. Atualmente, os usurios com acesso a um sistema operacional moderno, como o Linux, no precisam se preocupar muito com memria. O conceito de RAM disponvel surgiu antes da poca do gerenciamento unificado de memria. O slogan memria livre memria ruim se aplica bem ao Linux. Como resultado, o Linux sempre se esforou para equilibrar caches externos sem realmente permitir memria livre ou sem uso. Basicamente, o kernel no tem conhecimento direto de nenhum aplicativo ou dados de usurio. Em vez disso, ele gerencia aplicativos e dados de usurio em um cache de pgina. Se a memria diminuir, partes dele so gravadas na partio de troca ou em arquivos, dos quais podem ser lidas inicialmente com a ajuda do comando mmap (consulte man mmap). O kernel tambm contm outros caches, como o cache slab, onde os caches usados para acesso a rede so armazenados. Isso pode explicar as diferenas entre os contadores em /proc/meminfo. A maioria deles (mas no todos) pode ser acessada via /proc/ slabinfo.

10.1.7 O arquivo /etc/resolv.conf


A resoluo de nome de domnio tratada pelo arquivo /etc/resolv.conf. Consulte o Captulo 20, Domain Name System (Sistema de Nomes de Domnio) (p 381). Este arquivo atualizado pelo script /sbin/modify_resolvconf exclusivamente, e nenhum outro programa tem permisso para modificar diretamente o /etc/resolv .conf. Forar esta regra a nica maneira de garantir que a configurao de rede do sistema e os arquivos relevantes sejam mantidos em um estado consistente.

228

Referncia

10.1.8 Pginas de manual e de informaes


Para alguns aplicativos GNU (como o tar), as pginas de manuais no so mais mantidas. Para esses comandos, use a opo --help para obter um rpido resumo das pginas de informaes, que fornecem instrues mais detalhadas. O info um sistema hipertexto do GNU. Leia uma introduo sobre este sistema digitando info info. As pginas de informaes podem ser exibidas com Emacs ao se digitar emacs -f info ou diretamente em um console com info. Tambm possvel usar tkinfo, xinfo ou o sistema de ajuda do SUSE para exibir as pginas de informaes.

10.1.9 Configuraes para GNU Emacs


O GNU Emacs um complexo ambiente de trabalho. As sees a seguir descrevem os arquivos de configurao processados quando o GNU Emacs iniciado. H mais informaes em http://www.gnu.org/software/emacs/. Na inicializao, o Emacs l vrios arquivos que contm as configuraes do usurio, administrador do sistema e distribuidor para personalizao ou pr-configurao. O arquivo de inicializao ~/.emacs instalado nos diretrios pessoais dos usurios individuais a partir de /etc/skel. O .emacs, por sua vez, l o arquivo /etc/ skel/.gnu-emacs. Para personalizar o programa, copie o arquivo .gnu-emacs para o diretrio pessoal (com cp /etc/skel/.gnu-emacs ~/.gnu-emacs) e faa as configuraes desejadas nesse diretrio. O .gnu-emacs define o arquivo ~/.gnu-emacs-custom como arquivo personalizado. Se os usurios fizerem as configuraes com as opes personalizar no Emacs, as configuraes sero salvas no arquivo ~/ .gnu-emacs-custom. Com o SUSE Linux, o pacote do emacs instala o arquivo site-start.el no diretrio /usr/share/emacs/site-lisp. O arquivo site-start.el carregado antes do arquivo de inicializao ~/.emacs. Entre outras coisas, o arquivo site-start.el assegura que os arquivos de configurao especial distribudos com os pacotes de expanso do Emacs, como o psgml, sejam carregados automaticamente. Os arquivos de configurao deste tipo esto localizados em /usr/share/emacs/ site-lisp, tambm, e sempre comeam com o nome suse-start-. O administrador do sistema local pode especificar configuraes globais do sistema no arquivo default.el.

Recursos especiais do SUSE Linux

229

Mais informaes sobre esses arquivos esto disponveis no arquivo de informaes do Emacs em Init File: info:/emacs/InitFile. Informaes sobre como desabilitar o carregamento desses arquivos, se necessrio, tambm so fornecidas neste local. Os componentes do Emacs so divididos em vrios pacotes: O pacote base emacs. emacs-x11 (normalmente instalado): o programa com suporte X11. emacs-nox: o programa sem suporte X11. emacs-info: documentao online em formato info. emacs-el: os arquivos de biblioteca no compilados em Emacs Lisp. Eles no so necessrios em tempo de execuo. Numerosos pacotes de expanso podem ser instalados, se houver necessidade: emacs-auctex (para LaTeX), psgml (para SGML e XML), gnuserv (para operao de cliente e servidor) e outros.

10.2 Consoles virtuais


O Linux um sistema multiusurio e multitarefa. As vantagens desses recursos podem ser apreciadas mesmo em um sistema de PC independente. No modo de texto, existem seis consoles virtuais disponveis. Alterne entre eles utilizando a combinao de teclas Alt + F1 para Alt + F6 . O stimo console reservado para X e o dcimo console mostra as mensagens do kernel. Podem ser atribudos mais ou menos consoles com a modificao do arquivo /etc/inittab. Para alternar para um console de X sem fech-lo, use a combinao de teclas Alt + F1 para Ctrl + Alt + F6 . Para voltar para X, pressione Alt + F7 .
Ctrl

10.3 Mapeamento de teclado


Para padronizar o mapeamento de teclado de programas, foram feitas mudanas nos seguintes arquivos:

230

Referncia

/etc/inputrc /usr/X11R6/lib/X11/Xmodmap /etc/skel/.Xmodmap /etc/skel/.exrc /etc/skel/.less /etc/skel/.lesskey /etc/csh.cshrc /etc/termcap /usr/lib/terminfo/x/xterm /usr/X11R6/lib/X11/app-defaults/XTerm /usr/share/emacs/<VERSION>/site-lisp/term/*.el

Essas mudanas afetam apenas aplicativos que utilizam entradas terminfo ou cujos arquivos de configurao so mudados diretamente (vi, less, etc.). Os aplicativos que no acompanham o SUSE Linux devem ser adaptados a esses padres. Em X, a chave de composio (multikey) pode ser acessada utilizando Ctrl + Shift (direita). Consulte tambm a entrada correspondente em /usr/X11R6/lib/X11/ Xmodmap. Outras configuraes so possveis utilizando a Extenso de Teclado X (XKB). Esta extenso tambm usada pelos ambientes de rea de trabalho do GNOME (gswitchit) e KDE (kxkb). DICA: Mais informaes Informaes sobre o XKB esto disponveis em /etc/X11/xkb/README e nos documentos ali relacionados. Informaes detalhadas sobre a entrada dos idiomas chins, japons e coreano (CJK) esto disponveis na pgina de Mike Fabian em: http://www.suse .de/~mfabian/suse-cjk/input.html.

10.4 Configuraes de idioma e especficas de pas


O SUSE Linux amplamente internacionalizado e pode ser modificado para satisfazer as necessidades locais de maneira flexvel. Em outras palavras, a internacionalizao (I18N) permite localizaes especficas (L10N). As abreviaes I18N e L10N so

Recursos especiais do SUSE Linux

231

derivadas das primeiras e ltimas letras das palavras e, no meio, est o nmero de letras omitidas. As configuraes so feitas com variveis LC_ definidas no arquivo /etc/ sysconfig/language. Estas referem-se no somente ao suporte ao idioma nativo, mas tambm s categorias Mensagens (Idioma), Conjunto de Caracteres, Ordem de Classificao, Hora e Data, Nmeros e Moeda. Cada uma dessas categorias pode ser definida diretamente com sua prpria varivel ou indiretamente com uma varivel master no arquivo language (consulte a pgina de manual local). RC_LC_MESSAGES, RC_LC_CTYPE, RC_LC_COLLATE, RC_LC_TIME, RC_LC_NUMERIC, RC_LC_MONETARY Essas variveis so passadas para o shell sem o prefixo RC_ e representa as categorias listadas. Os perfis shell de referncia esto listados abaixo. A configurao atual pode ser exibida com o comando locale. RC_LC_ALL Esta varivel, se definida, sobregrava os valores das variveis j mencionadas. RC_LANG Se nenhuma das variveis anteriores for definida, este o fallback. Por padro, o SUSE Linux apenas define RC_LANG. Isto facilita o processo para que os usurios informem seus prprios valores. ROOT_USES_LANG Uma varivel yes ou no. Se for definida como no, root sempre funcionar no ambiente POSIX. As variveis podem ser definidas com o editor sysconfig do YaST (consulte a Seo 8.3.1, Mudando a configurao do sistema usando o Editor sysconfig do YaST (p 198)). O valor de tal varivel contm o cdigo do idioma, cdigo do pas, codificao e modificador. Os componentes individuais so conectados por caracteres especiais:
LANG=<language>[[_<COUNTRY>].<Encoding>[@<Modifier>]]

10.4.1 Alguns exemplos


Voc deve sempre definir os cdigos do idioma e do pas juntos. As configuraes do idioma seguem o padro ISO 639 disponvel em http://www.evertype.com/ standards/iso639/iso639-en.html e http://www.loc.gov/

232

Referncia

standards/iso639-2/. Os cdigos de pas esto listados na varivel ISO 3166 disponvel em http://www.din.de/gremien/nas/nabd/iso3166ma/ codlstp1/en_listp1.html. S faz sentido definir valores para os quais os arquivos de descrio utilizveis podem ser encontrados em /usr/lib/locale. Arquivos de descrio adicionais podem ser criados de arquivos em /usr/share/i18n utilizando o comando localedef. Os arquivos de descrio fazem parte do pacote glibc-i18ndata. Um arquivo de descrio para en_US.UTF-8 (para ingls e Estados Unidos) pode ser criado com:
localedef -i en_US -f UTF-8 en_US.UTF-8

LANG=en_US.UTF-8 Esta a configurao padro se Ingls americano for selecionado durante a instalao. Se voc selecionou outro idioma, aquele idioma ser habilitado, mas ainda com o UTF-8 como a codificao de caractere. LANG=en_US.ISO-8859-1 Este define o idioma para ingls, pas para Estados Unidos e a definio de caractere para ISO-8859-1. Esta definio de caractere no suporta o sinal de Euro, mas s vezes pode ser til para programas que no foram atualizados para suportar UTF-8. A string que define o conjunto de caracteres (ISO-8859-1 neste caso) ento avaliada por programas como o Emacs. LANG=en_IE@euro O exemplo acima inclui explicitamente o sinal de Euro em uma configurao de idioma. Falando estritamente, esta configurao atualmente obsoleta, porque o UTF-8 tambm cobre o smbolo de Euro. Ela til apenas se um aplicativo no suportar o UTF-8, mas o ISO-8859-15. O SuSEconfig l as variveis em /etc/sysconfig/language e grava as mudanas necessrias em /etc/SuSEconfig/profile e /etc/SuSEconfig/csh .cshrc. /etc/SuSEconfig/profile lido ou originado por /etc/profile. /etc/SuSEconfig/csh.cshrc originado por /etc/csh.cshrc. Isso torna as configuraes disponveis em todo o sistema. Os usurios podem anular os padres do sistema editando o seu ~/.bashrc de acordo. Por exemplo, se voc no quiser usar o en_US global de sistema para mensagens de programa, inclua LC_MESSAGES=es_ES, ento as mensagens sero exibidas em espanhol.

Recursos especiais do SUSE Linux

233

10.4.2 Configuraes locais em ~/.i18n


Se voc no estiver satisfeito com padres de sistema locais, mude as configuraes em ~/.i18n. As entradas em ~/.i18n substituem padres de sistema de /etc/ sysconfig/language. Use os mesmos nomes de variveis mas sem os prefixos de namespace RC_, por exemplo, use LANG em vez de RC_LANG.

10.4.3 Configuraes de suporte de idioma


Arquivos na categoria Mensagens so, como regra, armazenados somente no diretrio do idioma correspondente (como en) para ter um fallback. Se voc definir LANG para en_US e o arquivo de mensagem em /usr/share/locale/en_US/LC _MESSAGES no existir, ele voltar para /usr/share/locale/en/LC _MESSAGES. Uma cadeia de fallback tambm pode ser definida, por exemplo, de breto para francs ou galego para espanhol ou portugus: LANGUAGE="br_FR:fr_FR" LANGUAGE="gl_ES:es_ES:pt_PT" Se desejado, use as variantes norueguesas Nynorsk e Bokml (com fallback adicional para no): LANG="nn_NO" LANGUAGE="nn_NO:nb_NO:no" ou LANG="nb_NO" LANGUAGE="nb_NO:nn_NO:no" Observe que em noruegus, LC_TIME tambm tratado de maneira diferente. Um problema que pode surgir um separador usado para delimitar grupos de dgitos no ser reconhecido corretamente. Isso acontece se LANG for definido para um cdigo de idioma com somente duas letras, como de, mas o arquivo de definio que o glibc 234 Referncia

utiliza est localizado em /usr/share/lib/de_DE/LC_NUMERIC. Por isso, LC_NUMERIC deve ser definido para de_DE para tornar a definio de separador visvel para o sistema.

10.4.4 Mais informaes


The GNU C Library Reference Manual, Captulo Locales and Internationalization. Ele est includo em glibc-info. Markus Kuhn, UTF-8 and Unicode FAQ for Unix/Linux, atualmente em http:// www.cl.cam.ac.uk/~mgk25/unicode.html. Unicode-Howto, de Bruno Haible: /usr/share/doc/howto/en/html/ Unicode-HOWTO.html.

Recursos especiais do SUSE Linux

235

Operao da impressora

11

CUPS o sistema de impresso padro do SUSE Linux. O CUPS altamente orientado ao usurio. Em muitos casos, compatvel com LPRng ou pode ser adaptado com relativamente pouco esforo. O LPRng includo no SUSE Linux apenas por motivos de compatibilidade. As impressoras podem ser distinguidas pela interface, como USB ou rede, e pela linguagem de impresso. Ao comprar uma impressora, verifique se a interface do equipamento suportada pelo hardware e se a linguagem da impressora adequada. As impressoras podem ser categorizadas com base em trs classes de linguagem: Impressoras PostScript PostScript a linguagem de impressora na qual a maior parte dos trabalhos de impresso Linux e Unix so gerados e processados pelo sistema de impresso interno. Essa linguagem j existe h bastante tempo e muito eficiente. Se documentos PostScript puderem ser diretamente processados pela impressora e no precisarem ser convertidos em estgios adicionais do sistema de impresso, o nmero de origens de erro potenciais ser reduzido. Como as impressoras PostScript esto sujeitas a custos de licenciamento substanciais, elas geralmente custam mais que as impressoras sem interpretador PostScript. Impressora padro (linguagens como PCL e ESC/P) Embora essas linguagens de impressora tenham surgido h bastante tempo, ainda so usadas e sofrem constantes desenvolvimentos para se adaptarem aos novos recursos de impressoras. No caso de linguagens conhecidas, o sistema pode converter tarefas de impresso PostScript na respectiva linguagem de impresso com a ajuda do Ghostscript. Esse estgio de processamento chamado de interpretao. As linguagens mais conhecidas so a PCL, mais usada pelas Operao da impressora 237

impressoras HP e seus clones, e a ESC/P, utilizada nas impressoras Epson. Geralmente, essas linguagens so suportadas no Linux e produzem um resultado de impresso satisfatrio. Pode ocorrer de o Linux no conseguir lidar com algumas funes de impressoras muito novas e sofisticadas, j que os desenvolvedores do cdigo-fonte aberto ainda estaro trabalhando nesses recursos. Alm da HP, que desenvolve os drivers hpijs, nenhum outro fabricante cria ou disponibiliza drivers Linux aos distribuidores como licena de cdigo-fonte aberto. A maior parte dessas impressoras est na faixa de preos intermediria. Impressoras proprietrias (geralmente, impressoras GDI) Em geral, apenas um ou vrios drivers Windows esto disponveis para impressoras proprietrias. Essas impressoras no aceitam nenhuma das linguagens de impresso comuns, e as que usam esto sujeitas a alterao quando uma nova edio de um modelo lanada. Consulte a Seo 11.7.1, Impressoras sem suporte de linguagem de impressora padro (p 253) para obter mais informaes. Antes de comprar uma nova impressora, consulte as seguintes fontes para verificar a abrangncia do suporte ao equipamento pretendido: http://cdb.suse.de/ banco de dados de impressoras do SUSE Linux http://www.linuxprinting.org/ banco de dados de impressoras do site LinuxPrinting.org http://www.cs.wisc.edu/~ghost/ site do Ghostscript na Web /usr/share/doc/packages/ghostscript/catalog.devices lista de drivers includos Os bancos de dados online sempre mostram o status de suporte Linux mais recente. No entanto, a distribuio do Linux s pode integrar os drivers disponveis no momento da produo. Da mesma forma, uma impressora atualmente classificada como perfeitamente suportada poder no apresentar esse status quando a prxima verso do SUSE Linux for lanada. Assim, os bancos de dados no indicaro necessariamente o status correto, mas apenas uma informao aproximada.

238

Referncia

11.1 Fluxo de trabalho do sistema de impresso


O usurio cria uma tarefa de impresso. Essa tarefa consiste nos dados a serem impressos, alm de informaes para o spooler, como nome da impressora ou nome da fila de impresso e, opcionalmente, dados para o filtro, como opes especficas da impressora. Existe uma fila de impresso dedicada para cada impressora. O spooler mantm a tarefa de impresso em fila at que a impressora desejada esteja pronta para receber dados. Uma vez pronta, o spooler envia os dados pelo filtro, tendo a impressora como back end. O filtro converte os dados que o usurio deseja imprimir (ASCII, PostScript, PDF, JPEG etc.) em dados especficos de impressora (PostScript, PCL, ESC/P etc.). Os recursos da impressora so descritos nos arquivos PPD. O arquivo PPD contm opes da impressora com os parmetros necessrios para habilit-los. O sistema de filtros verifica se as opes selecionadas pelo usurio foram habilitadas. Se voc usa uma impressora PostScript, o sistema de filtros converte os dados em PostScript especfico da impressora. Isso no exige um driver de impressora. Se voc usa uma impressora no-PostScript, o sistema de filtros converte os dados em dados especficos da impressora usando o Ghostscript. Isso exige um driver Ghostscript adequado sua impressora. O back end recebe do filtro os dados especficos da impressora e os repassa a ela.

11.2 Mtodos e protocolos de conexo de impressoras


Existem vrias possibilidades para conectar uma impressora ao sistema. A configurao do sistema de impresso CUPS no faz distino entre uma impressora local e uma impressora conectada ao sistema pela rede. No Linux, impressoras locais devem ser conectadas conforme descrito no manual do respectivo fabricante. O CUPS suporta conexes seriais, USB, paralelas e SCSI. Para obter mais informaes sobre a conexo de impressoras, leia o artigo CUPS in a Nutshell (Aprendendo mais um pouco sobre

Operao da impressora

239

CUPs) no Banco de Dados de Suporte, em http://portal.suse.com. Para encontrar o artigo, digite cups na caixa de dilogo de pesquisa. ATENO: Conexo do cabo mquina Ao conectar a impressora mquina, no esquea de que apenas dispositivos USB podem ser conectados ou desconectados durante a operao. Desligue o sistema antes de modificar outros tipos de conexo.

11.3 Instalao do software


PPD (descrio de impressora PostScript) a linguagem de computador que descreve as propriedades, como resoluo, e as opes, como disponibilidade de uma unidade duplex. Essas descries so necessrias para o uso de vrias opes de impressora no CUPS. Sem um arquivo PPD, os dados de impresso seriam encaminhados impressora em estado bruto, o que normalmente no desejado. Durante a instalao do SUSE Linux, vrios arquivos PPD so pr-instalados, habilitando o uso de at mesmo impressoras sem suporte a PostScript. Para configurar uma impressora PostScript, a melhor opo obter um arquivo PPD adequado. H vrios arquivos PPD disponveis no pacote de PPDs do fabricante, que so automaticamente instalados no escopo da instalao padro. Consulte a Seo 11.6.3, Arquivos PPD em pacotes diferentes (p 251) e a Seo 11.7.2, Nenhum arquivo PPD adequado disponvel para impressora PostScript (p 254). Novos arquivos PPD podem ser armazenados no diretrio /usr/share/cups/ model/ ou adicionados ao sistema de impresso por meio do YaST (consulte Configurao manual (p 242)). Posteriormente, possvel selecionar o arquivo PPD durante a instalao. Tenha cuidado se o fabricante pedir que voc instale pacotes de software inteiros para modificar arquivos de configurao. Em primeiro lugar, esse tipo de instalao pode resultar na perda do suporte oferecido pelo SUSE Linux. Em segundo lugar, os comandos de impresso podero funcionar de forma diferente, e talvez o sistema no consiga abordar dispositivos de outros fabricantes. Por isso, no recomendamos instalar o software do fabricante.

240

Referncia

11.4 Configurao da impressora


Aps conectar a impressora ao computador e instalar o software, instale a impressora no sistema. Faa isso usando as ferramentas que acompanham o SUSE Linux. Como o SUSE Linux enfatiza a segurana, ferramentas de terceiros no funcionaro bem com as restries de segurana e causaro mais problemas que benefcios. Consulte a Seo 11.6.1, Servidor e firewall do CUPS (p 248) e a Seo 11.6.2, Mudanas no servio de impresso do CUPS (p 249) para obter mais informaes sobre como solucionar problemas.

11.4.1 Impressoras locais


Se for detectada uma impressora local no configurada quando voc efetuar login, o YaST ser iniciado para configur-la. Sero usadas as mesmas caixas de dilogo mostradas abaixo para a descrio da configurao. Para configurar a impressora, selecione Hardware Impressora no centro de controle do YaST. Isso abrir a janela de configurao principal da impressora, onde os dispositivos detectados so listados na parte superior. A parte inferior relaciona as listas configuradas at ento. Se sua impressora no foi detectada, configure-a manualmente. IMPORTANTE Se a entrada Impressora no estiver disponvel no centro de controle do YaST, provavelmente o pacote yast2-printer no est instalado. Para solucionar esse problema, instale o pacote yast2-printer e reinicie o YaST.

Configurao automtica
O YaST poder configurar a impressora automaticamente se for possvel configurar automaticamente a porta paralela ou USB e se a impressora conectada puder ser detectada. O banco de dados da impressora tambm deve conter a string do ID da impressora que o YaST recupera durante a deteco automtica do hardware. Se o ID do hardware for diferente do da designao do modelo, selecione o modelo manualmente.

Operao da impressora

241

Para assegurar que tudo funcione adequadamente, cada configurao deve ser verificada com a funo de teste de impresso do YaST. A pgina de teste tambm fornece informaes importantes sobre a configurao testada.

Configurao manual
Se os requisitos da configurao automtica no forem atendidos, ou se voc quiser fazer uma configurao personalizada, configure a impressora manualmente. Dependendo do sucesso da deteco automtica e da quantidade de informaes sobre o modelo de impressora encontradas no banco de dados, o YaST poder determinar as configuraes corretas automaticamente ou, pelo menos, fazer uma pr-seleo razovel. Os seguintes parmetros devem ser configurados: Conexo de Hardware (Porta) A configurao da conexo de hardware depender da habilidade do YaST em encontrar a impressora durante a deteco automtica de hardware. Se o YaST conseguir detectar o modelo de impressora automaticamente, poderemos deduzir que a conexo da impressora est funcionando no nvel de hardware, no sendo necessrio modificar qualquer configurao a esse respeito. Se o YaST no conseguir detectar automaticamente o modelo de impressora, poder haver algum problema na conexo no nvel do hardware. Nesse caso, ser necessria alguma interveno manual para configurar a conexo. Na caixa de dilogo Configurao da Impressora, pressione Adicionar para iniciar o fluxo de trabalho de configurao manual. Selecione o Tipo de Impressora (por exemplo, Impressora USB) e, clicando em Prximo, digite a Conexo de Impressora e selecione o dispositivo. Nome da Fila O nome da fila usado quando emitimos comandos de impresso. O nome deve ser relativamente curto e composto apenas por letras minsculas e nmeros. Digite o Nome para impresso na prxima caixa de dilogo (Nome da fila). Modelo de Impressora e Arquivo PPD Todos os parmetros especficos da impressora, como o driver Ghostscript a ser usado e os parmetros do filtro de impresso, so armazenados em um arquivo PPD (PostDescription Printer Description). Consulte a Seo 11.3, Instalao do software (p 240) para obter mais informaes sobre arquivos PPD.

242

Referncia

Para muitos modelos de impressora, haver vrios arquivos PPD disponveis se, por exemplo, vrios drivers Ghostscript funcionarem com o modelo em questo. Quando voc selecionar um fabricante e um modelo na prxima caixa de dilogo (Modelo de impressora), o YaST selecionar o arquivo PPD que corresponde impressora. Se houver vrios arquivos PPD disponveis para o modelo, o YaST assumir um deles como padro (normalmente aquele marcado como recomendado). possvel modificar o arquivo PPD escolhido na prxima caixa de dilogo usando Editar. Para modelos no-PostScript, todos os dados especficos da impressora so produzidos pelo driver Ghostscript. Por esse motivo, a configurao do driver o fator mais importante a determinar a qualidade da impresso. A impresso afetada pelo tipo de driver Ghostscript (arquivo PPD) selecionado e pelas opes especificadas para ele. Se necessrio, mude as opes adicionais (conforme disponibilizadas pelo arquivo PPD) depois de selecionar Editar. Figura 11.1 Seleo do modelo de impressora

Sempre verifique se suas configuraes esto funcionando como esperado. Para isso, imprima a pgina de teste. Se a impresso sair com erros (por exemplo, com vrias pginas praticamente vazias), pare a impresso removendo todo o papel e, em seguida, interrompendo o teste no YaST.

Operao da impressora

243

Se o banco de dados da impressora no incluir uma entrada para o modelo, ser possvel adicionar um novo arquivo PPD selecionando Adicionando Arquivo PPD ao Banco de Dados ou usando um grupo de arquivos PPD genricos para forar a impressora a usar uma das linguagens de impresso padro. Para isso, selecione FABRICANTE DESCONHECIDO como fabricante da impressora. Configuraes Avanadas Normalmente, no necessrio alterar essas configuraes.

11.4.2 Impressoras de rede


Uma impressora de rede pode suportar vrios protocolos, alguns deles simultaneamente. Embora a maioria dos protocolos suportados sejam padronizados, alguns fabricantes expandem (modificam) o padro porque eles testam sistemas que no implementaram o padro corretamente ou porque querem fornecer certas funes que no esto disponveis no padro. Os fabricantes fornecem drivers apenas para alguns sistemas operacionais, eliminando dificuldades relativas a eles. Infelizmente, raros so os drivers para Linux. Na situao atual, no possvel agir como se todos os protocolos funcionassem perfeitamente no Linux. Portanto, talvez seja necessrio testar vrias opes para obter uma configurao funcional. O CUPS suporta os protocolos soquete, LPD, IPP e smb. Veja abaixo alguns detalhes sobre esses protocolos: soquete Soquete se refere a uma conexo na qual os dados so enviados a um soquete de Internet sem precedncia de handshake de dados. Alguns dos nmeros de portas de soquete normalmente usados so 9100 ou 35. Um exemplo de URI de dispositivo socket://host-printer:9100/. LPD (daemon de impressora de linha) O protocolo LPD comprovado descrito em RFC 1179. Nesse protocolo, alguns dados relativos tarefa, como ID da fila de impresso, so enviados antes dos dados de impresso propriamente ditos. Portanto, deve ser especificada uma fila de impresso durante a configurao do protocolo LPD para a transmisso de dados. As implementaes de fabricantes de impressoras diferentes so flexveis o suficiente para aceitar qualquer nome como fila de impresso. Se necessrio, o manual da impressora indicar o nome a ser usado. LPT, LPT1, LP1 ou semelhantes so os nomes normalmente usados. Tambm possvel configurar uma fila LPD

244

Referncia

em um host Linux ou Unix diferente no sistema CUPS. O nmero de porta para o servio LPD 515. Um exemplo de URI de dispositivo lpd://host-printer/LPT1. IPP (protocolo de impresso de Internet) O IPP um protocolo relativamente novo (1999) baseado no protocolo HTTP. Com o IPP, mais dados referentes tarefa so transmitidos. O CUPS usa o IPP em transmisses internas de dados. o protocolo escolhido para a fila de encaminhamento entre dois servidores CUPS. necessrio indicar o nome da fila de impresso para que o IPP seja configurado corretamente. A porta padro do IPP 631. Exemplos de URIs de dispositivo so ipp://host-printer/ps e ipp://host-cupsserver/printers/ps. SMB (compartilhamento Windows) O CUPS tambm suporta a impresso em impressoras conectadas a compartilhamentos Windows. O protocolo usado para essa finalidade o SMB. O SMB usa os nmeros de porta 137, 138 e 139. Exemplos de URIs de dispositivos so smb://user:password@workgroup/server/printer, smb://user:password@host/printer e smb://server/printer. O protocolo suportado pela impressora deve ser determinado antes da configurao. Se o fabricante no fornecer as informaes necessrias, o comando nmap, que vem com o pacote nmap, poder ser usado para descobrir o protocolo. nmap verificar as portas abertas do host. Por exemplo:
nmap -p 35,137-139,515,631,9100-10000 printerIP

Configurao do CUPS na rede com YaST


As impressoras de rede devem ser configuradas com o YaST. O YaST facilita a configurao e mais bem equipado para lidar com restries de segurana no CUPS (consulte a Seo 11.6.2, Mudanas no servio de impresso do CUPS (p 249)). Para obter orientaes sobre a instalao do CUPS na rede, leia o artigo CUPS in a Nutshell no Banco de Dados de Suporte, em http://portal.suse.com. Inicie a configurao da impressora e clique em Adicionar. Se no houver orientao contrria do administrador de rede, tente a opo Imprimir Diretamente em Impressora de Rede e prossiga de acordo com os requisitos locais.

Operao da impressora

245

Configurao com ferramentas da linha de comando


O CUPS tambm pode ser configurado com ferramentas de linha de comando como lpadmin e lpoptions. Voc precisar de um URI de dispositivo consistente em um back end, como usb, e parmetros como /dev/usb/lp0. Por exemplo, o URI completo poderia ser parallel:/dev/lp0 (impressora conectada primeira porta paralela) ou usb:/dev/usb/lp0 (primeira impressora conectada porta USB). Com lpadmin, o administrador do servidor CUPS pode adicionar, remover ou gerenciar filas de classe e de impresso. Para adicionar uma fila de impresso, use a seguinte sintaxe:
lpadmin -p queue -v device-URI \ -P PPD-file -E

O dispositivo (-v) estar disponvel como fila (-p), usando o arquivo PPD especificado (-P). Isso significa que voc deve conhecer o arquivo PPD e o nome do dispositivo se quiser configurar a impressora manualmente. No use -E como primeira opo. Em todos os comandos CUPS, -E como primeiro argumento define o uso de uma conexo criptografada. Para habilitar a impressora, -E deve ser usado como mostrado no seguinte exemplo:
lpadmin -p ps -v parallel:/dev/lp0 -P \ /usr/share/cups/model/Postscript.ppd.gz -E

O seguinte exemplo configura uma impressora de rede:


lpadmin -p ps -v socket://192.168.1.0:9100/ -P \ /usr/share/cups/model/Postscript-level1.ppd.gz -E

Para obter mais opes de lpadmin, consulte a pgina de manual lpadmin(1). Durante a configurao da impressora, algumas opes so definidas como padro. Essas opes podem ser modificadas para cada tarefa de impresso (dependendo da ferramenta de impresso utilizada). Tambm possvel modificar essas opes padro com o YaST. Usando ferramentas de linha de comando, defina opes padro da seguinte forma: 1 Primeiro, liste todas as opes:
lpoptions -p queue -l

Exemplo:

246

Referncia

Resoluo/Resoluo de Sada: 150dpi *300dpi 600dpi

A opo padro ativada fica evidente com o asterisco precedente (*). 2 Mude a opo com lpadmin:
lpadmin -p queue -o Resolution=600dpi

3 Verifique a nova configurao:


lpoptions -p queue -l Resoluo/Resoluo de Sada: 150dpi 300dpi *600dpi

As configuraes so gravadas em ~/.lpoptions quando um usurio normal executa lpoptions. As configuraes de root so gravadas em /etc/cups/lpoptions.

11.5 Configurao de aplicativos


Os aplicativos, assim como as ferramentas da linha de comando, dependem das filas de impressora existentes. Geralmente, no necessrio reconfigurar a impressora de um aplicativo especfico porque provavelmente voc conseguir imprimir usando as filas disponveis. Para imprimir da linha de comando, digite lp-d nome da fila nome do arquivo, substituindo os nomes correspondentes do nome da fila e nome do arquivo. Alguns aplicativos dependem do comando lp para imprimir. Nesse caso, digite o comando correto na caixa de dilogo do aplicativo, geralmente sem especificar nome do arquivo, por exemplo lp -dnome da fila. Para que isso funcione com programas KDE, habilite Impresso atravs de programa externo. Caso contrrio, voc no poder digitar o comando de impresso. Ferramentas como o xpp e o programa kprinter do KDE oferecem uma interface grfica que permite escolher filas e definir opes padro do CUPS e especficas da impressora disponibilizadas por meio do arquivo PPD. Voc pode usar o kprinter como interface de impresso padro de aplicativos no KDE especificando kprinter ou kprinter--stdin como comando de impresso nas caixas de dilogo desses aplicativos. O comportamento do aplicativo determinar o comando a ser escolhido.

Operao da impressora

247

Se configurado corretamente, o aplicativo dever chamar a caixa de dilogo kprinter sempre que uma tarefa de impresso for emitida. Por isso, voc pode usar a caixa de dilogo para selecionar uma fila e definir outras opes de impresso. Isso requer que a configurao de impresso do prprio aplicativo no conflite com a do kprinter, e que as opes de impresso somente sejam modificadas por meio de kprinter depois que este seja habilitado.

11.6 Recursos especiais do SUSE Linux


Vrios recursos do CUPS foram adaptados para o SUSE Linux. Algumas das mudanas mais importantes so abordadas aqui.

11.6.1 Servidor e firewall do CUPS


Existem vrias maneiras de configurar o CUPS como cliente de um servidor de rede. 1. Para cada fila do servidor de rede, voc pode configurar uma fila local por meio da qual encaminhar todas as tarefas ao servidor de rede correspondente (fila de encaminhamento). Geralmente, essa abordagem no recomendada porque todas as mquinas clientes devem ser reconfiguradas sempre que a configurao do servidor de rede sofrer alguma mudana. As tarefas de impresso tambm podem ser encaminhadas diretamente a um servidor de rede. Para esse tipo de configurao, no execute um daemon CUPS local. A chamada de lp ou da biblioteca correspondente de outros programas pode enviar tarefas diretamente ao servidor de rede. No entanto, essa configurao no funcionar se voc tambm quiser imprimir em uma impressora local. O daemon CUPS pode ouvir pacotes de transmisso IPP que outros servidores de rede enviam para anunciar as filas disponveis. Essa a melhor configurao do CUPS para impresso em servidores CUPS remotos. No entanto, h o risco de que um invasor envie transmisses IPP com filas e o daemon local acesse uma fila falsa. Se ele exibir a fila com o mesmo nome de outra fila no servidor local, o proprietrio da tarefa poder acreditar que a tarefa foi enviada a um servidor local, enquanto, na verdade, ela foi enviada ao servidor do invasor.

2.

3.

248

Referncia

O YaST pode localizar os servidores CUPS verificando os hosts de rede local para ver se eles oferecem o servio IPP ou ouvindo transmisses IPP. Isso exige que o firewall permita a transmisso de pacotes recebidos na porta 631/UDP (cliente de servio IPP). Isso ser habilitado automaticamente quando voc tiver configurado sua mquina para estar na zona de firewall interna. Abrir uma porta para configurar acesso a filas remotas na zona externa pode constituir um risco de segurana porque o invasor pode transmitir um servidor que talvez seja aceito pelos usurios. Por padro, as transmisses de IPP so rejeitadas na zona externa. Consulte Configurando com o YaST (p 110) para obter detalhes sobre a configurao de firewall. O usurio tambm pode detectar os servidores CUPS verificando ativamente os hosts de rede locais ou configurar filas manualmente. No entanto, por causa das razes mencionadas no incio desta seo, esse mtodo no recomendado.

11.6.2 Mudanas no servio de impresso do CUPS


Estas mudanas foram inicialmente aplicadas para o SUSE Linux 9.1.

Execues de cupsd como usurio lp


Na inicializao, cupsd muda do usurio root para o usurio lp. Isso oferece um nvel de segurana muito maior porque o servio de impresso CUPS no executado com permisses irrestritas, mas somente com as permisses necessrias para o servio de impresso. Entretanto, a autenticao (a verificao de senha) no pode ser executada via /etc/ shadow, porque lp no tem acesso a /etc/shadow. Em vez disso, deve ser usada a autenticao especfica do CUPS via /etc/cups/passwd.md5. Para esses fins, o administrador do CUPS com o grupo de administrao do CUPS sys e a senha do CUPS devem ser digitados em /etc/cups/passwd.md5. Para isso, digite o seguinte como root:
lppasswd -g sys -a CUPS-admin-name

Esta configurao tambm essencial se voc quiser usar o front end da Web de administrao CUPS ou a ferramenta de administrao da impressora KDE.

Operao da impressora

249

Quando cupsd executado como lp, /etc/printcap no pode ser gerado, porque lp no pode criar arquivos em /etc/. Portanto, cupsd gera /etc/cups/ printcap. Para assegurar que os aplicativos que lem somente nomes de fila de /etc/printcap continuem a funcionar adequadamente, /etc/printcap um link simblico que aponta para /etc/cups/printcap. Quando cupsd executado como lp, a porta 631 no pode ser aberta. Portanto, cupsd no pode ser recarregado com rccups reload. Use rccups restart.

Funcionalidade genrica para BrowseAllow e BrowseDeny


As permisses de acesso para BrowseAllow e BrowseDeny se aplicam a todos os tipos de pacotes enviados para cupsd. As configuraes padro em /etc/cups/ cupsd.conf so as seguintes:
BrowseAllow @LOCAL BrowseDeny All

e
<Local /> Order Deny, Allow Deny From All Allow From 127.0.0.1 Allow From 127.0.0.2 Allow From @LOCAL </Local>

Dessa forma, somente hosts LOCAL podem acessar cupsd em um servidor CUPS. Hosts LOCAL so hosts cujos endereos IP pertencem a uma interface no-PPP (interfaces cujos sinalizadores IFF_POINTOPOINT no esto definidos) e pertencem mesma rede do servidor CUPS. Pacotes de todos os outros hosts sero rejeitados imediatamente.

cupsd ativado por padro


Em uma instalao padro, cupsd ativado automaticamente, permitindo fcil acesso a filas de servidores de rede CUPS sem qualquer ao manual adicional. Os itens em Execues de cupsd como usurio lp (p 249) e Funcionalidade genrica para BrowseAllow e BrowseDeny (p 250) so pr-condies essenciais desse recurso, caso contrrio a segurana no seria suficiente para ativao automtica de cupsd.

250

Referncia

11.6.3 Arquivos PPD em pacotes diferentes


A configurao de impressora do YaST define as filas do CUPS usando apenas os arquivos PPD instalados em /usr/share/cups/model/ no sistema. Para localizar os arquivos PPD adequados ao modelo de impressora, o YaST compara o fabricante e o modelo determinados durante a deteco do hardware aos fabricantes e modelos de todos os arquivos PPD disponveis em /usr/share/cups/model/ no sistema. Para isso, a configurao de impressora do YaST gera um banco de dados com as informaes de fabricante e modelo extradas dos arquivos PPD. Quando voc seleciona uma impressora na lista de fabricantes e modelos, recebe os arquivos PPD que correspondem ao fabricante e modelo adequados. A configurao usando apenas arquivos PPD e nenhuma outra fonte de informao tem a vantagem de permitir a livre modificao de arquivos PPD em /usr/share/cups/ model/. A configurao de impressora do YaST reconhece as mudanas e gera novamente o banco de dados de fabricantes e modelos. Por exemplo, se voc tem apenas impressoras PostScript, normalmente no precisa dos arquivos PPD Foomatic do pacote cups-drivers ou os arquivos PPD Gimp-Print do pacote cups-drivers-stp. Em vez disso, os arquivos PPD de suas impressoras PostScript podem ser copiados diretamente para /usr/share/cups/model/ (se j no existem no pacote manufacturer-PPDs) para que voc obtenha uma configurao ideal para suas impressoras.

Arquivos PPD do CUPS do pacote cups


Os arquivos PPD genricos do pacote cups foram complementados com arquivos PPD Foomatic adaptados para impressoras PostScript nvel 1 e 2: /usr/share/cups/model/Postscript-level1.ppd.gz /usr/share/cups/model/Postscript-level2.ppd.gz

Arquivos PPD do pacote cups-drivers


Normalmente, o filtro de impressora Foomatic foomatic-rip usado junto com Ghostscript para impressoras no-PostScript. Os arquivos PPD Foomatic adequados tm as entradas *NickName: ... Foomatic/Ghostscript driver e

Operao da impressora

251

*cupsFilter: ... foomatic-rip. Esses arquivos PPD esto localizados no pacote cups-drivers. O YaST preferir um arquivo PPD Foomatic se um arquivo destes com a entrada *NickName: ... Foomatic ... (recommended) corresponder ao modelo de impressora e o pacote manufacturer-PPDs no contiver um arquivo PPD mais adequado.

Arquivos PPD Gimp-Print do pacote cups-drivers-stp


Em vez de foomatic-rip, o filtro CUPS rastertoprinter do Gimp-Print pode ser usado em vrias impressoras no-PostScript. Esse filtro e os arquivos PPD GimpPrint adequados esto disponveis no pacote cups-drivers-stp. Os arquivos PPD Gimp-Print esto localizados em /usr/share/cups/model/stp/ e tm as entradas *NickName: ... CUPS+Gimp-Print e *cupsFilter: ... rastertoprinter.

Arquivos PPD de fabricantes de impressoras no pacote manufacturer-PPDs


O pacote manufacturer-PPDs contm arquivos PPD de fabricantes de impressoras que so liberados mediante uma licena suficientemente permissiva. Impressoras PostScript devem ser configuradas com o arquivo PPD adequado do fabricante da impressora, j que esse arquivo permite o uso de todas as funes da impressora PostScript. O YaST preferir um arquivo PPD do pacote manufacturer-PPDs se as seguintes condies forem atendidas: O fabricante e o modelo determinados durante a deteco do hardware correspondem ao fabricante e ao modelo de um arquivo PPD do pacote manufacturer-PPDs. O arquivo PPD do pacote manufacturer-PPDs o nico arquivo PPD adequado para o modelo de impressora ou existe um arquivo PPD Foomatic com uma entrada *NickName: ... Foomatic/Postscript (recommended) que tambm corresponde ao modelo de impressora. Assim, o YaST no usa nenhum arquivo PPD do pacote manufacturer-PPDs nos seguintes casos:

252

Referncia

O arquivo PPD do pacote manufacturer-PPDs no corresponde ao fabricante e ao modelo. Isso poder ocorrer se o pacote manufacturer-PPDs contiver apenas um arquivo PPD para modelos semelhantes, por exemplo, se no houver arquivo PPD separado para os modelos individuais de uma srie de modelos, mas o nome do modelo for especificado na forma Funprinter 1000 series no arquivo PPD. O arquivo PPD Foomatic PostScript no recomendado. Isso talvez ocorra porque o modelo de impressora no funciona suficientemente bem no modo PostScript; por exemplo, a impressora pode no ser confivel nesse modo porque tem pouca memria ou muito lenta porque seu processador fraco. Alm disso, a impressora pode no suportar PostScript por padro porque, por exemplo, o suporte a PostScript s est disponvel como mdulo opcional. Se um arquivo PPD do pacote manufacturer-PPDs for adequado para uma impressora PostScript, mas o YaST no puder configur-lo por esses motivos, selecione manualmente o modelo de impressora respectivo no YaST.

11.7 Soluo de problemas


As sees a seguir abordam alguns dos problemas mais encontrados em relao a hardware e software de impressora, bem como formas de solucionar ou superar esses problemas.

11.7.1 Impressoras sem suporte de linguagem de impressora padro


As impressoras que no suportam nenhuma linguagem de impressora comum e s podem ser endereadas com seqncias de controle especiais so chamadas de impressoras GDI. Essas impressoras s funcionam com as verses do sistema operacional para as quais o fabricante oferece driver. GDI uma interface de programao desenvolvida pela Microsoft para dispositivos grficos. O verdadeiro problema no a interface de programao, mas o fato de que as impressoras GDI s podem ser endereadas com a linguagem de impressora proprietria do respectivo modelo de impressora.

Operao da impressora

253

Algumas impressoras podem ser modificadas para funcionar no modo GDI ou em uma das linguagens de impressora padro. Alguns fabricantes oferecem drivers proprietrios para suas impressoras GDI. A desvantagem dos drivers de impressora proprietrios que no h garantia de que vo funcionar com o sistema de impresso instalado e de que so adequados para as diferentes plataformas de hardware. Em contraste, impressoras que suportam uma linguagem de impressora padro no dependem de uma verso do sistema de impresso especial ou de plataforma de hardware especial. Em vez de desperdiar tempo tentando fazer um driver Linux proprietrio funcionar, pode ser mais eficaz comprar uma impressora suportada. Isso solucionaria o problema do driver de uma vez por todas, eliminando a necessidade de instalar e configurar software de driver especial e obter atualizaes do driver eventualmente necessrias devido a novos avanos no sistema de impresso.

11.7.2 Nenhum arquivo PPD adequado disponvel para impressora PostScript


Se o pacote manufacturer-PPDs no contiver qualquer arquivo PPD adequado para uma impressora PostScript, ser possvel usar o arquivo PPD do CD do driver do fabricante da impressora ou fazer download de um arquivo PPD adequado da pgina da Web do fabricante. Se o arquivo PPD for fornecido como arquivo compactado (.zip) ou arquivo compactado de auto-extrao (.exe), faa a descompactao com unzip. Primeiro, reveja os termos de licena do arquivo PPD. Use o utilitrio cupstestppd para verificar se o arquivo PPD compatvel com a Especificao de Formato do Arquivo de Descrio de Impressora Adobe PostScript, verso 4.3. Se o utilitrio retornar FAIL, os erros dos arquivos PPD so srios e provavelmente causaro grandes problemas. Os problemas reportados pelo cupstestppd devem ser eliminados. Se necessrio, pea o arquivo PPD adequado ao fabricante da impressora.

11.7.3 Portas paralelas


A abordagem mais segura conectar a impressora diretamente primeira porta paralela e selecionar as configuraes de porta paralela no BIOS: Endereo de E/S: 378 (hexadecimal)

254

Referncia

Interrupo: irrelevante Modo: Normal, SPP ou Output Only DMA: desabilitado Se a impressora no puder ser endereada na porta paralela apesar dessas configuraes, digite o endereo de E/S explicitamente de acordo com a configurao no BIOS no formato 0x378 em /etc/modprobe.conf. Se houver duas portas paralelas definidas para os endereos de E/S 378 e 278 (hexadecimal), digite-os no formato 0x378,0x278. Se a interrupo 7 estiver livre, poder ser ativada com a entrada mostrada no Exemplo 11.1, /etc/modprobe.conf: Modo de interrupo para a primeira porta paralela (p 255). Antes de ativar o modo de interrupo, verifique o arquivo /proc/ interrupts para ver quais interrupes j esto sendo usadas. Somente as interrupes usadas atualmente so exibidas. Isso pode mudar dependendo dos componentes de hardware ativos. A interrupo da porta paralela no deve ser usada por outro dispositivo. Se no tiver certeza, use o modo de polling com irq=none. Exemplo 11.1 /etc/modprobe.conf: Modo de interrupo para a primeira porta paralela
alias parport_lowlevel parport_pc options parport_pc io=0x378 irq=7

11.7.4 Conexes da impressora de rede


Identificao de problemas de rede Conecte a impressora diretamente ao computador. Para fins de teste, configure-a como impressora local. Se isso funcionar, o problema est na rede. Verificando a rede TCP/IP A rede TCP/IP e a resoluo de nomes devem ser funcionais. Verificando um lpd remoto Use o comando a seguir para testar o estabelecimento de uma conexo TCP com lpd (porta 515) no host.
netcat -z host 515 && echo ok || echo failed

Operao da impressora

255

Se a conexo com lpd no for estabelecida, o lpd pode no estar ativo ou pode haver problemas bsicos de rede. Como usurio root, use o seguinte comando para consultar um relatrio de status (possivelmente muito longo) sobre a fila no host remoto, considerando que o respectivo lpd esteja ativo e o host aceite consultas:
echo -e "\004queue" \ | netcat -w 2 -p 722 host 515

Se o lpd no responder, ele pode no estar ativo ou pode haver problemas bsicos de rede. Se o lpd responder, a resposta deve mostrar por que no possvel imprimir na fila do host. Se voc receber uma resposta como a do Exemplo 11.2, Mensagem de erro do lpd (p 256), o problema est sendo causado pelo lpd remoto. Exemplo 11.2 Mensagem de erro do lpd
lpd: your host does not have line printer access lpd: queue does not exist printer: spooling disabled printer: printing disabled

Verificando um cupsd remoto Por padro, o servidor de rede CUPS deve transmitir suas filas a cada 30 segundos na porta UDP 631. Por isso, o seguinte comando pode ser usado para testar a existncia de um servidor de rede CUPS na rede.
netcat -u -l -p 631 & PID=$! ; sleep 40 ; kill $PID

Se existir um servidor de rede CUPS de transmisso, a sada aparecer conforme mostrado no Exemplo 11.3, Transmisso do servidor de rede CUPS (p 256). Exemplo 11.3 Transmisso do servidor de rede CUPS
ipp://host.domain:631/printers/queue

Use o comando a seguir para testar o estabelecimento de uma conexo TCP com cupsd (porta 631) no host.
netcat -z host 631 && echo ok || echo failed

Se a conexo com cupsd no for estabelecida, o cupsd pode no estar ativo ou existem problemas bsicos de rede. lpstat -h host -l -t retorna um relatrio de status (possivelmente muito longo) para todas as filas do host, desde que o respectivo cupsd esteja ativo e o host aceite consultas. 256 Referncia

O prximo comando pode ser usado para testar se a fila do host aceita uma tarefa de impresso consistindo em um nico caractere de retorno de carro. Nada ser impresso. Possivelmente, ser ejetada uma pgina em branco.
echo -en "\r" \ | lp -d fila -h host

Soluo de problemas da impressora de rede ou da caixa do servidor de impresso Algumas vezes, spoolers executados na caixa do servidor de impresso causam problemas quando precisam lidar com muitas tarefas de impresso. Como isso causado pelo spooler nessa caixa, no h soluo para o problema. Como paliativo, desvie o spooler na caixa do servidor de impresso endereando a impressora conectada caixa diretamente por meio do soquete TCP. Consulte a Seo 11.4.2, Impressoras de rede (p 244). Dessa forma, a caixa do servidor de impresso reduzida a um conversor entre as vrias formas de transferncia de dados (conexo de rede TCP/IP e impressora local). Para usar esse mtodo, voc precisa conhecer a porta TCP da caixa do servidor de impresso. Se a impressora estiver conectada caixa do servidor de impresso e ligada, a porta TCP poder, geralmente, ser determinada com o utilitrio nmap do pacote nmap depois que essa caixa for ativada. Por exemplo, nmapendereo IP pode resultar na seguinte sada para a caixa do servidor de impresso:
Port 23/tcp 80/tcp 515/tcp 631/tcp 9100/tcp State open open open open open Service telnet http printer cups jetdirect

Essa sada indica que a impressora conectada caixa do servidor de impresso pode ser endereada via soquete TCP na porta 9100. Por padro, nmap verifica somente algumas portas mais conhecidas listadas em /usr/share/nmap/ nmap-services. Para verificar todas as portas possveis, use o comando nmap-pporta_de_origem-porta_de_destino endereo-IP. O processo pode demorar. Para obter mais informaes, consulte a pgina de manual nmap. Digite um comando como
echo -en "\rHello\r\f" | netcat -w 1 porta endereo-IP arquivo cat | netcat -w 1 porta endereo-IP

Operao da impressora

257

para enviar strings de caracteres ou arquivos diretamente respectiva porta para testar se a impressora pode ser endereada dessa porta.

11.7.5 Defeitos na impresso sem mensagem de erro


Para o sistema de impresso, a tarefa de impresso concluda quando o back end do CUPS finaliza a transferncia de dados ao destinatrio (impressora). Se houver falha no processamento posterior no destinatrio (por exemplo, se a impressora no imprimir seus dados especficos), o sistema de impresso no notar. Se a impressora no imprimir seus dados especficos, selecione outro arquivo PPD mais adequado impressora.

11.7.6 Filas desabilitadas


Se a transferncia de dados para o destinatrio falhar completamente aps vrias tentativas, o back end do CUPS, como usb ou soquete, reportar um erro ao sistema de impresso (ao cupsd). O back end decide se e quantas tentativas devem ser feitas at que a transferncia de dados seja reportada como impossvel. Como tentativas posteriores podem ser inteis, o cupsd desabilita a impresso da fila respectiva. Aps eliminar a causa do problema, o administrador do sistema deve reabilitar a impresso com o comando /usr/bin/enable.

11.7.7 Navegao no CUPS: apagando tarefas de impresso


Se um servidor de rede CUPS transmitir suas filas aos hosts de clientes via navegao e um cupsd local adequado estiver ativo nos hosts de clientes, o cupsd cliente aceitar tarefas de impresso de aplicativos e as encaminhar para o cupsd no servidor. Quando o cupsd aceita uma tarefa de impresso, esta recebe um novo nmero. Portanto, o nmero da tarefa no host cliente diferente do nmero da tarefa no servidor. Como geralmente a tarefa de impresso encaminhada de imediato, no pode ser apagada com o nmero de tarefa do host cliente, porque o cupsd cliente considera a tarefa como concluda assim que ela encaminhada ao cupsd do servidor.

258

Referncia

Para apagar a tarefa de impresso no servidor, use um comando como lpstat -h print-server -o para determinar o nmero da tarefa no servidor, contanto que o servidor no tenha concludo a tarefa de impresso (isto , enviado para a impressora). Usando este nmero, a tarefa de impresso pode ser apagada no servidor:
cancel -h servidor-de-impresso fila-nr_tarefa

11.7.8 Tarefas de impresso defeituosas e erros de transferncia de dados


As tarefas de impresso permanecero nas filas e a impresso recomear se voc desligar e ligar a impressora ou desligar e reinicializar o computador durante o processo de impresso. As tarefas de impresso defeituosas devem ser removidas da fila com cancel. Se a tarefa de impresso apresentar defeito ou se ocorrer um erro na comunicao entre o host e a impressora, a impressora imprimir vrias folhas de papel com caracteres ininteligveis porque no conseguiu processar os dados corretamente. Para solucionar esse problema, siga este procedimento: 1 Para interromper a impresso, remova todo o papel das bandejas da impressora jato de tinta ou laser. Impressoras de alta qualidade tm um boto de cancelamento da impresso. 2 A tarefa de impresso pode ainda estar na fila, j que as tarefas so removidas somente depois de enviadas completamente impressora. Use lpstat -o ou lpstat -h servidor-de-impresso -o para verificar a fila que est sendo impressa. Apague a tarefa com cancelfila-nmerodatarefa ou cancel -hservidor-de-impresso fila-nmerodatarefa. 3 Alguns dados podem ainda ser transferidos impressora mesmo que a tarefa seja apagada da fila. Verifique se h um processo back end do CUPS em execuo para a fila respectiva e termine-o. Por exemplo, para uma impressora conectada porta paralela, o comando fuser -k /dev/lp0 pode ser usado para terminar todos os processos que ainda esto acessando a impressora (mais precisamente: a porta paralela). 4 Reinicialize a impressora completamente deixando-a desligada por um tempo. Em seguida, insira o papel e ligue a impressora.

Operao da impressora

259

11.7.9 Depurao do sistema de impresso do CUPS


Use o seguinte procedimento genrico para localizar problemas no sistema de impresso do CUPS: 1 Defina LogLevel debug em /etc/cups/cupsd.conf. 2 Pare o cupsd. 3 Remova /var/log/cups/error_log* para no precisar procurar em arquivos de registro muito grandes. 4 Inicie o cupsd. 5 Repita a ao que causou o problema. 6 Verifique as mensagens em /var/log/cups/error_log* para identificar a causa do problema.

11.7.10 Mais informaes


Solues para vrios problemas especficos so apresentadas no Banco de Dados de Suporte do SUSE (http://portal.suse.com/). Localize os artigos relevantes com pesquisas de palavras-chave.

260

Referncia

Gerenciamento de dispositivo de kernel dinmico com udev

12

Desde a verso 2.6, o kernel capaz de adicionar ou remover praticamente qualquer dispositivo no sistema em execuo. Mudanas no estado do dispositivo (se um dispositivo foi conectado ou removido) precisam ser estendidas ao espao do usurio. Os dispositivos devem ser configurados assim que forem conectados e identificados. Os usurios de um determinado dispositivo devem ser informados sobre qualquer mudana de estado deste dispositivo. O udev fornece a infra-estrutura necessria para manter dinamicamente os arquivos de n de dispositivo e links simblicos no diretrio /dev. As regras do udev permitem conectar ferramentas externas ao processamento de evento de dispositivo de kernel. Isso permite que voc personalize o tratamento do dispositivo de udev, por exemplo, adicionando determinados scripts a serem executados como parte do tratamento do dispositivo de kernel ou solicitar e importar dados adicionais para avaliao durante o tratamento do dispositivo.

12.1 O diretrio /dev


Os ns de dispositivo no diretrio /dev fornecem acesso aos dispositivos de kernel correspondentes. Com o udev, o diretrio /dev reflete o estado atual do kernel. Cada dispositivo de kernel tem um arquivo de dispositivo correspondente. Se um dispositivo for desconectado do sistema, o n de dispositivo ser removido. O contedo do diretrio /dev ser mantido em um sistema de arquivos temporrio e os arquivos sero criados do zero a cada inicializao do sistema. Os arquivos criados manualmente ou modificados intencionalmente no sobrevivem a uma reinicializao. Diretrios e arquivos estticos que sempre devem estar presentes no diretrio /dev, independentemente do estado do dispositivo de kernel correspondente, podem ser

Gerenciamento de dispositivo de kernel dinmico com udev

261

colocados no diretrio /lib/udev/devices. Na inicializao do sistema, o contedo do diretrio copiado para o diretrio /dev com propriedade e permisses iguais s dos arquivos em /lib/udev/devices.

12.2 udev e uevents de kernel


As informaes de dispositivo necessrias so exportadas pelo sistema de arquivos sysfs. Para cada dispositivo detectado e inicializado pelo kernel, um diretrio com o nome do dispositivo criado. Ele contm arquivos de atributos com propriedades especficas do dispositivo. Sempre que um dispositivo adicionado ou removido, o kernel envia um uevent para notificar o udev da mudana. O daemon udev l e analisa todas as regras fornecidas dos arquivos /etc/udev/ rules.d/*.rules uma vez na inicializao e mantm essas regras na memria. Se arquivos de regras forem modificados, adicionados ou removidos, o daemon receber um evento e atualizar a representao das regras na memria. Cada evento recebido comparado com o conjunto de regras fornecido. As regras podem adicionar ou modificar chaves de ambiente de eventos, solicitar um nome especfico a ser criado pelo n do evento, adicionar symlinks apontando para o n ou adicionar programas a serem executados aps a criao do n do dispositivo. Os uevents centrais do driver so recebidos de um soquete de netlink de kernel.

12.3 Drivers, mdulos de kernel e dispositivos


Os drivers de barramento de kernel pesquisam dispositivos. Para cada dispositivo detectado, o kernel cria uma estrutura interna de dispositivo e o centro do driver envia um uevent para o daemon udev. Dispositivos de barramento se identificam atravs de um ID formatado especialmente, que informa o tipo de dispositivo. Geralmente esses IDs consistem em IDs de produto e fornecedor, alm de outros valores especficos do subsistema. Cada barramento tem seu prprio esquema para esses IDs, chamados MODALIAS. O kernel toma as informaes do dispositivo, compe uma string de ID MODALIAS a partir dele e envia essa string junto com o evento. Para um mouse USB, a string tem a seguinte aparncia:
MODALIAS=usb:v046DpC03Ed2000dc00dsc00dp00ic03isc01ip02

262

Referncia

Cada driver de dispositivo carrega uma lista de lias conhecidos para os dispositivos que pode tratar. A lista est contida no prprio arquivo de mdulo de kernel. O programa depmod l as listas de ID e cria o arquivo modules.alias no diretrio /lib/ modules do kernel para todos os mdulos disponveis atualmente. Com essa infraestrutura, carregar o mdulo fcil como chamar modprobe para cada evento com uma chave MODALIAS. Se modprobe $MODALIAS for chamado, ele corresponder o lias do dispositivo composto para o dispositivo com os lias fornecidos pelos mdulos. Se uma entrada correspondente for encontrada, o mdulo ser carregado. Tudo isso acionado pelo udev e ocorre automaticamente.

12.4 Inicializao e configurao do dispositivo inicial


Todos os eventos de dispositivo que ocorrerem durante o processo de inicializao antes da execuo do daemon udev so perdidos, pois a infra-estrutura para tratar esses eventos est no sistema de arquivos raiz e no est disponvel no momento. Para compensar essa perda, o kernel fornece um arquivo uevent para cada dispositivo no sistema de arquivos sysfs. Ao gravar add para esse arquivo, o kernel envia novamente o mesmo evento como o evento perdido durante a inicializao. Um loop simples em todos os arquivos uevent em /sys aciona todos os eventos novamente para criar os ns de dispositivo e executar a configurao do dispositivo. Por exemplo, durante o boot, um mouse USB talvez no seja inicializado pela lgica de boot anterior, pois o driver no est disponvel nesse momento. O evento para a descoberta do dispositivo foi perdido e no encontrou um mdulo de kernel para o dispositivo. Em vez de voc pesquisar manualmente por dispositivos possivelmente conectados, o udev solicita todos os eventos de dispositivo do kernel depois que o sistema de arquivos raiz est disponvel. Assim, o evento do dispositivo do mouse USB executado novamente. Ento ele encontra o mdulo de kernel no sistema de arquivos raiz montado e o mouse USB pode ser inicializado. No espao do usurio, no h diferena visvel entre uma seqncia coldplug do dispositivo e uma deteco de dispositivo durante a execuo. Em ambos os casos, as mesmas regras so usadas para correspondncia e os mesmos programas configurados so executados.

Gerenciamento de dispositivo de kernel dinmico com udev

263

12.5 Depurando eventos do udev


O programa udevmonitor pode ser usado para visualizar os eventos centrais do driver e a temporizao dos processos de eventos do udev.
UEVENT[1132632714.285362] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2 UEVENT[1132632714.288166] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2/2-2:1.0 UEVENT[1132632714.309485] add@/class/input/input6 UEVENT[1132632714.309511] add@/class/input/input6/mouse2 UEVENT[1132632714.309524] add@/class/usb_device/usbdev2.12 UDEV [1132632714.348966] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2 UDEV [1132632714.420947] add@/devices/pci0000:00/0000:00:1d.1/usb2/2-2/2-2:1.0 UDEV [1132632714.427298] add@/class/input/input6 UDEV [1132632714.434223] add@/class/usb_device/usbdev2.12 UDEV [1132632714.439934] add@/class/input/input6/mouse2

As linhas UEVENT mostram os eventos que o kernel enviou atravs de netlink. As linhas UDEV mostram os handlers de evento do udev concludos. A temporizao impressa em microssegundos. O tempo entre UEVENT e UDEV o tempo que udev levou para processar esse evento ou que o daemon udev atrasou sua execuo para sincronizar esse evento com eventos relacionados e j em execuo. Por exemplo, eventos para parties de disco rgido sempre esperam pela concluso do evento do dispositivo de disco principal, pois os eventos de partio podem se basear nos dados que o evento de disco principal consultou do hardware. udevmonitor --env mostra o ambiente de evento completo:
UDEV [1132633002.937243] add@/class/input/input7 UDEV_LOG=3 ACTION=add DEVPATH=/class/input/input7 SUBSYSTEM=input SEQNUM=1043 PHYSDEVPATH=/devices/pci0000:00/0000:00:1d.1/usb2/2-2/2-2:1.0 PHYSDEVBUS=usb PHYSDEVDRIVER=usbhid PRODUCT=3/46d/c03e/2000 NAME="Logitech USB-PS/2 Optical Mouse" PHYS="usb-0000:00:1d.1-2/input0" UNIQ="" EV=7 KEY=70000 0 0 0 0 0 0 0 0 REL=103

O udev tambm envia mensagens para o syslog. A prioridade padro do syslog que controla quais mensagens so enviadas ao syslog especificada no arquivo de configurao do udev /etc/udev/udev.conf. A prioridade de registro do daemon 264 Referncia

em execuo pode ser modificada com udevcontrol log_priority=level/number.

12.6 Influenciando o tratamento de evento de dispositivo de kernel com regras do udev


Uma regra do udev pode corresponder a qualquer propriedade adicionada pelo kernel ao prprio evento ou a qualquer informao exportada pelo kernel para sysfs. A regra tambm pode solicitar informaes adicionais de programas externos. Cada evento correspondido com as regras fornecidas. Essas regras esto localizadas no diretrio /etc/udev/rules.d. Cada linha no arquivo de regras contm pelo menos um par de valores de chave. H dois tipos de chaves, de atribuio e correspondncia. Se todas as chaves de correspondncia corresponderem aos valores, a regra ser aplicada e as chaves de atribuio sero atribudas ao valor especificado. Uma regra correspondente pode especificar o nome do n do dispositivo, adicionar symlinks apontando para o n ou executar um programa especificado como parte do tratamento de eventos. Se nenhuma regra de correspondncia for encontrada, o nome do n de dispositivo padro ser usado para criar o n de dispositivo. A sintaxe de regra e as chaves fornecidas para correspondncia ou importao de dados so descritas na pgina de manual do udev.

12.7 Nomeao de dispositivo persistente


O diretrio de dispositivo dinmico e a infra-estrutura de regras do udev permitem fornecer nomes estveis para todos os dispositivos de disco, independentemente da ordem de reconhecimento ou a conexo usada para conectar o dispositivo. Cada dispositivo de bloco apropriado criado pelo kernel examinado por ferramentas com conhecimento especial sobre determinados barramentos, tipos de unidade ou sistemas de arquivos. Junto com o nome do n de dispositivo fornecido pelo kernel dinmico, o udev mantm classes de links simblicos apontando para o dispositivo:

Gerenciamento de dispositivo de kernel dinmico com udev

265

/dev/disk |-- by-id | |-- scsi-SATA_HTS726060M9AT00_MRH453M4HWHG7B -> ../../sda | |-- scsi-SATA_HTS726060M9AT00_MRH453M4HWHG7B-part1 -> ../../sda1 | |-- scsi-SATA_HTS726060M9AT00_MRH453M4HWHG7B-part6 -> ../../sda6 | |-- scsi-SATA_HTS726060M9AT00_MRH453M4HWHG7B-part7 -> ../../sda7 | |-- usb-Generic_STORAGE_DEVICE_02773 -> ../../sdd | `-- usb-Generic_STORAGE_DEVICE_02773-part1 -> ../../sdd1 |-- by-label | |-- Photos -> ../../sdd1 | |-- SUSE10 -> ../../sda7 | `-- devel -> ../../sda6 |-- by-path | |-- pci-0000:00:1f.2-scsi-0:0:0:0 -> ../../sda | |-- pci-0000:00:1f.2-scsi-0:0:0:0-part1 -> ../../sda1 | |-- pci-0000:00:1f.2-scsi-0:0:0:0-part6 -> ../../sda6 | |-- pci-0000:00:1f.2-scsi-0:0:0:0-part7 -> ../../sda7 | |-- pci-0000:00:1f.2-scsi-1:0:0:0 -> ../../sr0 | |-- usb-02773:0:0:2 -> ../../sdd | |-- usb-02773:0:0:2-part1 -> ../../sdd1 `-- by-uuid |-- 159a47a4-e6e6-40be-a757-a629991479ae -> ../../sda7 |-- 3e999973-00c9-4917-9442-b7633bd95b9e -> ../../sda6 `-- 4210-8F8C -> ../../sdd1

12.8 O pacote de hotplug substitudo


O pacote de hotplug usado anteriormente substitudo totalmente pelo udev e pela infra-estrutura de kernel relacionada ao udev. As seguintes partes da infra-estrutura de hotplug anterior esto obsoletas ou sua funcionalidade foi assumida pelo udev: /etc/hotplug/*.agent No mais necessrio ou movido para /lib/udev /etc/hotplug/*.rc Substitudo pelo acionador /sys/*/uevent /etc/hotplug/blacklist Substitudo pela opo blacklist em modprobe.conf /etc/dev.d/* Substitudo pela chave RUN de regra do udev /etc/hotplug.d/* Substitudo pela chave RUN de regra do udev

266

Referncia

/sbin/hotplug Substitudo pela escuta do udevd do netlink; usado somente no sistema de arquivos RAM inicial at que o sistema de arquivos raiz possa ser montado, em seguida ele desabilitado /dev/* Substitudo pelo contedo esttico e udev dinmico em /lib/udev/devices/ * Os seguintes arquivos e diretrios contm os elementos cruciais da infra-estrutura do udev: /etc/udev/udev.conf Arquivo de configurao principal do udev /etc/udev/rules.d/* regras de correspondncia de evento do udev /lib/udev/devices/* Contedo /dev esttico /lib/udev/* Programas auxiliares chamados de regras do udev

12.9 Mais informaes


Para obter mais informaes sobre a infra-estrutura do udev, consulte as seguintes pginas de manual: udev Informaes gerais sobre o udev, chaves, regras e outras questes relevantes sobre configurao. udevinfo possvel usar udevinfo para consultar informaes de dispositivo do banco de dados do udev. udevd Informaes sobre o daemon de gerenciamento de eventos udev.

Gerenciamento de dispositivo de kernel dinmico com udev

267

udevmonitor Imprime o kernel e a seqncia de eventos do udev para o console. Essa ferramenta usada principalmente para propsitos de depurao.

268

Referncia

Sistemas de arquivos no Linux

13

O Linux suporta diversos sistemas de arquivos. Este captulo apresenta uma breve viso geral sobre os sistemas de arquivos Linux mais populares, abordando conceitos de design, vantagens e campos de aplicao. Tambm so fornecidas algumas informaes adicionais sobre LFS (Large File Support - Suporte a Arquivo Grande) no Linux.

13.1 Terminologia
metadados Uma estrutura de dados interna ao sistema de arquivos que assegura que todos os dados de um disco sejam organizados adequadamente e de forma acessvel. Essencialmente, tratam-se de dados sobre os dados. Quase todo sistema de arquivos tem sua prpria estrutura de metadados, razo pela qual os sistemas de arquivos exibem diferentes caractersticas de desempenho. extremamente importante manter os metadados intactos, caso contrrio todos os dados do sistema de arquivos podem se tornar inacessveis. inode Inodes contm vrias informaes sobre um arquivo, incluindo tamanho, nmero de links, data e horrio da criao, da modificao e do acesso, e indicadores para os blocos de disco em que o contedo do arquivo est armazenado no momento. dirio No contexto de um sistema de arquivos, o dirio uma estrutura em disco que contm um tipo de registro em que o sistema de arquivos armazena o que est prestes a ser modificado em seus metadados. Os dirios reduzem imensamente o

Sistemas de arquivos no Linux

269

tempo de recuperao de um sistema Linux, pois eles tornam obsoleto o extenso processo de pesquisa que verifica todo o sistema de arquivos na inicializao do sistema. Em vez disso, somente o dirio reproduzido.

13.2 Principais sistemas de arquivos no Linux


Diferentemente do que ocorria h dois ou trs anos, escolher um sistema de arquivos para um sistema Linux no mais uma questo de segundos (Ext2 ou ReiserFS?). Kernels a partir do 2.4 oferecem uma variedade de opes de sistemas de arquivos. A seguir ser mostrada uma viso geral de como esses sistemas de arquivos basicamente funcionam e quais as vantagens que oferecem. muito importante lembrar que pode no haver um sistema de arquivos adequado a todos os tipos de aplicativos. Cada sistema de arquivos tem seus pontos fortes e fracos especficos, o que deve ser considerado. No entanto, nem mesmo o sistema de arquivos mais sofisticado pode ser substitudo por uma estratgia de backup razovel. Os termos integridade de dados e consistncia de dados, quando usados neste captulo, no se referiro consistncia dos dados do espao do usurio (os dados que seu aplicativo grava nos arquivos). O prprio aplicativo deve controlar se os dados so consistentes ou no. IMPORTANTE: Configurando sistemas de arquivos A menos que declarado em outra seo deste captulo, todas as etapas necessrias para configurar ou mudar parties e sistemas de arquivos podem ser realizadas com o YaST.

13.2.1 ReiserFS
Oficialmente um dos recursos mais importantes da verso 2.4 do kernel, o ReiserFS tornou-se disponvel como um patch para kernels SUSE 2.2 x desde a verso 6.4 do SUSE Linux. O ReiserFS foi criado por Hans Reiser e pela equipe de desenvolvimento da Namesys. Ele provou ser uma alternativa robusta ao Ext2. Seus bens mais importantes

270

Referncia

so a melhor utilizao do espao em disco, o melhor desempenho do acesso ao disco e uma recuperao de falhas mais rpida. Os pontos fortes do ReiserFS, em mais detalhes, so: Melhor utilizao do espao em disco No ReiserFS, todos os dados so organizados em uma estrutura chamada rvore equilibrada (B*- tree). A estrutura de rvore contribui para uma melhor utilizao do espao em disco, pois arquivos pequenos podem ser armazenados diretamente nos ns da folha da rvore equilibrada B*, em vez de serem armazenados em outro local e simplesmente manterem um indicador no local do disco. Alm disso, o armazenamento no alocado em pacotes de 1 ou 4 kB, mas em pores do tamanho exato necessrio. Uma outra vantagem est na alocao dinmica de inodes. Ela mantm o sistema de arquivos mais flexvel do que os sistemas de arquivos tradicionais, como Ext2, em que a densidade do inode deve ser especificada no momento da criao do sistema de arquivos. Melhor desempenho do acesso ao disco Para arquivos pequenos, os respectivos dados e as informaes (inode) stat_data so sempre armazenados lado a lado. Eles podem ser lidos com uma simples operao E/S de disco, o que quer dizer que necessrio somente um acesso ao disco para recuperar todas as informaes necessrias. Rpida recuperao de falhas A utilizao de um dirio para controlar as mudanas de metadados recentes faz com que a verificao de um sistema de arquivos leve segundos, mesmo no caso dos muito grandes. Confiabilidade por meio do registro dos dados em dirio O ReiserFS tambm suporta o registro de dados em dirio e modos de dados ordenados similares aos conceitos realados na seo Ext3, Seo 13.2.3, Ext3 (p 272). O modo padro data=ordered, que garante a integridade dos dados e dos metadados, mas usa o registro de dados em dirio somente para metadados.

13.2.2 Ext2
A origem do Ext2 remonta ao incio da histria do Linux. Seu predecessor, o Extended File System, foi implementado em abril de 1992 e integrado ao Linux 0.96c. O Extended File System passou por uma srie de modificaes e, como o Ext2, tornou-se o sistema

Sistemas de arquivos no Linux

271

de arquivos Linux mais popular por muitos anos. Com a criao dos sistemas de arquivos com registro em dirio e seus surpreendentes e curtos tempos de recuperao, o Ext2 ficou menos importante. Um breve resumo dos pontos fortes do Ext2 podem ajudar a mostrar por que ele foi, e ainda em algumas reas, o sistema de arquivos Linux favorito de muitos usurios. Solidez Por ser um veterano, o Ext2 passou por vrias melhorias e foi bastante testado. Esta pode ser a razo para as pessoas sempre se referirem a ele como "slido como uma pedra". Depois de uma falha no sistema em que o sistema de arquivos no pode ser desmontado inteiramente, o e2fsck comea a analisar os dados do sistema de arquivos. Os metadados so levados a um estado consistente e os arquivos pendentes ou blocos de dados so gravados em um diretrio designado (chamado lost+found). Em contraste com os sistemas de arquivos de registro em dirio, o e2fsck analisa todo o sistema de arquivos e no somente os bits de metadados modificados recentemente. Esse procedimento demora muito mais do que a verificao dos dados de registro de um sistema de arquivos com registro em dirio. Dependendo do tamanho do sistema de arquivos, ele pode levar meia hora ou mais. Portanto, no desejvel optar pelo Ext2 em servidores que precisem de grande disponibilidade. No entanto, como o Ext2 no mantm um dirio e usa muito menos memria, algumas vezes ele mais rpido do que outros sistemas de arquivos. Fcil capacidade de upgrade O cdigo do Ext2 a base slida sobre a qual o Ext3 poderia se tornar um sistema de arquivos de ltima gerao amplamente aclamado. Sua confiabilidade e solidez foram combinadas de forma elegante com as vantagens de um sistema de arquivos de registro em dirio.

13.2.3 Ext3
O Ext3 foi criado por Stephen Tweedie. Diferentemente de todos os sistemas de arquivos de ltima gerao, o Ext3 no segue totalmente um princpio de design novo. Ele baseado no Ext2. Esses dois sistemas de arquivos tm uma relao muito prxima. Um sistema de arquivos Ext3 pode ser facilmente criado sobre um sistema de arquivos Ext2. A diferena mais importante entre o Ext2 e o Ext3 que o Ext3 suporta o registro em dirio. Em resumo, o Ext3 tem trs grandes vantagens a oferecer:

272

Referncia

Upgrades do Ext2 fceis e altamente confiveis. Como o Ext3 baseado no cdigo do Ext2 e compartilha seu formato em disco, bem como seu formato de metadados, as atualizaes do Ext2 para o Ext3 so incrivelmente fceis. Ao contrrio de transies para outros sistemas de arquivos de registro em dirio, como o ReiserFS ou XFS, que podem ser bastante tediosas (fazer backup de todo o sistema e recri-lo de um rascunho), a transio para o Ext3 uma questo de minutos. Ela tambm muito segura, pois a recriao de um sistema de arquivos inteiro de um rascunho pode no ser perfeita. Considerando o nmero de sistemas Ext2 existentes que aguardam um upgrade para um sistema de arquivos de registro em dirio, voc pode imaginar facilmente por que o Ext3 pode ter alguma importncia para vrios administradores de sistema. O downgrade do Ext3 para o Ext2 to fcil quanto o upgrade. Simplesmente execute uma desmontagem completa do sistema de arquivos Ext3 e remonte-o como um sistema de arquivos Ext2. Confiabilidade e desempenho Alguns outros sistemas de arquivos de registro em dirio seguem a abordagem de registro em dirio de Apenas Metadados. Isso significa que seus metadados so sempre mantidos em um estado consistente, mas o mesmo no pode ser garantido automaticamente para os prprios dados do sistema de arquivos. O Ext 3 foi criado para cuidar dos dados e dos metadados. O grau de cuidado pode ser personalizado. Habilitar o Ext3 no modo data=journal oferece segurana mxima (integridade de dados), mas tambm deixa o sistema mais lento, pois os dados e os metadados so registrados em dirio. Uma abordagem relativamente nova usar o modo data=ordered, que garante a integridade dos dados e metadados, mas usa o registro em dirio apenas para metadados. O driver do sistema de arquivos coleta todos os blocos de dados que correspondem a uma atualizao de metadados. Esses blocos de dados so gravados em disco antes da atualizao dos metadados. Como resultado, obtm-se consistncia para dados e metadados sem sacrificar o desempenho. Uma terceira opo usar o data=writeback, para que os dados sejam gravados no mesmo sistema de arquivos depois que seus metadados forem confirmados no dirio. Essa opo sempre considerada a melhor em desempenho. Contudo, ela pode permitir que dados antigos surjam novamente nos arquivos depois de uma falha e recuperao, enquanto a integridade do sistema do arquivo mantida. A menos que voc especifique de forma diferente, o Ext3 ser executado no modo data=ordered por padro.

Sistemas de arquivos no Linux

273

13.2.4 Convertendo um sistema de arquivos Ext2 em Ext3


Para converter um sistema de arquivos Ext2 em Ext3, proceda da seguinte maneira: 1 Crie um dirio Ext3 executando tune2fs -j como root. Esse procedimento criar um dirio do Ext3 com os parmetros padro. Para que voc decida o tamanho do dirio e em que dispositivo ele dever residir, execute tune2fs -J, juntamente com as opes de dirio desejadas size= e device=. Mais informaes sobre o programa tune2fs esto disponveis em sua respectiva pgina de manual tune2fs. 2 Para garantir que o sistema de arquivos Ext3 seja reconhecido como tal, edite o arquivo /etc/fstab como root, mudando o tipo de sistema de arquivos especificado pela partio correspondente de ext2 para ext3. A mudana ter efeito na prxima reinicializao. 3 Para inicializar uma configurao de sistema de arquivos raiz como uma partio Ext3, inclua os mdulos ext3 e jbd no initrd. Para fazer isso, edite /etc/ sysconfig/kernel como root, adicionando ext3 e jbd varivel INITRD_MODULES. Aps salvar as mudanas, execute o comando mkinitrd. Isso cria um novo initrd e o prepara para uso.

13.2.5 Reiser4
Logo depois que o kernel 2.6 foi lanado, a famlia de sistemas de arquivos com registro em dirio recebeu outro membro: o Reiser4. O Reiser4 fundamentalmente diferente de seu predecessor, o ReiserFS (verso 3.6). Ele apresenta o conceito de plug-ins para ajustar a funcionalidade do sistema de arquivos e um conceito de segurana mais refinado. Conceito de segurana refinado Na criao do Reiser4, seus desenvolvedores enfatizaram a implementao de recursos relevantes de segurana. Portanto, o Reiser4 contm um conjunto de plugins de segurana dedicados. O mais importante deles apresenta o conceito de itens de arquivo. Atualmente, os controles de acesso a arquivos so definidos por arquivo. Se existe um arquivo grande contendo informaes relevantes para vrios usurios,

274

Referncia

grupos ou aplicativos, os direitos de acesso devem ser razoavelmente imprecisos para incluir todas as partes envolvidas. No Reiser4, possvel dividir esses arquivos em partes menores (os itens). Os direitos de acesso podem ento ser definidos para cada item e cada usurio separadamente, permitindo um gerenciamento de segurana de arquivos muito mais preciso. Um exemplo perfeito seria /etc/ passwd. Atualmente, somente os usurios root podem ler e editar o arquivo, enquanto os no-root s obtm acesso de leitura a esse arquivo. Usando o conceito de item do Reiser4, voc pode dividir esse arquivo em um conjunto de itens (um item por usurio) e permitir que os usurios ou aplicativos modifiquem seus prprios dados, mas sem acessar os dados de outros usurios. Esse conceito aumenta a segurana e flexibilidade. Extensibilidade por meio de plug-ins Muitas funes do sistema de arquivos e funes externas normalmente usadas por um sistema de arquivos so implementadas como plug-ins no Reiser4. Esses plugins podem ser facilmente adicionados ao sistema bsico. Voc no precisa mais compilar o kernel ou reformatar o disco rgido para adicionar novas funcionalidades ao sistema de arquivos. Melhor layout do sistema de arquivos por meio de alocao atrasada Assim como o XFS, o Reiser4 suporta a alocao atrasada. Consulte a Seo 13.2.6, XFS (p 275). A utilizao da alocao atrasada, at mesmo para metadados, pode resultar em um melhor layout geral.

13.2.6 XFS
Com inteno original de ser um sistema de arquivos para o sistema operacional IRIX, a SGI iniciou o desenvolvimento do XFS no comeo de 1990. A idia por trs do XFS era criar um sistema de arquivos de registro em dirio de 64 bits de alto desempenho para atender aos altos desafios de computao de hoje. O XFS muito bom na manipulao de arquivos grandes e tem bom desempenho em hardware de ponta. Entretanto, at mesmo o XFS tem uma desvantagem. Assim como o ReiserFS, o XFS cuida bastante da integridade dos metadados, mas nem tanto da integridade dos dados. Uma rpida anlise dos recursos fundamentais do XFS explica por que ele pode ser um forte concorrente para outros sistemas de arquivos de registro em dirio em computao de ponta.

Sistemas de arquivos no Linux

275

Alta escalabilidade por meio do uso de grupos de alocao No momento de criao de um sistema de arquivos XFS, o dispositivo de bloco subjacente ao sistema de arquivos dividido em oito ou mais regies lineares do mesmo tamanho. Elas so denominadas grupos de alocao. Cada grupo de alocao gerencia seus prprios inodes e espaos liberados em disco. Praticamente, os grupos de alocao podem ser vistos como sistemas de arquivos dentro de um sistema de arquivos. Como grupos de alocao so independentes uns dos outros, mais de um pode ser abordado pelo kernel ao mesmo tempo. Esse recurso a chave da grande escalabilidade do XFS. Naturalmente, o conceito de grupos de alocao independente corresponde s necessidades dos sistemas com multiprocessadores. Alto desempenho por meio de um eficiente gerenciamento de espao em disco O espao em disco e os inodes so controlados por rvores equilibradas B+ dentro dos grupos de alocao. O uso de rvores equilibradas B+ contribui muito para o desempenho e a escalabilidade do XFS. O XFs usa a alocao atrasada. Ele lida com a alocao dividindo o processo em duas partes. Uma transao pendente armazenada em RAM e o espao necessrio reservado. O XFS ainda no decide exatamente onde (tratando-se do bloco do sistema de arquivos) os dados devem ser armazenados. Essa deciso atrasada at o ltimo momento possvel. Alguns dados temporrios de vida curta talvez nunca cheguem no disco, pois podem ficar obsoletos devido ao tempo que o XFS leva para decidir onde grav-los. Portanto, o XFS aumenta o desempenho de gravao e reduz a fragmentao do sistema de arquivos. Como a alocao atrasada resulta em eventos de gravao menos freqentes do que em outros sistemas de arquivos, provvel que a perda de dados depois de uma falha durante a gravao seja mais severa. Pr-alocao para evitar a fragmentao do sistema de arquivos Antes de gravar os dados no sistema de arquivos, o XFS reserva (pr-aloca) o espao livre necessrio para um arquivo. Portanto, a fragmentao do sistema de arquivos amplamente reduzida. O desempenho aumenta porque o contedo dos arquivos no distribudo em todo o sistema de arquivos.

13.3 Outros sistemas de arquivos suportados


A Tabela 13.1, Tipos de sistema de arquivos no Linux (p 277) resume alguns dos sistemas de arquivos suportados pelo Linux. Eles so suportados principalmente para

276

Referncia

garantir a compatibilidade e o intercmbio de dados com diferentes tipos de mdia de sistemas operacionais estrangeiros. Tabela 13.1 cramfs Tipos de sistema de arquivos no Linux Sistema de arquivos ROM compactado: um sistema de arquivos compactados apenas leitura para ROMs. Sistema de arquivos de alto desempenho: o sistema de arquivos padro da IBM OS/2 suportado no modo apenas leitura. Sistema de arquivos padro em CD-ROMs. Este sistema de arquivos foi originado de projetos acadmicos em sistemas operacionais e foi o primeiro usado no Linux. Atualmente, ele usado como um sistema de arquivos para disquetes. fat, o sistema de arquivos originariamente usado por DOS, hoje usado por vrios sistemas operacionais. Sistema de arquivos para montagem de volumes Novell em redes. Sistema de arquivos de rede: os dados podem ser armazenados em qualquer mquina em uma rede, e o acesso pode ser concedido via rede. O Bloco de Mensagens do Servidor usado por produtos como o Windows para permitir o acesso a arquivos em uma rede. Usado no SCO UNIX, no Xenix e no Coherent (sistemas UNIX comerciais para PCs). Usado por BSD, SunOS e NeXTstep. Suportado somente no modo apenas leitura. UNIX em MS-DOS: aplicado sobre um sistema de arquivos fat normal, atinge a funcionalidade UNIX (permisses, links, nomes longos de arquivos) criando arquivos especiais.

hpfs

iso9660 minix

msdos

ncpfs nfs

smbfs

sysv

ufs

umsdos

Sistemas de arquivos no Linux

277

vfat

Virtual FAT: extenso do sistema de arquivos fat (suporta nomes longos de arquivos). Sistema de arquivos do Windows NT, apenas leitura.

ntfs

13.4 LFS (Large File Support - Suporte a Arquivos Grandes) no Linux


Originariamente, o Linux suportava um tamanho mximo de arquivo de 2 GB. Isso era o suficiente antes da exploso da multimdia e enquanto ningum tentava manipular enormes bancos de dados no Linux. Ao se tornarem cada vez mais importantes na computao de servidores, o kernel e a biblioteca C foram modificados para suportar tamanhos de arquivo maiores que 2 GB, usados em um novo conjunto de interfaces que os aplicativos devem usar. Atualmente, todos os grandes sistemas de arquivos oferecem suporte a LFS, permitindo o desempenho de uma computao de ponta. A Tabela 13.2, Tamanhos mximos de sistemas de arquivos (formato no disco) (p 278) oferece uma viso geral das limitaes atuais dos arquivos Linux e dos sistemas de arquivos. Tabela 13.2 Tamanhos mximos de sistemas de arquivos (formato no disco) Tamanho do arquivo (bytes) 234 (16 GB) 238 (256 GB) 241 (2 TB) Tamanho do sistema de arquivos (bytes) 241 (2 TB) 243 (8 TB) 243-4096 (16 TB-4096 Bytes) 245 (32 TB)

Sistema de arquivos

Ext2 ou Ext3 (tamanho do bloco de 1 kB) Ext2 ou Ext3 (tamanho do bloco de 2 kB) Ext2 ou Ext3 (tamanho do bloco de 4 kB)

Ext2 ou Ext3 (tamanho do bloco 246 (64 TB) de 8 kB) (sistemas com pginas de 8 kB, como o Alpha)

278

Referncia

Sistema de arquivos

Tamanho do arquivo (bytes) 246 (64 TB) 263 (8 EB) 231 (2 GB) 263 (8 EB)

Tamanho do sistema de arquivos (bytes) 245 (32 TB) 263 (8 EB) 263 (8 EB) 263 (8 EB)

ReiserFS v3 XFS NFSv2 (lado cliente) NFSv3 (lado cliente)

IMPORTANTE: Limites de kernel do Linux A Tabela 13.2, Tamanhos mximos de sistemas de arquivos (formato no disco) (p 278) descreve as limitaes com relao ao formato no disco. O kernel 2.6 impe seus prprios limites ao tamanho dos arquivos e aos sistemas de arquivos gerenciados por ele. Os limites so os seguintes: Tamanho do arquivo Em sistemas de 32 bits, os arquivos no podem exceder o tamanho de 2 41 TB (2 bytes). Tamanho do sistema de arquivos 73 Os sistemas de arquivos podem ter at 2 de tamanho. Entretanto, esse limite ainda est fora do alcance para o hardware disponvel atualmente.

13.5 Mais informaes


Cada projeto de sistema de arquivos descrito anteriormente mantm sua prpria home page, na qual possvel encontrar informaes de listas de discusso, outras documentaes e FAQs (perguntas freqentes). http://e2fsprogs.sourceforge.net/ http://www.zipworld.com.au/~akpm/linux/ext3/ http://www.namesys.com/

Sistemas de arquivos no Linux

279

http://oss.software.ibm.com/developerworks/opensource/ jfs/ http://oss.sgi.com/projects/xfs/ Um tutorial abrangente e multiparte sobre os sistemas de arquivos Linux pode ser encontrado em IBM developerWorks: http://www-106.ibm.com/ developerworks/library/l-fs.html. Para obter uma comparao dos diferentes sistemas de arquivos de registro em dirio no Linux, consulte o artigo de Juan I. Santos Florido em Linuxgazette: http://www.linuxgazette.com/ issue55/florido.html. Os interessados em uma anlise mais aprofundada do LFS no Linux podem acessar o site de Andreas Jaeger: http://www.suse.de/ ~aj/linux_lfs.html.

280

Referncia

O sistema X Window

14

O sistema X Window (X11) o padro de fato para interfaces grficas de usurio no UNIX. O X baseado em rede, permitindo que aplicativos iniciados em um host sejam exibidos em outro host conectado em qualquer tipo de rede (LAN ou Internet). Este captulo descreve a configurao e a otimizao do ambiente do sistema X Window, fornece informaes de base sobre o uso de fontes no SUSE Linux e explica a configurao do OpenGL e 3D. O texto a seguir contm diversas referncias para a documentao que pode ser encontrada em /usr/share/doc/packages/Xorg e /usr/share/doc/ howto/en. Esse material, junto com as respectivas pginas de manual, s estar disponvel se os pacotes de documentao estiverem instalados (xorg-x11-doc, xorg-x11-man e howtoenh).

14.1 Configurao do X11 com o SaX2


A interface grfica de usurio, ou servidor X, lida com a comunicao entre o hardware e o software. reas de trabalho, como KDE e GNOME e a grande variedade de gerenciadores de janelas, usam o servidor X para interao com o usurio. A interface grfica do usurio inicialmente configurada durante a instalao. Para mudar depois as configuraes, use o mdulo respectivo do centro de controle do YaST ou execute o SaX2 manualmente da linha de comando com o comando sax2. A janela principal do SaX2 oferece uma interface comum para os mdulos individuais do centro de controle do YaST.

O sistema X Window

281

Figura 14.1 A janela principal do SaX2

Na barra de navegao esquerda, h seis itens, cada um mostrando a caixa de dilogo de configurao respectiva do centro de controle do YaST. Encontre as sees mencionadas abaixo no Captulo Configurao do sistema com YaST (Inicializao). Monitor Para obter uma descrio da configurao da placa de vdeo e o monitor, consulte a Seo Propriedades da Placa e do Monitor (Captulo 2, Configurao do sistema com YaST, Inicializao). Mouse Para obter uma descrio da configurao do mouse no ambiente grfico, consulte a Seo Propriedades do Mouse (Captulo 2, Configurao do sistema com YaST, Inicializao). Teclado Para obter uma descrio da configurao do teclado no ambiente grfico, consulte a Seo Propriedades do Teclado (Captulo 2, Configurao do sistema com YaST, Inicializao).

282

Referncia

Mesa Para obter uma descrio da configurao da mesa grfica, consulte a Seo Propriedades da mesa digitalizadora (Captulo 2, Configurao do sistema com YaST, Inicializao). Tela sensvel ao toque Para obter uma descrio da configurao da tela sensvel ao toque, consulte a Seo Propriedades da Tela Sensvel ao Toque (Captulo 2, Configurao do sistema com YaST, Inicializao). VNC Para obter uma descrio da configurao de VNC, consulte a Seo Propriedades do Acesso Remoto (Captulo 2, Configurao do sistema com YaST, Inicializao).

14.2 Otimizando a configurao do X


O X.Org uma implementao de cdigo-fonte aberto do sistema X Window. Ele tambm desenvolvido pela X.Org Foundation, que responsvel ainda pelo desenvolvimento de novas tecnologias e padres do sistema X Window. Para usar da melhor forma possvel o hardware disponvel, inclusive o mouse, a placa grfica, o monitor e o teclado, a configurao pode ser otimizada manualmente. Alguns aspectos desta otimizao so explicados abaixo. Para obter informaes detalhadas sobre como configurar o sistema X Window, consulte os vrios arquivos no diretrio /usr/share/doc/packages/Xorg e man xorg.conf. ATENO Tenha cuidado ao configurar o sistema X Window. Nunca inicie o sistema X Window antes que a configurao esteja concluda. Um sistema configurado de forma errada pode causar danos irreparveis ao seu hardware (isso aplicase especialmente a monitores de freqncia fixa). Os autores deste livro e o SUSE Linux no podem ser considerados responsveis por danos. Essas informaes foram pesquisadas cuidadosamente, mas isso no garante que todos os mtodos apresentados aqui estejam corretos e no danifiquem o seu hardware.

O sistema X Window

283

Os programas SaX2 e xorgconfig criam o arquivo xorg.conf, por padro no /etc/ X11. Esse o arquivo de configurao principal para o sistema X Window. A seguir esto todas as configuraes referentes ao monitor, ao mouse e placa de vdeo. As sees a seguir descrevem a estrutura do arquivo de configurao /etc/X11/ xorg.conf. Ela consiste em vrias sees, cada uma delas referente a um determinado aspecto da configurao. Cada seo se inicia com a palavra-chave Section <designation> e termina com EndSection. As sees tm o seguinte formato:
Section designation entry 1 entry 2 entry n EndSection

Os tipos de seo disponveis esto listados na Tabela 14.1, Sees em /etc/X11/xorg.conf (p 284). Tabela 14.1 Tipo Files Sees em /etc/X11/xorg.conf Significado Esta seo descreve os caminhos usados por fontes e a tabela de cores RGB. Switches gerais so definidos aqui. Dispositivos de entrada, como teclados e dispositivos de entrada especiais (touchpads, joysticks, etc.), so configurados nesta seo. Parmetros importantes nesta seo so Driver e as opes que definem o Protocol e o Device. Descreve o monitor usado. Os elementos individuais desta seo so o nome, que referenciado posteriormente na definio de Screen, a bandwidth e os limites de freqncia de sincronizao (HorizSync e VertRefresh). As configuraes so fornecidas em MHz, kHz e Hz. Normalmente, o servidor recusa qualquer linha modelo que no corresponda especificao do monitor. Isso evita que freqncias muito altas sejam enviadas ao monitor por acidente.

ServerFlags InputDevice

Monitor

284

Referncia

Tipo Modes

Significado Os parmetros da linha modelo so armazenados aqui para resolues de tela especficas. Esses parmetros podem ser calculados por SaX2 com base nos valores fornecidos pelo usurio e, normalmente, no precisam ser modificados. Intervenha manualmente neste ponto se, por exemplo, quiser conectar um monitor de freqncia fixa. H detalhes sobre o significado de valores numricos individuais nos arquivos HOWTO /usr/share/doc/howto/en/html/ XFree86-Video-Timings-HOWTO. Esta seo define uma placa de vdeo especfica. Ela referenciada por seu nome descritivo. Esta seo junta um Monitor e um Device para formar todas as configuraes necessrias para X.Org. Na subseo Display, especifique o tamanho da tela virtual (Virtual), a ViewPort e os Modes usados com esta tela.

Device

Screen

ServerLayout Esta seo define o layout de uma configurao nica ou multihead. Esta seo junta os dispositivos de entrada InputDevice e os dispositivos de exibio Screen. Monitor, Device e Screen so explicados em mais detalhes abaixo. Mais informaes sobre as outras sees podem ser encontradas nas pginas de manual de X.Org e xorg.conf. H vrias sees Monitor e Device diferentes em xorg.conf. Mesmo vrias sees Screen so possveis. A seo ServerLayout a seguir determina qual usada.

14.2.1 Seo de Tela


A seo de tela combina um monitor com uma seo de dispositivo e determina a resoluo e a intensidade de cor usadas. Uma seo de tela pode ter a aparncia do Exemplo 14.1, Seo de tela do arquivo /etc/X11/xorg.conf (p 286).

O sistema X Window

285

Exemplo 14.1 Seo de tela do arquivo /etc/X11/xorg.conf


Section "Screen" DefaultDepth 16 SubSection "Display" Depth 16 Modes "1152x864" "1024x768" "800x600" Virtual 1152x864 EndSubSection SubSection "Display" Depth 24 Modes "1280x1024" EndSubSection SubSection "Display" Depth 32 Modes "640x480" EndSubSection SubSection "Display" Depth 8 Modes "1280x1024" EndSubSection Device "Device[0]" Identifier "Screen[0]" Monitor "Monitor[0]" EndSection

A linha Identifier (aqui Screen[0]) fornece a esta seo um nome definido com o qual pode ser exclusivamente referenciado na seguinte seo ServerLayout. As linhas Device e Monitor especificam a placa de vdeo e o monitor que pertence a esta definio. Estes so links s sees Device e Monitor com seus nomes correspondentes ou identificadores. Estas sees so abordadas em detalhes abaixo. Use a configurao DefaultDepth para selecionar a intensidade de cor que o servidor deve usar a menos que seja iniciado com uma intensidade de cor especfica. H uma subseo Display para cada intensidade de cor. A palavra-chave Depth atribui a intensidade de cor vlida para essa subseo. Valores possveis para Depth so 8, 15, 16 e 24. Nem todos os mdulos do servidor X suportam esses valores. Aps a intensidade de cor, uma lista de resolues definida na seo Modes. O servidor X verifica essa lista da esquerda para a direita. Para cada resoluo, o servidor X procura uma Modeline adequada na seo Modes. A Modeline depende da capacidade do monitor e da placa de vdeo. As configuraes de Monitor determinam a Modeline resultante. A primeira resoluo encontrada o Default mode. Com Ctrl + Alt + + (no teclado numrico), alterne para a resoluo seguinte na lista direita. Com Ctrl + Alt

286

Referncia

+ (no teclado numrico), alterne para a esquerda. Isso permite a voc variar a resoluo enquanto o X est sendo executado. A ltima linha da subseo Display com Depth 16 refere-se ao tamanho da tela virtual. O tamanho mximo possvel de uma tela virtual depende da quantidade de memria instalada na placa de vdeo e a intensidade de cor desejada, no a resoluo mxima do monitor. Como placas de vdeo modernas tm uma grande quantidade de memria de vdeo, voc pode criar reas de trabalho virtuais bem grandes. Porm, voc talvez no seja mais capaz de usar a funcionalidade de 3D se preencher a maior parte da memria de vdeo com uma rea de trabalho virtual. Se a placa tem 16 MB de memria RAM de vdeo, por exemplo, a tela virtual pode ser de at 4096x4096 pixels em tamanho com intensidade de cor de 8 bits. Porm, principalmente para placas aceleradas, no recomendvel usar toda a memria para a tela virtual, pois a memria na placa tambm usada para vrios caches de vdeo e fontes.

14.2.2 Seo do dispositivo


Uma seo de dispositivo descreve uma placa de vdeo especfica. Voc pode ter quantas entradas de dispositivo em xorg.conf desejar, desde que os nomes sejam diferenciados pela palavra-chave Identifier. Como regra se voc tiver mais de uma placa de vdeo instalada as sees so simplesmente numeradas em ordem. A primeira chamada Device[0], a segunda Device[1] e assim por diante. O arquivo a seguir mostra um exemplo da seo Device de um computador com uma placa de vdeo de PCI Matrox Millennium:
Section "Device" BoardName "MGA2064W" BusID "0:19:0" Driver "mga" Identifier "Device[0]" VendorName "Matrox" Option "sw_cursor" EndSection

Se voc usar SaX2 para a configurao, a seo de dispositivo dever ter a aparncia semelhante do exemplo acima. Ambos o Driver e o BusID so dependentes do hardware instalado no seu computador e so detectados pelo SaX2 automaticamente. O BusID define o slot PCI ou AGP no qual a placa de vdeo est instalada. Isso corresponde ao ID exibido pelo comando lspci. O servidor X precisa de detalhes no formato decimal, mas o lspci os exibe no formato hexadecimal.

O sistema X Window

287

Com o parmetro Driver, especifique o driver a ser usado para esta placa de vdeo. Se a placa for Matrox Millennium, o mdulo do driver ser chamado mga. Em seguida, o servidor X pesquisa atravs do ModulePath definido na seo Files no subdiretrio drivers. Em uma instalao padro, este o diretrio /usr/X11R6/ lib/modules/drivers. _drv.o ser adicionado ao nome, por isso, no caso do driver mga, o arquivo de driver mga_drv.o ser carregado. O comportamento do servidor X ou do driver tambm pode ser influenciado atravs de opes adicionais. Um exemplo disso a opo sw_cursor, definida na seo de dispositivo. Isso desativa o cursor do mouse do hardware e mostra o cursor do mouse usando o software. Dependendo do mdulo do driver, h vrias opes disponveis, que podem ser encontradas nos arquivos de descrio dos mdulos do driver no diretrio /usr/X11R6/lib/X11/doc. Em geral, opes vlidas tambm podem ser encontradas nas pginas de manual (man xorg.conf e man X.Org).

14.2.3 Seo Monitor e Modos


Como as sees Device, as sees Monitor e Modes descrevem um monitor cada. O arquivo de configurao /etc/X11/xorg.conf pode conter quantas sees Monitor voc desejar. A seo de layout do servidor especifica qual seo Monitor relevante. Definies de monitor devem ser configuradas por usurios experientes. As linhas modelo constituem uma parte importante das sees Monitor. Linhas modelo definem temporizaes verticais para a respectiva resoluo. As propriedades do monitor, especialmente as freqncias permitidas, esto armazenadas na seo Monitor. ATENO A menos que voc tenha um conhecimento profundo de funes de monitor e placa de vdeo, nada deve ser mudado nas linhas modelo, pois isso poderia causar danos severos ao seu monitor. As pessoas que tentam desenvolver suas prprias descries de monitor devem estar familiarizadas com a documentao em /usr/X11/lib/X11/doc. A seo cobrindo os modos de vdeo merece uma ateno especial. Ela descreve, em detalhes, como o hardware funciona e como criar linhas modelo.

288

Referncia

A especificao manual de linhas modelo raramente exigida atualmente. Se voc est usando um monitor multisync moderno, as freqncias permitidas e as resolues timas podem, como regra, serem lidas do monitor pelo servidor X atravs de DDC, como descrito na seo de configurao do SaX2. Se isso no for possvel por algum motivo, use um dos modos VESA includos no servidor X. Isso funcionar com praticamente todas as combinaes de monitor e placa de vdeo.

14.3 Instalando e configurando fontes


A instalao de fontes adicionais no SUSE Linux muito fcil. Simplesmente copie as fontes para qualquer diretrio localizado no caminho da fonte X11 (consulte a Seo 14.3.1, Fontes centrais X11 (p 290)). Para habilitar o uso das fontes, o diretrio de instalao deve ser um subdiretrio dos diretrios configurados em /etc/fonts/ fonts.conf (consulte a Seo 14.3.2, Xft (p 291)). Os arquivos de fontes podem ser copiados manualmente (como root) para um diretrio adequado, como /usr/X11R6/lib/X11/fonts/truetype. Alternativamente, a tarefa pode ser realizada com o instalador de fontes do KDE no Centro de Controle do KDE. O resultado o mesmo. Em vez de copiar as fontes reais, voc tambm pode criar links simblicos. Por exemplo, recomendvel fazer isso se voc tem fontes licenciadas em uma partio do Windows montada e deseja us-las. Em seguida, execute SuSEconfig --module fonts. SuSEconfig --module fonts executa o script /usr/sbin/fonts-config, que lida com a configurao das fontes. Para ver o que o script faz, consulte a pgina de manual do script (man fonts-config). O procedimento o mesmo para fontes de bitmap, fontes TrueType e OpenType e fontes Type1 (PostScript). Todos esses tipos de fonte podem ser instalados em qualquer diretrio. Somente fontes indexadas ao CID exigem um procedimento um pouco diferente. Para isso, consulte a Seo 14.3.3, Fontes indexadas do CID (p 294). X.Org contm dois sistemas de fontes completamente diferentes: O sistema de fontes central X11 antigo e o sistema Xft and fontconfig recm-criado. As sees a seguir descrevem brevemente esses dois sistemas.

O sistema X Window

289

14.3.1 Fontes centrais X11


Atualmente, o sistema de fontes centrais X11 suporta no somente fontes de bitmap, mas tambm fontes escalveis, como fontes Type1, TrueType e OpenType e fontes indexadas do CID. Fontes escalveis so suportadas somente sem a exibio de subpixel e antialiasing e o carregamento de fontes escalveis grandes para vrios idiomas pode levar muito tempo. As fontes Unicode tambm so suportadas, mas seu uso pode ser lento e requerer mais memria. O sistema de fontes centrais X11 tem algumas fraquezas inerentes. Ele est desatualizado e no pode mais ser estendido de forma significativa. Embora ele possa ser mantido por motivos de compatibilidade retroativa, o sistema Xft e fontconfig mais moderno deve ser usado se for possvel. Para essa operao, o servidor X precisa saber quais fontes esto disponveis e onde no sistema ele pode encontr-las. Isso tratado por uma varivel FontPath, que contm o caminho para todos os diretrios de fontes de sistemas vlidos. Em cada um desses diretrios, um arquivo chamado fonts.dir lista as fontes disponveis neste diretrio. O FontPath gerado pelo servidor X na inicializao. Ele procura um arquivo fonts .dir vlido em cada uma das entradas FontPath no arquivo de configurao /etc/ X11/xorg.conf. Essas entradas so encontradas na seo Files. Exiba o FontPath real com xset q. Esse caminho tambm pode ser modificado no tempo de execuo com xset. Para adicionar outro caminho, use xset +fp <path>. Para remover um caminho indesejado, use xset -fp <path>. Se o servidor X j estiver ativo, fontes recm-instaladas em diretrios montados podem ficar disponveis com o comando xset fp rehash. Este comando executado por SuSEconfig --module fonts. Como o comando xset precisa de acesso ao servidor X em execuo, isso funciona somente se SuSEconfig --module fonts for iniciado em um shell com acesso ao servidor X em execuo. A maneira mais fcil de conseguir isso assumir permisses de root digitando su e a senha de root. su transfere as permisses de acesso do usurio que iniciou o servidor X para o shell do root. Para verificar se as fontes foram instaladas corretamente e esto disponveis atravs do sistema de fontes centrais X11, use o comando xlsfonts para listar todas as fontes disponveis. Por padro, o SUSE Linux usa locales UTF-8. Desta forma, fontes Unicode devem ser preferidas (nomes de fontes terminando com iso10646-1 na sada xlsfonts). Todas as fontes Unicode disponveis podem ser relacionadas com xlsfonts | grep iso10646-1. Praticamente todas as fontes Unicode disponveis no SUSE Linux 290 Referncia

contm pelo menos os glifos necessrios para idiomas europeus (anteriormente codificado como iso-8859-*).

14.3.2 Xft
Desde o incio, os programadores do Xft certificaram-se de que as fontes escalveis, incluindo as de antialiasing, tivessem suporte adequado. Se o Xft for usado, as fontes sero exibidas pelo aplicativo usando as fontes, no pelo servidor X como no sistema de fontes central X11. Desta forma, o respectivo aplicativo tem acesso aos arquivos de fontes reais e controle total sobre como os glifos so exibidos. Isso constitui a base para a exibio correta do texto em vrios idiomas. Acesso direto aos arquivos de fontes bastante til para embutir fontes para impresso para certificar-se de que a impresso tem a mesma aparncia da sada da tela. No SUSE Linux, os dois ambientes de rea de trabalho do KDE e do GNOME, Mozilla, e vrios outros aplicativos j usam o Xft por padro. O Xft j usado por mais aplicativos do que o sistema de fontes central X11 antigo. O Xft usa a biblioteca fontconfig para localizar fontes e influenciar como elas so exibidas. As propriedades de fontconfig so controladas pelo arquivo de configurao global /etc/fonts/fonts.conf e o arquivo de configurao especfico ao usurio ~/.fonts.conf. Cada um destes arquivos de configurao fontconfig deve iniciar com
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig>

e terminar com
</fontconfig>

Para adicionar diretrios para pesquisar fontes, acrescente linhas como as seguintes:
<dir>/usr/local/share/fonts/</dir>

Porm, isso geralmente no necessrio. Por padro, o diretrio especfico ao usurio ~/.fonts j est inserido em /etc/fonts/fonts.conf. Da mesma maneira, tudo o que voc precisa fazer para instalar fontes adicionais copi-las para ~/.fonts. Voc tambm pode inserir regras que influenciam a aparncia das fontes. Por exemplo, digite

O sistema X Window

291

<match target="font"> <edit name="antialias" mode="assign"> <bool>false</bool> </edit> </match>

Para desabilitar o antialiasing para todas as fontes ou


<match target="font"> <test name="family"> <string>Luxi Mono</string> <string>Luxi Sans</string> </test> <edit name="antialias" mode="assign"> <bool>false</bool> </edit> </match>

para desabilitar o antialiasing para fontes especficas. Por padro, a maioria dos aplicativos usa os nomes de fontes sans-serif (ou o equivalente sans), serif ou monospace. Estas no so fontes reais, mas somente alis que so resolvidos para uma fonte adequada, dependendo da configurao de idioma. Usurios podem facilmente adicionar regras para ~/.fonts.conf a fim de resolver esses alias para suas fontes favoritas:
<alias> <family>sans-serif</family> <prefer> <family>FreeSans</family> </prefer> </alias> <alias> <family>serif</family> <prefer> <family>FreeSerif</family> </prefer> </alias> <alias> <family>monospace</family> <prefer> <family>FreeMono</family> </prefer> </alias>

Como quase todos os aplicativos usam esses alias por padro, isso afeta praticamente todo o sistema. Desta forma, voc pode facilmente usar suas fontes favoritas praticamente

292

Referncia

em qualquer local sem precisar modificar as configuraes de fontes nos aplicativos individuais. Use o comando fc-list para encontrar as fontes instaladas e disponveis para uso. Por exemplo, o comando fc-list retorna uma lista de todas as fontes. Para descobrir quais das fontes escalveis disponveis (:scalable=true) contm todos os glifos exigidos para hebraico (:lang=he), os nomes de fontes (family), o estilo (style), o peso (weight) e o nome dos arquivos que contm as fontes, digite o seguinte comando:
fc-list ":lang=he:scalable=true" family style weight

A sada do comando pode ter a seguinte aparncia:

FreeSansBold.ttf: FreeSans:style=Bold:weight=200 FreeMonoBoldOblique.ttf: FreeMono:style=BoldOblique:weight=200 FreeSerif.ttf: FreeSerif:style=Medium:weight=80 FreeSerifBoldItalic.ttf: FreeSerif:style=BoldItalic:weight=200 FreeSansOblique.ttf: FreeSans:style=Oblique:weight=80 FreeSerifItalic.ttf: FreeSerif:style=Italic:weight=80 FreeMonoOblique.ttf: FreeMono:style=Oblique:weight=80 FreeMono.ttf: FreeMono:style=Medium:weight=80 FreeSans.ttf: FreeSans:style=Medium:weight=80 FreeSerifBold.ttf: FreeSerif:style=Bold:weight=200 FreeSansBoldOblique.ttf: FreeSans:style=BoldOblique:weight=200 FreeMonoBold.ttf: FreeMono:style=Bold:weight=200

Parmetros importantes podem ser consultados com fc-list: Tabela 14.2 Parmetro family foundry style Parmetros de fc-list Significado e valores possveis Nome da famlia da fonte, por exemplo, FreeSans. Nome do fabricante da fonte, por exemplo, urw. O estilo da fonte, como Medium, Regular, Bold, Italic ou Heavy. O idioma que a fonte suporta, por exemplo, de para alemo, ja para japons, zh-TW para chins tradicional ou zh-CN para chins simplificado.

lang

O sistema X Window

293

Parmetro weight slant file outline scalable bitmap pixelsize

Significado e valores possveis O peso da fonte, como 80 para normal ou 200 para negrito. A inclinao, geralmente 0 para nenhum e 100 para itlico. O nome do arquivo contendo a fonte. true para fontes de bordas ou false para outras fontes. true para fontes escalveis ou false para outras fontes. true para fontes de bitmap ou false para outras fontes. Tamanho de fonte em pixels. Em conexo com a fc-list, esta opo s faz sentido para fontes de bitmap.

14.3.3 Fontes indexadas do CID


Em contraste com outros tipos de fontes, voc no pode simplesmente instalar fontes indexadas do CID em somente qualquer diretrio. Fontes indexadas do CID devem ser instaladas em /usr/share/ghostscript/Resource/CIDFont. Isso no relevante para Xft e fontconfig, mas necessrio para Ghostscript e o sistema de fontes centrais X11. DICA Consulte http://www.xfree86.org/current/fonts.html para obter mais informaes sobre fontes sob X11.

294

Referncia

14.4 Configurao 3D do OpenGL


14.4.1 Suporte a hardware
O SUSE Linux inclui vrios drivers do OpenGL para suporte a hardware 3D. A Tabela 14.3, Hardwares 3D suportados (p 295) fornece uma viso geral. Tabela 14.3 Hardwares 3D suportados Hardware suportado nVidia Chips: todos, exceto alguns chipsets antigos (GeForce2 e anteriores) Intel i810/i815/i830M, Intel 845G/852GM/855GM/865G/915G,915GM/945G Matrox G200/G400/G450/G550, ATI Rage 128(Pro)/Radeon (at 9250) Se voc estiver fazendo uma instalao com o YaST pela primeira vez, a acelerao 3D poder ser ativada durante a instalao, uma vez que o YaST detecta suporte a 3D. Para chips de grficos nVidia, necessrio instalar o driver nVidia antes. Para fazer isso, selecione o patch do driver nVidia em YOU (YaST Online Update - Atualizao Online do YaST). Devido a restries de licena, o driver do nVidia no est includo na distribuio. Se voc atualizar o sistema, o procedimento para configurar o suporte ao hardware 3D ser diferente. Isso depende de qual driver do OpenGL est sendo usado. Detalhes adicionais sero fornecidos na prxima seo.

Driver do OpenGL nVidia

DRI

O sistema X Window

295

14.4.2 Drivers do OpenGL


Os drivers nVidia e DRI do OpenGL podem ser facilmente configurados com SaX2. Para adaptadores nVidia, necessrio instalar o driver nVidia antes. Digite o comando 3Ddiag para verificar se a configurao do nVidia ou DRI est correta. Por razes de segurana, somente usurios pertencentes ao grupo vdeo tm permisso para acessar o hardware 3D. Portanto, verifique se todos os usurios locais so membros desse grupo. Caso contrrio, o fallback de renderizao de software lento do driver do OpenGL ser usado para aplicativos do OpenGL. Use o comando id para verificar se o usurio atual pertence ao grupo vdeo. Se no for o caso, use o YaST para adicionar o usurio ao grupo.

14.4.3 Ferramenta de diagnstico 3Ddiag


A ferramenta de diagnstico 3Ddiag permite verificar a configurao 3D do SUSE Linux. Essa uma ferramenta da linha de comando que deve ser iniciada em um terminal. Digite 3Ddiag -h para relacionar possveis opes para a 3Ddiag. Para verificar a configurao de X.Org, a ferramenta verifica se os pacotes necessrios para o suporte 3D esto instalados e se a biblioteca do OpenGL e a extenso GLX corretas esto sendo usadas. Se receber mensagens de falha, siga as instrues da 3Ddiag. Se tudo estiver correto, sero exibidas somente mensagens de concluso na tela.

14.4.4 Utilitrios de teste do OpenGL


Para testar o OpenGL, pode ser til usar o programa glxgears e jogos como tuxracer e armagetron (os pacotes tm os mesmos nomes). Se o suporte 3D tiver sido ativado, ser possvel reproduzi-los adequadamente em um computador novo. Sem suporte 3D, esses jogos seriam executados muito lentamente (efeito apresentao de slide). Use o comando glxinfo para verificar se o 3D est ativo. Em caso positivo, a sada conter uma linha com direct rendering: Yes.

296

Referncia

14.4.5 Soluo de problemas


Se os resultados do teste 3D do OpenGL forem negativos (os jogos no forem reproduzidos adequadamente), use a 3Ddiag para verificar se no h erros na configurao (mensagens de erro). Se a correo no ajudar ou as mensagens de erro no tiverem sido exibidas, analise os arquivos de registro X.Org. Com freqncia, voc encontrar a linha DRI is disabled no arquivo X.Org /var/log/Xorg.0.log. A causa exata s poder ser descoberta por meio de um exame detalhado do arquivo de registro, tarefa que requer experincia. Em tais casos, no h erros de configurao, pois eles teriam sido detectados pela 3Ddiag. Conseqentemente, nesse ponto a nica alternativa usar o fallback de renderizao do software do driver DRI, que no fornece suporte a hardware 3D. Voc tambm dever ficar sem suporte a 3D, se houver instabilidade ou erros de representao do OpenGL. Use o SaX2 para desabilitar totalmente o suporte a 3D.

14.4.6 Suporte instalao


Alm do fallback de renderizao de software do driver DRI, alguns drivers do OpenGL no Linux ainda esto em fase de desenvolvimento e, portanto, so considerados experimentais. Os drivers so includos na distribuio devido alta demanda de acelerao do hardware 3D no Linux. Considerando o status experimental de alguns drivers do OpenGL, o SUSE no pode oferecer suporte instalao para a configurao da acelerao do hardware 3D, nem fornecer assistncia adicional a problemas relacionados. A configurao bsica da interface grfica do usurio (sistema X Window) no inclui configurao de acelerao do hardware 3D. Se voc tiver problemas com a acelerao do hardware 3D, recomendvel desabilitar totalmente o suporte a 3D.

14.4.7 Mais informaes


Para obter informaes, consulte os arquivos LEIAME em /usr/X11R6/lib/X11/ doc. Obtenha mais informaes sobre a instalao do driver nvidia em http://www .suse.de/~sndirsch/nvidia-installer-HOWTO.html.

O sistema X Window

297

FreeNX: controlando outro computador remotamente


O FreeNX uma implementao GPL do servidor NX, usado para exibio e acesso remoto de outro computador. Ele oferece resposta de aplicativo em velocidade quase local atravs de links de alta latncia e largura de banda baixa.

15

15.1 Noes bsicas do NX


Estas etapas descrevem o procedimento bsico para estabelecer uma configurao do NX de trabalho que aceite at 10 clientes conectados ao servidor NX: 1 Instale os seguintes pacotes na mquina servidor e cliente usando o mdulo de gerenciamento de software do YaST: Mquina servidor NX FreeNX Mquina cliente NX knx (para sesses do KDE) NoMachine nxclient (para sesses noKDE)

2 Execute o seguinte comando como Root para configurar o servidor NX:


nxsetup --install --clean --purge --setup-nomachine-key

FreeNX: controlando outro computador remotamente

299

O servidor executado de acordo com as configuraes padro existentes em /etc/nxserver/node.conf. Qualquer usurio pode se conectar remotamente de qualquer estao de trabalho. Para informar-se sobre a configurao avanada do servidor NX, consulte a Seo 15.2, Configurao avanada do FreeNX (p 302). Se voc preferir uma configurao mais segura com chaves privadas distribudas para cada cliente, consulte as instrues contidas na Seo 15.2.1, Configurando a autenticao SSH com chaves do cliente (p 302). 3 Configure o firewall na mquina que hospeda o servidor NX para permitir conexes do NX. a Efetue login na mquina servidor como Root e inicie o mdulo de firewall do YaST. b Selecione Servios Permitidos para acessar a caixa de dilogo de configurao do servio e selecione Zona Externa. c Selecione Avanado para especificar detalhes de porta do NX. d Abra as portas 22 (SSH), 5000 a 5009, e 7000 a 7009 para aceitar trfego do NX. Para fazer isso, especifique o seguinte nas portas TCP:
22 5000:5009 7000:7009

e Selecione OK Prximo Aceitar para armazenar suas configuraes e reiniciar o firewall.

DICA Para obter informaes detalhadas sobre a configurao de firewall para o NX, consulte /usr/share/doc/packages/FreeNX/NX-Firewall.txt. Para conectar-se remotamente a outra estao de trabalho e usar o KDE como sua opo de desktop, proceda da seguinte maneira: 1 Inicie o KNX no menu principal.

300

Referncia

2 No primeiro login, voc precisar criar uma nova conexo. Para criar uma conexo, faa o seguinte: a Em Login de Cliente do KNX, clique em Configuraes de Conexo. b Digite um nome para a conexo; por exemplo, o nome do servidor. c Especifique as informaes de host, o nmero da porta e a largura de banda da conexo. d Em Tipo de Sesso, selecione UNIX/KDE para iniciar uma sesso do KDE. e Selecione uma resoluo de tela. f Clique em OK. 3 Depois que voc se conectar e a conexo remota aparecer na tela, voc poder acessar aplicativos e usar o computador remoto como se estivesse em frente a ele. Para conectar-se remotamente a outra mquina que execute o GNOME como sua opo de desktop, proceda da seguinte maneira: 1 Faa o download do pacote nxclient do NoMachine atravs de http://www .nomachine.com/download_client_linux.php e instale-o. 2 Inicie o Assistente para Conexo do NX no menu principal. 3 Em trs etapas, digite o nome da conexo, detalhes da porta e do host, e o tipo de conexo, selecione o tipo de sesso Unix/Gnome, decida se criar um atalho na rea de trabalho e clique em Concluir. 4 Para conectar-se ao desktop remoto, clique no atalho do NX na rea de trabalho e informe o nome de usurio e a senha. Em seguida, clique em OK. A rea de trabalho remota aparece na sua tela.

FreeNX: controlando outro computador remotamente

301

15.2 Configurao avanada do FreeNX


As sees a seguir apresentam alguns recursos avanados usados principalmente em cenrios mais complexos do NX.

15.2.1 Configurando a autenticao SSH com chaves do cliente


A autenticao configurada na Seo 15.1, Noes bsicas do NX (p 299) utiliza apenas credenciais de senha e nome de usurio. Para obter uma autenticao mais segura, o NX pode ser configurado para gerar um par de chaves SSH. A chave do cliente , ento, copiada da mquina servidor para qualquer cliente que possa se conectar ao servidor NX. Os clientes que no tiverem essa chave no podero se autenticar no servidor NX. Esse recurso s tem suporte para a combinao de servidor FreeNX e cliente knx. Para configurar o servidor NX para que use esse mtodo de autenticao e gere o par de chaves apropriada, proceda da seguinte maneira: 1 Efetue login como Root na mquina servidor. 2 Abra o arquivo de configurao do servidor /etc/nxserver/node.conf e verifique se ENABLE_SSH_AUTHENTICATION est definido como 1 (valor padro). 3 Instale o servidor com o seguinte comando:
nxsetup --install --clean --purge

4 Ajuste as permisses de acesso para /var/lib/nxserver/home/.ssh/ authorized_keys2:


chmod 640 /var/lib/nxserver/home/.ssh/authorized_keys2

5 Efetue logout.

302

Referncia

Para configurar o knx para usar essa chave, proceda da seguinte maneira: 1 Na mquina servidor, efetue login como Root. 2 Copie o arquivo de chave para o local na mquina cliente necessrio ao knx; substitua cliente pelo endereo do cliente.
scp /var/lib/nxserver/home/.ssh/client.id_dsa.key cliente:/usr/share/knx/

3 Efetue login na mquina cliente como Root. 4 Ajuste as permisses de acesso da seguinte maneira:
chmod 644 /usr/share/knx/client.id_dsa.key

5 Efetue logout.

15.2.2 Configurando a autenticao PAM


Por padro, o FreeNX permite que qualquer usurio abra uma sesso do NX, desde que ele esteja presente no banco de dados de usurios do seu servidor (localmente ou por meio de LDAP, NIS, entre outros). Esse comportamento alternado pela varivel ENABLE_PAM_AUTHENTICATION em /usr/bin/nxserver na mquina servidor. O valor padro aqui 1. Configurar com o valor 0 desabilita a autenticao do usurio mediada por PAM (PAM_AUTH) para o FreeNX. Se ENABLE_PAM_AUTHENTICATION for definido como 0, ser preciso adicionar usurios e senhas manualmente. Para adicionar usurios locais do NX ao servidor, proceda da seguinte maneira: 1 Efetue login na mquina servidor como Root. 2 Certifique-se de que os usurios a serem adicionados existem no banco de dados de usurios locais do sistema. Para isso, verifique o contedo de /etc/passwd ou use o mdulo de gerenciamento de usurios do YaST. 3 Inclua o nome de cada usurio adicionado com o comando nxserver --adduser. Em seguida, adicione a senha do usurio com nxserver --passwd.

FreeNX: controlando outro computador remotamente

303

4 Reinicie o servidor com nxserver --restart e efetue logout.

15.2.3 Usando arquivos de configurao no sistema todo e especficos do usurio


O comportamento do servidor FreeNX controlado por meio de /etc/node.conf. Voc pode executar uma configurao global do servidor NX ou executar o servidor com configuraes especficas do usurio. Isso importante quando voc tem diversos usurios com o NX em execuo em uma mquina com requisitos distintos. No exemplo a seguir, suponha que o usurio joe queira que o NX seja iniciado automaticamente com um certo aplicativo quando ele abrir uma sesso do NX. Para habilitar esse comportamento para apenas esse usurio, proceda da seguinte maneira: 1 Efetue login como Root. 2 Digite o diretrio /etc/nxserver:
cd /etc/nxserver

3 Grave uma cpia do arquivo de configurao do servidor NX (node.conf) em joe.node.conf no mesmo diretrio. 4 Edite os parmetros apropriados (NODE_AUTOSTART e ENABLE_AUTORECONNECT) em joe.node.conf. Para obter detalhes sobre esses recursos, consulte a Seo 15.2.5, Configurando tarefas de auto-incio e exportando configuraes (p 305) e a Seo 15.2.4, Suspendendo e reiniciando sesses do NX (p 305). 5 Reinstale o servidor NX para ativar a nova configurao:
nxsetup --install --clean --purge --setup-nomachine-key

A configurao especfica do usurio substitui a configurao global. 6 Efetue logout.

304

Referncia

15.2.4 Suspendendo e reiniciando sesses do NX


Como nas sesses em computadores mveis, possvel configurar o NX para suspender e reiniciar sesses do usurio. Uma sesso suspensa reaberta no mesmo estado em que estava ao ser fechada. Para configurar a suspenso e o reincio de sesses do NX, proceda da seguinte maneira: 1 Efetue login como Root. 2 Abra o arquivo de configurao do servidor, /etc/nxserver/node.conf, e edite-o assim:
ENABLE_PASSDB_AUTHENTICATION="0" ENABLE_USER_DB="0" ENABLE_AUTORECONNECT="1"

3 Grave o arquivo de configurao, saia e reinicie o servidor com nxserver --restart. 4 Efetue logout. Para suspender uma sesso ao sair, clique no X no canto superior direito da janela do NX e selecione Suspender para suspender a sesso e sair do cliente. Na reconexo, voc dever informar se deseja reiniciar a sesso antiga ou iniciar uma nova.

15.2.5 Configurando tarefas de auto-incio e exportando configuraes


O FreeNX oferece a funo de auto-incio que lhe permite iniciar certas tarefas quando uma sesso do NX iniciada ou reiniciada, desde que o aplicativo subjacente suporte as propriedades start e resume. Por exemplo, voc pode limpar a rea de trabalho automaticamente ou executar outras tarefas de auto-incio quando abrir o FreeNX. Esse recurso especialmente til quando voc reconecta uma sesso, mesmo em outro cliente do NX (no qual no possvel usar os mecanismos padro do KDE ou GNOME). Para configurar recursos de auto-incio, proceda da seguinte maneira:

FreeNX: controlando outro computador remotamente

305

1 Efetue login como Root na mquina servidor. 2 Abra o arquivo de configurao do servidor /etc/nxserver/node.conf e edite a varivel NODE_AUTOSTART da maneira descrita abaixo, onde meuprograma deve ser substitudo pelo programa a ser executado no incio ou reincio de uma sesso do NX:
NODE_AUTOSTART=meuprograma

3 Grave e saia do arquivo de configurao. 4 Reinicie o servidor com o comando nxserver --restart e efetue logout. O programa especificado ser iniciado toda vez que uma sesso for iniciada ou reiniciada. Voc tambm pode exportar as variveis NX_USERIP e NX_SESSIONID para que possam ser acessadas no ambiente do usurio. Com isso, possvel, por exemplo, colocar um cone na rea de trabalho com o contedo genrico e acessar um servidor Samba em execuo no thin client do usurio. Para que o contedo de um disquete na unidade de disquete do thin client fique disposio do usurio, proceda da seguinte maneira: 1 Habilite a exportao das variveis NX_USERIP e NX_SESSIONID no servidor: a Efetue login como Root no servidor. b Abra o /etc/nxserver/node.conf de configurao do servidor e defina as seguintes variveis:
EXPORT_USERIP="1" EXPORT_SESSIONID="1"

c Grave o arquivo de configurao do servidor, saia e reinicie o servidor com o comando nxserver --restart. d Efetue logout. 2 No cliente, abra uma sesso, exporte a unidade de disquete atravs de SMB e crie um cone na rea de trabalho:

306

Referncia

a Use o seu gerenciador de arquivos (Nautilus ou Konqueror) para exportar o contedo da unidade de disquete com o Samba. b Crie um arquivo floppy.desktop no diretrio Desktop e inclua a seguinte linha:
Exec=smb://$NX_USERIP/floppy

O servidor exporta o endereo IP do thin client, permitindo assim que voc tenha acesso unidade de disquete do thin client com o cone de disquete na sesso do NX.

15.2.6 Criando uma cadeia de servidores NX


Uma cadeia de servidores NX permite que voc atravesse firewalls e entenda a mscara de IP. Um servidor de gateway externo pode ser usado para encaminhar conexes de entrada para um servidor interno, oculto por trs de um firewall (mscara). Para configurar uma cadeia de servidores NX, proceda da seguinte maneira: 1 Configure o servidor interno como descrito na Seo 15.2.1, Configurando a autenticao SSH com chaves do cliente (p 302) e distribua a chave privada do servidor (client.id_dsa.key) para /usr/NX/share/ no gateway. 2 No servidor de gateway, proceda da seguinte maneira: a Efetue login como Root. b Defina as seguintes variveis em /etc/nxserver/node.conf e substitua meuhostinterno pelo endereo IP do servidor NX interno:
ENABLE_SERVER_FORWARD="1" SERVER_FORWARD_HOST="meuhostinterno" SERVER_FORWARD_KEY="/usr/NX/share/client.id_dsa.key"

c Reinicie o servidor externo para aplicar a configurao alterada com o comando nxserver --restart e efetue logout. Toda conexo de entrada ser encaminhada ao servidor interno.

FreeNX: controlando outro computador remotamente

307

15.2.7 Instalando e executando o FreeNX e o NoMachine no mesmo servidor


possvel instalar e executar o FreeNX e o servidor comercial NX NoMachine na mesma mquina sem interferncia. Para fazer essa implementao no FreeNX, encaminhe a conexo para o NoMachine instalado na mesma mquina. Para habilitar esse recurso, proceda da seguinte maneira: 1 Efetue login como Root na mquina servidor. 2 Abra o arquivo de configurao do servidor para o FreeNX em /etc/ nxserver/node.conf e defina a seguinte varivel:
ENABLE_NOMACHINE_FORWARD="1"

3 Grave esse arquivo e reinicie o servidor FreeNX com o comando nserver --restart. 4 Efetue logout. Para conectar-se ao servidor NoMachine, use as credenciais padro de nome de usurio e senha. Para conectar-se ao servidor FreeNX, use freenx. como prefixo do nome de usurio normal (por exemplo, freenx.joedoe) e use a senha normal.

15.3 Soluo de problemas


As sees a seguir indicam alguns dos problemas mais freqentes que ocorrem quando se usa o FreeNX e fornecem as possveis solues para resolv-los.

15.3.1 O knx trava ao tentar estabelecer uma conexo


Voc est tentando estabelecer uma conexo com o servidor NX usando o knx. Ao iniciar a conexo, o knx falha na autenticao do usurio e nenhuma sesso remota iniciada.

308

Referncia

Para determinar por que isso ocorre e como o problema pode ser solucionado, proceda da seguinte maneira: 1 Verifique se o Novell AppArmor est em execuo na mquina servidor e proceda como descrito na Seo 15.3.2, No possvel estabelecer conexo com o servidor NX (p 310). 2 Tente restabelecer uma conexo entre o knx e o servidor. 3 Verifique se o firewall do cliente permite trfego SSH. Para isso, inicie o mdulo de firewall do YaST e verifique se o SSH est entre os Servios Permitidos da Zona Externa. Habilite o SSH caso ele ainda no esteja habilitado. 4 No firewall do servidor, verifique se o SSH e as portas NX esto relacionadas na Seo 15.1, Noes bsicas do NX (p 299). Abra essas portas se tiverem sido fechadas. 5 Tente restabelecer uma conexo entre o knx e o servidor. 6 Efetue login no servidor como Root e proceda da seguinte maneira: a Especifique o diretrio /tmp e procure arquivos de bloqueio no servidor NX:
cd / ls -ltr .nX*

b Se houver algum desses antigos arquivos de bloqueio, remova-os. c Efetue logout. 7 Tente restabelecer uma conexo entre o knx e o servidor. 8 Na mquina cliente, apague e reinstale o cliente do knx usando o mdulo de gerenciamento de software do YaST. Se voc seguiu as instrues acima, agora poder se conectar.

FreeNX: controlando outro computador remotamente

309

15.3.2 No possvel estabelecer conexo com o servidor NX


Depois de iniciar o knx e a conexo, voc obter a seguinte mensagem de erro:
No foi possvel estabelecer conexo com o servidor NX. Tempo de conexo esgotado.

Para determinar a origem desse problema, proceda da seguinte maneira: 1 Efetue login no servidor como Root. 2 Verifique se na sada do comando dmesg existe uma entrada como esta:
SubDomain: REJECTING r access to /var/lib/nxserver/home/.ssh/authorized_keys2 (sshd(31247) profile /usr/sbin/sshd active /usr/sbin/sshd)

Essa entrada indica que o Novell AppArmor em execuo no servidor no permite que o daemon ssh acesse alguns arquivos especficos do NX. 3 Interrompa o AppArmor na mquina servidor ou Coloque o perfil sshd no modo de aprendizado e adicione permisses ao perfil existente para ter acesso aos arquivos do NX. Essas informaes so fornecidas com mais detalhes no Guia de Administrao do Novell AppArmor 2.0. 4 Reconecte-se ao servidor.

15.3.3 Autenticao do usurio bem-sucedida, conexo remota no se estabelece


Depois que voc executa o knx e inicia a sesso, o knx autentica o usurio mas, em vez de uma janela de terminal abrir com uma nova sesso, exibida uma mensagem de erro como esta:

310

Referncia

Ainda no foi possvel estabelecer conexo com o proxy remoto. Deseja encerrar a sesso?

A conexo falhou porque as portas superiores usadas na negociao da sesso remota do NX no foram abertas no firewall do servidor. Para ajustar as configuraes do firewall no servidor, proceda como descrito na Seo 15.1, Noes bsicas do NX (p 299).

15.4 Mais informaes


Para obter as informaes mais recentes sobre o atual pacote do FreeNX, consulte o LEIAME em /usr/share/doc/packages/FreeNX/README.SUSE. Para obter informaes adicionais sobre o servidor NX, use o comando nxserver --help.

FreeNX: controlando outro computador remotamente

311

Autenticao com o PAM

16

O Linux usa o PAM (Pluggable Authentication Modules) no processo de autenticao como uma camada mediadora entre o usurio e o aplicativo. Como os mdulos PAM esto disponveis em todo o sistema, eles podem ser solicitados por qualquer aplicativo. Este captulo descreve o funcionamento e a configurao do mecanismo de autenticao modular. Os programadores e administradores do sistema muitas vezes desejam restringir o acesso a certas partes do sistema ou limitar o uso de certas funes de um aplicativo. Sem o PAM, os aplicativos precisam ser adaptados toda vez que introduzido um novo mecanismo de autenticao, como o LDAP ou o SAMBA. Entretanto, esse processo bastante demorado e propenso a erros. Uma forma de evitar essas desvantagens separar os aplicativos do mecanismo de autenticao e delegar a autenticao a mdulos gerenciados centralmente. Sempre que um esquema de autenticao passa a ser necessrio, basta adaptar ou gravar um mdulo PAM adequado para ser usado pelo programa em questo. Todo programa baseado no mecanismo PAM tem um arquivo de configurao prprio no diretrio /etc/pam.d/programname. Esses arquivos definem os mdulos PAM usados para a autenticao. Alm disso, existem arquivos de configurao globais para a maioria dos mdulos PAM em /etc/security, que definem o exato comportamento desses mdulos (alguns exemplos so pam_env.conf, pam _pwcheck.conf, pam_unix2.conf e time.conf). Todo aplicativo que usa um mdulo PAM na realidade chama um conjunto de funes do PAM que, em seguida, processa as informaes nos diversos arquivos de configurao e apresenta o resultado ao aplicativo que chamou.

Autenticao com o PAM

313

16.1 Estrutura de um arquivo de configurao PAM


Cada linha de um arquivo de configurao PAM contm, no mximo, quatro colunas:
<Tipo de mdulo> <Flag de controle> <Caminho do mdulo> <Opes>

Os mdulos PAM so processados como pilhas. Diferentes tipos de mdulos servem a diferentes objetivos. Por exemplo, um mdulo verifica a senha, outro verifica a localizao de onde o sistema est sendo acessado e outro l configuraes especficas ao usurio. O PAM tem conhecimento sobre quatro tipos diferentes de mdulos: autenticao O objetivo desse tipo de mdulo verificar a autenticidade do usurio. Essa verificao tradicionalmente feita por meio de uma consulta a senha, mas tambm pode ser realizada com a ajuda de um carto com chip ou de biometria (impresses digitais ou leitura da ris). account (conta) Os mdulos desse tipo verificam se o usurio possui uma permisso geral para usar o servio solicitado. A ttulo de exemplo, essa verificao deve ser realizada para assegurar que ningum seja capaz de efetuar o login com o nome de usurio de uma conta vencida. password (senha) O objetivo desse tipo de mdulo permitir a mudana de um token de autenticao. Na maioria dos casos, trata-se de uma senha. session (sesso) Os mdulos desse tipo so responsveis pelo gerenciamento e configurao de sesses de usurios. Eles so iniciados antes e depois da autenticao para registrar tentativas de login em registros do sistema e para configurar o ambiente especfico do usurio (contas de e-mail, diretrio pessoal, limites do sistema etc.). A segunda coluna contm flags de controle para influenciar o comportamento dos mdulos iniciados: required (obrigatrio) Um mdulo com esse flag precisa ser processado com xito para que a autenticao possa prosseguir. Aps a falha de um mdulo com o flag required (obrigatrio), 314 Referncia

todos os outros mdulos com o mesmo flag sero processados antes que o usurio receba uma mensagem sobre a falha da tentativa de autenticao. requisite (necessrio) Os mdulos com esse flag tambm precisam ser processados com xito, de modo bastante semelhante ao mdulo com o flag required (obrigatrio). Contudo, em caso de falha, um mdulo com esse flag d um retorno imediato ao usurio e os mdulos restantes deixam de ser processados. Em caso de xito, os outros mdulos so processados, exatamente como qualquer mdulo com o flag required (obrigatrio). O flag requisite (necessrio) pode ser usado como um filtro bsico para verificar a existncia de determinadas condies essenciais para a correta autenticao. sufficient (suficiente) Aps o processamento com xito de um mdulo com esse flag, o aplicativo que chamou recebe imediatamente uma mensagem sobre o xito e o processamento dos mdulos interrompido, exceto quando houver falhas anteriores em um mdulo com o flag required (obrigatrio). A falha de um mdulo com o flag sufficient (suficiente) no traz conseqncias diretas, com os mdulos subseqentes sendo processados na sua respectiva ordem. optional (opcional) A falha ou xito de um mdulo com esse flag no traz conseqncias diretas. Isso pode ser til no caso de mdulos cujo nico propsito exibir uma mensagem (por exemplo, informar ao usurio sobre a chegada de e-mails) sem executar nenhuma ao adicional. include (incluir) Quando esse flag dado, o arquivo especificado como argumento inserido nesse lugar. O caminho do mdulo no precisa ser explicitado, contanto que o mdulo fique localizado no diretrio padro /lib/security (para todas as plataformas de 64 bits suportadas pelo SUSE Linux, o diretrio /lib64/security). A quarta coluna pode conter uma opo para o mdulo especfico, como debug (permite a depurao) ou nullok (permite o uso de senhas vazias).

Autenticao com o PAM

315

16.2 A configurao PAM do sshd


Para demonstrar o funcionamento da teoria do PAM, considere a configurao PAM do sshd como um exemplo prtico: Exemplo 16.1 Configurao PAM do sshd
#%PAM-1.0 auth include common-auth auth required pam_nologin.so account include common-account password include common-password session include common-session # Habilitar a seguinte linha para obter suporte de resmgr para # sesses ssh (consulte /usr/share/doc/packages/resmgr/README.SuSE) #session optional pam_resmgr.so fake_ttyname

A configurao PAM tpica de um aplicativo (sshd, nesse caso) contm quatro instrues include (incluir) referentes aos arquivos de configurao de quatro tipos de mdulo: common-auth, common-account, common-password e common-session. Esses quatro arquivos abrigam a configurao padro de cada tipo de mdulo. Ao inclulos em vez de chamar cada mdulo separadamente para cada aplicativo do PAM, ser possvel obter automaticamente uma configurao PAM atualizada se o administrador mudar os padres. Antigamente, era necessrio fazer o ajuste manual de todos os arquivos de configurao para todos os aplicativos quando ocorriam mudanas no PAM ou quando um novo aplicativo era instalado. Agora, a configurao PAM feita com arquivos de configurao centrais e todas as mudanas so automaticamente herdadas pela configurao PAM de cada servio. O primeiro arquivo includo (common-auth) chama dois mdulos do tipo auth (autenticao): pam_env e pam_unix2. Consulte o Exemplo 16.2, Configurao padro da seo auth (autenticao) (p 316). Exemplo 16.2 Configurao padro da seo auth (autenticao)
auth auth required required pam_env.so pam_unix2.so

O primeiro, pam_env, carrega o arquivo /etc/security/pam_env.conf para definir as variveis de ambiente conforme especificado nesse arquivo. Esse mdulo pode ser usado para definir o valor correto da varivel DISPLAY, pois o mdulo pam _env tem conhecimento do local de onde o login est sendo feito. O segundo, pam _unix2, compara o login e a senha do usurio a /etc/passwd e /etc/shadow.

316

Referncia

Depois da chamada com xito dos mdulos especificados em common-auth, um terceiro mdulo chamado pam_nologin verifica se o arquivo /etc/nologin existe. Em caso afirmativo, somente o usurio root poder efetuar o login. A pilha inteira de mdulos auth (autenticao) processada antes que o sshd receba qualquer retorno sobre o xito do login. Tendo em vista que todos os mdulos da pilha apresentam o flag de controle required (obrigatrio), todos precisam ser processados com xito antes que o sshd receba uma mensagem sobre o resultado positivo. Se algum dos mdulos falhar, a pilha de mdulos inteira ainda ser processada e somente a que o sshd ser notificado sobre o resultado negativo. Logo aps o processamento com xito de todos os mdulos do tipo auth (autenticao), outra instruo include (incluir) processada. Nesse caso, a que est no Exemplo 16.3, Configurao padro da seo account (conta) (p 317). O common-account contm apenas um mdulo, o pam_unix2. Se o pam_unix2 retornar o resultado de que o usurio existe, o sshd receber uma mensagem de xito e a prxima pilha de mdulos (password - senha) ser processada, conforme mostrado no Exemplo 16.4, Configurao padro da seo password (senha) (p 317). Exemplo 16.3 Configurao padro da seo account (conta)
account required pam_unix2.so

Exemplo 16.4 Configurao padro da seo password (senha)


password required password required #password required pam_pwcheck.so pam_unix2.so pam_make.so nullok nullok use_first_pass use_authtok /var/yp

Mais uma vez, a configurao PAM do sshd envolve apenas uma instruo include (incluir) referente configurao padro dos mdulos password (senha) localizados em common-password. Esses mdulos precisam ser concludos com xito (flag de controle required - obrigatrio) sempre que o aplicativo solicita a mudana de um token de autenticao. A mudana de uma senha ou de outro token de autenticao requer uma verificao de segurana. Essa ao possibilitada pelo mdulo pam _pwcheck. O mdulo pam_unix2 usado posteriormente vem com quaisquer senhas antigas e novas do mdulo pam_pwcheck, de modo que o usurio no precise autenticar novamente. Isso tambm torna impossvel driblar as verificaes realizadas pelo pam_pwcheck. Os mdulos do tipo password (senha) devem ser usados sempre que os mdulos precedentes do tipo account (conta) ou auth (autenticao) so configurados para fazer uma queixa sobre uma senha vencida.

Autenticao com o PAM

317

Exemplo 16.5 Configurao padro da seo session (sesso)


session required session required pam_limits.so pam_unix2.so

Na etapa final, os mdulos do tipo session (sesso), integrados no arquivo common-session, so chamados para configurar a sesso de acordo com as configuraes do usurio em questo. Embora o pam_unix2 seja processado novamente, no h conseqncias prticas devido opo none (nenhum) especificada no respectivo arquivo de configurao desse mdulo, o pam_unix2.conf. O mdulo pam_limits carrega o arquivo /etc/security/limits.conf, que pode definir limites sobre o uso de certos recursos do sistema. Os mdulos session (sesso) so chamados uma segunda vez quando o usurio efetua logout.

16.3 Configurao de mdulos PAM


Alguns dos mdulos PAM so configurveis. Os arquivos de configurao correspondentes esto localizados em /etc/security. Essa seo apresenta uma breve descrio dos arquivos de configurao relevantes para o exemplo do sshd: pam _unix2.conf, pam_env.conf, pam_pwcheck.conf e limits.conf.

16.3.1 pam_unix2.conf
O mtodo tradicional de autenticao baseada em senha controlado pelo mdulo PAM pam_unix2. Ele consegue ler os dados necessrios de /etc/passwd, /etc/ shadow, mapas NIS, tabelas NIS+ ou um banco de dados LDAP. Para influenciar o comportamento desse mdulo, configure as opes de PAM do aplicativo em si ou efetue uma mudana global editando /etc/security/pam_unix2.conf. Um arquivo de configurao do mdulo bastante bsico mostrado no Exemplo 16.6, pam_unix2.conf (p 318). Exemplo 16.6 pam_unix2.conf
auth: nullok account: password: session:

nullok none

A opo nullok para os tipos de mdulo auth (autenticao) e password (senha) especifica que senhas vazias so permitidas para o tipo de conta correspondente. Os

318

Referncia

usurios tambm tm permisso para mudar as senhas de suas contas. A opo none (nenhum) do tipo de mdulo session (sesso) especifica que nenhuma mensagem foi registrada em seu nome (esse o padro). Obtenha mais informaes sobre opes adicionais de configurao nos comentrios do prprio arquivo e na pgina pam_unix2(8) do manual.

16.3.2 pam_env.conf
Esse arquivo pode ser usado para definir um ambiente padronizado para os usurios que ser definido sempre que o mdulo pam_env for chamado. Com ele, predefina variveis de ambiente usando a seguinte sintaxe:
VARIVEL [DEFAULT=[valor]] [OVERRIDE=[valor]]

VARIVEL Nome da varivel de ambiente a ser definida. [DEFAULT=[valor]] Valor padro que o administrador deseja definir. [OVERRIDE=[valor]] Os valores que podem ser usados para consulta e definidos por pam_env, substituindo o valor padro. Um exemplo tpico de como o mdulo pam_env pode ser usado a adaptao da varivel DISPLAY, que mudada sempre que ocorre um login remoto. Voc pode ver isso no Exemplo 16.7, pam_env.conf (p 319). Exemplo 16.7 pam_env.conf
REMOTEHOST DISPLAY DEFAULT=localhost OVERRIDE=@{PAM_RHOST} DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY}

A primeira linha define o valor da varivel REMOTEHOST para o localhost, que usada sempre que pam_env no puder determinar qualquer outro valor. A varivel DISPLAY, por sua vez, contm o valor de REMOTEHOST. Mais informaes podem ser encontradas nos comentrios do arquivo /etc/security/pam_env.conf.

Autenticao com o PAM

319

16.3.3 pam_pwcheck.conf
Esse arquivo de configurao se destina ao mdulo pam_pwcheck, que l opes dele para todos os mdulos do tipo password (senha). As configuraes armazenadas nesse arquivo tm prioridade sobre as configuraes PAM de um aplicativo individual. Se configuraes especficas a um aplicativo no tiverem sido definidas, o aplicativo usar as configuraes globais. Exemplo 16.8, pam_pwcheck.conf (p 320) instrui o mdulo pam_pwcheck a permitir senhas vazias e a modificao de senhas. Mais opes para o mdulo so citadas no arquivo /etc/security/pam_pwcheck .conf. Exemplo 16.8 pam_pwcheck.conf
password: nullok

16.3.4 limits.conf
Os limites do sistema podem ser definidos para um usurio ou para um grupo no arquivo limits.conf, que lido pelo mdulo pam_limits. O arquivo permite a definio de limites fixos, que no podem ser excedidos em hiptese alguma, e limites flexveis, que podem ser excedidos temporariamente. Para obter informaes sobre a sintaxe e as opes disponveis, leia os comentrios contidos no arquivo.

16.4 Mais informaes


No diretrio /usr/share/doc/packages/pam do sistema instalado, voc encontra a seguinte documentao adicional: READMEs No nvel superior desse diretrio, h alguns arquivos README gerais. O subdiretrio modules abriga arquivos README sobre os mdulos PAM disponveis. The Linux-PAM System Administrators' Guide (Guia do Administrador do Sistema Linux-PAM) Esse documento contm todas as informaes que o administrador do sistema deve saber sobre o PAM. Ele aborda uma variedade de tpicos, desde a sintaxe dos

320

Referncia

arquivos de configurao at os aspectos de segurana do PAM. O documento est disponvel em formato PDF, HTML e como texto simples. The Linux-PAM Module Writers' Manual (Manual do Elaborador de Mdulos LinuxPAM) Esse documento sintetiza esse tpico do ponto de vista do desenvolvedor, com informaes sobre como elaborar mdulos PAM em conformidade com os padres. O documento est disponvel em formato PDF, HTML e como texto simples. The Linux-PAM Application Developers' Guide (Guia do Desenvolvedor de Aplicativos Linux-PAM) Esse documento contm todas as informaes necessrias a um desenvolvedor de aplicativos que queira usar as bibliotecas PAM. O documento est disponvel em formato PDF, HTML e como texto simples. Thorsten Kukuk desenvolveu uma srie de mdulos PAM para o SUSE Linux e disponibilizou algumas informaes a esse respeito em http://www.suse.de/ ~kukuk/pam/.

Autenticao com o PAM

321

Virtualizao com o Xen

17

O Xen torna possvel executar vrios sistemas Linux em uma mquina fsica. O hardware para os sistemas diferentes fornecido virtualmente. Este captulo fornece uma viso geral das possibilidades e limitaes desta tecnologia. As sees sobre instalao, configurao e execuo do Xen completam essa introduo. Mquinas virtuais comumente precisam emular o hardware que o sistema precisa. A desvantagem que o hardware emulado mais lento do que o silcio real. O Xen tem uma abordagem diferente. Ele restringe a emulao para o mnimo de partes possvel. Para obter isso, o Xen usa a paravirtualizao. Esta uma tcnica que apresenta mquinas virtuais similarmente, mas no identicamente ao hardware subjacente. Portanto, os sistemas operacionais de host e convidados esto adaptados no nvel do kernel. O espao do usurio permanece inalterado. O Xen controla o hardware com um hypervisor e um convidado de controle, tambm chamado Domain-0. Eles fornecem todos os dispositivos de rede e blocos virtualizados necessrios. Os sistemas convidados usam esses dispositivos de rede e blocos virtuais para executar o sistema e conectar-se a outros convidados ou rede local. Quando vrias mquinas fsicas executando o Xen so configuradas de forma que os dispositivos e rede e os blocos virtuais estejam disponveis, tambm possvel migrar um sistema convidado de um equipamento de hardware para outro enquanto ele est em execuo. Originalmente o Xen foi desenvolvido para executar at 100 sistemas convidados em um computador, mas esse nmero depende bastante dos requisitos de sistema dos sistemas convidados em execuo, especialmente o consumo de memria. Para limitar o uso de CPU, o hypervisor do Xen oferece trs programadores diferentes. O programador tambm pode ser mudado durante a execuo do sistema convidado, tornando possvel mudar a prioridade da execuo do sistema convidado. Em um nvel

Virtualizao com o Xen

323

mais alto, migrar um convidado tambm pode ser usado para ajustar a energia do CPU disponvel. O sistema de virtualizao do Xen tambm tem algumas desvantagens relativas ao hardware suportado. Vrios drivers de cdigo-fonte fechado, como os da Nvidia ou ATI, no funcionam como esperado. Nesses casos, voc deve usar os drivers de cdigofonte aberto se disponveis, mesmo que eles no suportem as capacidades totais dos chips. Alm disso, vrios chips de WLAN e pontes Cardbus no so suportados durante o uso do Xen. Na verso 2, o Xen no suporta PAE (extenso de endereo fsico), significando que ele no suporta mais do que 4 GB de memria. A ACPI no suportada. O gerenciamento de energia e outros modos que dependem da ACPI no funcionam. Outra limitao do Xen que atualmente no possvel somente inicializar um dispositivo de bloco. Para inicializar, sempre necessrio ter o kernel correto e o initrd disponvel no Domain-0. Figura 17.1 Viso geral do Xen

Management Application

Management Host OS
userspace applications

Service Guest OS
userspace applications

Service Guest OS
userspace applications

Linux Kernel
(paravirtualized)

Linux Kernel
(paravirtualized)

NetWare Kernel
(paravirtualized)

Physical Device Drivers IO Xen


virt. Console virt. CPU virt. Memory virt. Network virt. Blockdev

IO

CPU

Memory

Physical Hardware (CPU, Memory, Network, Block Devices)

324

Referncia

17.1 Instalao do Xen


O procedimento de instalao do Xen envolve a configurao de um domnio Domain0 e a instalao de convidados do Xen. Primeiro, verifique se os pacotes necessrios esto instalados. Esses so python, bridge-utils, xen, xen-tools, xen-tools-ioemu e um pacote kernel-xen. Ao selecionar o Xen durante a instalao, ele adicionado configurao do GRUB. Para outros casos, digite uma entrada em boot/grub/menu.lst. Essa entrada deve ser similar ao seguinte:
title Xen3 kernel (hd0,0)/boot/xen.gz module (hd0,0)/boot/vmlinuz-xen <parameters> module (hd0,0)/boot/initrd-xen

Substitua (hd0,0) pela partio que mantm o seu diretrio /boot. Consulte tambm o Captulo 9, O Carregador de Boot (p 201). Substitua <parameters> pelos parmetros normalmente usados para inicializar um kernel do Linux. Em seguida, reinicialize no modo Xen. Isso inicializa o hypervisor do Xen e um kernel do Linux levemente modificado como Domain-0 que executa a maioria do hardware. Alm das excees j mencionadas, tudo deve funcionar normalmente.

17.2 Instalao do domnio


Cada domnio convidado deve ser instalado individualmente. Para isso, execute o Virtual Machine Installation (Xen) do mdulo YaST no grupo Software. Na interface seguinte, fornea todas as informaes necessrias para executar o instalador. Essas informaes esto divididas em quatro categorias: Opes Aqui, defina o nome do domnio convidado, o seu recurso de memria e opes de inicializao para o instalador. Discos Escolha para criar uma imagem de sistema de arquivos ou uma partio fsica real. As imagens do sistema de arquivos so armazenadas no diretrio /var/lib/ xen/images. Verifique se voc tem espao suficiente em disco neste diretrio.

Virtualizao com o Xen

325

Sistema operacional O sistema operacional que deve ser usado para instalar o domnio convidado. Esse sistema selecionado na Fonte de Instalao do mdulo YaST e no pode ser definido nesse fluxo de trabalho. Rede Somente a rede em pontes suportada por esse mdulo. Adicione o nmero de placas de rede virtuais necessrias. A caixa de dilogo seguinte inicia o sistema de instalao aps executar vrias tarefas de configurao. Esse sistema idntico a uma instalao padro no modo de texto conforme descrito na Seo YaST em modo de texto (Captulo 2, Configurao do sistema com YaST, Inicializao). Se voc precisar mudar a configurao de um domnio convidado, deve fazer isso diretamente no arquivo de configurao. Esse arquivo est localizado em /etc/xen e tem um nome idntico ao nome do domnio convidado.

17.3 Iniciando e controlando domnios do Xen com xm


O Xen reduz automaticamente a quantidade de memria do Domain-0 para atender aos requisitos do domnio convidado recm-iniciado. Se no houver memria suficiente disponvel, o convidado no ser iniciado. Voc sempre pode verificar a memria disponvel do Domain-0 com o comando free. Sempre possvel destacar um console ou reconect-lo de outro terminal. Para destaclo, use Ctrl + ] . Para reconect-lo, primeiro verifique o ID do convidado necessrio com xm list e conecte-o ao ID com xm console ID. A ferramenta xm do Xen tem vrios parmetros possveis. Exiba uma lista com uma explicao curta digitando xm help. A Tabela 17.1, Comandos xm (p 326) fornece alguns dos comandos mais importantes como ponto de incio. Tabela 17.1 xm help Comandos xm Imprima uma lista de comandos disponveis para a ferramenta xm.

326

Referncia

xm console ID

Conecte ao primeiro console (tty1) do convidado com o ID ID.

xm mem-set ID Mem Defina o tamanho da memria do domnio com o ID ID para Mem em MB. xm create domname Inicie o domnio com o arquivo de configurao domname. O -c opcional vincula o terminal atual ao [-c] primeiro tty do novo convidado. xm shutdown ID Realize um encerramento normal do convidado com o ID ID. Termine o convidado com ID ID imediatamente. Imprima uma lista de todos os domnios em execuo com o ID respectivo, a memria e os valores de tempo de CPU. Exiba informaes sobre o host do Xen, incluindo informaes de memria e CPU.

xm destroy ID xm list

xm info

17.4 Soluo de problemas


Esta seo fornece algumas dicas sobre como resolver problemas comuns. Ela no visa ser uma instruo passo a passo completa, mas deve ajudar a resolver alguns problemas. Existem problemas de rede no Xen3. O conceito de rede mudou consideravelmente de Xen2 para Xen3. O Domain-0 no est mais conectado ponte para evitar o bloqueio da mesma. Infelizmente, os scripts de inicializao do sistema no podem tratar da configurao atual. Para reiniciar a rede, execute /etc/init.d/xend restart. Preciso executar uma verificao do sistema de arquivos. Se a verificao do sistema de arquivos no funcionar automaticamente, voc talvez precise fazer isso manualmente do Domain-0. Desligue o convidado e execute fsck na imagem enquanto ele no est montado. Se fsck reclamar que o sistema de arquivos est montado, verifique as montagens com o comando mount. Virtualizao com o Xen 327

O DHCP no obtm os endereos IP. O DHCP precisa de vrios mdulos de kernel iptables para ser executado. Os mdulos no foram instalados ou voc atualizou o kernel e esqueceu de atualizar os mdulos de kernel no sistema convidado. H um problema na inicializao do hypervisor e as mensagens desaparecem com muita rapidez Conecte a sua mquina Xen a outra estao de trabalho com um cabo nullmodem serial. Em seguida, no lado do Xen, adicione o seguinte parmetro linha
kernel (hd0,0)/boot/xen.gz com1=115200,8n1

Antes de inicializar o Xen, inicie um programa de terminal na estao de trabalho. Como um exemplo, isso pode ser
screen /dev/ttyS0 115200

Mude o dispositivo e a velocidade de acordo com suas necessidades.

17.5 Mais informaes


Mais informaes sobre o Xen podem ser encontradas nos seguintes sites: /usr/share/doc/packages/xen/user/html/index .htmlInformaes oficiais para usurios do Xen Exige o pacote xen-doc-html. /usr/share/doc/packages/xen/interface/html/index .htmlMais documentao tcnica de interface. Tambm exige o pacote xen-doc-html. http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index .htmlHome page do Xen com vrios links de documentao diferentes. http://lists.xensource.com/Vrias listas de discusso sobre o Xen. http://wiki.xensource.com/xenwikiXen wiki para a comunidade de cdigo aberto.

328

Referncia

Parte 4. Servios

Rede bsica

18

O Linux oferece os recursos e as ferramentas de rede necessrios para a integrao em todos os tipos de estruturas de rede. O protocolo Linux comum, TCP/IP, possui vrios servios e recursos especiais abordados aqui. O acesso rede atravs de placa de rede, modem ou outro dispositivo pode ser configurado com o YaST. A configurao tambm pode ser feita manualmente. Somente os mecanismos fundamentais e os arquivos de configurao de rede relevantes sero discutidos neste captulo. Linux e outros sistemas operacionais Unix usam o protocolo TCP/IP. No um protocolo de rede nico, mas uma famlia de protocolos de rede que oferece vrios servios. Os protocolos listados na Tabela 18.1, Vrios protocolos na famlia de protocolos TCP/IP (p 332) so fornecidos com a finalidade de trocar dados entre duas mquinas atravs do TCP/IP. As redes combinadas por TCP/IP compem uma rede mundial tambm chamada de Internet. RFC significa Request for Comments. Os RFCs so documentos que descrevem vrios procedimentos de implementao e protocolos da Internet para o sistema operacional e seus aplicativos. Os documentos RFC descrevem a configurao dos protocolos da Internet. Para ampliar seu conhecimento sobre qualquer dos protocolos, consulte os documentos de RFC apropriados. Eles esto disponveis online em http://www .ietf.org/rfc.html.

Rede bsica

331

Tabela 18.1 Protocolo TCP

Vrios protocolos na famlia de protocolos TCP/IP Descrio Protocolo de controle de transmisso: um protocolo seguro orientado por conexo. Os dados a serem transmitidos so primeiramente enviados pelo aplicativo como um fluxo de dados. Depois, so convertidos pelo sistema operacional no formato apropriado. Os dados chegam ao respectivo aplicativo no host de destino no formato do fluxo de dados original no qual foram inicialmente enviados. O TCP determina se algum dado foi perdido durante a transmisso e se no foram misturados. O TCP implementado onde a seqncia de dados for necessria. UDP: um protocolo inseguro, sem conexo. Os dados a serem transmitidos so enviados na forma de pacotes gerados pelo aplicativo. A ordem em que os dados chegam ao destinatrio no garantida e eles podem ser perdidos. O UDP adequado para aplicativos orientados por registro. Ele possui um perodo de latncia menor que o TCP. ICMP: essencialmente, no um protocolo para o usurio final, mas um protocolo de controle especial que emite relatrios de erros e pode controlar o comportamento de mquinas que participam da transferncia de dados TCP/IP. Alm disso, ele fornece um modo de eco especial, que pode ser visualizado usando o programa ping. IGMP: este protocolo controla o comportamento da mquina durante o multicast IP.

UDP

ICMP

IGMP

Conforme mostrado na Figura 18.1, Modelo de camadas simplificado para TCP/IP (p 333), a troca de dados ocorre em camadas diferentes. A camada de rede real a transferncia de dados insegura por IP. Acima do IP, o TCP garante, at certo ponto, a segurana na transferncia de dados. A camada IP suportada pelo protocolo dependente de hardware subjacente, como uma ethernet.

332

Referncia

Figura 18.1 Modelo de camadas simplificado para TCP/IP


Host sun Host earth

Application Layer

Applications

Application Layer

Transport Layer

TCP, UDP

Transport Layer

Network Layer

IP

Network Layer

Data Link Layer

Ethernet, FDDI, ISDN

Data Link Layer

Physical Layer

Cable, Fiberglass

Physical Layer

Data Transfer

O diagrama fornece um ou dois exemplos para cada camada. As camadas so organizadas de acordo com os nveis de abstrao. A camada mais baixa fica muito prxima do hardware. A camada mais alta quase completamente abstrada do hardware. Todas as camadas possuem suas funes especiais prprias. As funes especiais de cada camada, na maioria das vezes, esto implcitas em suas descries. O link de dados e as camadas fsicas representam a rede fsica usada, como uma ethernet. Quase todos os protocolos de hardware funcionam em uma base orientada por pacotes. Os dados a serem transmitidos so fornecidos em pacotes, pois no podem ser enviados todos de uma vez. O tamanho mximo de um pacote TCP/IP de, aproximadamente, 64 KB. Os pacotes so normalmente um pouco menores, pois o hardware da rede pode ser um fator de limitao. O tamanho mximo de um pacote de dados em uma ethernet em torno de 1.500 bytes. O tamanho de um pacote TCP/IP limita-se a esse mximo quando os dados so enviados por uma ethernet. Se mais dados forem transferidos, mais pacotes de dados precisaro ser enviados pelo sistema operacional. Para que as camadas executem suas respectivas funes, informaes adicionais referentes a cada uma delas devem ser gravadas no pacote de dados. Isso ocorre no cabealho do pacote. Todas as camadas anexam um pequeno bloco de dados, chamado cabealho do protocolo, frente de cada pacote emergente. Um exemplo de um pacote de dados TCP/IP transmitido por um cabo ethernet exibido na Figura 18.2, Pacote

Rede bsica

333

Ethernet TCP/IP (p 334). A soma de teste est localizada no final do pacote e no no incio. Isso torna as coisas mais simples para o hardware de rede. Figura 18.2 Pacote Ethernet TCP/IP

Usage Data (maximum 1460 bytes)

TCP (Layer 4) Protocol Header (approx. 20 bytes)

IP (Layer 3) Protocol Header (approx. 20 bytes)

Ethernet (Layer 2) Protocol Header (approx. 14 bytes) + Checksum (2 bytes)

Quando um aplicativo envia dados por uma rede, eles passam por cada camada, todas implementadas no kernel do Linux, exceto a camada fsica. Cada camada responsvel pela preparao dos dados, para que eles possam passar para a camada seguinte. A camada mais baixa a responsvel pelo envio de dados. Todo o processo invertido quando os dados so recebidos. Como camadas de uma cebola, em cada uma os cabealhos de protocolo so removidos dos dados transportados. Por fim, a camada de transporte responsvel por disponibilizar os dados para uso pelos aplicativos de destino. Dessa forma, cada camada se comunica somente com a camada diretamente acima ou abaixo dela. Para os aplicativos, relevante se os dados so transmitidos atravs de uma rede FDDI de 100 MBit/s ou de uma linha de modem de 56 kbit/s. Da mesma forma, relevante para a linha de dados os tipos de dados transmitidos, contanto que os pacotes estejam no formato correto.

334

Referncia

18.1 Roteamento e endereos IP


Esta seo limita-se abordagem de redes IPv4. Para obter informaes sobre o protocolo IPv6, sucessor do IPv4, consulte a Seo 18.2, IPv6 A Internet da prxima gerao (p 338).

18.1.1 Endereos IP
Todo computador na Internet possui um endereo de 32 bits exclusivo. Esses 32 bits (ou 4 bytes) so normalmente gravados conforme ilustrado na segunda linha no Exemplo 18.1, Gravando endereos IP (p 335). Exemplo 18.1 Gravando endereos IP
IP Address (binary): 11000000 10101000 00000000 00010100 IP Address (decimal): 192. 168. 0. 20

Na forma decimal, os quatro bytes so gravados no sistema de nmeros decimais, separados por pontos. O endereo IP designado a um host ou a uma interface de rede. Ele no pode ser usado em nenhum outro lugar no mundo. H excees a essa regra, mas no so relevantes nas passagens a seguir. Os pontos nos endereos IP indicam o sistema hierrquico. At os anos 90, os endereos IP eram estritamente categorizados em classes. Entretanto, esse sistema provou ser excessivamente inflexvel e foi interrompido. Agora, o CIDR (Classless Interdomain Routing - Roteamento Interdomnio sem Classes) usado.

18.1.2 Mscaras de rede e roteamento


As mscaras de rede so usadas para definir a faixa de endereos de uma sub-rede. Se dois hosts esto em uma mesma sub-rede, eles podem se encontrar diretamente. Caso no estejam na mesma sub-rede, precisam do endereo de gateway que controla todo o trfego entre a sub-rede e o resto do mundo. Para verificar se dois endereos IP esto em uma mesma sub-rede, basta E os dois endereos com a mscara de rede. Se o resultado for idntico, os dois endereos IP estaro na mesma rede local. Se houver diferenas, o endereo IP remoto e, portanto, a interface remota, s podero ser localizados atravs de um gateway.

Rede bsica

335

Para compreender como as mscaras de rede funcionam, consulte o Exemplo 18.2, Vinculando endereos IP mscara de rede (p 336). A mscara de rede consiste em 32 bits que identificam quanto de um endereo IP pertence rede. Todos os bits 1 marcam o bit correspondente no endereo IP como pertencente rede. Todos os bits 0 marcam os bits dentro da sub-rede. Isso significa que quanto maior a quantidade de bits 1, menor ser o tamanho da sub-rede. Como a mscara de rede sempre consiste em vrios bits 1 sucessivos, tambm possvel apenas contar o nmero de bits da mscara de rede. No Exemplo 18.2, Vinculando endereos IP mscara de rede (p 336) a primeira rede com 24 bits tambm poderia ser gravada como 192.168.0.0/24. Exemplo 18.2 Vinculando endereos IP mscara de rede
IP address (192.168.0.20): 11000000 10101000 00000000 00010100 Netmask (255.255.255.0): 11111111 11111111 11111111 00000000 --------------------------------------------------------------Result of the link: 11000000 10101000 00000000 00000000 In the decimal system: 192. 168. 0. 0 IP address (213.95.15.200): 11010101 10111111 00001111 11001000 Netmask (255.255.255.0): 11111111 11111111 11111111 00000000 --------------------------------------------------------------Result of the link: 11010101 10111111 00001111 00000000 In the decimal system: 213. 95. 15. 0

Para dar outro exemplo: todas as mquinas conectadas ao mesmo cabo ethernet, normalmente, esto localizadas na mesma sub-rede e so diretamente acessveis. Mesmo quando a sub-rede dividida fisicamente por switches ou pontes, esses hosts ainda assim podem ser diretamente localizados. Endereos IP fora da sub-rede local s podero ser localizados se um gateway for configurado para a rede de destino. Nos casos mais comuns, h somente um gateway que controla todo o trfego externo. Entretanto, tambm possvel configurar vrios gateways para sub-redes diferentes. Se um gateway tiver sido configurado, todos os pacotes IP externos sero enviados para o gateway apropriado. Esse gateway tentar ento encaminhar os pacotes da mesma forma (de host para host) at acessar o host de destino ou at o TTL (time to live) do pacote expirar.

336

Referncia

Tabela 18.2

Endereos especficos Descrio

Tipo de endereo

Endereo de rede de Essa a mscara de rede E qualquer endereo na rede, base conforme mostrado no Exemplo 18.2, Vinculando endereos IP mscara de rede (p 336) em Resultado. Esse endereo no pode ser designado a nenhum host. Endereo de broadcast Isso significa, basicamente, Acessar todos os hosts nesta subrede. Para gerar isso, a mscara de rede invertida no formato binrio e vinculada ao endereo de rede base com um OU lgico. O exemplo acima resulta, portanto, em 192.168.0.255. Esse endereo no pode ser designado a nenhum host. O endereo 127.0.0.1 designado ao dispositivo loopback em cada host. Uma conexo pode ser configurada em sua prpria mquina com esse endereo.

Host local

Como os endereos IP precisam ser exclusivos em qualquer parte do mundo, no possvel selecionar endereos aleatoriamente. H trs domnios de endereos a serem usados para configurar uma rede baseada em IP privado. Eles no conseguem se conectar ao restante da Internet, pois no podem ser transmitidos atravs dela. Esses domnios de endereo so especificados no RFC 1597 e listados na Tabela 18.3, Domnios de endereos IP privados (p 337). Tabela 18.3 Domnios de endereos IP privados Domnio 10.x.x.x 172.16.x.x 172.31.x.x 192.168.x.x

Rede/mscara de rede 10.0.0.0/255.0.0.0 172.16.0.0/255.240.0.0 192.168.0.0/255.255.0.0

Rede bsica

337

18.2 IPv6 A Internet da prxima gerao


Devido ao surgimento da WWW (World Wide Web), a Internet teve um crescimento explosivo com um nmero cada vez maior de computadores se comunicando atravs de TCP/IP nos ltimos quinze anos. Desde que Tim Berners-Lee da CERN (http:// public.web.cern.ch) inventou a WWW em 1990, o nmero de hosts da Internet cresceu de poucos milhares para centenas de milhes deles. Conforme mencionado, um endereo IPv4 consiste em apenas 32 bits. Da mesma forma, poucos endereos IP so perdidos eles no podem ser usados devido forma como as redes so organizadas. O nmero de endereos disponveis na sua sub-rede dois elevado potncia do nmero de bits, menos dois. Uma sub-rede tem, por exemplo, 2, 6 ou 14 endereos disponveis. Para conectar 128 hosts Internet, por exemplo, voc precisa de uma sub-rede com 256 endereos IP, dos quais somente 254 so utilizveis, pois dois endereos IP so necessrios para a estrutura da prpria sub-rede: o endereo da rede de base e broadcast. No protocolo IPv4 atual, DHCP ou NAT (Network Address Translation - Converso de Endereos de Rede) so os mecanismos comuns usados para contornar a grande falta de endereos. Combinado conveno de manter endereos pblicos e privados separados por espaos, esses mtodos podem certamente reduzir a falta de endereos. O problema deles est em suas configuraes, trabalhosas para configurar e difceis de manter. Para configurar um host em uma rede IPv4, preciso haver vrios itens de endereos, como o prprio endereo IP do host, a mscara de sub-rede, o endereo de gateway e talvez o endereo do servidor de nomes. Todos esses itens precisam ser conhecidos e no podem ser derivados de outro lugar. Com o IPv6, tanto a falta de endereos quanto as configuraes complicadas passariam a ser problemas do passado. As sees a seguir oferecem mais informaes sobre os aprimoramentos e benefcios trazidos pelo IPv6 e sobre a transio do protocolo antigo para o novo.

18.2.1 Vantagens
A melhoria mais importante e visvel oferecida pelo novo protocolo a expanso enorme do espao disponvel para endereos. Um endereo IPv6 criado com valores de 128

338

Referncia

bits em vez dos 32 bits tradicionais. Ele capaz de fornecer 'quatrilhes' de endereos IP. Entretanto, os endereos IPv6 no diferem de seus antecessores apenas em relao ao comprimento. Tambm possuem uma estrutura interna diferente, que pode conter mais informaes especficas sobre os sistemas e as redes a que pertencem. Leia mais detalhes sobre eles na Seo 18.2.2, Estrutura e tipos de endereos (p 340). A seguir, h uma lista de algumas outras vantagens do novo protocolo: Configurao automtica O IPv6 torna apto o plug and play da rede, o que significa que um sistema recentemente configurado integrado rede (local) sem qualquer configurao manual. O novo host usa seu mecanismo de configurao automtica para derivar seu prprio endereo a partir das informaes disponibilizadas pelos roteadores vizinhos, com base em um protocolo chamado protocolo ND (Neighbor Discovery - Descoberta de Vizinho). Esse mtodo no exige nenhuma interveno por parte do administrador e no h necessidade de manter um servidor central para alocao de endereos; uma vantagem adicional em relao ao IPv4, cuja alocao automtica de endereos exige um servidor DHCP. Mobilidade O IPv6 torna possvel a designao de vrios endereos a uma interface de rede ao mesmo tempo. Isso permite que usurios acessem vrias redes facilmente, o que comparado aos servios de roaming internacionais oferecidos pelas empresas de celulares: quando voc viaja com seu celular, ele automaticamente se conecta a um servio interurbano, assim que entra na rea correspondente. Dessa forma, voc pode ser localizado no mesmo nmero de celular em qualquer lugar e pode fazer ligaes como se estivesse em sua cidade. Comunicao segura Com o IPv4, a segurana da rede uma funo adicional. O IPv6 inclui IPSec como um de seus recursos principais, permitindo que sistemas se comuniquem atravs de um tnel seguro, para evitar a intromisso de estranhos na Internet. Compatibilidade retroativa De forma realista, seria impossvel mudar toda a Internet de IPv4 para IPv6 de uma s vez. Portanto, essencial que ambos os protocolos sejam capazes de coexistir na Internet, mas tambm em um sistema. Isso garantido por endereos compatveis (endereos IPv4 podem facilmente ser convertidos em endereos IPv6) e atravs do uso de vrios tneis. Consulte a Seo 18.2.3, Coexistncia de IPv4 e IPv6 Rede bsica 339

(p 345). Da mesma forma, os sistemas podem se basear em uma tcnica IP de pilha dupla para suportar os dois protocolos ao mesmo tempo, significando que possuem duas pilhas de rede completamente separadas, de tal forma que no h interferncia entre as duas verses de protocolos. Servios adaptados e personalizados atravs de Multicast Com o IPv4, alguns servios, como SMB, precisam transmitir seus pacotes para todos os host na rede local. O IPv6 oferece uma abordagem mais detalhada, permitindo que os servidores enviem hosts atravs de multicast determinando um nmero de hosts como partes de um grupo (o que diferente de direcionar todos os hosts atravs de broadcast ou cada host individualmente atravs de unicast). Os hosts enviados como grupos talvez dependam do aplicativo concreto. possvel enviar todos os servidores de nomes para alguns grupos predefinidos (o grupo multicast de servidores de nomes), por exemplo ou todos os roteadores (o grupo multicast de todos os roteadores).

18.2.2 Estrutura e tipos de endereos


Como mencionado, est faltando no protocolo IP atual dois aspectos importantes: h um aumento de falta de endereos IP e a configurao de rede e manuteno de tabelas de roteamento vm se tornando tarefas cada vez mais complexas e trabalhosas. O IPv6 soluciona o primeiro problema, expandindo o espao dos endereos para 128 bits. O segundo problema contornado com a introduo de uma estrutura hierrquica de endereos, combinada com tcnicas sofisticadas para alocar endereos de rede, assim como multihoming (a capacidade de designar vrios endereos a um dispositivo, permitindo acesso a diversas redes). Ao utilizar o IPv6, til saber que h trs tipos diferentes de endereos: Unicast Endereos desse tipo so associados com exatamente uma interface de rede. Pacotes com esse tipo de endereo so entregues em apenas um destino. Da mesma forma, os endereos unicast so usados para transferir pacotes para hosts individuais na rede local ou na Internet. Multicast Endereos desse tipo esto relacionados a um grupo de interfaces de rede. Pacotes com esse tipo de endereo so entregues a todos os destinos pertencentes ao grupo. Endereos multicast so usados, principalmente, por certos tipos de servios de

340

Referncia

rede para se comunicarem com determinados grupos de host de forma bem direcionada. Anycast Endereos desse tipo esto relacionados a um grupo de interfaces. Pacotes com esse tipo de endereo so entregues ao membro do grupo mais prximo do remetente, de acordo com os princpios do protocolo de roteamento subjacente. Endereos anycast so usados para que hosts possam descobrir mais facilmente servidores que oferecem certos servios na rea da rede determinada. Todos os servidores do mesmo tipo possuem o mesmo endereo anycast. Sempre que um host solicita um servio, ele recebe uma resposta do servidor com o local mais prximo, conforme determinado pelo protocolo de roteamento. Caso ocorra alguma falha com esse servidor, o protocolo selecionar automaticamente o segundo servidor mais prximo ou ento o terceiro e assim por diante. Um endereo IPv6 constitudo de oito campos de quatro dgitos, cada um representando 16 bits, gravados em notao hexadecimal. Tambm so separados por dois-pontos (:). Quaisquer zero bytes iniciais em um determinado campo podem ser descartados, mas zeros dentro ou no final do campo no podem ser descartados. Outra conveno a de que mais de quatro zero bytes consecutivos podem retornar como dois-pontos duplos. Entretanto, somente um como :: permitido em cada endereo. Esse tipo de notao reduzida mostrado no Exemplo 18.3, Amostra de endereo IPv6 (p 341), em que todas as trs linhas representam o mesmo endereo. Exemplo 18.3 Amostra de endereo IPv6
fe80 : 0000 : 0000 : 0000 : 0000 : 10 : 1000 : 1a4 fe80 : 0 : 0 : 0 : 0 : 10 : 1000 : 1a4 fe80 : : 10 : 1000 : 1a4

Cada parte de um endereo IPv6 possui uma funo definida. Os primeiros bytes formam o prefixo e especificam o tipo de endereo. A parte central a poro do endereo na rede, mas pode no ser utilizada. O final do endereo forma a parte do host. Com o IPv6, a mscara de rede definida indicando o comprimento do prefixo depois de uma barra no final do endereo. Um endereo, como mostrado no Exemplo 18.4, Endereo IPv6 especificando o comprimento do prefixo (p 342), contm as informaes de que os primeiros 64 bits formam a parte da rede do endereo e que os ltimos 64 formam a parte do host. Em outras palavras, 64 significa que a mscara de rede est preenchida com 64 valores de 1 bit a partir da esquerda. Da mesma forma que o IPv4, o endereo IP combinado com E com os valores da mscara de rede, para determinar se o host est localizado na mesma sub-rede ou em outra.

Rede bsica

341

Exemplo 18.4 Endereo IPv6 especificando o comprimento do prefixo


fe80::10:1000:1a4/64

O IPv6 conhece vrios tipos de prefixos predefinidos. Alguns so mostrados na Tabela 18.4, Vrios prefixos IPv6 (p 342). Tabela 18.4 Prefixo (hex) 00 Vrios prefixos IPv6 Definio Endereos IPv4 e endereos de compatibilidade de IPv4 sobre IPv6. Esses so usados para manter a compatibilidade com IPv4. O seu uso ainda exige um roteador capaz de converter pacotes IPv6 em pacotes IPv4. Vrios endereos especiais, como o do dispositivo loopback, tambm possuem esse prefixo. Endereos unicast globais agregativos. Como no caso do IPv4, uma interface pode ser designada para fazer parte de uma determinada sub-rede. Atualmente, h os seguintes espaos de endereos: 2001::/16 (espao de endereo da qualidade de produo) e 2002::/16 (espao de endereo 6to4). Endereos locais de links. Endereos com esse prefixo no devem ser roteados e, portanto, s devem ser encontrados na mesma subrede. Endereos locais de sites. Esses podem ser roteados, mas somente na rede da organizao a que pertencem. Na verdade, eles so o equivalente IPv6 do espao de endereo de rede privada atual, como 10.x.x.x. Esses so endereos multicast.

2 ou 3 como o primeiro dgito

fe80::/10

fe80::/10

ff

Um endereo unicast consiste em trs componentes bsicos: Topologia pblica A primeira parte (que tambm contm um dos prefixos mencionados acima) usada para rotear pacotes atravs da Internet pblica. Ela inclui informaes sobre a empresa ou instituio que fornece o acesso Internet.

342

Referncia

Topologia do site A segunda parte contm informaes de roteamento sobre a sub-rede qual o pacote deve ser entregue. ID de interface A terceira parte identifica a interface qual o pacote deve ser entregue. Isso tambm permite que o MAC faa parte do endereo. Como MAC um identificador fixo globalmente exclusivo codificado no dispositivo pelo fabricante do hardware, o procedimento de configurao bastante simplificado. Na verdade, os primeiros 64 bits de endereo so consolidados para formar o token EUI-64, com os ltimos 48 bits obtidos no MAC e os 24 bits restantes contendo informaes especiais sobre o tipo de token. Isso tambm possibilita designar um token EUI-64 a interfaces que no possuem MAC, como aquelas baseadas em PPP ou ISDN. No topo dessa estrutura bsica, o IPv6 faz distino entre cinco tipos de endereos unicast: :: (no especificado) Esse endereo usado pelo host como seu endereo de origem quando a interface inicializada pela primeira vez quando o endereo ainda no pode ser determinado por outros meios. ::1 (loopback) O endereo do dispositivo loopback. Endereos compatveis com o IPv4 O endereo IPv6 formado pelo endereo IPv4 e um prefixo consistindo em 96 zero bits. Esse tipo de endereo de compatibilidade usado para um tnel (consulte a Seo 18.2.3, Coexistncia de IPv4 e IPv6 (p 345)) para permitir que os hosts IPv4 e IPv6 se comuniquem com outros que estejam operando em um ambiente IPv4 puro. Endereos IPv4 mapeados para IPv6 Esse tipo de endereo especifica um endereo IPv4 puro em uma notao IPv6. Endereos locais H dois tipos de endereos para uso local: link-local Esse tipo de endereo s pode ser usado na sub-rede local. Pacotes com endereo de origem ou de destino desse tipo no devem ser roteados para a

Rede bsica

343

Internet nem para outras sub-redes. Esses endereos contm um prefixo especial (fe80::/10) e o ID da interface da placa de rede, com a parte do meio consistindo em zero bytes. Endereos desse tipo so usados durante a configurao automtica para se comunicarem com outros hosts pertencentes mesma sub-rede. site-local Pacotes com esse tipo de endereo podem ser roteados para outras sub-redes, mas no para a Internet mais ampla. Eles precisam permanecer dentro da prpria rede da organizao. Tais endereos so usados para intranets e equivalem ao espao de endereo privado definido pelo IPv4. Eles contm um prefixo especial (fec0::/10), o ID da interface e um campo de 16 bits especificando o ID da sub-rede. Novamente, o restante preenchido com zero bytes. Como um recurso completamente novo, introduzido com o IPv6, cada interface de rede normalmente obtm vrios endereos IP, com a vantagem de que vrias redes podem ser acessadas atravs da mesma interface. Uma dessas redes pode ser totalmente configurada automaticamente usando o MAC e um prefixo conhecido, resultando na possibilidade de todos os hosts na rede local serem encontrados assim que o IPv6 for habilitado (usando o endereo link-local). Com o MAC fazendo parte disso, qualquer endereo IP usado no mundo ser exclusivo. As nicas partes variveis do endereo so aquelas que indicam a topologia do site e a topologia pblica, dependendo da rede real na qual o host estiver operando no momento. Para que um host avance e retroceda entre duas redes diferentes ele precisa de, pelo menos, dois endereos. Um deles, o endereo pessoal, contm no s o ID de interface, como tambm um identificador da rede domstica a que ele normalmente pertence (e o prefixo correspondente). O endereo pessoal um endereo esttico e, portanto, normalmente no se modifica. Mesmo assim, todos os pacotes destinados ao host mvel podem ser entregues a ele, independentemente de ele operar na rede domstica ou em outro local externo. Isso possvel devido aos recursos totalmente novos introduzidos com o IPv6, como configurao automtica sem estado e descoberta de vizinho. Alm do endereo residencial, um host mvel obtm um ou mais endereos adicionais pertencentes s redes interurbanas com roaming. Eles so chamados endereos careof. A rede domstica tem um recurso que encaminha qualquer pacote destinado ao host quando ele est em roaming. Em um ambiente IPv6, essa tarefa executada pelo agente local, que retransmite todos os pacotes destinados ao endereo residencial atravs de um tnel. Por outro lado, esses pacotes destinados ao endereo care-of so diretamente transferidos para o host mvel sem qualquer desvio especial.

344

Referncia

18.2.3 Coexistncia de IPv4 e IPv6


A migrao de todos os hosts conectados Internet do IPv4 para o IPv6 um processo gradual. Os dois protocolos coexistiro durante algum tempo. A coexistncia deles em um sistema garantida onde houver uma implementao de pilha dupla de ambos os protocolos. Ainda resta a dvida de como um host habilitado do IPv6 deve se comunicar com um host IPv4 e como pacotes do IPv6 devem ser transportados pelas redes atuais, que so predominantemente baseadas no IPv4. As melhores solues oferecem endereos de compatibilidade e tnel (consulte a Seo 18.2.2, Estrutura e tipos de endereos (p 340)). Os hosts do IPv6 relativamente isolados na rede IPv4 (mundial) podem se comunicar atravs de tneis: Pacotes IPv6 so encapsulados como pacotes IPv4 para serem movidos por uma rede IPv4. Tal conexo entre dois hosts IPv4 chamada de tnel. Para que isso ocorra, os pacotes precisam incluir o endereo de destino do IPv6 (ou o prefixo correspondente), assim como o endereo IPv4 do host remoto no destino final do tnel. Um tnel bsico pode ser configurado manualmente, de acordo com um contrato entre os administradores dos hosts. Tambm chamado de tnel esttico. Entretanto, a configurao e manuteno de tneis estticos normalmente muito trabalhosa para ser usada diariamente em comunicaes. Portanto, o IPv6 fornece trs mtodos de tneis dinmicos: 6over4 Os pacotes IPv6 so automaticamente encapsulados como pacotes IPv4 e enviados por uma rede IPv4 com capacidade multicast. O IPv6 induzido a considerar toda a rede (Internet) como uma LAN enorme. Com isso, possvel determinar automaticamente o destino final do tnel IPv4. Entretanto, esse mtodo no faz um dimensionamento muito bom e tambm dificultado pelo fato de o multicast IP no ser to difundido na Internet. Portanto, ele apenas fornece uma soluo para redes corporativas ou institucionais menores, em que o multicast pode ser habilitado. As especificaes para esse mtodo esto descritas no RFC 2529. 6to4 Com esse mtodo, os endereos IPv4 so automaticamente gerados a partir de endereos IPv6, habilitando a comunicao de hosts IPv6 isolados atravs de uma rede IPv4. Entretanto, alguns problemas foram relatados no que tange comunicao entre esses hosts IPv6 isolados e a Internet. O mtodo est descrito no RFC 3056.

Rede bsica

345

Controlador do tnel IPv6 Esse mtodo se baseia em servidores especiais que fornecem tneis dedicados para hosts IPv6. descrito no RFC 3053. IMPORTANTE: A Iniciativa 6bone Nos principais locais mais estabelecidos da Internet, j existe uma rede globalmente distribuda de sub-redes IPv6 conectadas atravs de tneis. Essa a rede 6bone (http://www.6bone.net), um ambiente de testes IPv6 que pode ser usado por programadores e provedores da Internet que desejam desenvolver e oferecer servios baseados no IPv6, a fim de obter a experincia necessria para implementar o novo protocolo. Mais informaes podem ser encontradas no site desse projeto na Internet.

18.2.4 Configurando o IPv6


Para configurar o IPv6, normalmente no necessrio fazer mudanas nas estaes de trabalho individuais. Entretanto, o suporte do IPv6 precisa ser carregado. Para fazer isso, digite modprobe ipv6 como raiz. Devido ao conceito de configurao automtica do IPv6, um endereo designado placa de rede na rede link-local. Normalmente, nenhum gerenciamento de tabela de roteamento feito em uma estao de trabalho. Os roteadores de rede podem ser consultados pela estao de trabalho, usando o protocolo de anncios do roteador, para o qual devem ser implementados um prefixo e gateways. O programa radvd pode ser usado para configurar um roteador IPv6. Esse programa informa s estaes de trabalho o prefixo que deve ser usado para os endereos IPv6 e os roteadores. Outra opo usar zebra para a configurao automtica dos dois endereos e roteamento. Consulte a pgina de manual do ifup(8) para obter informaes sobre como configurar vrios tipos de tneis usando os arquivos /etc/sysconfig/network.

18.2.5 Mais informaes


A viso geral acima no abrange totalmente o tpico do IPv6. Para obter informaes mais detalhadas sobre o novo protocolo, consulte os livros e a documentao online a seguir:

346

Referncia

http://www.ngnet.it/e/cosa-ipv6.php Uma srie de artigos fornecendo uma introduo explicativa sobre os fundamentos bsicos do IPv6. Um bom manual sobre o tpico. http://www.bieringer.de/linux/IPv6/ Aqui, encontre o Linux IPv6-HOWTO e muitos links relacionados ao tpico. http://www.6bone.net/ Visite esse site se desejar se juntar a uma rede IPv6 com tnel. http://www.ipv6.org/ O ponto de partida para tudo relativo ao IPv6. RFC 2640 Informaes fundamentais do RFC sobre o IPv6. IPv6 Essentials Um livro que descreve todos os aspectos importantes do tpico o IPv6 Essentials de Silvia Hagen (ISBN 0-596-00125-8).

18.3 Resoluo de nomes


O DNS ajuda na designao de um endereo IP a um ou mais nomes e na designao de um nome a um endereo IP. No Linux, essa converso normalmente executada por um tipo especial de software chamado bind. A mquina responsvel por essa converso chamada de servidor de nomes. Os nomes criam um sistema hierrquico, no qual cada componente do nome separado por pontos. A hierarquia de nomes , entretanto, independente da hierarquia de endereos IP descrita acima. Considere um nome completo, como earth.example.com, gravado no formato hostname.domain. Um nome completo, denominado FQDN (Fully Qualified Domain Name - Nome de Domnio Totalmente Qualificado), consiste em um nome de host e um nome de domnio (example.com). O ltimo tambm inclui o TLD (Top Level Domain - Domnio de Nvel Superior (com). A designao TLD tornou-se bastante confusa por razes histricas. Tradicionalmente, nomes de domnio com trs letras so usados nos EUA. No resto do mundo, os cdigos nacionais ISO de duas letras so o padro. Alm disso, TLDs mais longos foram

Rede bsica

347

introduzidos em 2000, representando certas esferas de atividades (por exemplo, .info, .name, .museum). No incio da Internet (antes de 1990), o arquivo /etc/hosts era usado para armazenar os nomes de todas as mquinas representadas na Internet. Isso rapidamente se tornou impraticvel, devido ao crescente nmero de computadores conectados Internet. Por essa razo, um banco de dados descentralizado foi desenvolvido para armazenar nomes de hosts de uma forma amplamente distribuda. Esse banco de dados, semelhante ao servidor de nomes, no possui os dados pertencentes a todos os hosts na Internet j disponveis, mas pode encaminhar solicitaes a outros servidores de nomes. A parte superior da hierarquia ocupada pelos servidores de nomes raiz. Esses servidores de nomes raiz gerenciam os domnios de nvel superior e so executados pelo NIC (Network Information Center). Cada servidor de nomes raiz conhece os servidores de nomes responsveis por um determinado domnio de nvel superior. Para obter informaes sobre NICs de domnio superior, v para http://www.internic .net. O DNS pode fazer mais do que apenas resolver nomes de hosts. O servidor de nomes tambm distingue qual host recebe e-mails para um domnio inteiro o MX (servidor de correio). Para sua mquina resolver um endereo IP, ela precisa pelo menos conhecer um servidor de nomes e seu respectivo endereo IP. fcil especificar esse servidor de nomes com a ajuda do YaST. Se voc tiver uma conexo de discagem por modem, talvez no precise nem mesmo configurar um servidor de nomes manualmente. O protocolo de discagem fornece o endereo do servidor de nomes enquanto a conexo efetuada. A configurao de acesso ao servidor de nomes com o SUSE Linux descrita no Captulo 20, Domain Name System (Sistema de Nomes de Domnio) (p 381). O protocolo whois est intimamente relacionado ao DNS. Com esse programa, possvel descobrir rapidamente o responsvel por qualquer domnio especificado.

18.4 Configurando uma conexo de rede com o YaST


H muitos tipos de redes suportadas no Linux. A maioria delas usa nomes de dispositivos diferentes e os arquivos de configurao se espalham por vrios locais no sistema de

348

Referncia

arquivos. Para obter uma viso geral detalhada dos aspectos da configurao manual de rede, consulte a Seo 18.6, Configurando uma conexo de rede manualmente (p 362). Durante a instalao, o YaST pode ser usado para configurar automaticamente todas as interfaces detectadas. Hardwares adicionais podem ser configurados em qualquer momento aps sua instalao no sistema. As sees a seguir descrevem a configurao de rede para todos os tipos de conexes de rede suportadas pelo SUSE Linux.

18.4.1 Configurando a placa de rede com o YaST


Depois de iniciar o mdulo, o YaST exibe uma caixa de dilogo da configurao geral da rede. Escolha se usar o YaST ou o NetworkManager para gerenciar todos os seus dispositivos de rede. Para usar o NetworkManager, marque Controlado por Usurio com o NetworkManager. Encontre informaes detalhadas sobre o NetworkManager na Seo 18.5, Gerenciando conexes de rede com o NetworkManager (p 359). Para configurar sua rede na forma tradicional com o YaST, marque Mtodo Tradicional com ifup. A parte superior da configurao tradicional mostra uma lista com todas as placas de rede disponveis para configurao. Qualquer placa devidamente detectada listada com seu nome. possvel configurar dispositivos no detectados usando Adicionar, conforme descrito em Configurao manual de uma placa de rede no detectada (p 349). Configure uma nova placa de rede ou mude uma configurao existente.

Configurao manual de uma placa de rede no detectada


A configurao de uma placa de rede no detectada inclui os seguintes itens: Configurao de rede Configure o tipo de dispositivo da interface a partir das opes disponveis e do nome de configurao. As informaes sobre as convenes de nomeao para nomes de configurao esto disponveis na pgina de manual do getcfg(8).

Rede bsica

349

Mdulo de Kernel Nome de Configurao de Hardware especifica o nome do arquivo /etc/ sysconfig/hardware/hwcfg-* que contm as configuraes de hardware da sua placa de rede. Tambm contm o nome do mdulo de kernel adequado, assim como as opes necessrias para inicializar o hardware. Normalmente, o YaST sugere nomes teis para os hardwares PCMCIA e USB. Para outros hardwares, o hwcfg-static-0 costuma funcionar somente se a placa estiver configurada com o nome de configurao 0. Se a placa de rede for um dispositivo PCMCIA ou USB, ative as respectivas caixas de seleo e saia dessa caixa de dilogo com Prximo. Caso contrrio, selecione o modelo da placa de rede em Selecionar da Lista. O YaST selecionar automaticamente o mdulo de kernel adequado para a placa. Clique em Avanar para sair dessa caixa de dilogo. Figura 18.3 Configurao da placa de rede

Configurando o endereo de rede


Configure o tipo de dispositivo da interface e o nome da configurao. Selecione o tipo de dispositivo entre os fornecidos. Especifique o nome da configurao de acordo com suas necessidades. Normalmente, as configuraes padro so teis e podem ser aceitas.

350

Referncia

As informaes sobre as convenes de nomeao para nomes de configurao esto disponveis na pgina de manual do getcfg(8). Se tiver selecionado Wireless como tipo de dispositivo da interface, configure o modo operacional, o nome da rede (ESSID) e a criptografia na caixa de dilogo seguinte, Configurao de Placa de Rede Wireless. Clique em OK para concluir a configurao da placa. Uma descrio detalhada da configurao de placas WLAN apresentada na Seo 34.1.3, Configurao com o YaST (p 629). Para todos os outros tipos de interface, prossiga com a configurao de endereo de rede: Configurao Automtica de Endereo (via DHCP) Se sua rede incluir um servidor DHCP, voc poder configurar o endereo de rede com segurana de forma automtica. A opo tambm dever ser usada se voc estiver usando uma linha DSL sem IP esttico designado pelo provedor de servios da Internet. Se decidir usar o DHCP, configure os detalhes depois de selecionar Opes do Cliente DHCP. Especifique se o servidor DHCP deve sempre atender a solicitaes de broadcast e permitir o uso por qualquer identificador. Por padro, os servidores DHCP usam o endereo de hardware da placa para identificar uma interface. Se voc tiver uma configurao de host virtual, em que hosts diferentes se comunicam atravs da mesma interface, um identificador ser necessrio para distingui-los. Configurao de endereo esttico Se voc possui um endereo esttico, habilite essa opo. Depois, digite o endereo e a mscara de sub-rede para sua rede. A mscara de sub-rede predefinida deve corresponder aos requisitos de uma rede domstica tpica. Saia dessa caixa de dilogo, selecionando Prximo ou continue a configurar o nome de host, servidor de nomes e detalhes de roteamento (consulte as sees em Servidor DNS (Inicializao) e em Roteamento (Inicializao)). Avanado permite especificar configuraes mais complexas. Em Configuraes Detalhadas, use Controlado pelo Usurio para delegar o controle sobre a placa de rede desde o administrador (root) at o usurio normal. Em operaes mveis, isso permite ao usurio adaptar a mudana de conexes de rede de uma forma mais flexvel, pois ele pode controlar a ativao ou desativao da interface. A MTU (Maximum Transmission Unit - Unidade de Transmisso Mxima) e o tipo de Ativao do Dispositivo tambm podem ser configurados nessa caixa de dilogo.

Rede bsica

351

18.4.2 Modem
No Centro de Controle do YaST, acesse a configurao do modem em Dispositivos de Rede. Se o modem no tiver sido detectado automaticamente, abra a caixa de dilogo e faa uma configurao manual. Na caixa de dilogo aberta, digite a interface qual o modem est conectado em Modem. Figura 18.4 Configurao do modem

Se voc estiver usando um PBX, talvez precise digitar um prefixo de discagem. Normalmente, um zero. Consulte as instrues que acompanham o PBX para descobrir. Selecione tambm se usar a discagem por tom ou pulso, se o alto-falante estar ligado e se o modem aguardar at detectar um tom de discagem. A ltima opo no deve ser habilitada se o modem estiver conectado a um intercmbio. Em Detalhes, configure a taxa de transmisso e as strings de inicializao do modem. Somente mude essas configuraes se seu modem no tiver sido detectado automaticamente ou se ele exigir configuraes especiais para o funcionamento da transmisso de dados. Esse basicamente o caso dos adaptadores do terminal ISDN. Saia dessa caixa de dilogo clicando em OK. Para delegar controle sobre o modem para um usurio normal, sem permisses de root, ative Controlado pelo Usurio. Dessa forma, um usurio sem permisses de administrador poder ativar ou desativar uma interface. Em Dial Prefix Expresso Regular, especifique uma expresso regular. O

352

Referncia

Prefixo de Discagem no KInternet, que pode ser modificado por um usurio normal, precisa corresponder a essa expresso regular. Se esse campo for deixado vazio, o usurio no poder configurar um Prefixo de Discagem diferente sem as permisses de administrador. Na caixa de dilogo a seguir, selecione o ISP (Internet Service Provider - Provedor de Servios da Internet). Para escolher a partir de uma lista de ISPs predefinida operacional em seu pas, selecione Pas. Ou ento, clique em Novo para abrir uma caixa de dilogo em que voc fornecer os dados do seu ISP. Isso inclui um nome para a conexo de discagem e o ISP, assim como o login e a senha fornecidos pelo seu ISP. Habilite Sempre Solicitar Senha para que a senha seja solicitada sempre que voc se conectar. Na ltima caixa de dilogo, especifique as opes de conexo adicionais: Discagem sob Demanda Se voc habilitar a discagem sob demanda, configure, pelo menos, um servidor de nomes. Modificar DNS quando conectado Essa opo habilitada por padro, com o efeito de que o endereo do servidor de nomes atualizado sempre que voc se conectar Internet. Receber DNS automaticamente Se o provedor no transmitir seu servidor de nomes de domnio aps a conexo, desabilite essa opo e digite os dados do DNS manualmente. Modo Estpido Essa opo habilitada por padro. Com ela, prompts de entrada enviados pelo servidor do ISP so ignorados para que no interfiram no processo de conexo. Interface Externa do Firewall e Reiniciar Firewall A seleo dessas opes habilita o SUSEfirewall2, que protege contra ataques externos enquanto voc est conectado Internet. Tempo Ocioso (em segundos) Com essa opo, especifique um perodo de inatividade da rede depois do qual o modem se desconectar automaticamente. Detalhes IP Essa opo abre a caixa de dilogo de configurao de endereo. Se o ISP no designar um endereo IP dinmico ao host, desabilite Endereo IP Dinmico e,

Rede bsica

353

depois, digite o endereo IP local do host e o endereo IP remoto. Pea essa informao ao ISP. Habilite Rota Padro e feche a caixa de dilogo, selecionando OK. Selecionando Prximo, voc retorna caixa de dilogo original, que exibir um resumo da configurao do modem. Feche essa caixa de dilogo com Concluir.

18.4.3 ISDN
Use esse mdulo para configurar uma ou vrias placas ISDN para o seu sistema. Se o YaST no tiver detectado a placa ISDN, selecione-a manualmente. possvel haver vrias Interfaces, mas diversos ISPs podem ser configurados para uma nica interface. Nas caixas de dilogo subseqentes, configure as opes de ISDN necessrias para o funcionamento adequado da placa. Figura 18.5 Configurao ISDN

Na caixa de dilogo a seguir, mostrada na Figura 18.5, Configurao ISDN (p 354), selecione o protocolo a ser usado. O padro Euro-ISDN (EDSS1), mas para intercmbios mais antigos ou maiores, selecione 1TR6. Se voc estiver nos E.U.A., selecione NI1. Selecione seu pas no campo relevante. O cdigo de pas correspondente aparecer no campo prximo a ele. Por fim, fornea seu Cdigo de rea e o Prefixo de Discagem, se necessrio. 354 Referncia

Modo de Incio define como a interface do ISDN deve ser iniciada: Em Tempo de Boot inicializa o driver do ISDN sempre que o sistema for inicializado. Manualmente exige que voc carregue o driver do ISDN como root com o comando rcisdn start. Em Hotplug, usado para dispositivos PCMCIA ou USB, carrega o driver depois que o dispositivo conectado. Ao concluir essas configuraes, selecione OK. Na caixa de dilogo a seguir, especifique o tipo de interface para a placa ISDN e adicione ISPs a uma interface existente. As interfaces podem ser do tipo SyncPPP ou RawIP, mas a maioria dos ISPs opera no modo SyncPPP, descrito abaixo. Figura 18.6 Configurao da interface ISDN

O nmero a ser digitado para Meu Nmero Telefnico depender da sua configurao especfica: Placa ISDN conectada diretamente sada do fone Uma linha ISDN padro fornece trs nmeros telefnicos (chamados MSNs ou multiple subscriber numbers). Se o assinante pediu mais nmeros, poder ter at 10. Um desses MSNs precisa ser digitado aqui, mas sem o cdigo de rea. Se voc digitar o nmero errado, o operador de fone retornar automaticamente ao primeiro MSN designado sua linha ISDN. Placa ISDN conectada a um PBX Novamente, a configurao poder variar de acordo com o equipamento instalado:

Rede bsica

355

1.

PBX menores, criados para fins domsticos, normalmente usam o protocolo Euro-ISDN (EDSS1) para chamadas internas. Esses intercmbios possuem um barramento S0 interno e usam nmeros internos para o equipamento conectado a eles. Use um dos nmeros internos como o seu MSN. Voc deveria usar, pelo menos, um dos MSNs de intercmbio habilitados para discagem direta para fora. Se no funcionar, tente um nico zero. Para obter mais informaes, consulte a documentao que acompanha o intercmbio do fone.

2.

Intercmbios de fone maiores criados para negcios normalmente usam o protocolo 1TR6 para chamadas internas. Seus MSNs so chamados EAZ e, geralmente, correspondem ao nmero de discagem direta. Para a configurao no Linux, dever ser suficiente digitar o ltimo dgito de EAZ. Como ltima opo, tente cada um dos dgitos de 1 a 9.

Para que a conexo seja encerrada pouco antes de terminar a prxima unidade de carga, habilite ChargeHUP. Entretanto, lembre-se de que talvez no funcione com todos os ISPs. Voc tambm pode habilitar o agrupamento de canais (multilink PPP) selecionando a opo correspondente. Por fim, voc pode habilitar o SuSEfirewall2 para o link selecionando Interface Externa do Firewall e Reiniciar Firewall. Para que o usurio normal sem permisses de administrador possa ativar ou desativar a interface, selecione a opo Controlado pelo Usurio. Detalhes abre uma caixa de dilogo em que se implementa esquemas de conexo mais complexos, pouco relevantes para usurios domsticos. Saia da caixa de dilogo Detalhes selecionando OK. Na caixa de dilogo seguinte, configure endereos IP. Se o provedor no tiver fornecido um IP esttico, selecione Endereo IP Dinmico. Caso contrrio, use os campos fornecidos para digitar o endereo IP local e o remoto do seu host, de acordo com as especificaes do ISP. Se a interface for a rota padro para a Internet, selecione Rota Padro. Cada host s pode ter uma interface configurada como a rota padro. Saia dessa caixa de dilogo selecionando Prximo. A caixa de dilogo a seguir permite que voc defina seu pas e selecione um ISP. Os ISPs includos na lista so apenas provedores do tipo chamada-por-chamada. Se seu ISP no estiver na lista, selecione Novo. A caixa de dilogo Parmetros do Provedor ser aberta para que voc digite todos os detalhes do seu ISP. Ao digitar o nmero

356

Referncia

telefnico, no inclua espaos vazios nem vrgulas entre os dgitos. Por fim, digite seu login e senha, conforme fornecido pelo ISP. Ao terminar, selecione Prximo. Para usar Discagem sob Demanda em uma estao de trabalho independente, especifique tambm o servidor de nomes (servidor DNS). A maioria dos ISPs suporta DNS dinmico, o que significa que o endereo IP de um servidor de nomes enviado pelo ISP toda vez que voc se conecta. Entretanto, para uma nica estao de trabalho, preciso fornecer um endereo marcador, como 192.168.22.99. Se o ISP no suportar um DNS dinmico, especifique os endereos IP do servidor de nomes do ISP. Se desejar, especifique um tempo de espera para a conexo o perodo de inatividade da rede (em segundos) depois do qual a conexo deve encerrar automaticamente. Confirme as configuraes com Prximo. O YaST exibe um resumo das interfaces configuradas. Para ativar todas essas configuraes, selecione Concluir.

18.4.4 Modem a cabo


Em alguns pases, como a ustria e os E.U.A., bastante comum acessar a Internet pela rede de TV a cabo. O assinante de TV a cabo normalmente recebe um modem, que conectado sada do cabo da TV em uma ponta e placa de rede do computador na outra (usando um cabo de par tranado 10Base-TG). O modem a cabo ento fornece uma conexo dedicada Internet com um endereo IP fixo. Dependendo das instrues fornecidas pelo ISP, ao configurar a placa de rede, selecione Configurao Automtica de Endereo (via DHCP) ou Configurao de Endereo Esttico. A maioria dos provedores usa atualmente o DHCP. Um endereo IP esttico freqentemente vem como parte de uma conta comercial especial.

18.4.5 DSL
Para configurar o dispositivo DSL, selecione o mdulo DSL na seo Dispositivos de Rede do YaST. O mdulo YaST consiste em vrias caixas de dilogo nas quais configura-se os parmetros de links DSL com base em um dos seguintes protocolos: PPPoE (PPP sobre Ethernet) PPPoATM (PPP sobre ATM) CAPI para ADSL (Placas Fritz)

Rede bsica

357

PPTP (Point-to-Point Tunneling Protocol) ustria A configurao de uma conexo DSL baseada no PPPoE ou no PPTP exige que a placa de rede correspondente j esteja configurada de forma correta. Se isso ainda no foi feito, primeiro configure a placa, selecionando Configurar Placas de Rede (consulte a Seo 18.4.1, Configurando a placa de rede com o YaST (p 349)). No caso de um link DSL, os endereos podem ser designados automaticamente, mas no via DHCP, e por isso que voc no deve habilitar a opo Configurao Automtica de Endereo (via DHCP). Em vez disso, digite um endereo esttico simulado para a interface, como 192.168.22.1. Em Mscara de Sub-rede, digite 255.255.255.0. Se estiver configurando uma estao de trabalho independente, deixe a opo Gateway Padro vazia. DICA Os valores em Endereo IP e Mscara de Sub-rede so apenas marcadores. Eles so necessrios apenas para inicializar a placa de rede e no representam o link DSL. Figura 18.7 Configurao DSL

Para iniciar a configurao DSL (consulte a Figura 18.7, Configurao DSL (p 358)), primeiro selecione o modo PPP e a placa ethernet qual o modem DSL est conectado

358

Referncia

(normalmente, a eth0). Ento, use a opo Ativao do Dispositivo, para especificar se o link DSL deve ser estabelecido durante o processo de inicializao. Clique em Controlado pelo Usurio, para autorizar o usurio normal sem permisses de root para ativar ou desativar a interface com o KInternet. A caixa de dilogo tambm permite que voc selecione seu pas e escolha um ISP entre os que nele operam. Os detalhes de quaisquer caixas de dilogo subseqentes da configurao DSL dependem das opes configuradas at agora. por essa razo que eles so apenas rapidamente mencionados nos pargrafos a seguir. Para obter detalhes sobre as opes disponveis, leia a ajuda detalhada disponvel nas caixas de dilogo. Para usar Discagem sob Demanda em uma estao de trabalho independente, especifique tambm o servidor de nomes (servidor DNS). A maioria dos ISPs suporta DNS dinmico o endereo IP de um servidor de nomes enviado pelo ISP toda vez que voc se conecta. Entretanto, para uma nica estao de trabalho, preciso fornecer um endereo marcador, como 192.168.22.99. Se o ISP no suportar um DNS dinmico, especifique o endereo IP do servidor de nomes fornecido pelo ISP. Tempo Ocioso (em segundos) define um perodo de inatividade da rede depois do qual a conexo encerrada automaticamente. Um valor de tempo de espera razovel fica entre 60 e 300 segundos. Se a opo Discagem sob Demanda estiver desabilitada, talvez seja til configurar o tempo de espera como zero para evitar um desligamento automtico. A configurao do T-DSL muito parecida com a do DSL. Basta selecionar T-Online como seu provedor e o YaST abrir a caixa de dilogo de configurao do T-DSL. Nessa caixa de dilogo, fornea algumas informaes adicionais necessrias para o TDSL o ID da linha, o nmero do T-Online, o cdigo de usurio e sua senha. Tudo isso deve estar includo nas informaes que voc recebeu aps se inscrever no T-DSL.

18.5 Gerenciando conexes de rede com o NetworkManager


O NetworkManager a soluo ideal para uma estao de trabalho mvel. Com o NetworkManager, no necessrio preocupar-se em configurar interfaces de rede e alternar entre redes quando voc estiver em trnsito. Ele pode conectar-se automaticamente a redes WLAN conhecidas. Se houver duas ou mais possibilidades de conexo, ele pode conectar-se mais rpida.

Rede bsica

359

NOTA: NetworkManager e SCPM No use o NetworkManager junto com o SCPM quando perfis SCPM tambm mudarem configuraes de rede. Para usar o SCPM e o NetworkManager ao mesmo tempo, desabilite o recurso de rede na configurao SCPM. O NetworkManager no a soluo adequada nos seguintes casos: O computador tem um endereo esttico. Voc deseja usar mais de um provedor de discagem para uma interface. Voc deseja usar a criptografia WPA-EAP na sua conexo WLAN. O computador um roteador de sua rede. O computador fornece servios de rede para outros computadores de sua rede, por exemplo, se ele for um servidor DHCP ou DNS.

18.5.1 Controlando o NetworkManager


Para iniciar o NetworkManager, habilite o NetworkManager no mdulo YaST do dispositivo de rede. Como o NetworkManager no requer uma configurao de rede padro, a configurao do YaST torna-se inativa. O NetworkManager automaticamente escolhe a melhor rede disponvel, mas ele pode conectar-se automaticamente apenas a uma rede conhecida. Na primeira conexo a uma rede, use o applet do NetworkManager. Se a rede exigir informaes adicionais, como nome de usurio, senha ou chave de criptografia, o NetworkManager vai solicit-las. O KDE e o GNOME tm seus prprios applets para o NetworkManager. Um applet apropriado deve ser iniciado automaticamente com o ambiente de rea de trabalho. O applet ento mostrado como um cone na bandeja do sistema. As funes de ambos os applets so semelhantes, mas as interfaces so diferentes. Eles podem ser usados em outros ambientes grficos com suporte de bandeja de sistema padro.

O applet KNetworkManager
O KNetworkManager um applet KDE para controlar o NetworkManager. Se ele no estiver em execuo, inicie-o com o comando knetworkmanager. Quando ele estiver

360

Referncia

em execuo, um cone azul da Terra ser exibido na bandeja de sistema. Clicar o boto direito do mouse no cone abre o menu do KNetworkManager com vrios comandos para gerenciar conexes de rede. O menu contm conexes de rede disponveis, ambos dispositivos com e sem fio. Se voc mantiver o cursor do mouse sobre eles, os detalhes sero exibidos. A conexo atualmente usada est marcada no menu. A fora do sinal de redes sem fio tambm mostrada no menu. Redes sem fio criptografadas so marcadas com um cone de cadeado azul. Para conectar-se a uma rede criptografada, escolha-a no menu. Na caixa de dilogo exibida, escolha o tipo de Criptografia usada pela rede e digite a Frase secreta ou Chave apropriada. Para conectar-se a uma rede que no transmite seu identificador de conjunto de servios (ESSID) e, assim, no pode ser detectada automaticamente, escolha Conectar-se a Outra Rede sem Fio. Na caixa de dilogo exibida, digite o ESSID e defina parmetros de criptografia, se necessrio. Para acessar conexes de discagem, escolha Conexes por Discagem. Quando conexes de discagem j tiverem sido definidas, inicie a conexo clicando na conexo a ser usada. Configurar Conexes por Discagem abre o YaST, onde voc pode definir uma nova conexo de discagem. Para desabilitar qualquer conexo de rede ativa, escolha Opes Alternar para Modo Off-line no menu do KNetworkManager. Para habilitar novamente a conexo, escolha Opes Alternar para Modo On-line. Para desabilitar conexes de rede sem fio, escolha Opes Desabilitar Conexo sem Fio no menu do KNetworkManager. Para habilitar novamente conexes sem fio, escolha Opes Habilitar Conexo sem Fio. Habilitar a rede leva alguns segundos.

O Applet GNOME NetworkManager


O GNOME tambm tem o seu prprio applet para o NetworkManager. Se ele no estiver em execuo, inicie-o com o comando nm-applet. Quando ele estiver em execuo, um cone ser exibido na bandeja de sistema. A aparncia do cone depender do estado da conexo de rede. Se voc no souber o que significa o cone, mantenha o cursor do mouse sobre ele at que uma explicao seja exibida. Clique o boto esquerdo do mouse no cone do applet para mostrar um menu com as redes disponveis. A conexo atualmente usada est marcada no menu. A fora do sinal de redes sem fio tambm mostrada no menu. Redes sem fio criptografadas so

Rede bsica

361

marcadas com um cone de escudo. Para conectar-se a uma rede criptografada, escolhaa no menu. Na caixa de dilogo exibida, escolha o tipo de Criptografia usada pela rede e digite a Frase secreta ou Chave apropriada. Para conectar-se a uma rede que no transmite o seu identificador de conjunto de servios (ESSID) e, assim, no pode ser detectada automaticamente, clique o boto esquerdo do mouse no cone e escolha Conectar-se a Outra Rede sem Fio. Na caixa de dilogo exibida, digite o ESSID e defina parmetros de criptografia se necessrio. Para desabilitar a rede, clique o boto direito do mouse no cone do applet e desmarque Habilitar Rede. Para desabilitar a rede sem fio, clique o boto direito do mouse no cone do applet e desmarque Habilitar Conexo sem Fio. Para obter informaes sobre a conexo atual (incluindo o endereo de hardware, o endereo IP e a interface usada), clique o boto direito do mouse no cone do applet e escolha Informaes de Conexo no menu.

18.5.2 Mais informaes


Mais informaes sobre o NetworkManager e o D-BUS podem ser encontradas nos seguintes sites e diretrios: http://www.gnome.org/projects/NetworkManager/ pgina de projeto do NetworkManager http://www.freedesktop.org/Software/dbus pgina de projeto do D-BUS /usr/share/doc/packages/NetworkManager

18.6 Configurando uma conexo de rede manualmente


A configurao manual do software de rede deve ser sempre a ltima alternativa. recomendvel usar o YaST. Entretanto, essas informaes de base sobre a configurao de rede tambm podem ajudar voc na utilizao do YaST.

362

Referncia

Todas as placas de rede embutidas e hotplug (PCMCIA, USB e algumas PCI) so detectadas e configuradas atravs do hotplug. O sistema identifica uma placa de rede de duas formas diferentes: primeira, como um dispositivo fsico e, segunda, como uma interface. A insero ou deteco de um dispositivo aciona um evento hotplug. Esse evento de hotplug aciona a inicializao do dispositivo com o script hwup. Quando a placa de rede inicializada como uma nova interface de rede, o kernel gera outro evento de hotplug que aciona a configurao da interface com ifup. A interface de nmeros kernel define nomes de acordo com a ordem temporal de seus registros. A seqncia de inicializao decisiva para a designao de nomes. Se alguma das muitas placas de rede falhar, a numerao de todas as placas inicializadas subseqentemente ser deslocada. Para placas reais que aceitam hotplug, o que importa a ordem em que os dispositivos so conectados. Para obter uma configurao flexvel, a configurao do dispositivo (hardware) e a interface foram separadas e o mapeamento das configuraes para dispositivos e interfaces no mais gerenciado com base nos nomes de interface. As configuraes de dispositivos esto localizadas em /etc/sysconfig/hardware/hwcfg-*. As configuraes de interface esto localizadas em /etc/sysconfig/network/ ifcfg-*. Os nomes das configuraes so designados de forma que descrevam os dispositivos e as interfaces aos quais esto associados. Como o mapeamento de drivers anterior exigia nomes de interface estticos, esse tipo de mapeamento no pode mais ocorrer em /etc/modprobe.conf. No novo conceito, as entradas de lias desse arquivo causariam efeitos colaterais indesejveis. Os nomes de configurao tudo depois de hwcfg- ou ifcfg- podem descrever os dispositivos por meio do slot, de um ID especfico de dispositivo ou do nome da interface. Por exemplo, o nome de configurao para uma placa PCI poderia ser bus-pci-0000:02:01.0 (slot PCI) ou vpid-0x8086-0x1014-0x0549 (ID do produto e fornecedor). O nome da interface associada poderia ser bus-pci-0000:02:01.0 ou wlan-id-00:05:4e:42:31:7a (endereo MAC). Para designar uma determinada configurao de rede a qualquer placa de determinado tipo (em que apenas uma inserida de cada vez), em vez de selecionar uma determinada placa, escolha nomes de configurao menos especficos. Por exemplo, bus-pcmcia seria usado para todas as placas PCMCIA. Por outro lado, os nomes podem ser limitados por um tipo de interface precedente. Por exemplo, wlan-bus-usb seria designado a placas WLAN conectadas a uma porta USB.

Rede bsica

363

O sistema sempre usa a configurao que melhor descreve uma interface ou o dispositivo que a fornece. A pesquisa da configurao mais adequada executada por getcfg. A sada de getcfg fornece todas as informaes que podem ser usadas para descrever um dispositivo. Detalhes referentes especificao dos nomes de configurao esto disponveis na pgina de manual do getcfg. Com o mtodo descrito, uma interface de rede configurada corretamente, mesmo que os dispositivos da rede nem sempre sejam inicializados na mesma ordem. Entretanto, o nome da interface ainda depender da seqncia de inicializao. H duas formas de garantir o acesso confivel interface de uma determinada placa de rede: getcfg-interface nome da configurao retorna o nome da interface de rede associada. Portanto, o nome de configurao, como firewall, dhcpd, roteamento ou vrias interfaces de rede virtuais (tneis), pode ser digitado em alguns arquivos de configurao, em vez do nome da interface, que no persistente. Nomes de interface persistentes so atribudos automaticamente a cada interface. Voc pode ajust-los conforme suas necessidades. Quando criar nomes de interface, proceda conforme descrito no /etc/udev/rules.d/30-net_persistent _names.rules. Entretanto, o nome persistente nomep no deve ser igual ao que ser automaticamente designado pelo kernel. Assim, eth*, tr*, wlan* e assim por diante no so permitidos. Em vez disso, use net* ou nomes descritivos, como externo, interno ou dmz. Verifique se o mesmo nome de interface no est sendo usado duas vezes. Os caracteres permitidos em nomes de interface se restringem a [a-zA-Z0-9]. Um nome persistente s pode ser designado a uma interface imediatamente depois de seu registro, o que significa que o driver da placa de rede precisa ser recarregado ou a descrio do dispositivo hwup deve ser executada. O comando rcnetwork restart no suficiente para essa finalidade. IMPORTANTE: Usando nomes de interface persistentes O uso de nomes de interface persistentes no foi testado em todas as reas. Portanto, alguns aplicativos talvez no sejam capazes de controlar nomes de interface selecionados livremente. ifup requer uma interface existente, pois no inicializa o hardware. A inicializao do hardware controlada pelo comando hwup (executado por hotplug ou coldplug). Quando um dispositivo for inicializado, ifup ser executado automaticamente para a nova interface, atravs do hotplug, e a interface ser

364

Referncia

configurada se o modo de incio for onboot, hotplug ou auto e o servio de rede tiver sido iniciado. Anteriormente, o comando ifup nomedainterface acionava a inicializao do hardware. Agora o procedimento foi invertido. Primeiro, o componente de hardware inicializado e, depois, ocorrem todas as outras aes. Dessa forma, um nmero varivel de dispositivos pode sempre ser configurado da melhor forma possvel com um conjunto de configuraes existente. A Tabela 18.5, Scripts de configurao de rede manual (p 365) resume os scripts mais importantes envolvidos na configurao de rede. Onde for possvel, os scripts so distinguidos pelo hardware e pela interface. Tabela 18.5 Estgio da configurao Hardware Scripts de configurao de rede manual Comando Funo

hw{up,down,status} Os scripts hw* so executados por um subsistema hotplug para inicializar um dispositivo, desfazer a inicializao ou consultar o status de um dispositivo. H mais informaes disponveis na pgina de manual do hwup. getcfg getcfg pode ser usado para consultar o nome da interface associado a um nome de configurao ou a uma descrio de hardware. H mais informaes disponveis na pgina de manual do getcfg.

Interface

Interface

if{up,down,status} Os scripts if* iniciam interfaces de rede existentes ou retornam o status da interface especificada. H mais informaes disponveis na pgina do manual de ifup.

H mais informaes disponveis sobre hotplug e nomes de dispositivos persistentes no Captulo 12, Gerenciamento de dispositivo de kernel dinmico com udev (p 261).

Rede bsica

365

18.6.1 Arquivos de configurao


Esta seo fornece uma viso geral dos arquivos de configurao de rede e explica sua finalidade e formato usado.

/etc/syconfig/hardware/hwcfg-*
Esses arquivos contm as configuraes de hardware de placas de rede e de outros dispositivos. Eles contm os parmetros necessrios, como o mdulo kernel, modo de incio e associaes de script. Consulte a pgina de manual do hwup para obter mais detalhes. Independentemente do hardware existente, as configuraes hwcfg-static-* so aplicadas quando o coldplug iniciado.

/etc/sysconfig/network/ifcfg-*
Esses arquivos contm as configuraes da interface de rede. Eles incluem informaes, como o modo de incio e o endereo IP. Parmetros possveis so descritos na pgina de manual do ifup. Alm disso, todas as variveis dos arquivos dhcp, wireless e config podem ser usadas nos arquivos ifcfg-* se uma configurao geral for usada somente para uma interface.

/etc/sysconfig/network/config, dhcp, wireless


O arquivo config contm configuraes gerais para o desempenho de ifup, ifdown e ifstatus. dhcp contm configuraes para DHCP e wireless para placas LAN sem fio. As variveis em todos os trs arquivos de configurao so comentadas e tambm podem ser usadas nos arquivos ifcfg-*, em que so tratadas com prioridade mais alta.

/etc/sysconfig/network/routes,ifroute-*
O roteamento esttico dos pacotes TCP/IP determinado aqui. Todas as rotas estticas exigidas pelas vrias tarefas do sistema podem ser inseridas no arquivo /etc/ sysconfig/network/routes: rotas para um host, rotas para um host atravs de um gateway e rotas para uma rede. Para cada interface que necessite de um roteamento individual, defina um arquivo de configurao adicional: /etc/sysconfig/ 366 Referncia

network/ifroute-*. Substitua * pelo nome da interface. As entradas nos arquivos de configurao de roteamento tero esta aparncia:
# Destination # 127.0.0.0 204.127.235.0 default 207.68.156.51 192.168.0.0 Dummy/Gateway 0.0.0.0 0.0.0.0 204.127.235.41 207.68.145.45 207.68.156.51 Netmask 255.255.255.0 255.255.255.0 0.0.0.0 255.255.255.255 255.255.0.0 Device lo eth0 eth0 eth1 eth1

O destino da rota est na primeira coluna. Essa coluna pode conter o endereo IP de uma rede ou host ou, no caso de servidores de nomes acessveis, a rede ou o nome de host totalmente qualificado. A segunda coluna contm o gateway padro ou um gateway atravs do qual um host ou uma rede pode ser acessada. A terceira coluna contm a mscara de rede para redes ou hosts atrs de um gateway. Por exemplo, a mscara em 255.255.255.255 para um host atrs de um gateway. A quarta coluna s relevante para redes conectadas ao host local, como loopback, Ethernet, ISDN, PPP e dispositivo simulado. O nome do dispositivo deve ser digitado aqui. Uma quinta coluna (opcional) pode ser usada para especificar o tipo de uma rota. As colunas desnecessrias devem conter um sinal de subtrao - para garantir que o analisador interpretar o comando corretamente. Para obter mais detalhes, consulte a pgina de manual das rotas(5).

/etc/resolv.conf
O domnio ao qual o host pertence especificado neste arquivo (palavra-chave search). Tambm est listado o status do endereo do servidor de nomes para acesso (palavrachave nameserver). Vrios nomes de domnios podem ser especificados. Durante a resoluo de um nome no totalmente qualificado, uma tentativa de gerar um nome ser feita, anexando as entradas de pesquisa individuais. Use vrios servidores de nomes digitando vrias linhas, todas iniciadas pelo servidor de nomes. Preceda os comentrios com sinais #. O YaST insere o servidor de nomes especificado neste arquivo. O Exemplo 18.5, /etc/resolv.conf (p 368) mostra como a aparncia de /etc/resolv.conf poder ser.

Rede bsica

367

Exemplo 18.5 /etc/resolv.conf


# Our domain search example.com # # We use sun (192.168.0.20) as nameserver nameserver 192.168.0.20

Alguns servios, como pppd (wvdial), ipppd (isdn), dhcp (dhcpcd e dhclient), pcmcia e hotplug modificam o arquivo /etc/resolv.conf atravs do script modify_resolvconf. Se o arquivo /etc/resolv.conf tiver sido temporariamente modificado por esse script, ele conter um comentrio predefinido com informaes sobre o servio que o modificou, o local onde foi feito o backup do arquivo original e como desligar o mecanismo de modificao automtica. Se /etc/ resolv.conf for modificado vrias vezes, o arquivo incluir modificaes de forma aninhada. Isso pode ser revertido de forma completa, mesmo que essa reverso ocorra em uma ordem diferente da ordem em que as modificaes foram introduzidas. Entre os servios que talvez necessitem dessa flexibilidade, esto includos isdn, pcmcia e hotplug. Se um servio no tiver terminado de forma normal e limpa, modify_resolvconf poder ser usado para restaurar o arquivo original. Da mesma forma, na inicializao do sistema, uma verificao feita para ver se h um resolv.conf modificado que no esteja limpo. Por exemplo, aps uma falha no sistema, o resolv.conf original (no modificado) ser restaurado. O YaST usa o comando modify_resolvconf check para descobrir se o resolv .conf foi modificado e, logo depois, avisa o usurio de que as modificaes sero perdidas aps a restaurao do arquivo. Alm disso, o YaST no se baseia no modify _resolvconf, o que significa que o impacto de modificar o resolv.conf atravs do YaST o mesmo que o de qualquer mudana manual. Em ambos os casos, as mudanas tm um efeito permanente. As modificaes solicitadas pelos servios mencionados so somente temporrias.

/etc/hosts
Nesse arquivo, mostrado no Exemplo 18.6, /etc/hosts (p 369), os endereos IP so designados a nomes de host. Se nenhum servidor de nomes for implementado, todos os hosts nos quais uma conexo IP for configurada precisaro ser listados aqui. Para cada host, digite uma linha no arquivo com o endereo IP, o nome de host totalmente qualificado e o nome de host. O endereo IP precisa estar no incio da linha e as entradas

368

Referncia

separadas por espaos vazios e guias. Comentrios so sempre precedidos pelo sinal #. Exemplo 18.6 /etc/hosts
127.0.0.1 localhost 192.168.0.20 sun.example.com sun 192.168.0.0 earth.example.com earth

/etc/networks
Aqui, os nomes de rede so convertidos em endereos de rede. O formato semelhante ao do arquivo hosts, exceto que os nomes de rede precedem os endereos. Consulte o Exemplo 18.7, /etc/networks (p 369). Exemplo 18.7 /etc/networks
loopback localnet 127.0.0.0 192.168.0.0

/etc/host.conf
A resoluo de nomes converso dos nomes de host e de rede atravs da biblioteca resolver controlada por esse arquivo. Esse arquivo usado somente para programas vinculados a libc4 ou libc5. Para programas glibc atuais, consulte as configuraes em /etc/nsswitch.conf. Um parmetro precisa estar sempre independente em sua prpria linha. Comentrios so precedidos pelo sinal #. A Tabela 18.6, Parmetros para /etc/host.conf (p 369) mostra os parmetros disponveis. Uma amostra de /etc/ host.conf mostrada no Exemplo 18.8, /etc/host.conf (p 370). Tabela 18.6 Parmetros para /etc/host.conf Especifica em que ordem os servios so acessados para a resoluo de nomes. Os argumentos disponveis so (separados por espaos vazios ou vrgulas): hosts: pesquisa o arquivo /etc/hosts bind: acessa um servidor de nomes nis: usa o NIS

order hosts, bind

Rede bsica

369

multi on/off

Define se um host digitado em /etc/hosts pode ter vrios endereos IP. Esses parmetros influenciam o spoofing do servidor de nomes, mas, alm disso, no exercem qualquer influncia na configurao da rede. O nome de domnio especificado separado do nome de host depois da resoluo do nome de host (desde que o nome de host inclua o nome de domnio). Essa opo ser til somente se os nomes de um domnio local estiverem no arquivo /etc/ hosts, mas ainda devero ser reconhecidos com os nomes de domnio anexados.

nospoof on spoofalert on/off

trim domainname

Exemplo 18.8 /etc/host.conf


# We have named running order hosts bind # Allow multiple addrs multi on

/etc/nsswitch.conf
O lanamento do GNU C Library 2.0 foi acompanhado pelo lanamento do NSS (Name Service Switch). Consulte a pgina de manual do nsswitch.conf(5) e The GNU C Library Reference Manual (Manual de Referncia da Biblioteca GNU C) para obter mais detalhes. A ordem das consultas definida no arquivo /etc/nsswitch.conf. Uma amostra do nsswitch.conf exibida no Exemplo 18.9, /etc/nsswitch.conf (p 371). Comentrios so introduzidos pelo sinal #. Neste exemplo, a entrada no banco de dados hosts significa que uma solicitao foi enviada para /etc/hosts (arquivos) atravs do DNS (consulte o Captulo 20, Domain Name System (Sistema de Nomes de Domnio) (p 381)).

370

Referncia

Exemplo 18.9 /etc/nsswitch.conf


passwd: group: hosts: networks: services: protocols: netgroup: automount: compat compat files dns dns de arquivos db files db files files files nis

Os bancos de dados disponveis em NSS esto listados na Tabela 18.7, Bancos de dados disponveis atravs de /etc/nsswitch.conf (p 371). Alm disso, automount, bootparams, netmasks e publickey so aguardados em breve. As opes de configurao para bancos de dados NSS esto listadas na Tabela 18.8, Opes de Configurao para Bancos de Dados NSS (p 372). Tabela 18.7 aliases Bancos de dados disponveis atravs de /etc/nsswitch.conf lias de correio implementados por sendmail; consulte man 5 aliases. Endereos de Ethernet. Para grupos de usurios, usados por getgrent. Consulte tambm a pgina de manual para group. Para nomes de hosts e endereos IP, usados por gethostbyname e funes similares. Listas de usurios e hosts vlidos na rede com a finalidade de controlar permisses de acesso, consulte a pgina de manual do netgroup(5). Nomes e endereos de redes, usados por getnetent. Senhas de usurios, usadas por getpwent; consulte a pgina de manual do passwd(5).

ethers group

hosts

netgroup

networks passwd

Rede bsica

371

protocols

Protocolos de rede, usados por getprotoent; consulte a pgina de manual do protocols(5). Nomes e endereos de RPC (Remote Procedure Call) usados por getrpcbyname e funes similares. Servios de rede, usados por getservent. Senhas transitrias de usurios, usadas por getspnam; consulte a pgina de manual do shadow(5). Opes de Configurao para Bancos de Dados NSS arquivos de acesso direto, por exemplo, /etc/aliases acesso atravs de um banco de dados NIS, consulte tambm o Captulo 21, Usando o NIS (p 405) s pode ser usado como uma extenso de hosts e networks s pode ser usado como uma extenso de passwd, shadow e group

rpc

services shadow

Tabela 18.8 arquivos db

nis, nisplus dns

compat

/etc/nscd.conf
Esse arquivo usado para configurar o nscd (name service cache daemon). Consulte as pginas de manual de nscd(8) e nscd.conf(5). Por padro, as entradas do sistema de passwd e groups so armazenadas em cache pelo nscd. Isso importante para o desempenho de servios de diretrio, como NIS e LDAP, pois, caso contrrio, a conexo de rede precisaria ser usada para cada acesso a nomes ou grupos. hosts no armazenado em cache por padro, porque o mecanismo no nscd para armazenar hosts em cache impede o sistema local de confiar em verificaes de pesquisa forward e reverse. Em vez de solicitar ao nscd para armazenar nomes em cache, configure um servidor DNS para armazenamento em cache.

372

Referncia

Se o armazenamento em cache de passwd estiver ativado, normalmente levar quinze segundos para que um usurio local recentemente adicionado seja reconhecido. Reduza esse tempo de espera reiniciando o nscd com o comando rcnscd restart.

/etc/HOSTNAME
Contm o nome de host sem o nome de domnio anexado. Esse arquivo lido por vrios scripts durante a inicializao da mquina. Ele s pode conter uma linha na qual o nome de host configurado.

18.6.2 Scripts de Inicializao


Alm dos arquivos de configurao descritos acima, h tambm vrios scripts que carregam os programas de rede durante a inicializao da mquina. Eles so iniciados assim que o sistema alternado para um dos runlevels multiusurio. Alguns desses scripts so descritos na Tabela 18.9, Alguns scripts de inicializao para programas de rede (p 373). Tabela 18.9 Alguns scripts de inicializao para programas de rede

/etc/init.d/network Este script controla a configurao das interfaces de rede. O hardware j precisa ter sido inicializado pelo /etc/init.d/coldplug (atravs do hotplug). Se o servio de rede no tiver sido iniciado, nenhuma interface de rede ser implementada quando for inserida pelo hotplug. /etc/init.d/network Inicia o xinetd. O xinetd pode ser usado para disponibilizar os servios do servidor no sistema. Por exemplo, ele pode iniciar o vsftpd sempre que uma conexo FTP for inicializada. /etc/init.d/portmap Inicia o portmapper necessrio para o servidor RPC, como um servidor NFS. /etc/init.d/ nfsserver Inicia o servidor NFS.

Rede bsica

373

/etc/init.d/ sendmail /etc/init.d/ypserv /etc/init.d/ypbind

Controla o processo sendmail.

Inicia o servidor NIS. Inicia o cliente NIS.

18.7 smpppd como Assistente de Discagem


A maioria dos usurios domsticos no possui uma linha dedicada de conexo Internet. Em vez disso, usam conexes por discagem. Dependendo da forma de discagem (ISDN ou DSL), a conexo controlada por ipppd ou pppd. Basicamente, tudo que precisa ser feito para estabelecer a conexo iniciar esses programas corretamente. Se voc tiver uma conexo com tarifa fixa que no gere custos adicionais para a conexo por discagem, basta iniciar o respectivo daemon. Controle a conexo por discagem com um applet KDE ou uma interface de linha de comando. Se o portal de Internet no for o host que voc estiver usando, voc poder controlar a conexo por discagem por intermdio de um host de rede. a que entra o smpppd. Ele oferece uma interface uniforme para programas auxiliares e funciona nas duas direes. Primeiro, ele programa o pppd ou ipppd necessrio e controla suas propriedades de discagem. Em segundo lugar, disponibiliza diversos provedores aos programas do usurio e transmite informaes sobre o atual status da conexo. J que o smpppd tambm pode ser controlado por meio da rede, adequado para controlar conexes por discagem Internet a partir de uma estao de trabalho de uma sub-rede privada.

18.7.1 Configurando o smpppd


As conexes fornecidas pelo smpppd so automaticamente configuradas pelo YaST. Os programas por discagem KInternet e cinternet propriamente ditos tambm so prconfigurados. Configuraes manuais somente so necessrias para configurar recursos adicionais do smpppd, como o controle remoto.

374

Referncia

O arquivo de configurao do smpppd o /etc/smpppd.conf. Por padro, ele no habilita o controle remoto. As opes mais importantes desse arquivo de configurao so: open-inet-socket = yes|no Para controlar o smpppd por meio da rede, essa opo precisa ser definida como yes. A porta em que o smpppd realiza a escuta a 3185. Se esse parmetro for definido como yes, os parmetros bind-address, host-range e password devero ser definidos da mesma forma. bind-address = ip Se um host tiver diversos endereos IP, use esse parmetro para determinar o endereo IP em que o smpppd deve aceitar conexes. host-range = min ip max ip O parmetro host-range define uma faixa de rede. Os hosts cujos endereos IP se situam dentro dessa faixa recebem acesso ao smpppd. O acesso recusado a todos os hosts localizados fora dessa faixa. password = senha Ao atribuir uma senha, limite os clientes a hosts autorizados. Como se trata de uma senha de texto simples, no recomendvel superestimar a segurana por oferecida. Se nenhuma senha for atribuda, todos os clientes tero permisso para acessar o smpppd. slp-register = yes|no Com esse parmetro, o servio smpppd pode ser anunciado na rede por meio do SLP. Mais informaes sobre o smpppd esto disponveis nas pginas do manual smpppd(8) e smpppd.conf(5).

18.7.2 Configurando KInternet, cinternet e qinternet para Uso Remoto


KInternet, cinternet e qinternet podem ser usados para controlar um smpppd local ou remoto. O cinternet o equivalente da linha de comando do KInternet grfico. Em linhas gerais, como o qinternet idntico ao KInternet, mas no usa as bibliotecas do KDE, pode ser usado sem o KDE e deve ser instalado separadamente. Para preparar Rede bsica 375

esses utilitrios para uso com um smpppd remoto, edite o arquivo de configurao /etc/smpppd-c.conf manualmente ou com o KInternet. Esse arquivo usa trs opes apenas: sites = lista de sites Indique aos front ends onde procurar o smpppd. Os front ends testam as opes na ordem especificada. A opo local ordena o estabelecimento de uma conexo ao smpppd local. O gateway aponta para um smpppd no gateway. A conexo deve ser estabelecida conforme especificaes contidas em server, em config-file. O slp ordena aos front ends que se conectem a um smpppd encontrado por meio do SLP. server = servidor Especifique o host em que o smpppd deve ser executado. password = senha Insira a senha selecionada para o smpppd. Se o smpppd estiver ativo, ser possvel acess-lo, por exemplo, com cinternet --verbose --interface-list. Se voc tiver dificuldades nesse ponto, consulte as pginas do manual smpppd-c.conf(5) e cinternet(8).

376

Referncia

Servios SLP na rede

19

O SLP foi criado para simplificar a configurao dos clientes em rede dentro de uma rede local. Para configurar um cliente em rede, inclusive todos os servios necessrios, o administrador normalmente precisa ter conhecimento detalhado dos servidores disponveis na rede. O SLP divulga a disponibilidade de servios selecionados a todos os clientes da rede local. Os aplicativos que do suporte ao SLP podem usar as informaes distribudas e podem ser configurados automaticamente. O SUSE Linux d suporte instalao com o uso de origens de instalao fornecidas via SLP e contm diversos servios de sistema com suporte integrado para SLP. O YaST e o Konqueror possuem front ends apropriados para SLP. Voc pode usar o SLP para oferecer funes centrais aos clientes em rede, como um servidor de instalao, servidor YOU, servidor de arquivos ou servidor de impresso no SUSE Linux.

19.1 Registrando seus prprios servios


Muitos aplicativos contidos no SUSE Linux j possuem suporte integrado ao SLP com o uso da biblioteca libslp. Se um servio no tiver sido compilado com o suporte ao SLP, use um dos mtodos a seguir para disponibiliz-lo com SLP: Registro esttico com /etc/slp.reg.d Crie um arquivo de registro separado para cada novo servio. A seguir h um exemplo de arquivo para o registro de servio de scanner:

Servios SLP na rede

377

## Register a saned service on this system ## en means english language ## 65535 disables the timeout, so the service registration does ## not need refreshes service:scanner.sane://$HOSTNAME:6566,en,65535 watch-port-tcp=6566 description=SANE scanner daemon

A linha mais importante desse arquivo a linha URL do servio, que comea com service:. Essa linha contm o tipo de servio (scanner.sane) e o endereo em que o servio est disponvel no servidor. $HOSTNAME automaticamente substituda pelo nome completo do host. Em seguida, vem o nome da porta TCP em que o servio em questo pode ser encontrado, separado por dois-pontos. A seguir, especifique o idioma em que o servio deve ser exibido e a durao do registro em segundos. Esses dados devem ser separados do URL do servio por vrgulas. Defina o valor da durao do registro entre 0 e 65535. O valor 0 impede o registro. O valor 65535 elimina todas as restries. O arquivo de registro tambm contm as duas variveis watch-tcp-port e description. watch-tcp-port associa o anncio do servio SLP atividade do servio em questo fazendo com que o slpd verifique o status do servio. A segunda varivel contm uma descrio mais precisa do servio que exibido nos browsers apropriados. Registro esttico com /etc/slp.reg A nica diferena em relao ao procedimento com /etc/slp.reg.d o agrupamento de todos os servios em um arquivo central. Registro dinmico com slptool Se um servio tiver de ser registrado para o SLP a partir de scripts proprietrios, use o front end de linha de comando slptool.

19.2 Front ends de SLP no SUSE Linux


O SUSE Linux contm diversos front ends que permitem que as informaes relativas ao SLP sejam verificadas e usadas por meio de uma rede:

378

Referncia

slptool O slptool um programa de linha de comando simples que pode ser usado para anunciar consultas SLP na rede ou anunciar servios proprietrios. O slptool --help relaciona todas as opes e funes disponveis. O slptool tambm pode ser chamado a partir de scripts que processam informaes relativas ao SLP. Browser SLP do YaST O YaST contm um browser SLP separado que lista todos os servios da rede local anunciados via SLP em um diagrama em forma de rvore em Servios de Rede Browser SLP. Konqueror Quando usado como um browser de rede, o Konqueror pode exibir todos os servios SLP disponveis na rede local em slp:/. Clique nos cones da janela principal para obter mais informaes detalhadas sobre o servio em questo. Se voc usar o Konqueror com service:/, clique no respectivo cone uma vez na janela do browser para configurar uma conexo com o servio selecionado.

19.3 Ativando o SLP


O slpd deve ser executado no seu sistema se voc desejar oferecer servios. No necessrio iniciar esse daemon apenas para fazer consultas sobre servios. Assim como a maioria dos servios de sistema no SUSE Linux, o daemon slpd controlado por intermdio de um script de inicializao separado. O daemon fica inativo por padro. Para ativ-lo durante uma sesso, execute rcslpd start como root para inicilo e rcslpd stop para interromp-lo. Efetue uma verificao de reinicializao ou status com restart ou status. Se o slpd tiver de ficar ativo por padro, execute o comando insserv slpd uma vez como root. Essa ao inclui automaticamente o slpd no conjunto de servios a serem iniciados durante a inicializao de um sistema.

19.4 Mais informaes


As fontes a seguir fornecem informaes adicionais sobre o SLP:

Servios SLP na rede

379

RFC 2608, 2609, 2610 O RFC 2608 geralmente trata da definio de SLP. O RFC 2609 trata da sintaxe dos URLs de servio usados em maior detalhe e o RFC 2610 trata do DHCP via SLP. http://www.openslp.com A home page do projeto OpenSLP. /usr/share/doc/packages/openslp Esse diretrio contm toda a documentao disponvel sobre SLP, inclusive um arquivo README.SuSE contendo os detalhes sobre o SUSE Linux, os RFCs citados acima e dois documentos HTML introdutrios. Os programadores que desejarem usar as funes SLP devem instalar o pacote openslp-devel para consultar o Programmers Guide (Guia de Programadores) que o acompanha.

380

Referncia

Domain Name System (Sistema de Nomes de Domnio)

20

O DNS (Domain Name System - Sistema de Nomes de Domnio) necessrio para resolver nomes de domnio e nomes de host em endereos IP. Dessa forma, o endereo IP 192.168.0.0 designado ao nome de host earth, por exemplo. Antes de configurar o servidor de nomes, leia as informaes gerais sobre o DNS na Seo 18.3, Resoluo de nomes (p 347). Os exemplos de configurao a seguir se referem ao BIND.

20.1 Terminologia DNS


Zona O namespace do domnio dividido em regies chamadas zonas. Por exemplo, se voc tiver o opensuse.org, ter a seo opensuse, ou zona, do domnio org. Servidor DNS O servidor DNS um servidor que mantm o nome e as informaes de IP de um domnio. Voc pode ter um servidor DNS primrio para a zona master, um servidor secundrio para a zona escrava ou um servidor escravo sem nenhuma zona para cache. Servidor DNS de zona master A zona master inclui todos os hosts da rede, e uma zona master de servidor DNS armazena todos os registros atualizados de todos os hosts do seu domnio. Servidor DNS de zona escrava Uma zona escrava uma cpia da zona master. O servidor DNS da zona escrava obtm os dados de zona sem operaes de transferncia da zona do servidor

Domain Name System (Sistema de Nomes de Domnio)

381

master. O servidor DNS de zona escrava responde com autoridade zona contanto que tenha dados de zona vlidos (no expirados). Se o escravo no conseguir obter uma cpia nova dos dados de zona, pra de responder zona. Encaminhador Encaminhadores so servidores DNS para os quais o servidor DNS deve enviar consultas que no consiga responder. Registro O registro contm informaes sobre nome e endereo IP. Os registros com suporte e suas sintaxes so descritas na documentao do BIND. Alguns registros especiais so: Registro NS Um registro NS informa aos servidores de nome quais mquinas so responsveis por uma determinada zona de domnio. Registro MX Os registros MX (servidor de correio) descrevem quais mquinas devem ser contatadas para direcionar a correspondncia pela Internet. Registro SOA O registro SOA (Start of Authority) o primeiro registro em um arquivo de zona. O registro SOA usado quando o DNS usado para sincronizar os dados entre vrios computadores.

20.2 Configurao com o YaST


Voc pode usar o mdulo DNS do YaST para configurar um servidor DNS em sua rede local. Quando o mdulo iniciado pela primeira vez, um assistente iniciado, solicitando que voc tome algumas decises bsicas com relao administrao do servidor. A concluso dessa configurao inicial produz uma configurao de servidor muito bsica, que deve funcionar com aspectos essenciais. O modo de especialista pode ser usado para lidar com tarefas de configurao mais avanadas.

382

Referncia

20.2.1 Configurao do assistente


O assistente consiste em trs etapas ou caixas de dilogo. Nos locais apropriados das caixas de dilogo, voc ter a oportunidade de inserir o modo de configurao de especialista. 1 Quando voc inicia o mdulo pela primeira vez, a caixa de dilogo Configuraes do Encaminhador, mostrada na Figura 20.1, Instalao do servidor DNS: configuraes do encaminhador (p 383), aberta. Decida se o daemon PPP deve fornecer uma lista de encaminhadores de chamada via DSL ou ISDN (O Daemon PPP Define os Encaminhadores) ou se voc deseja fornecer a prpria lista (Definir Encaminhadores Manualmente). Figura 20.1 Instalao do servidor DNS: configuraes do encaminhador

2 A caixa de dilogo Zonas DNS consiste em vrias partes e responsvel pelo gerenciamento de arquivos de zona, descrito na Seo 20.5, Arquivos de zona (p 397). Fornea um nome para uma nova zona em Nome da Zona. Para adicionar uma zona reversa, o nome deve terminar em .in-addr.arpa. Finalmente, selecione o Tipo de Zona (master ou escrava). Consulte a Figura 20.2, Instalao do servidor DNS: Zonas do DNS (p 384). Clique em Editar Zona para definir outras configuraes em uma zona existente. Para remover uma zona, clique em Apagar Zona. Domain Name System (Sistema de Nomes de Domnio) 383

Figura 20.2 Instalao do servidor DNS: Zonas do DNS

3 Na caixa de dilogo final, possvel abrir as portas do servio DNS no firewall ativado durante a instalao e decidir se o DNS deve ser iniciado. A configurao de especialista tambm pode ser acessada nessa caixa de dilogo. Consulte a Figura 20.3, Instalao do servidor DNS: Finalizar Assistente (p 385).

384

Referncia

Figura 20.3 Instalao do servidor DNS: Finalizar Assistente

20.2.2 Configurao de especialista


Depois de iniciar o mdulo, o YaST abre uma janela exibindo vrias opes de configurao. A definio dessas opes resulta em uma configurao de servidor DNS com as funes bsicas estabelecidas:

Iniciando o servidor DNS


Em Inicializar, defina se o servidor DNS deve ser inicializado juntamente com a inicializao do sistema ou manualmente. Para iniciar o servidor DNS imediatamente, selecione Iniciar Servidor DNS Agora. Para encerrar o servidor DNS, selecione Parar Servidor DNS Agora. Para gravar as configuraes atuais, selecione Salvar Configuraes e Reiniciar Servidor DNS Agora. possvel abrir a porta do DNS no firewall com a opo Abrir Porta no Firewall e modificar as configuraes do firewall com Detalhes do Firewall.

Domain Name System (Sistema de Nomes de Domnio)

385

Registro
Para definir o que o servidor DNS deve registrar e como faz-lo, selecione Registro. Em Tipo de Log, especifique o local em que o servidor DNS deve gravar os dados de registro. Use o arquivo de registro /var/log/messages de todo o sistema selecionando Inserir no Registro do Sistema, ou especifique um arquivo diferente selecionando Registrar em Arquivo. Nesse caso, especifique tambm o tamanho mximo do arquivo em megabytes e o nmero de arquivos de registro a serem armazenados. Outras opes esto disponveis em Registro Adicional. A habilitao do recurso Registrar Todas as Consultas de DNS faz com que todas as consultas sejam registradas, caso em que o arquivo de registro pode ficar extremamente grande. Por essa razo, no uma boa idia habilitar essa opo para fins que no sejam de depurao. Para registrar o trfego de dados durante as atualizaes de zonas entre o DHCP e o servidor DNS, habilite a opo Registrar Atualizaes de Zona. Para registrar o trfego de dados durante uma transferncia de zona de master para escrava, habilite a opo Registrar Transferncia de Zonas. Consulte a Figura 20.4, Servidor DNS: Registro (p 386). Figura 20.4 Servidor DNS: Registro

386

Referncia

Adicionando uma Zona Escrava


Para adicionar uma zona escrava, selecione Zonas DNS, escolha o tipo de zona Escrava e clique em Adicionar. Em Editor de Zona, em Servidor DNS Master, especifique o master no qual o escravo deve pesquisar seus dados. Para limitar acesso ao servidor, selecione um dos ACLs da lista. Consulte a Figura 20.5, Servidor DNS: Editor de Zona Escrava (p 387). Figura 20.5 Servidor DNS: Editor de Zona Escrava

Adicionando uma Zona Master


Para adicionar uma zona master, selecione Zonas DNS, escolha o tipo de zona Master, escreva o nome da nova zona e clique em Adicionar.

Editando uma Zona Master


Para editar uma zona master, selecione Zonas DNS, escolha o tipo de zona Master, selecione a zona master na tabela e clique em Editar. A caixa de dilogo tem vrias pginas: Bsico (a aberta primeiro), Registros NS, Registros MX, SOA e Registros.

Domain Name System (Sistema de Nomes de Domnio)

387

Editor de Zona (Registros NS) Esta caixa de dilogo permite definir servidores de nomes alternativos nas zonas especificadas. Verifique se o nome do seu prprio servidor est includo na lista. Para adicionar um registro, digite o nome dele em Servidor de Nome para Adicionar e, em seguida, confirme com Adicionar. Consulte a Figura 20.6, Servidor DNS: Editor de Zona (Registros NS) (p 388). Figura 20.6 Servidor DNS: Editor de Zona (Registros NS)

Editor de Zona (Registros MX) Para adicionar lista existente um servidor de correio eletrnico para a zona atual, digite o endereo correspondente e o valor de prioridade. Depois disso, confirme a seleo em Adicionar. Consulte a Figura 20.7, Servidor DNS: Editor de Zona (Registros MX) (p 389).

388

Referncia

Figura 20.7 Servidor DNS: Editor de Zona (Registros MX)

Editor de Zona (SOA) Esta pgina permite criar registros de SOA (start of authority). Para obter uma explicao sobre opes especficas, consulte o Exemplo 20.6, Arquivo /var/lib/named/world.zone (p 397).

Domain Name System (Sistema de Nomes de Domnio)

389

Figura 20.8 Servidor DNS: Editor de Zona (SOA)

Editor de Zona (Registros) Esta caixa de dilogo gerencia a resoluo de nomes. Em Chave de Registro, digite o nome de host e selecione seu tipo. A-Record representa a entrada principal. Seu valor deve ser um endereo IP. CNAME um lias. Utilize os tipos NS e MX para obter registros detalhados ou parciais que expandam as informaes fornecidas nas guias Registros NS e Registros MX. Estes trs tipos resolvem um registro A existente. PTR para zonas reversas. o oposto de um registro A.

20.3 Iniciando o BIND do servidor de nomes


Em um sistema SUSE Linux, o BIND (Berkeley Internet Name Domain - Domnio de Nomes Berkeley da Internet) do servidor de nomes vem pr-configurado, de forma que ele pode ser iniciado logo aps a instalao, sem problemas. Se voc j tiver uma conexo de Internet em funcionamento e digitar 127.0.0.1 como endereo do servidor de nomes para localhost, em /etc/resolv.conf, j ter uma resoluo de nomes em funcionamento, sem que seja necessrio conhecer o DNS do provedor. O BIND realiza a resoluo de nomes por meio do servidor de nomes raiz, um processo notavelmente mais lento. Normalmente, o DNS do provedor deve ser digitado com o

390

Referncia

endereo IP no arquivo de configurao /etc/named.conf, em forwarders, para garantir uma resoluo de nomes segura e eficaz. Se ele estiver funcionando at agora, o servidor de nomes ser executado como um servidor de nomes apenas para cache. Somente quando voc configurar as zonas dele prprio, ele se tornar um DNS adequado. Um exemplo simples disso est includo na documentao, em /usr/ share/doc/packages/bind/sample-config. DICA: Adaptao automtica das informaes do servidor de nomes Dependendo do tipo de conexo de Internet ou de conexo de rede, as informaes do servidor de nomes podem ser automaticamente adaptadas s condies atuais. Para isso, defina a varivel MODIFY_NAMED_CONF_DYNAMICALLY no arquivo /etc/sysconfig/ network/config como yes. Entretanto, no configure nenhum domnio oficial antes de algum ser designado pela instituio responsvel. Mesmo que voc tenha seu prprio domnio e ele seja gerenciado pelo provedor, melhor no utiliz-lo, pois o BIND no encaminharia solicitaes para esse domnio. O servidor Web no provedor, por exemplo, poderia no ficar acessvel para esse domnio. Para iniciar o servidor de nomes, digite o comando rcnamed start como root. Se done for exibido direita, em verde, e com o mesmo nome do processo do servidor de nomes, esse servidor ter sido iniciado com xito. Teste o servidor de nomes imediatamente no sistema local com os programas host ou dig, que devem retornar localhost como servidor padro, com o endereo 127.0.0.1. Se esse no o caso, o arquivo /etc/resolv.conf provavelmente contm uma entrada de servidor de nomes incorreta ou no existe. No primeiro teste, digite host 127.0.0.1, o que sempre funciona. Se receber uma mensagem de erro, use rcnamed status para verificar se o servidor est sendo realmente executado. Se o servidor de nomes no for iniciado ou agir de forma inesperada, voc poder encontrar a causa no arquivo de registro /var/log/messages. Para usar o servidor de nomes do provedor ou um servidor de nomes que j esteja em execuo na rede como encaminhador, digite o endereo IP ou os endereos correspondentes na seo options, em forwarders. Os endereos includos no Exemplo 20.1, Opes de encaminhamento no named.conf (p 392) so apenas exemplos. Ajuste essas entradas de acordo com sua prpria configurao.

Domain Name System (Sistema de Nomes de Domnio)

391

Exemplo 20.1 Opes de encaminhamento no named.conf


options { directory "/var/lib/named"; forwarders { 10.11.12.13; 10.11.12.14; }; listen-on { 127.0.0.1; 192.168.0.99; }; allow-query { 127/8; 192.168.0/24; }; notify no; };

A entrada options seguida de entradas para a zona, localhost e 0.0.127.in-addr.arpa. A entrada type hint em . deve estar sempre presente. Os arquivos correspondentes no precisam ser modificados e devem funcionar como esto. Verifique tambm se cada entrada est fechada com um ; e se as chaves esto nos locais corretos. Depois de mudar o arquivo de configurao /etc/named .conf ou os arquivos de zona, solicite ao BIND que os releia com o comando rcnamed reload. Faa o mesmo interrompendo e reiniciando o servidor de nomes com rcnamed restart. Pare o servidor a qualquer momento digitando rcnamed stop.

20.4 O arquivo de configurao /etc/named.conf


Todas as configuraes do servidor de nomes BIND so armazenadas no arquivo /etc/ named.conf. Entretanto, os dados de zona que os domnios devem gerenciar, consistindo em nomes de host, endereos IP etc, so armazenados em arquivos separados, no diretrio /var/lib/named. Os detalhes sero descritos posteriormente. /etc/named.conf dividido em aproximadamente duas reas. Uma a seo options para configuraes gerais, e a outra consiste nas entradas da zone dos domnios especficos. Uma seo logging e entradas de acl (access control list lista de controles de acesso) so opcionais. Linhas de comentrio comeam com um sinal de # ou //. Um arquivo /etc/named.conf mnimo exibido no Exemplo 20.2, Um arquivo /etc/named.conf bsico (p 393).

392

Referncia

Exemplo 20.2 Um arquivo /etc/named.conf bsico


options { directory "/var/lib/named"; forwarders { 10.0.0.1; }; notify no; }; zone "localhost" in { type master; file "localhost.zone"; }; zone "0.0.127.in-addr.arpa" in { type master; file "127.0.0.zone"; }; zone "." in { type hint; file "root.hint"; };

20.4.1 Opes importantes de configurao


diretrio "nomedoarquivo"; Especifica o diretrio no qual o BIND pode encontrar os arquivos contendo os dados da zona. Normalmente, o /var/lib/named. forwarders { endereo-ip; }; Especifica os servidores de nomes (principalmente do provedor) para os quais as solicitaes do DNS devem ser encaminhadas se no puderem ser resolvidas diretamente. Substitua endereo-ip por um endereo IP como 10.0.0.1. forward first; Faz com que solicitaes do DNS sejam encaminhadas antes de uma tentativa ser feita para resolv-las por meio dos servidores de nomes raiz. Em vez de forward first, possvel escrever forward only para que todas as solicitaes sejam encaminhadas e nenhuma delas seja enviada para os servidores de nomes raiz. Isso faz sentido para configuraes de firewall. listen-on port 53 { 127.0.0.1; endereo ip; }; Comunique ao BIND em que interfaces de rede e porta ele deve aceitar consultas de cliente. A porta 53 no precisa ser especificada explicitamente, pois 53 a

Domain Name System (Sistema de Nomes de Domnio)

393

porta padro. Digite 127.0.0.1 para permitir solicitaes do host local. Se voc omitir totalmente essa entrada, todas as interfaces sero usadas por padro. listen-on-v6 port 53 {any; }; Comunique ao BIND qual porta ele deve escutar para solicitaes de clientes IPv6. A nica alternativa para any none. At onde o IPv6 est envolvido, o servidor s aceita um endereo curinga. query-source address * port 53; Esta entrada ser necessria se um firewall estiver bloqueando as solicitaes de sada do DNS. Assim o BIND avisado para publicar as solicitaes externamente porta 53, e no de qualquer outra porta superior acima da 1024. query-source-v6 address * port 53; Comunica ao BIND qual porta deve ser usada para consultas do IPv6. allow-query { 127.0.0.1; rede; }; Define as redes a partir das quais os clientes podem publicar solicitaes de DNS. Substitua rede pelas informaes de endereo, como 192.168.1/24. /24, no fim, uma expresso de abreviao para uma mscara de rede, neste caso, 255.255.255.0. allow-transfer ! *;; Controla quais hosts podem solicitar transferncias de zona. No exemplo, tais solicitaes so completamente negadas com ! *. Sem essa entrada, as transferncias de zona podem ser solicitadas de qualquer local, sem restries. statistics-interval 0; Na ausncia desta entrada, o BIND gera vrias linhas de informaes estatsticas por hora em /var/log/messages. Defina-a como 0 para suprimir totalmente estas estatsticas ou definir um intervalo em minutos. cleaning-interval 720; Esta opo define os intervalos de tempo em que o BIND limpa seu cache. Ela aciona uma entrada em /var/log/messages sempre que isso ocorre. A especificao de tempo em minutos. O padro de 60 minutos interface-interval 0; O BIND pesquisa regularmente as interfaces de rede em busca de interfaces novas ou no existentes. Se seu valor for definido como 0, isso no ser feito, e o BIND

394

Referncia

escutar apenas as interfaces detectadas na inicializao. Caso contrrio, o intervalo poder ser definido em minutos. O padro de 60 minutos notify no; no evita que outros servidores de nomes sejam informados sobre a ocorrncia de mudanas nos dados da zona ou sobre quando o servidor de nomes foi reiniciado.

20.4.2 Registro
O BIND pode ser extensivamente configurado para que se determine qual registro est sendo usado, como e onde. Normalmente, as configuraes padro devem ser suficientes. O Exemplo 20.3, Entrada para desabilitar o registro (p 395) mostra a forma mais simples de uma entrada como esta e suprime totalmente qualquer registro. Exemplo 20.3 Entrada para desabilitar o registro
logging { category default { null; }; };

20.4.3 Entradas das zonas


Exemplo 20.4 Entrada da zona para my-domain.de
zone "my-domain.de" in { type master; file "my-domain.zone"; notify no; };

Depois de zone, especifique o nome do domnio para o administrador (my-domain.de), seguido de in e um bloco de opes relevantes includas entre chaves, como mostrado no Exemplo 20.4, Entrada da zona para my-domain.de (p 395). Para definir uma zona escrava, altere type para slave e especifique um servidor de nomes que administre essa zona como master (que, por sua vez, pode ser uma escrava de outra master), como mostrado no Exemplo 20.5, Entrada da zona para otherdomain.de (p 396).

Domain Name System (Sistema de Nomes de Domnio)

395

Exemplo 20.5 Entrada da zona para other-domain.de


zone "other-domain.de" in { type slave; file "slave/other-domain.zone"; masters { 10.0.0.1; }; };

As opes de zona: type master; Ao especificar master, comunique ao BIND que a zona gerenciada pelo servidor de nomes local. Esse procedimento pressupe que um arquivo de zona tenha sido criado no formato correto. type slave; Esta zona transferida de outro servidor de nomes. Ela deve ser usada juntamente com masters. type hint; A zona . do tipo hint usada para definir os servidores de nomes raiz. Essa definio de zona pode ser deixada assim. arquivo my-domain.zone ou arquivo slave/other-domain.zone; Esta entrada especifica o arquivo em que os dados da zona para o domnio esto localizados. Este arquivo no necessrio para uma escrava, pois os dados so buscados em outro servidor de nomes. Para diferenciar arquivos master de escravos, use o diretrio slave para os arquivos escravos. masters { endereo-ip-servidor; }; Esta entrada s necessria para zonas escravas. Ela especifica o servidor de nomes do qual o arquivo da zona deve ser transferido. allow-update {! *; }; Esta opo controla o acesso de gravao externo, permitindo que os clientes faam uma entrada no DNS, o que normalmente no desejvel por razes de segurana. Sem essa entrada, as atualizaes da zona no so permitidas. A entrada acima obtm o mesmo porque ! * probe efetivamente qualquer atividade afim.

396

Referncia

20.5 Arquivos de zona


So necessrios dois tipos de arquivos de zona. Um designa endereos IP a nomes de hosts e o outro faz o oposto: fornece um nome de host a um endereo IP. DICA: Usando o ponto em arquivos de zona O . tem um significado importante nos arquivos de zona. Se os nomes de host forem designados sem um . final, a zona ser anexada. Nomes de host completos especificados sem um nome de domnio completo devem terminar com um . para evitar que o domnio seja adicionado a eles novamente. Pontos ausentes ou colocados erradamente so provavelmente a causa mais freqente de erros de configurao do servidor de nomes. O primeiro caso a considerar o arquivo de zona world.zone, responsvel pelo domnio world.cosmos, exibido no Exemplo 20.6, Arquivo /var/lib/named/world.zone (p 397). Exemplo 20.6 Arquivo /var/lib/named/world.zone
$TTL 2D world.cosmos. IN SOA 2003072441 1D 2H 1W 2D ) IN NS IN MX gateway sun moon earth mars www IN IN IN IN IN IN IN A A A A A A CNAME gateway serial refresh retry expiry minimum root.world.cosmos. (

; ; ; ; ;

gateway 10 sun 192.168.0.1 192.168.1.1 192.168.0.2 192.168.0.3 192.168.1.2 192.168.1.3 moon

Linha 1: $TTL define o tempo padro de operao a ser aplicado em todas as entradas deste arquivo. Neste exemplo, as entradas so vlidas por um perodo de dois dias (2 D).

Domain Name System (Sistema de Nomes de Domnio)

397

Linha 2: Onde o registro de controle SOA (start of authority) iniciado: O nome do domnio a ser administrado world.cosmos na primeira posio. Ele termina com um ., caso contrrio a zona seria anexada outra vez. Como alternativa, possvel inserir uma @ aqui, caso em que a zona seria extrada da entrada correspondente em /etc/named.conf. Depois, IN SOA ser o nome do servidor de nomes master dessa zona. O nome expandido de gateway para gateway.world.cosmos, pois ele no termina com um .. Depois, exibido o endereo de e-mail da pessoa responsvel por esse servidor de nomes. Como o sinal de @ j tem um significado especial, o . inserido aqui, no lugar dele. Para root@world.cosmos, a entrada deve ser lida como root.world.cosmos.. O . deve ser includo no fim para evitar que a zona seja adicionada. O ( inclui todas as linhas at ), no registro do SOA. Linha 3: O serial number um nmero arbitrrio que aumentado sempre que o arquivo mudado. Ele necessrio para informar os servidores de nomes secundrios (servidores escravos) sobre as mudanas. Para isso, um nmero de 10 dgitos com a data e um nmero de execuo, escrito como YYYYMMDDNN , o formato mais usado. Linha 4: A refresh rate especifica o intervalo de tempo no qual os servidores de nomes secundrios verificam o serial number da zona. Neste caso, um dia: Linha 5: A retry rate especifica o intervalo de tempo no qual um servidor de nomes secundrio tenta entrar em contato com o servidor primrio novamente, no caso de erro. Aqui, duas horas. Linha 6: O expiration time especifica o intervalo de tempo no qual um servidor de nomes secundrio descarta os dados em cache, caso no tenha conseguido restabelecer contato com o servidor primrio. Aqui, uma semana.

398

Referncia

Linha 7: A ltima entrada do registro SOA especifica o negative caching TTL o tempo em que resultados de consultas no resolvidas do DNS de outros servidores podem ser armazenados em cache. Linha 9: O IN NS especifica o servidor de nomes responsvel por este domnio. gateway estendido para gateway.world.cosmos, pois no termina com um .. Pode haver vrias linhas como esta: uma para o servidor de nomes primrio e outra para o secundrio. Se notify no for enviado para no em /etc/named.conf, todos os servidores de nomes listados aqui sero informados sobre as mudanas feitas nos dados da zona. Linha 10: O registro MX especifica o servidor de correio eletrnico que aceita, processa e encaminha e-mails para o domnio world.cosmos. Neste exemplo, o host sun.world.cosmos. O nmero na frente do nome do host o valor de preferncia. Se houver vrias entradas de MX, o servidor de correio eletrnico com menor valor ser pego primeiro e se houver falha na entrega de mensagens, ser feita uma nova tentativa com o prximo valor mais alto. Linhas 12 a 17: Estes so os registros reais em que um ou mais endereos IP so atribudos a nomes de host. Os nomes so listados aqui sem um ., pois eles no incluem seus domnios, ento world.cosmos adicionado a todos. Dois endereos IP so designados ao host gateway, pois ele tem duas placas de rede. Em todos os locais em que o endereo de host for tradicional (IPv4), o registro ser marcado com A. Se o endereo for um endereo IPv6, a entrada ser marcada com A6. O token anterior para os endereos IPv6 era AAAA, agora obsoleto. NOTA: Sintaxe A6 O registro A6 tem uma ligeira diferena de sintaxe em relao ao AAAA. Devido possibilidade de fragmentao, necessrio fornecer informaes sobre as partes ausentes antes do endereo. Voc deve fornecer essas informaes mesmo se quiser usar um endereo completamente desfragmentado. Para o antigo registro AAAA com a sintaxe
pluto IN pluto IN AAAA 2345:00C1:CA11:0001:1234:5678:9ABC:DEF0 AAAA 2345:00D2:DA11:0001:1234:5678:9ABC:DEF0

Domain Name System (Sistema de Nomes de Domnio)

399

necessrio adicionar as informaes sobre as partes ausentes no formato A6. Como o exemplo acima est completo (no h nenhum bit ausente), o formato A6 deste registro :
pluto IN pluto IN AAAA 2345:00C1:CA11:0001:1234:5678:9ABC:DEF0 AAAA 2345:00D2:DA11:0001:1234:5678:9ABC:DEF0

No use endereos IPv4 com mapeamento IPv6. Se um host tiver um endereo IPv4, ele usar um registro A, no um A6. Linha 18: O lias www pode ser usado como endereo mond (CNAME significa nome cannico). O pseudodomnio in-addr.arpa usado para a pesquisa reversa de endereos IP em nomes de hosts. Ele anexado parte de rede do endereo, em notao reversa. Ento, 192.168.1 resolvido como 1.168.192.in-addr.arpa. Consulte o Exemplo 20.7, Pesquisa reversa (p 400). Exemplo 20.7 Pesquisa reversa

$TTL 2D 1.168.192.in-addr.arpa. IN SOA gateway.world.cosmos. root.world.cosmos. ( 2003072441 ; serial 1D ; refresh 2H ; retry 1W ; expiry 2D ) ; minimum IN NS 1 2 3 IN PTR IN PTR IN PTR gateway.world.cosmos. gateway.world.cosmos. earth.world.cosmos. mars.world.cosmos.

Linha 1: STLL define o TTL padro aplicado a todas as entradas aqui. Linha 2: O arquivo de configurao deve ativar a pesquisa reversa para a rede 192.168.1.0. Supondo que a zona seja chamada de 1.168.192.in-addr.arpa, ela no deve ser adicionada a nomes de hosts. Portanto, todos os nomes de host so digitados na forma completa, com seu domnio

400

Referncia

e um . no fim. As entradas restantes correspondem s descritas no exemplo de world.cosmos anterior. Linhas 3 a 7: Consulte o exemplo anterior para world.cosmos. Linha 9: Novamente, esta linha especifica o servidor de nomes responsvel pela zona. No entanto, dessa vez o nome digitado na forma completa, com o domnio e um . no fim. Linhas 11 a 13: Estas so as dicas dos registros do indicador nos endereos IP dos respectivos hosts. Somente a ltima parte do endereo IP digitada no comeo da linha, sem o . no fim. Anexar a zona a ele (sem .in-addr.arpa) resulta na ordem reversa de todo o endereo IP. Normalmente, as transferncias de zona entre verses diferentes do BIND devem ser possveis sem problemas.

20.6 Atualizao dinmica dos dados da zona


O termo atualizao dinmica se refere a operaes pelas quais as entradas dos arquivos de zona de um servidor master so adicionadas, mudadas ou apagadas. Esse mecanismo descrito no RFC 2136. A atualizao dinmica configurada individualmente para cada entrada de zona se voc adicionar uma regra allow-update ou update-policy opcional. As zonas a serem atualizadas dinamicamente no devem ser editadas manualmente. Transmita as entradas a serem atualizadas para o servidor com o comando nsupdate. Para obter a sintaxe exata desse comando, verifique a pgina de manual correspondente a nsupdate (man 8 nsupdate). Por razes de segurana, qualquer atualizao desse tipo deve ser executada com chaves TSIC, conforme descrito na Seo 20.7, Transaes de segurana (p 402).

Domain Name System (Sistema de Nomes de Domnio)

401

20.7 Transaes de segurana


Transaes seguras podem ser feitas com a ajuda de TSIGs (Transaction Signatures, Assinaturas de Transao), baseadas em chaves secretas compartilhadas (tambm chamadas de chaves TSIGs). Esta seo descreve como gerar e usar tais chaves. Transaes seguras so necessrias para a comunicao entre servidores diferentes e para a atualizao dinmica dos dados de zona. Tornar o controle de acesso dependente de chaves muito mais seguro do que meramente confiar em endereos IP. Gere uma chave TSIG com o seguinte comando (para obter detalhes, consulte man dnssec-keygen):
dnssec-keygen -a hmac-md5 -b 128 -n HOST host1-host2

Sero criados dois arquivos com nomes similares a:


Khost1-host2.+157+34265.private Khost1-host2.+157+34265.key

A chave (uma string como ejIkuCyyGJwwuN3xAteKgg==) encontrada nos dois arquivos. Para us-la em transaes, o segundo arquivo (Khost1-host2.+157 +34265.key) deve ser transferido para o host remoto, de preferncia de forma segura (usando scp, por exemplo). No servidor remoto, a chave deve ser includa no arquivo /etc/named.conf para permitir uma comunicao segura entre host1 e host2:
key host1-host2. { algorithm hmac-md5; secret ";ejIkuCyyGJwwuN3xAteKgg==; };

ATENO: Permisses de arquivo de /etc/named.conf Verifique se as permisses do arquivo /etc/named.conf foram restringidas adequadamente. O padro para esse arquivo 0640, com o proprietrio sendo root e o grupo, named. Como alternativa, mova as chaves para um outro arquivo com permisses especialmente limitadas, que ento ser includo de /etc/named.conf. Para permitir que o servidor host1 use a chave para host2 (que tem o endereo 192.168.2.3 neste exemplo), o arquivo /etc/named.conf do servidor deve incluir a seguinte regra:

402

Referncia

server 192.168.2.3 { keys { host1-host2. ;}; };

Entradas anlogas devem ser includas nos arquivos de configurao de host2. Adicione chaves TSIG a quaisquer ACLs (listas de controle de acesso, no confundir com as ACLs do sistema de arquivos) definidas por endereos IP e intervalos de endereo para possibilitar a segurana da transao. A entrada correspondente deve ter esta aparncia:
allow-update { key host1-host2. ;};

Este tpico discutido com mais detalhes no BIND Administrator Reference Manual (Manual de Referncia do Administrador BIND), em update-policy.

20.8 Segurana do DNS


A DNSSEC, ou segurana do DNS, descrita no RFC 2535. As ferramentas disponveis para a DNSSEC sero discutidas no Manual do BIND. Uma zona considerada segura deve ter uma ou mais chaves associadas a ela. Elas so geradas com o comando dnssec-keygen, assim como as chaves do host. O algoritmo de criptografia de DSA usado atualmente para gerar essas chaves. As chaves pblicas geradas devem ser includas no arquivo de zona correspondente, com uma regra $INCLUDE. Com o comando dnssec-makekeyset, todas as chaves geradas so empacotadas em um conjunto, que deve ser transferido para a zona-pai de forma segura. Na zonapai, o conjunto assinado com dnssec-signkey. Os arquivos gerados por esse comando so usados para assinar as zonas com o comando dnssec-signzone, que por sua vez gera os arquivos a serem includos em cada zona de /etc/named.conf.

20.9 Mais informaes


Para obter mais informaes, consulte o BIND Administrator Reference Manual (Manual de Referncia do Administrador do BIND) do pacote bind-doc, instalado em /usr/ share/doc/packages/bind/. Considere ainda consultar os RFCs citados pelo manual e as pginas de manual includas no BIND. O arquivo /usr/share/doc/

Domain Name System (Sistema de Nomes de Domnio)

403

packages/bind/README.SuSE contm informaes atualizadas sobre o BIND no SUSE Linux.

404

Referncia

Usando o NIS

21

Assim que vrios sistemas UNIX em uma rede desejam acessar recursos comuns, tornase muito importante que todas as identidades de usurio e grupo sejam a mesma para todas as mquinas nessa rede. A rede deve ser transparente para os usurios: qualquer que seja a mquina que estiverem usando, sempre se encontraro exatamente no mesmo ambiente. Isso possvel atravs dos servios do NIS e do NFS. O NFS distribui sistemas de arquivos em uma rede e discutido no Captulo 22, Compartilhando sistemas de arquivos com o NFS (p 415). O NIS (Network Information Service - Servio de Informaes de Rede) pode ser descrito como um servio parecido com um banco de dados que fornece acesso ao contedo de /etc/passwd, /etc/shadow e /etc/group atravs de redes. O NIS tambm pode ser usado para outros fins (disponibilizar o contedo de arquivos como /etc/hosts ou /etc/services, por exemplo), mas isso est alm do escopo dessa introduo. As pessoas, normalmente, referem-se ao NIS como YP (Yellow Pages - Pginas Amarelas), pois ele funciona como se fosse as pginas amarelas da rede.

21.1 Configurando servidores NIS


Para distribuir as informaes NIS pelas redes, voc pode ter um servidor nico (um master) que atenda todos os clientes ou servidores NIS escravos que solicitem essas informaes do master e depois retransmitam as informaes a seus respectivos clientes. Para configurar apenas um servidor NIS para a rede, prossiga com a Seo 21.1.1, Configurando um servidor NIS master (p 406).

Usando o NIS

405

Se o servidor NIS master tiver que exportar os dados para servidores escravos em outras sub-redes, configure o servidor master conforme descrito na Seo 21.1.1, Configurando um servidor NIS master (p 406) e configure os servidores escravos das sub-redes conforme descrito na Seo 21.1.2, Configurando um servidor NIS escravo (p 411).

21.1.1 Configurando um servidor NIS master


Para configurar um servidor NIS master para sua rede, proceda da seguinte maneira: 1 Inicie o YaST Servios de Rede Servidor NIS. 2 Se precisar somente de um servidor NIS em sua rede ou se for necessrio que esse servidor funcione como master para outros servidores NIS escravos, selecione Instalar e configurar Servidor Master NIS. O YaST instala os pacotes necessrios. DICA Se o software do servidor NIS j estiver instalado na sua mquina, clique em Criar um servidor NIS mestre para iniciar a criao de um servidor NIS. Figura 21.1 Configurao do servidor NIS

406

Referncia

3 Determine opes de configurao NIS bsicas: a Digite o nome do domnio NIS. b Defina se o host tambm deve ser um cliente NIS, possibilitando que os usurios efetuem login e acessem os dados do servidor NIS. Para isso, selecione Este host tambm um cliente NIS. Selecione Mudana de senhas para permitir que os usurios da sua rede (usurios locais e aqueles gerenciados pelo servidor NIS) troquem suas senhas no servidor NIS (com o comando yppasswd). Isso disponibiliza as opes Permitir mudanas no campo GECOS e Permitir mudanas no shell de login. GECOS significa que os usurios tambm podem mudar suas configuraes de endereo e nomes com o comando ypchfn. SHELL permite que os usurios alterem seu shell padro com o comando ypchsh, por exemplo, para mudar de bash para sh. O shell novo deve ser uma das entradas predefinidas em /etc/shells. c Se o seu servidor NIS tiver que atuar como servidor master para servidores escravos NIS em outras sub-redes, selecione Existe um Servidor Escravo NIS ativo. d Selecione Abrir Portas no Firewall para fazer com que o YaST adapte as configuraes do firewall para o servidor NIS.

Usando o NIS

407

Figura 21.2 Configurao de servidor master

e Saia dessa caixa de dilogo com Prximo ou clique em Outras configuraes globais para fazer configuraes extras. Outras configuraes globais inclui a opo para mudar o diretrio de origem do servidor NIS (/etc por padro). Alm disso, possvel mesclar senhas aqui. A configurao deve ser Sim para que os arquivos (/etc/passwd, /etc/shadow e /etc/ group) sejam usados para criar o banco de dados do usurio. Tambm determine o menor ID de grupo e usurio que deve ser oferecido pelo NIS. Clique em OK para confirmar as configuraes e voltar tela anterior.

408

Referncia

Figura 21.3 Mudando o diretrio e sincronizando arquivos para um servidor NIS

4 Se voc habilitou anteriormente a opo Existe um servidor de NIS escravo ativo, digite os nomes de host usados como escravos e clique em Prximo. 5 Se voc no usa servidores escravos, a configurao escrava ignorada e voc continuar diretamente na caixa de dilogo para a configurao do banco de dados. Aqui, especifique os mapas, os bancos de dados parciais a serem transferidos do servidor NIS para o cliente. As configuraes padro geralmente so adequadas. Para sair dessa caixa de dilogo, clique em Prximo. 6 Marque que mapas devem estar disponveis e clique em Prximo para continuar.

Usando o NIS

409

Figura 21.4 Configurao de mapas do servidor NIS

7 Digite os hosts que tm permisso para fazer consultas ao servidor NIS. Clique no boto apropriado para adicionar, editar ou apagar hosts. Especifique de quais redes as solicitaes podem ser enviadas para o servidor NIS. Normalmente, esta sua rede interna. Nesse caso, deve haver as duas entradas a seguir:
255.0.0.0 0.0.0.0 127.0.0.0 0.0.0.0

A primeira entrada habilita conexes do seu prprio host, que o servidor NIS. A segunda permite que todos os hosts enviem as solicitaes ao servidor.

410

Referncia

Figura 21.5 Configurando permisses de solicitao para um servidor NIS

8 Clique em Concluir para gravar as mudanas e sair da configurao.

21.1.2 Configurando um servidor NIS escravo


Para configurar outros servidores escravos NIS na rede, proceda da seguinte forma: 1 Inicie o YaST Servios de Rede Servidor NIS. 2 Selecione Instalar e configurar Servidor Escravo NIS e clique em Prximo. DICA Se o software do servidor NIS j estiver instalado na sua mquina, clique em Criar um servidor NIS escravo para iniciar a criao de um servidor NIS escravo. 3 Conclua a configurao bsica do servidor NIS escravo:

Usando o NIS

411

a Digite o domnio NIS. b Digite o nome do host ou endereo IP do servidor master. c Selecione Este host tambm um cliente NIS para habilitar logins de usurio nesse servidor. d Adapte as configuraes do firewall com Abrir Portas no Firewall. e Clique em Prximo. 4 Digite os hosts que tm permisso para fazer consultas ao servidor NIS. Clique no boto apropriado para adicionar, editar ou apagar hosts. Especifique de quais redes as solicitaes podem ser enviadas para o servidor NIS. Normalmente, isso se refere a todos os hosts. Nesse caso, deve haver as duas entradas a seguir:
255.0.0.0 0.0.0.0 127.0.0.0 0.0.0.0

A primeira entrada habilita conexes do seu prprio host, que o servidor NIS. A segunda permite que todos os hosts com acesso mesma rede enviem solicitaes ao servidor. 5 Clique em Concluir para gravar as mudanas e sair da configurao.

21.2 Configurando clientes NIS


Use o mdulo Cliente NIS para configurar uma estao de trabalho para usar o NIS. Selecione se o host possui um endereo IP esttico ou se recebe um emitido pelo DHCP. O DHCP tambm pode fornecer o domnio NIS e o servidor NIS. Para obter mais informaes sobre o DHCP, consulte o Captulo 23, DHCP (p 421). Se um endereo IP esttico for usado, especifique o domnio NIS e o servidor NIS manualmente. Consulte a Figura 21.6, Definindo o domnio e o endereo de um servidor NIS (p 413). Procurar faz o YaST procurar um servidor NIS ativo em toda a rede. Dependendo do tamanho da rede local, esse pode ser um processo demorado. Broadcast solicita um servidor na rede local quando no h resposta dos servidores especificados. Voc tambm pode especificar vrios servidores, digitando seus endereos em Endereos IP dos servidores NIS e separando-os com espaos. 412 Referncia

Dependendo da instalao local, voc tambm poder ativar o automounter. Essa opo tambm instala softwares adicionais, se necessrio. Nas configuraes avanadas, desabilite a opo Responder aos Hosts Remotos para que outros hosts no possam consultar o servidor usado pelo seu cliente. Ao marcar a opo Servidor Estragado, o cliente poder receber respostas de um servidor que se comunica por uma porta sem privilgio. Para obter mais informaes, consulte man ypbind. Ao terminar suas configuraes, clique em Concluir para grav-las e retornar ao centro de controle do YaST. Figura 21.6 Definindo o domnio e o endereo de um servidor NIS

Usando o NIS

413

Compartilhando sistemas de arquivos com o NFS

22

Como mencionado no Captulo 21, Usando o NIS (p 405), o NFS funciona com o NIS para tornar uma rede transparente para o usurio. Com o NFS, possvel distribuir sistemas de arquivos pela rede. No importa em qual terminal os usurios esto conectados. Eles sempre se encontram no mesmo ambiente. Assim como o NIS, o NFS um sistema cliente/servidor. Uma mquina pode ser ambos pode fornecer sistemas de arquivos pela rede (exportar) e montar sistemas de arquivos a partir de outros hosts (importar). IMPORTANTE: Necessidade do DNS A princpio, todas as exportaes podem ser feitas usando somente endereos IP. Para evitar tempos de espera, voc deve ter um sistema DNS em funcionamento. Isso necessrio pelo menos para fins de registro, pois o daemon montado inverte pesquisas.

22.1 Importando sistemas de arquivos com o YaST


Usurios autorizados para fazer isso podem montar diretrios NFS a partir de um servidor NFS em suas prprias rvores de arquivos. Isso pode ser feito mais facilmente usando o mdulo YaST Cliente NFS. Basta digitar o nome de host do servidor NFS, o diretrio a ser importado e o ponto de montagem no qual esse diretrio deve ser montado localmente. Tudo isso feito depois que voc clica em Adicionar na primeira caixa de Compartilhando sistemas de arquivos com o NFS 415

dilogo. Clique em Abrir Porta no Firewall para abrir o firewall e permitir que computadores remotos acessem o servio. O status do firewall mostrado prximo caixa de seleo. Ao clicar em OK, voc grava suas mudanas. Consulte a Figura 22.1, Configurao do cliente NFS com o YaST (p 416). Figura 22.1 Configurao do cliente NFS com o YaST

22.2 Importando sistemas de arquivos manualmente


Os sistemas de arquivos podem ser facilmente importados manualmente de um servidor NFS. O nico pr-requisito executar um mapeador de porta RPC, que pode ser iniciado com a digitao do comando rcportmap start como root. Depois que esse prrequisito executado, os sistemas de arquivos remotos exportados nas respectivas mquinas podem ser montados no sistema de arquivos da mesma forma que discos rgidos locais, usando o comando mount com a seguinte sintaxe:
mount host:remote-path local-path

Se os diretrios de usurio da mquina sun, por exemplo, precisarem ser importados, use o seguinte comando:

416

Referncia

mount sun:/home /home

22.3 Exportando sistemas de arquivos com o YaST


Com o YaST, transforme um host de sua rede em um servidor NFS um servidor que exporta diretrios e arquivos para todos os hosts aos quais ele concede acesso. Isso poderia ser feito para fornecer aplicativos a todos os membros de um grupo, sem installos localmente em cada um dos hosts. Para instalar um servidor como esse, inicie o YaST e selecione Servios de Rede Servidor NFS. Uma caixa de dilogo como a da Figura 22.2, Ferramenta de configurao do servidor NFS (p 417) exibida. Figura 22.2 Ferramenta de configurao do servidor NFS

Em seguida, ative Iniciar Servidor NFS e clique em Prximo. No campo de texto superior, digite os diretrios a serem exportados. Abaixo, digite os hosts que devem ter acesso a eles. Essa caixa de dilogo mostrada na Figura 22.3, Configurando um servidor NFS com o YaST (p 418). H quatro opes que podem ser configuradas para cada host: host nico, grupos de rede, curingas e redes IP. Uma explicao mais detalhada dessas opes fornecida por man exports. Sair conclui a configurao. Compartilhando sistemas de arquivos com o NFS 417

Figura 22.3 Configurando um servidor NFS com o YaST

IMPORTANTE: Configurao automtica de firewall Se um firewall estiver ativo no seu sistema (SuSEfirewall2), o YaST adaptar sua configurao para o servidor NFS habilitando o servio nfs quando Abrir Portas no Firewall for selecionado.

22.4 Exportando sistemas de arquivos manualmente


Se no voc deseja usar o YaST, verifique se os sistemas a seguir podem ser executados no servidor NFS: portmapper RPC (portmap) daemon de montagem do RPC (rpc.mountd) daemon NFS do RPC (rpc.nfsd)

418

Referncia

Para que esses servios sejam iniciados pelos scripts /etc/init.d/portmap e /etc/init.d/nfsserver quando o sistema for inicializado, digite os comandos insserv /etc/init.d/nfsserver e insserv /etc/init.d/portmap. Defina tambm quais sistemas de arquivos devem ser exportados para quais hosts do arquivo de configurao /etc/exports. Para que cada diretrio possa exportar, uma linha necessria para configurar as mquinas que podem acessar esse diretrio com determinadas permisses. Todos os subdiretrios desse diretrio tambm so automaticamente exportados. As mquinas autorizadas so normalmente especificadas com seus nomes completos (incluindo o nome de domnio), mas possvel usar curingas como * ou ? (que se expandem da mesma forma que o shell Bash). Se nenhuma mquina for especificada aqui, qualquer mquina poder importar esse sistema de arquivos com as permisses fornecidas. Configure as permisses entre colchetes aps o nome da mquina para o sistema de arquivos a ser exportado. As opes mais importantes so mostradas na Tabela 22.1, Permisses para sistema de arquivos exportados (p 419). Tabela 22.1 opo ro Permisses para sistema de arquivos exportados significado O sistema de arquivos exportado com permisso Apenas Leitura (padro). O sistema de arquivos exportado com permisso leituragravao. Isso garante que o usurio root de uma mquina importada no possua permisses root nesse sistema de arquivos. Isso pode ser feito designando o ID de usurio 65534 a usurios com o ID 0 (root). Esse ID de usurio deve ser configurado como nobody (que o padro).

rw

root_squash

no_root_squash No designa o ID de usurio 0 ao ID de usurio 65534, mantendo as permisses de root vlidas. link_relative Converte links absolutos (os que iniciam com /) em uma seqncia de ../. Isso s ter utilidade se todo o sistema de arquivos de uma mquina estiver montado (padro).

Compartilhando sistemas de arquivos com o NFS

419

opo link_absolute map_identity

significado Os links simblicos permanecem intactos. Os IDs de usurio so exatamente os mesmos no cliente e no servidor (padro). Cliente e servidor no possuem IDs de usurio correspondentes. Isso faz com que o nfsd crie uma tabela de converso para IDs de usurio. O daemon ugidd necessrio para que isso funcione.

map_daemon

Seu arquivo exportaes talvez fique parecido com o Exemplo 22.1, /etc/exports (p 420). /etc/exports lido por mountd e nfsd. Se voc fizer mudanas nesse arquivo, reinicie mountd e nfsd para que elas sejam efetivadas. Isso pode ser feito facilmente com o rcnfsserver restart. Exemplo 22.1 /etc/exports
# # /etc/exports # /home /usr/X11 /usr/lib/texmf / /home/ftp # End of exports

sun(rw) venus(rw) sun(ro) venus(ro) sun(ro) venus(rw) earth(ro,root_squash) (ro)

22.5 Mais informaes


Informaes sobre como configurar um servidor NFS esto disponveis em /usr/ share/doc/packages/nfs-utils/README e nos documentos listados. A documentao tcnica detalhada est disponvel online em http://nfs .sourceforge.net/.

420

Referncia

DHCP

23

A finalidade do DHCP designar configuraes de redes de forma central, a partir de um servidor, em vez de defini-las localmente em cada estao de trabalho. Um host configurado para usar o DHCP no tem controle sobre seu prprio endereo esttico. Ele habilitado para configurar a si mesmo de forma completa e automtica, de acordo com as direes do servidor. Se voc usar o NetworkManager no lado cliente, no ser necessrio configurar o cliente. Isto til caso haja ambientes variveis e apenas uma interface ativa de cada vez. Nunca use o NetworkManager em uma mquina que execute um servidor DHCP. Uma forma de configurar um servidor DHCP identificar cada cliente atravs do endereo de hardware de sua respectiva placa de rede (na maioria dos casos, fixa) e, ento, fornecer a esse cliente configuraes idnticas toda vez que ele se conectar ao servidor. O DHCP tambm pode ser configurado para designar endereos a cada cliente interessado de forma dinmica, a partir de um pool de endereos configurado para isso. No ltimo caso, o servidor DHCP tenta designar o mesmo endereo ao cliente toda vez que ele recebe uma solicitao, mesmo durante perodos mais longos. Isso s funciona enquanto a rede no tiver mais clientes do que endereos. O DHCP facilita a vida dos administradores do sistema. Quaisquer mudanas, mesmo as maiores, relacionadas a endereos e configurao de rede, geralmente podem ser implementadas de forma centralizada, editando o arquivo de configurao do servidor. Isso mais conveniente do que reconfigurar inmeras estaes de trabalho. Tambm muito mais fcil integrar mquinas, especialmente as mais novas, na rede, pois podem receber um endereo IP do pool. A recuperao de configuraes de rede apropriadas de um servidor DHCP til principalmente no caso de laptops regularmente usados em redes diferentes.

DHCP

421

Um servidor DHCP no s fornece o endereo IP e a mscara de rede, como tambm os endereos do servidor de nomes, o nome de host, o nome de domnio e o gateway a ser usado pelo cliente. Alm disso, o DHCP permite que vrios outros parmetros sejam configurados de forma centralizada, por exemplo, um servidor de horrios do qual clientes possam fazer poll do horrio atual ou at mesmo um servidor de impresso.

23.1 Configurando um servidor DHCP com o YaST


Quando o mdulo iniciado pela primeira vez, um assistente iniciado, solicitando que voc tome algumas decises bsicas referentes administrao do servidor. A concluso dessa configurao inicial produz uma configurao de servidor muito bsica, que deve funcionar com aspectos essenciais. O modo de especialista pode ser usado para lidar com tarefas de configurao mais avanadas. seleo de placa Na primeira etapa, o YaST procura interfaces de rede disponveis no sistema e, depois, mostra-as em uma lista. Na lista, selecione a interface em que o servidor DHCP deve escutar e clique em Adicionar. Em seguida, selecione Abrir Firewall para Interfaces Selecionadas para abrir o firewall para essa interface. Consulte a Figura 23.1, Servidor DHCP: seleo de placa (p 423).

422

Referncia

Figura 23.1 Servidor DHCP: seleo de placa

configuraes globais Nos campos de entrada, fornea os detalhes da rede para todos os clientes que o servidor DHCP deve gerenciar. Esses detalhes so o nome de domnio, o endereo de um servidor de horrio, os endereos do servidor de nomes primrio e secundrio, os endereos de um servidor WINS e de impresso (para uma rede mista com os clientes Windows e Linux), o endereo de gateway e o tempo de aluguel. Consulte a Figura 23.2, Servidor DHCP: configuraes globais (p 424).

DHCP

423

Figura 23.2 Servidor DHCP: configuraes globais

DHCP dinmico Nessa etapa, configure o nvel de dinamismo dos endereos IP designados aos clientes. Para fazer isso, especifique uma faixa IP a partir da qual o servidor pode designar endereos a clientes DHCP. Todos esses endereos precisam ser cobertos pela mesma mscara de rede. Especifique tambm o tempo de aluguel durante o qual um cliente pode manter seu endereo IP sem precisar solicitar uma extenso do aluguel. Outra opo especificar o tempo de aluguel mximo, que o perodo durante o qual o servidor reserva um endereo IP para um cliente especfico. Consulte a Figura 23.3, Servidor DHCP: DHCP dinmico (p 425).

424

Referncia

Figura 23.3 Servidor DHCP: DHCP dinmico

Concluindo a configurao e definindo o modo de incio Depois da terceira parte do assistente de configurao, uma ltima caixa de dilogo mostrada, na qual voc pode definir como o servidor DHCP deve ser inicializado. Aqui, especifique se o servidor DHCP deve iniciar automaticamente quando o sistema for inicializado ou iniciar manualmente (por exemplo, para fins de teste) quando necessrio. Clique em Concluir para concluir a configurao do servidor. Consulte a Figura 23.4, Servidor DHCP: Inicializao (p 426).

DHCP

425

Figura 23.4 Servidor DHCP: Inicializao

23.2 Pacotes de software DHCP


Tanto um servidor DHCP quanto clientes DHCP esto disponveis para o SUSE Linux. O servidor DHCP disponvel o dhcpd (publicado pelo Internet Software Consortium). No lado do cliente, escolha entre dois programas clientes DHCP: dhclient (tambm do ISC) e daemon cliente do DHCP no pacote dhcpcd. O SUSE Linux instala o dhcpcd por padro. O programa muito fcil de manusear e iniciado automaticamente em cada inicializao do sistema para monitorar um servidor DHCP. Ele no precisa de um arquivo de configurao para fazer seu trabalho e funciona assim que instalado na maioria das configuraes padro. Em situaes mais complexas, use o dhclient ISC, que controlado por meio de um arquivo de configurao /etc/dhclient.conf.

23.3 O dhcpd do servidor DHCP


O ncleo de qualquer sistema DHCP o daemon do protocolo de configurao do host dinmico. Esse servidor aluga endereos e observa como so usados, de acordo com

426

Referncia

as configuraes definidas no arquivo de configurao /etc/dhcpd.conf. Ao mudar os parmetros e valores desse arquivo, um administrador de sistemas pode influenciar o comportamento do programa de vrias formas. Observe o arquivo de amostra bsica /etc/dhcpd.conf no Exemplo 23.1, Arquivo de configurao /etc/dhcpd.conf (p 427). Exemplo 23.1 Arquivo de configurao /etc/dhcpd.conf
default-lease-time 600; max-lease-time 7200; opo opo opo opo opo # 10 minutes # 2 hours

nome de domnio "cosmos.all"; servidores de nomes de domnio 192.168.1.1, 192.168.1.2; endereo de broadcast 192.168.1.255; roteadores 192.168.1.254; mscara de sub-rede 255.255.255.0;

sub-rede 192.168.1.0 mscara de rede 255.255.255.0 { intervalo 192.168.1.10 192.168.1.20; intervalo 192.168.1.100 192.168.1.200; }

Esse arquivo de configurao simples deve ser suficiente para que o servidor DHCP designe endereos IP rede. Verifique se um ponto-e-vrgula foi inserido no final de cada linha, caso contrrio, o dhcpd no ser iniciado. O arquivo de exemplo pode ser dividido em trs sees. A primeira define quantos segundos um endereo IP alugado para um cliente que o solicitou por padro (tempo de aluguel padro) antes de solicitar uma renovao. Essa parte tambm inclui uma declarao do perodo mximo em que uma mquina pode manter um endereo IP designado pelo servidor DHCP sem solicitar uma renovao (max-lease-time). Na segunda parte, alguns parmetros de rede bsicos so definidos em um nvel global: A linha option domain-name define o domnio padro da sua rede. Com a entrada option domain-name-servers, especifique at trs valores para os servidores DNS usados para resolver endereos IP em nomes de host e vice-versa. Preferencialmente, configure um servidor de nomes em sua mquina ou em qualquer outra da rede antes de configurar o DHCP. Esse servidor de nomes deve tambm definir um nome de host para cada endereo dinmico e vice-versa. Para aprender a configurar o seu prprio servidor de nomes, leia o Captulo 20, Domain Name System (Sistema de Nomes de Domnio) (p 381).

DHCP

427

A linha option broadcast-address define o endereo de broadcast a ser usado pelo cliente solicitante. Com option routers, defina para onde o servidor deve enviar pacotes de dados que no puderem ser enviados para um host da rede local (de acordo com o endereo de host de origem e de destino e a mscara de sub-rede fornecidos). Na maioria dos casos, especialmente em redes menores, esse roteador idntico ao gateway da Internet. Com option subnet-mask, especifique a mscara de rede designada a clientes. A ltima seo do arquivo define uma rede, incluindo uma mscara de sub-rede. Para concluir, especifique a faixa de endereos que o daemon do DHCP deve usar para designar endereos IP a clientes interessados. No Exemplo 23.1, Arquivo de configurao /etc/dhcpd.conf (p 427), os clientes podem receber qualquer endereo entre 192.168.1.10 e 192.168.1.20, assim como 192.168.1.100 e 192.168.1.200. Depois de editar essas poucas linhas, voc conseguir ativar o daemon do DHCP com o comando rcdhcpd start. Ele poder ser usado imediatamente. Use o comando rcdhcpd check-syntax para executar uma rpida verificao de sintaxe. Se houver problemas inesperados em sua configurao (o servidor for interrompido com um erro ou no retornar done na inicializao), voc dever descobrir o que aconteceu de errado, procurando informaes no registro do sistema principal /var/log/ messages ou no console 10 ( Ctrl + Alt + F10 ). Em um sistema SUSE Linux padro, o daemon do DHCP iniciado em um ambiente chroot por razes de segurana. Os arquivos de configurao precisam ser copiados para o ambiente chroot para que o daemon possa localiz-los. Normalmente, no preciso se preocupar com isso, pois o comando rcdhcpd start copia automaticamente os arquivos.

23.3.1 Clientes com endereos IP fixos


O DHCP tambm pode ser usado para designar um endereo esttico predefinido a um cliente especfico. Endereos designados explicitamente sempre tm prioridade sobre endereos dinmicos do pool. Um endereo esttico nunca expira da mesma forma que o dinmico, por exemplo, se no houver endereos suficientes disponveis, o servidor precisar redistribu-los entre clientes.

428

Referncia

Para identificar um cliente configurado com um endereo esttico, o dhcpd usa o endereo de hardware, que um cdigo numrico fixo, globalmente exclusivo, que consiste em seis pares de octetos para a identificao de todos os dispositivos da rede (por exemplo, 00:00:45:12:EE:F4). Se as respectivas linhas, como as do Exemplo 23.2, Adies ao arquivo de configurao (p 429), forem adicionadas ao arquivo de configurao do Exemplo 23.1, Arquivo de configurao /etc/dhcpd.conf (p 427), o daemon do DHCP sempre designar o mesmo conjunto de dados ao cliente correspondente. Exemplo 23.2 Adies ao arquivo de configurao
host earth { hardware ethernet 00:00:45:12:EE:F4; fixed-address 192.168.1.21; }

O nome do respectivo cliente (host nome do host, aqui earth) digitado na primeira linha e o endereo MAC na segunda linha. Em hosts Linux, encontre o endereo MAC com o comando ip link show, seguido do dispositivo de rede (por exemplo, eth0). A sada deve conter algo como
link/ether 00:00:45:12:EE:F4

No exemplo anterior, um cliente com uma placa de rede, cujo endereo MAC 00:00:45:12:EE:F4, adquire o endereo IP 192.168.1.21 e o nome de host earth automaticamente. O tipo de hardware a ser inserido ethernet em quase todos os casos, embora token-ring, utilizado freqentemente em sistemas IBM, tambm seja suportado.

23.3.2 Verso SUSE Linux


Para aprimorar a segurana, a verso SUSE do servidor DHCP do ISC vem com o patch no-raiz/chroot de Ari Edelkind aplicado. Isso permite que o dhcpd seja executado com o ID de usurio nobody e em um ambiente chroot (/var/lib/dhcp). Para que isso seja possvel, o arquivo de configurao dhcpd.conf precisa estar localizado em /var/lib/dhcp/etc. O script init copia automaticamente o arquivo para esse diretrio na inicializao. Controle o comportamento do servidor em relao a esse recurso, por meio de entradas no arquivo /etc/sysconfig/dhcpd. Para executar o dhcpd sem o ambiente chroot,

DHCP

429

configure a varivel DHCPD_RUN_CHROOTED em /etc/sysconfig/dhcpd para no. Para permitir que o dhcpd resolva nomes de host, mesmo de dentro do ambiente chroot, alguns outros arquivos de configurao tambm precisam ser copiados: /etc/localtime /etc/host.conf /etc/hosts /etc/resolv.conf Esses arquivos so copiados para /var/lib/dhcp/etc/ quando o script init iniciado. Faa as mudanas necessrias nessas cpias, caso sejam modificadas dinamicamente por scripts como /etc/ppp/ip-up. Entretanto, voc no precisar se preocupar com isso se o arquivo de configurao especificar somente endereos IP (em vez de nomes de host). Se a configurao incluir arquivos adicionais que devem ser copiados para o ambiente chroot, defina-os na varivel DHCPD_CONF_INCLUDE_FILES do arquivo /etc/ sysconfig/dhcpd. Para garantir que o recurso de registro DHCP continue funcionando mesmo depois de uma reinicializao do daemon do syslog-ng, h a entrada adicional SYSLOGD_ADDITIONAL_SOCKET_DHCP no arquivo /etc/sysconfig/ syslog.

23.4 Mais informaes


H mais informaes disponveis sobre o DHCP no site do Internet Software Consortium (http://www.isc.org/products/DHCP/). Tambm possvel encontrar informaes nas pginas de manual do dhcpd, dhcpd.conf, dhcpd.leases e dhcp-options.

430

Referncia

Sincronizao de horrio com NTP

24

O mecanismo NTP (network time protocol) um protocolo para sincronizar a hora do sistema na rede. Primeiro, uma mquina pode obter a hora de um servidor, que uma fonte de tempo confivel. Segundo, a mquina pode agir como uma fonte de horrio para outros computadores na rede. O objetivo duplo manter o tempo absoluto e a sincronizao do horrio do sistema de todas as mquinas na rede. Manter uma hora de sistema exata importante em vrias situaes. O relgio do hardware interno (BIOS) no atende aos requisitos de aplicativos como bancos de dados. A correo manual da hora do sistema levaria a problemas severos pois, por exemplo, um pulo inverso pode causar o mau funcionamento de aplicativos crticos. Em uma rede, em geral necessrio sincronizar a hora do sistema em todas as mquinas, mas o ajuste de hora manual no uma boa abordagem. O xntp fornece um mecanismo para resolver esses problemas. Ele ajusta continuamente a hora do sistema com a ajuda de servidores de horrio confiveis na rede. Ele habilita tambm o gerenciamento de relgios de referncia local como relgios controlados pelo rdio.

24.1 Configurando um cliente NTP com YaST


O xntp est predefinido para usar o relgio do computador local como referncia de horrio. Usar o relgio (BIOS), porm, serve somente como uma alternativa caso no haja uma fonte de horrio de preciso maior disponvel. O SUSE Linux facilita a configurao de um cliente NTP com YaST. Use a configurao rpida ou complexa

Sincronizao de horrio com NTP

431

em clientes que no executam o SUSEfirewall porque esses clientes pertencem a uma intranet protegida. Ambas esto descritas no seguinte.

24.1.1 Configurao de cliente NTP rpida


A configurao de cliente NTP fcil (Servios de Rede Cliente NTP) consiste em duas caixas de dilogo. Defina o modo de inicializao do xntpd e do servidor para consultar a primeira caixa de dilogo. Para iniciar o xntpd automaticamente quando o sistema for inicializado, clique em Durante a Inicializao. Especifique a Configurao do Servidor NTP. Clique em Usar Servidor Aleatrio... se no puder usar um servidor de horrio local, ou clique em Selecionar para acessar uma segunda caixa de dilogo e selecionar um servidor de horrio adequado para sua rede. Figura 24.1 YaST: Configurando um cliente NTP

Na caixa de dilogo de servidor detalhada, determine se voc implementar a sincronizao de horrio usando um servidor de horrio a partir da rede local (Servidor NTP Local) ou um servidor de horrio baseado na Internet que lida com o seu fuso horrio (Servidor NTP Pblico). Para um servidor de horrio local, clique em Busca para iniciar uma consulta SLP por servidores de horrio disponveis na sua rede. Selecione o servidor de horrio mais adequado a partir da lista de resultados de pesquisa e saia da caixa de dilogo com OK. Para um servidor de horrio pblico, selecione o

432

Referncia

pas (fuso horrio) e um servidor adequado da lista sob Servidor NTP Pblico, em seguida, saia da caixa de dilogo com OK. Na caixa de dilogo principal, teste a disponibilidade do servidor selecionado com Testar e saia da caixa de dilogo com Concluir.

24.1.2 Configurao de Cliente NTP Complexa


A configurao complexa de um cliente NTP pode ser acessada sob Configurao Complexa na caixa de dilogo principal do mdulo Cliente NTP, mostrado na Figura 24.1, YaST: Configurando um cliente NTP (p 432), aps selecionar o modo de inicializao conforme descrito na configurao rpida. Figura 24.2 YaST: Configurao de Cliente NTP Complexa

Em Configurao de Cliente NTP Complexa, determine se xntpd deve ser iniciado em uma cadeia chroot. Isso aumenta a segurana caso ocorra um ataque em xntpd, pois isso evita que o invasor comprometa todo o sistema. Configurar o Daemon NTP via DHCP configura o cliente NTP para obter uma lista dos servidores NTP disponveis na rede via DHCP.

Sincronizao de horrio com NTP

433

Os servidores e outras fontes de horrio para cliente a serem consultados esto listados na parte inferior. Modifique esta lista conforme necessrio com Adicionar, Editar e Apagar. Exibir Registro fornece a possibilidade de exibir os arquivos de registro do seu cliente. Clique em Adicionar para adicionar uma nova fonte de informao de horrio. Na caixa de dilogo seguinte, selecione o tipo de fonte com a qual a sincronizao de horrio deve ser realizada. As seguintes opes esto disponveis: Servidor Outra caixa de dilogo permite selecionar um servidor NTP (conforme descrito na Seo 24.1.1, Configurao de cliente NTP rpida (p 432)). Ative Usar para Sincronizao Inicial para acionar a sincronizao da informao de horrio entre o servidor e o cliente quando o sistema inicializado. Um campo de entrada permite especificar opes adicionais para xntpd. Consulte /usr/share/doc/ packages/xntp-doc (parte do pacote xntp-doc) para obter informaes detalhadas. Parceiro Um parceiro uma mquina qual uma relao simtrica estabelecida: ele age como um servidor de horrio e como cliente. Para usar um parceiro na mesma rede em vez de um servidor, insira o endereo do sistema. O restante da caixa de dilogo igual caixa de dilogo Servidor. Relgio controlado pelo rdio Para usar um relgio controlado pelo rdio no seu sistema para a sincronizao de horrio, insira o tipo de relgio, o nmero da unidade, o nome do dispositivo e outras opes nesta caixa de dilogo. Clique em Calibrao do Driver para ajustar o driver. Informaes detalhadas sobre a operao de um relgio controlado por rdio local esto disponveis em /usr/share/doc/packages/xntp-doc/ html/refclock.htm. Transmisso de sada Consultas e informaes sobre horrio tambm podem ser transmitidas na rede. Nesta caixa de dilogo, insira o endereo ao qual estas transmisses devem ser enviadas. No ative a transmisso a menos que voc tenha uma fonte de horrio confivel como um relgio controlado por rdio.

434

Referncia

Transmisso de entrada Se voc deseja que o seu cliente receba suas informaes atravs de transmisso, insira o endereo do qual os respectivos pacotes devem ser aceitos nestes campos.

24.2 Configurando o xntp na rede


A forma mais fcil de usar um servidor de horrio na rede definir parmetros de servidor. Por exemplo, se um servidor de horrio chamado ntp.example.com for alcanvel a partir da rede, adicione seu nome ao arquivo /etc/ntp.conf adicionando a linha server ntp.example.com. Para adicionar mais servidores de horrio, insira linhas adicionais com o servidor de palavras-chave. Aps inicializar o xntpd com o comando rcntpd start, leva aproximadamente uma hora at que o horrio esteja estabilizado e o arquivo de registro para corrigir o relgio do computador local seja criado. Com o arquivo de registro, o erro sistemtico do relgio do hardware pode ser computado assim que o computador for ligado. A correo usada imediatamente, resultando em uma estabilidade maior do horrio do sistema. H duas maneiras possveis de usar o mecanismo NTP como um cliente: Primeiro, o cliente pode consultar o horrio a partir de um servidor conhecido em intervalos regulares. Com vrios clientes, esta abordagem pode causar uma carga alta no servidor. Segundo, o cliente pode esperar por transmisses de NTP enviadas por servidores de horrio de transmisso na rede. Esta abordagem tem a desvantagem de que a qualidade do servidor desconhecida e um servidor transmitindo a informao errada pode causar problemas graves. Se o horrio for obtido atravs de uma transmisso, voc no precisar do nome do servidor. Neste caso, insira a linha broadcastclient no arquivo de configurao /etc/ntp.conf. Para usar um ou mais servidores de horrio conhecidos exclusivamente, insira seus nomes na linha iniciando com servers.

24.3 Configurando um relgio de referncia local


O pacote de software xntp contm drivers para conectar relgios de referncia local. Uma lista de relgios suportados est disponvel no pacote xntp-doc no arquivo /usr/share/doc/packages/xntp-doc/html/refclock.htm. Cada driver

Sincronizao de horrio com NTP

435

est associado a um nmero. No xntp, a configurao real ocorre atravs de pseudo IPs. Os relgios so inseridos no arquivo /etc/ntp.conf como se existissem na rede. Para este propsito, endereos IP especiais so atribudos a eles na forma 127.127.t.u. Aqui, t representa o tipo de relgio e determina o driver a ser usado e u para unidade, que determina a interface usada. Normalmente, os drivers individuais tm parmetros especiais que descrevem detalhes de configurao. O arquivo /usr/share/doc/packages/xntp-doc/html/ driverNN.htm (onde NN o nmero do driver) fornece informaes sobre o tipo especfico de relgio. Por exemplo, o relgio type 8 (relgio controlado por rdio na interface serial) exige um modo adicional que especifica o relgio de forma mais precisa. O mdulo de recebimento Conrad DCF77, por exemplo, tem o modo 5. Para usar este relgio como referncia preferida, especifique a palavra-chave prefer. A linha do servidor completa para um mdulo de recebimento Conrad DCF77 seria:
server 127.127.8.0 mode 5 prefer

Outros relgios seguem o mesmo padro. Seguindo a instalao do pacote xntp-doc, a documentao para o xntp est disponvel no diretrio /usr/share/doc/ packages/xntp-doc/html. O arquivo /usr/share/doc/packages/ xntp-doc/html/refclock.htm fornece links para as pginas do driver descrevendo os parmetros do driver.

436

Referncia

LDAP Um servio de diretrio

25

O LDAP um conjunto de protocolos criado para acessar e manter diretrios de informaes. O LDAP pode ser usado para vrios propsitos, como gerenciamento de grupos e usurios, gerenciamento de configurao de sistema ou gerenciamento de endereos. Este captulo fornece uma compreenso bsica sobre como o OpenLDAP funciona e como gerenciar dados do LDAP com o YaST. Embora haja vrias implementaes do protocolo LDAP, este captulo concentra-se inteiramente na implementao do OpenLDAP. crucial em um ambiente de rede manter informaes importantes estruturadas e rapidamente disponveis. Isso pode ser realizado com um servio de diretrio que, como as pginas amarelas comuns, mantm informaes disponveis em uma forma bem estruturada e rapidamente pesquisvel. No caso ideal, um servidor central mantm os dados em um diretrio e os distribui a todos os clientes usando um determinado protocolo. Os dados so estruturados de forma a permitir que uma ampla variedades de aplicativos os acessem. Desta forma, no necessrio para cada ferramenta de calendrio e cliente de e-mail manter seu prprio banco de dados um repositrio central pode ser acessado em vez disso. Isso reduz bastante o esforo de administrao para as informaes. O uso de um protocolo padronizado e aberto como o LDAP garante que muitos aplicativos de cliente diferentes possam acessar tais informaes. Um diretrio neste contexto um tipo de banco de dados otimizado para pesquisa e leitura rpida e efetiva: Para possibilitar vrios acessos de leitura (simultneos), o acesso de gravao est limitado a um pequeno nmero de atualizaes pelo administrador. Bancos de

LDAP Um servio de diretrio

437

dados convencionais so otimizados para aceitar o mais amplo volume de dados possvel em um perodo curto de tempo. Como acessos de gravao s podem ser executados de forma restrita, um servio de diretrio usado para administrar, em sua maioria, informaes estticas, sem alteraes. Dados em um banco de dados convencional normalmente so alterados com freqncia (dados dinmicos). Nmeros de telefone em um diretrio de empresa no so alterados com tanta freqncia como, por exemplo, os nmeros administrados em contabilidade. Quando dados estticos so administrados, atualizaes dos conjuntos de dados existentes so muito raras. Ao trabalhar com dados dinmicos, especialmente relativos a conjuntos de dados como contas de banco ou contabilidade, a consistncia dos dados de importncia fundamental. Se um valor deve ser subtrado de um local para ser adicionado a outro, ambas as operaes devem ocorrer simultaneamente, em uma transao, para garantir o equilbrio sobre o estoque de dados. Bancos de dados suportam estas transaes. Diretrios no suportam estas transaes. Inconsistncias de curto prazo dos dados so aceitveis em diretrios. O design de um servio de diretrio como o LDAP no criado para suportar mecanismos de consulta ou atualizao complexa. Todos os aplicativos acessando este servio devem obter acesso de forma rpida e fcil. Vrios servios de diretrio existiram previamente e ainda existem no Unix e fora dele. Novell NDS, Microsoft ADS, Banyan's Street Talk e o OSI standard X.500 so apenas alguns exemplos. O LDAP foi originalmente planejado como uma verso menor do DAP, o protocolo de acesso de diretrio, que foi desenvolvido para acessar o X.500. O padro do X.500 regula a organizao hierrquica de entradas de diretrio. O LDAP uma verso menor do DAP. Sem perder a hierarquia de entrada do X.500, beneficie-se das capacidades de plataforma cruzada do LDAP e salve recursos. O uso de TCP/IP facilita o estabelecimento de interfaces entre um aplicativo de acoplagem e o servio LDAP. O LDAP, enquanto isso, evoluiu e usado cada vez mais como uma soluo independente sem o suporte do X.500. O LDAP suporta referncias com o LDAPv3 (a verso de protocolo no pacote openldap2), possibilitando ter bancos de dados distribudos. O uso de SASL (autenticao simples e camada de segurana) tambm novo.

438

Referncia

O LDAP no est limitado a consultar dados dos servidores X.500, como foi planejado originalmente. H um servidor de cdigo aberto slapd, que pode armazenar informaes de objetos em um banco de dados local. H tambm uma extenso chamada slurpd, que responsvel por replicar vrios servidores LDAP. O pacote openldap2 consiste em: slapd Um servidor LDAPv3 independente que administra informaes de objeto em um banco de dados baseado em BerkeleyDB. slurpd Este programa habilita a replicao de modificaes aos dados no servidor LDAP local para outros servidores LDAP instalados na rede. ferramentas adicionais para manuteno do sistema slapcat, slapadd, slapindex

25.1 LDAP versus NIS


O administrador do sistema Unix tradicionalmente usa o servio NIS para resoluo de nomes e distribuio de dados em uma rede. Os dados de configurao contidos nos arquivos em /etc e os diretrios group, hosts, mail, netgroup, networks, passwd, printcap, protocols, rpc e services so distribudos por clientes em toda a rede. Estes arquivos podem ser mantidos sem maior esforo pois so arquivos de texto simples. O tratamento de grandes quantidades de dados, porm, torna-se mais difcil devido a estrutura no existente. O NIS projetado apenas para plataformas Unix. Isso significa que sua utilizao como uma ferramenta de administrao de dados centralizada em redes heterogneas no apropriada. Ao contrrio do NIS, o servio LDAP no est restrito a redes Unix puras. Servidores do Windows (do 2000) suportam o LDAP como um servio de diretrio. A Novell tambm oferece um servio LDAP. Tarefas de aplicativo mencionadas acima so suportadas adicionalmente em sistemas no-Unix. O princpio LDAP pode ser aplicado a qualquer estrutura de dados que deva ser administrado de forma central. Alguns exemplos de aplicativos so: Utilizao como substituto do servio NIS

LDAP Um servio de diretrio

439

Rota de correio (postfix, sendmail) Blocos de endereos para clientes de correio, como Mozilla, Evolution e Outlook Administrao de descries de zona para um servidor de nomes BIND9 Autenticao do usurio com Samba em redes heterogneas Esta lista pode ser estendida pois o LDAP extensvel, ao contrrio do NIS. A estrutura hierrquica claramente definida dos dados facilita a administrao de grandes quantidades de dados, pois pode ser pesquisada de forma melhor.

25.2 Estrutura de uma rvore de diretrios LDAP


Um diretrio LDAP tem uma estrutura de rvores. Todas as entradas (chamadas objetos) do diretrio tm uma posio definida nesta hierarquia. Esta hierarquia chamada de rvore de informao de diretrios (DIT). O caminho completo entrada desejada, que a identifica de forma clara, chamado nome distinto ou DN. Um nico n no caminho para esta entrada chamado nome distinto relativo ou RDN. Objetos podem geralmente ser atribudos a um ou dois tipos possveis: container Estes objetos podem conter outros objetos. Tais classes de objetos so root (o elemento root da rvore de diretrios, que no existe realmente), c (pas) ou (unidade organizacional) e dc (componente do domnio). Este modelo comparvel aos diretrios (pastas) em um sistema de arquivos. folha Estes objetos esto no final de uma ramificao e no tm objetos subordinados. Exemplos: person, InetOrgPerson ou groupofNames. O topo da hierarquia de diretrio tem um elemento root. Isso pode conter c (pas), dc (componente de domnio) ou o (organizao) como elementos subordinados. As relaes em uma rvore de diretrios LDAP tornam-se mais evidentes no exemplo seguinte, mostrado na Figura 25.1, Estrutura de um diretrio LDAP (p 441).

440

Referncia

Figura 25.1 Estrutura de um diretrio LDAP

O diagrama completo compreende uma rvore de informaes de diretrio ficcional. As entradas em trs nveis esto apresentadas. Cada entrada corresponde a uma caixa na figura. O nome distinto vlido e completo para o funcionrio SUSE ficcional Geeko Linux, neste caso cn=Geeko Linux,ou=doc,dc=suse,dc=de. Ele composto atravs da adio do RDN cn=Geeko Linux ao DN da entrada anterior ou=doc,dc=suse,dc=de. A determinao global dos tipos de objetos que devem ser armazenados no DIT realizada segundo um esquema. O tipo de um objeto determinado pela classe de objeto. A classe de objeto determina quais atributos podem ou devem ser atribudos ao objeto em questo. Portanto, um esquema deve conter definies de todos atributos e classes de objetos usados no cenrio do aplicativo desejado. H alguns esquemas comuns (consulte RFC 2252 e 2256). Porm, possvel criar esquemas personalizados ou usar vrios esquemas complementando um ao outro se isso for exigido pelo ambiente no qual o servidor LDAP deve operar. A Tabela 25.1, Atributos e classes de objeto usados comumente (p 442) oferece uma pequena viso geral das classes de objeto de core.schema e inetorgperson .schema usadas no exemplo, incluindo atributos necessrios e valores de atributos vlidos.

LDAP Um servio de diretrio

441

Tabela 25.1

Atributos e classes de objeto usados comumente Significado Entrada de exemplo suse Atributos compulsrios dc

Classe de objeto

dcObject

domainComponent (nomeie componentes do domnio)

organizationalUnit organizationalUnit (unidade organizacional) inetOrgPerson inetOrgPerson (dados relativos a pessoas para a intranet ou Internet)

doc

ou

Geeko Linux

sn e cn

O Exemplo 25.1, Exemplo de schema.core (p 442) mostra um exemplo de uma diretiva de esquemas com explicaes (numerao de linha para motivos explanatrios). Exemplo 25.1 Exemplo de schema.core
#1 attributetype (2.5.4.11 NAME ( 'ou' 'organizationalUnitName') #2 DESC 'RFC2256: unidade organizacional qual este objeto pertence' #3 nome SUP )

... #4 objectclass ( 2.5.6.5 NAME 'organizationalUnit' #5 DESC 'RFC2256: an organizational unit' #6 SUP top STRUCTURAL #7 MUST ou #8 MAY (userPassword $ searchGuide $ seeAlso $ businessCategory $ x121Address $ registeredAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName $ st $ l $ description) ) ...

O tipo de atributo organizationalUnitName e a classe de objeto correspondente organizationalUnit servem como um exemplo aqui. A linha 1 apresenta o nome do atributo, seu OID exclusivo (identificador de objeto) (numrico) e a abreviao do atributo.

442

Referncia

A linha 2 fornece uma descrio breve do atributo com DESC. O RFC correspondente na qual a definio baseada tambm mencionado aqui. SUP na linha 3 indica um tipo de atributo super ordenado ao qual este atributo pertence. A definio da classe de objeto organizationalUnit comea na linha 4, como na definio do atributo, com um OID e o nome da classe de objeto. A linha 5 apresenta uma breve descrio da classe de objeto. A linha 6, com esta entrada SUP top, indica que esta classe de objeto no est subordinada a outra classe de objeto. A linha 7, comeando com MUST, lista todos os tipos de atributo que devem ser usados em conjunto com um objeto do tipo organizationalUnit. A linha 8, comeando com MAY, lista todos os tipos de atributos que so permitidos em conjunto com esta classe de objeto. Uma boa introduo para o uso de esquemas pode ser encontrada na documentao de OpenLDAP. Quando instalada, encontre-a em /usr/share/doc/packages/ openldap2/admin-guide/index.html.

25.3 Configurao do servidor com slapd.conf


O seu sistema instalado contm um arquivo de configurao completo para o seu servidor LDAP em /etc/openldap/slapd.conf. As nicas entradas esto descritas brevemente aqui e os ajustes necessrios so explicados. Entradas com prefixo de hash (#) so inativas. Este caractere de comentrio deve ser removido para ativ-las.

25.3.1 Diretivas globais em slapd.conf


Exemplo 25.2 slapd.conf: Incluir diretiva para esquemas
include include include include include /etc/openldap/schema/core.schema /etc/openldap/schema/cosine.schema /etc/openldap/schema/inetorgperson.schema /etc/openldap/schema/rfc2307bis.schema /etc/openldap/schema/yast.schema

A primeira diretiva em slapd.conf, mostrada no Exemplo 25.2, slapd.conf: Incluir diretiva para esquemas (p 443), specifica o esquema atravs do qual o diretrio LDAP organizado. A entrada core.schema compulsria. Esquemas necessrios adicionais

LDAP Um servio de diretrio

443

esto anexados a esta diretiva. Informaes podem ser encontradas na documentao do OpenLDAP includa. Exemplo 25.3 slapd.conf: pidfile e argsfile
pidfile /var/run/slapd/slapd.pid argsfile /var/run/slapd/slapd.args

Estes dois arquivos contm o PID (ID de processo) e alguns dos argumentos com os quais o processo slapd iniciado. No h necessidade para modificaes aqui. Exemplo 25.4 slapd.conf: Controle de acesso
# Sample Access Control # Allow read access of root DSE # Allow self write access # Allow authenticated users read access # Allow anonymous users to authenticate # access to dn="" by * read access to * by self write by users read by anonymous auth # # if no access controls are present, the default is: # Allow read by all # # rootdn can always write!

O Exemplo 25.4, slapd.conf: Controle de acesso (p 444) o exemplo de slapd.conf que regula as permisses de acesso para o diretrio LDAP no servidor. As configuraes realizadas aqui na seo global de slapd.conf so vlidas desde que nenhuma regra de acesso personalizada seja declarada na seo especfica ao banco de dados. Estas devem sobrescrever as declaraes globais. Conforme apresentado aqui, todos os usurios tm acesso de leitura ao diretrio, mas somente o administrador (rootdn) pode gravar para este diretrio. O regulamento de controle de acesso no LDAP um processo altamente complexo. As dicas a seguir podem ajudar: Toda regra de acesso tem a seguinte estrutura:
acesso a <what> por <who> <access>

what um marcador para o objeto ou atributo ao qual acesso concedido. Ramificaes de diretrio individuais podem ser protegidas explicitamente com regras separadas. Tambm possvel processar regies da rvore de diretrios com uma nica regra usando expresses regulares. slapd avalia todas as regras na ordem em que elas esto listadas no arquivo de configurao. Mais regras gerais 444 Referncia

devem estar listadas aps outras mais especficas a primeira regra slapd considerada vlida avaliada e todas as entradas seguintes so ignoradas. who determina a quem deve ser concedido acesso s reas determinadas com what. Expresses regulares podem ser usadas. slapd novamente anula a avaliao de who aps a primeira correspondncia, por isso regras mais especficas devem ser listadas antes das mais gerais. As entradas mostradas na Tabela 25.2, Grupos de usurios e suas concesses de acesso (p 445) so possveis. Tabela 25.2 Tag * annimos usurios prprio dn.regex=<regex> Grupos de usurios e suas concesses de acesso Escopo Todos os usurios sem exceo Usurios (annimos) no autenticados Usurios autenticados Usurios conectados com o objeto de destino Todos os usurios que correspondem expresso regular

acesso especifica o tipo de acesso. Use as opes listadas na Tabela 25.3, Tipos de acesso (p 445). Tabela 25.3 Tag nenhum autenticao comparar busca Tipos de acesso Escopo do acesso Sem acesso Para entrar em contato com o servidor Para objetos para acesso de comparao Para a utilizao de filtros de busca

LDAP Um servio de diretrio

445

Tag ler gravar

Escopo do acesso Acesso de leitura Acesso de gravao

slapd compara o direito de acesso solicitado pelo cliente com os concedidos em slapd.conf. Acesso concedido ao cliente se as regras permitirem um direito igual ou maior do que o solicitado. Se o cliente solicitar direitos maiores do que os declarados nas regras, o acesso negado. O Exemplo 25.5, slapd.conf: Exemplo de controle de acesso (p 446) mostra um exemplo de um simples controle de acesso que pode ser desenvolvido arbitrariamente usando expresses regulares. Exemplo 25.5 slapd.conf: Exemplo de controle de acesso
access to dn.regex="ou=([^,]+),dc=suse,dc=de" by dn.regex="cn=administrator,ou=$1,dc=suse,dc=de" write by user read by * none

Esta regra declara que somente o seu respectivo administrador tem acesso de gravao a uma entrada ou individual. Todos os outros usurios autenticados tm acesso de leitura e o restante do mundo no tem acesso. DICA: Estabelecendo regras de acesso Se no houver acesso a uma regra ou nenhuma correspondncia por diretiva, o acesso negado. Somente direitos de acesso explicitamente declarados so concedidos. Se nenhuma regra for declarada, o princpio padro o acesso de gravao para o administrador e o acesso de leitura para o restante do mundo. Encontre informaes detalhadas e uma configurao de exemplo para direitos de acesso LDAP na documentao online do pacote openldap2 instalado. Fora a possibilidade de administrar permisses de acesso com o arquivo de configurao do servidor central (slapd.conf), no h informaes de controle de acesso (ACI). A ACI permite o armazenamento das informaes de acesso para objetos individuais na rvore LDAP. Este tipo de controle de acesso ainda no comum e considerado

446

Referncia

experimental pelos desenvolvedores. Consulte http://www.openldap.org/ faq/data/cache/758.html para obter informaes.

25.3.2 Diretivas especficas de bancos de dados em slapd.conf


Exemplo 25.6 slapd.conf: Diretivas especficas de bancos de dados
database bdb checkpoint 1024 5 cachesize 10000 suffix "dc=suse,dc=de" rootdn "cn=admin,dc=suse,dc=de" # Cleartext passwords, especially for the rootdn, should # be avoided. Consulte slappasswd(8) e slapd.conf(5) para obter detalhes. # O uso de autenticao forte encorajado. rootpw secret # O diretrio de banco de dados DEVE existir antes da execuo de slapd E # deve estar acessvel somente pelas slapd/tools. Mode 700 recommended. directory /var/lib/ldap # Indices to maintain index objectClass eq

O tipo de banco de dados, um banco de dados Berkeley neste caso, determinado na primeira linha desta seo (consulte o Exemplo 25.6, slapd.conf: Diretivas especficas de bancos de dados (p 447)). checkpoint determina a quantidade de dados (em kb) mantida no registro de transao antes que seja gravada no banco de dados real e o tempo (em minutos) entre as duas aes de gravao. cachesize define o nmero de objetos mantidos no cache do banco de dados. suffix determina por qual parte da rvore LDAP este servidor deve ser responsvel. O rootdn seguinte determina quem possui direitos de administrador para este servidor. O usurio declarado aqui no precisa ter uma entrada LDAP ou existir como um usurio regular. A senha do administrador definida com rootpw. Em vez de usar secret aqui, possvel inserir o hash da senha do administrador criado por slappasswd. A diretiva directory indica o diretrio (no sistema de arquivos) onde os diretrios de bancos de dados esto armazenados no servidor. A ltima diretiva, index objectClass eq, resulta na manuteno de um ndice de todas as classes de objetos. Atributos para os quais os usurios pesquisam com freqncia podem ser adicionados aqui de acordo com a experincia. Regras de acesso personalizado definidas aqui para o banco de dados so usadas em vez de regras de acesso global.

LDAP Um servio de diretrio

447

25.3.3 Iniciando e interrompendo os servidores


Depois que o servidor LDAP estiver totalmente configurado e todas as entradas desejadas tiverem sido realizadas de acordo com o padro descrito na Seo 25.4, Tratamento de dados no diretrio LDAP (p 448), inicie o servidor LDAP como root inserindo rcldap start. Para interromper o servidor manualmente, insira o comando rcldap stop. Solicite o status do servidor LDAP em execuo com o rcldap status. O editor de nveis de execuo YaST, descrito na Seo 8.2.3, Configurando servios do sistema (runlevel) com o YaST (p 196), pode ser usado para que o servidor seja iniciado e interrompido automaticamente na inicializao e na pausa do sistema. Tambm possvel criar os links correspondentes aos scripts de incio e interrupo com o comando insserv de um prompt de comando, conforme descrito na Seo 8.2.2, Scripts Init (p 192).

25.4 Tratamento de dados no diretrio LDAP


O OpenLDAP oferece uma srie de ferramentas para a administrao de dados no diretrio LDAP. A quatro ferramentas mais importantes para adicionar, apagar, pesquisar e modificar o estoque de dados so explicadas abaixo.

25.4.1 Inserindo dados em um diretrio LDAP


Depois que a configurao do seu servidor LDAP em /etc/openldap/lsapd .conf estiver correta e pronta (ela apresenta entradas apropriadas para suffix, directory, rootdn, rootpw e index), continue a inserir registros. OpenLDAP oferece o comando ldapadd para esta tarefa. Se possvel, adicione os objetos ao banco de dados em pacotes por razes prticas. O LDAP capaz de processar o formato LDIF (formato intercambivel de dados LDAP) para isso. Um arquivo LDIF um arquivo de texto simples que pode conter um nmero arbitrrio de pares de atributo e valor. Consulte os arquivos de esquema declarados em slapd.conf para os atributos e as

448

Referncia

classes de objeto disponveis. O arquivo LDIF para criar uma estrutura bruta para o exemplo na Figura 25.1, Estrutura de um diretrio LDAP (p 441) teria a mesma aparncia que no Exemplo 25.7, Exemplo de um arquivo LDIF (p 449). Exemplo 25.7 Exemplo de um arquivo LDIF
# The SUSE Organization dn: dc=suse,dc=de objectClass: dcObject objectClass: organization o: SUSE AG dc: suse # The organizational unit development (devel) dn: ou=devel,dc=suse,dc=de objectClass: organizationalUnit ou: devel # The organizational unit documentation (doc) dn: ou=doc,dc=suse,dc=de objectClass: organizationalUnit ou: doc # The organizational unit internal IT (it) dn: ou=it,dc=suse,dc=de objectClass: organizationalUnit ou: it

IMPORTANTE: Codificao de arquivos LDIF O LDAP funciona com o UTF-8 (Unicode). Umlauts deve ser codificado corretamente. Use um editor que suporte UTF-8, como o Kate ou verses recentes de Emacs. De outra forma, evite umlauts e outros caracteres especiais ou use recode para registrar a entrada em UTF-8. Salve o arquivo com o sufixo .ldif, em seguida, transmita-o ao servidor com o seguinte comando:
ldapadd -x -D <dn of the administrator> -W -f <file>.ldif

-x desliga a autenticao com o SASL neste caso. -D declara o usurio que chama a operao. O DN vlido do administrador inserido aqui como foi configurado em slapd.conf. No exemplo atual, h cn=admin,dc=suse,dc=de. -W evita a insero de senha na linha de comando (em texto claro) e ativa um prompt de senha separado. Esta senha foi determinada previamente em slapd.conf com rootpw. -f transmite o nome de arquivo. Consulte os detalhes da execuo de ldapadd no Exemplo 25.8, ldapadd com example.ldif (p 450).

LDAP Um servio de diretrio

449

Exemplo 25.8 ldapadd com example.ldif


ldapadd -x -D cn=admin,dc=suse,dc=de -W -f example.ldif Insira adding adding adding adding a senha do LDAP: new entry "dc=suse,dc=de" new entry "ou=devel,dc=suse,dc=de" new entry "ou=doc,dc=suse,dc=de" new entry "ou=it,dc=suse,dc=de"

Os dados de usurio de indivduos podem ser preparados em arquivos LDIF separados. O Exemplo 25.9, Dados LDIF para Tux (p 450) adiciona Tux ao novo diretrio LDAP. Exemplo 25.9 Dados LDIF para Tux
# coworker Tux dn: cn=Tux Linux,ou=devel,dc=suse,dc=de objectClass: inetOrgPerson cn: Tux Linux givenName: Tux sn: Linux mail: tux@suse.de uid: tux telephoneNumber: +49 1234 567-8

Um arquivo LDIF pode conter um nmero arbitrrio de objetos. possvel transmitir ramificaes de todo o diretrio ao servidor de uma vez ou somente partes como mostrado no exemplo de objetos individuais. Se for necessrio modificar alguns dados com freqncia, uma subdiviso de objetos nicos recomendvel.

25.4.2 Modificando dados no diretrio LDAP


A ferramenta ldapmodify fornecida para modificar o estoque de dados. A forma mais fcil de fazer isso modificar o arquivo LDIF correspondente e, em seguida, transmitir este arquivo modificado ao servidor LDAP. Para alterar o nmero de telefone do colega Tux de +49 1234 567-8 para +49 1234 567-10, edite o arquivo LDIF como no Exemplo 25.10, Arquivo LDIF modificado tux.ldif (p 450). Exemplo 25.10 Arquivo LDIF modificado tux.ldif
# coworker Tux dn: cn=Tux Linux,ou=devel,dc=suse,dc=de changetype: modify replace: telephoneNumber telephoneNumber: +49 1234 567-10

450

Referncia

Importe o arquivo modificado no diretrio LDAP com o seguinte comando:


ldapmodify -x -D cn=admin,dc=suse,dc=de -W -f tux.ldif

Alternativamente, transmita os atributos para alterar diretamente para ldapmodify. O procedimento para isto est descrito abaixo: 1. Inicie ldapmodify e insira sua senha:
ldapmodify -x -D cn=admin,dc=suse,dc=de -W Enter LDAP password:

2.

Insira as modificaes e siga cuidadosamente a sintaxe na ordem apresentada abaixo:


dn: cn=Tux Linux,ou=devel,dc=suse,dc=de changetype: modify replace: telephoneNumber telephoneNumber: +49 1234 567-10

Informaes detalhadas sobre ldapmodify e sua sintaxe podem ser encontradas na pgina de manual de ldapmodify(1).

25.4.3 Buscando ou lendo dados de um diretrio LDAP


OpenLDAP fornece, com ldapsearch, uma ferramenta de linha de comando para pesquisar dados em um diretrio LDAP e ler dados a partir dele. Uma consulta simples teria a seguinte sintaxe:
ldapsearch -x -b dc=suse,dc=de "(objectClass=*)"

A opo -b determina a base de busca a seo da rvore dentro da qual a busca deve ser executada. No caso atual, isto dc=suse,dc=de. Para realizar uma busca mais detalhada em subsees especficas do diretrio LDAP (por exemplo, somente no departamento devel), transmita esta seo para ldapsearch com -b. -x solicita a ativao da autenticao simples. (objectClass=*) declara que todos os objetos contidos no diretrio devem ser lidos. Esta opo de comando pode ser usada aps a criao de uma nova rvore de diretrio para verificar se todas as entradas foram registradas corretamente e se o servidor responde como desejado. Mais informaes sobre o uso de ldapsearch podem ser encontradas na pgina de manual correspondente (ldapsearch(1)). LDAP Um servio de diretrio 451

25.4.4 Apagando dados de um diretrio LDAP


Apague entradas indesejadas com ldapdelete. A sintaxe similar quela dos comandos descritos acima. Para apagar, por exemplo, a entrada completa para Tux Linux, emita o seguinte comando:
ldapdelete -x -D cn=admin,dc=suse,dc=de -W cn=Tux \ Linux,ou=devel,dc=suse,dc=de

25.5 O cliente LDAP do YaST


O YaST inclui um mdulo para configurar o gerenciamento de usurio baseado em LDAP. Se voc no habilitou este recurso durante a instalao, inicie o mdulo selecionando Servios de Rede Cliente LDAP. O YaST habilita automaticamente quaisquer alteraes relacionadas a PAM e NSS conforme exigido por LDAP (descrito abaixo) e instala os arquivos necessrios.

25.5.1 Procedimento padro


Conhecimento bsico sobre os processos agindo no segundo plano de uma mquina cliente ajudam voc a compreender como o mdulo do cliente LDAP do YaST funciona. Se o LDAP for ativado para autenticao de rede ou o mdulo YaST for chamado, os pacotes pam_ldap e nss_ldap sero instalados e os dois arquivos de configurao correspondentes sero adaptados. pam_ldap o mdulo PAM responsvel pela negociao entre processos de login e o diretrio LDAP como a fonte de dados de autenticao. O mdulo dedicado pam_ldap.so instalado e a configurao PAM, adaptada (consulte o Exemplo 25.11, pam_unix2.conf adaptado para LDAP (p 452)). Exemplo 25.11 pam_unix2.conf adaptado para LDAP
auth: account: password: session: use_ldap use_ldap use_ldap none

Ao configurar manualmente servios adicionais para usar o LDAP, inclua o mdulo LDAP do PAM no arquivo de configurao PAM correspondente ao servio em /etc/ pam.d. Arquivos de configurao j adaptados a servios individuais podem ser 452 Referncia

encontrados em /usr/share/doc/packages/pam_ldap/pam.d/. Copie os arquivos apropriados para /etc/pam.d. A resoluo de nome glibc atravs do mecanismo nsswitch adaptado ao uso do LDAP com nss_ldap. Um arquivo nsswitch.conf novo, adaptado criado em /etc/ com a instalao deste pacote. Mais informaes sobre o funcionamento de nsswitch.conf podem ser encontradas na Seo 18.6.1, Arquivos de configurao (p 366). As linhas a seguir devem estar presentes em nsswitch.conf para a administrao do usurio e autenticao com LDAP. Consulte o Exemplo 25.12, Adaptaes em nsswitch.conf (p 453). Exemplo 25.12 Adaptaes em nsswitch.conf
passwd: compat group: compat passwd_compat: ldap group_compat: ldap

Estas linhas ordenam a biblioteca de resoluo de glibc primeiro para avaliar os arquivos correspondentes em /etc e adicionalmente acessar o servidor LDAP como fontes para dados de usurio e autenticao. Teste este mecanismo, por exemplo, lendo o contedo do banco de dados de usurio com o comando getent passwd. O conjunto retornado deve conter uma pesquisa dos usurios locais do seu sistema e todos os usurios armazenados no servidor LDAP. Para evitar que usurios regulares gerenciados atravs de LDAP efetuem login no servidor com ssh ou login, os arquivos /etc/passwd e /etc/group cada precisam incluir uma linha adicional. Esta a linha +::::::/sbin/nologin em /etc/passwd e +::: em /etc/group.

25.5.2 Configurao do cliente LDAP


Aps os ajustes iniciais de nss_ldap, pam_ldap, /etc/passwd e /etc/group terem sido tratados pelo YaST, voc pode simplesmente conectar o cliente ao servidor e deixar que o YaST faa o gerenciamento de usurios via LDAP. A configurao bsica descrita em Configurao Bsica (p 454). Use o cliente LDAP do YaST para configurar mais os mdulos de configurao de usurio e grupo do YaST. Isso inclui manipular as configuraes padro para novos usurios e grupos e o nmero e a natureza dos atributos atribudos a um usurio ou

LDAP Um servio de diretrio

453

grupo. O gerenciamento de usurios LDAP permite atribuir mais atributos e diferentes a usurios e grupos do que as solues de gerenciamento de grupos ou usurios tradicionais. Isso est descrito em Configurando os mdulos de administrao de usurios e grupos do YaST (p 457).

Configurao Bsica
A caixa de dilogo de configurao bsica do cliente LDAP (Figura 25.2, YaST: Configurao do cliente LDAP (p 454)) abre durante a instalao se voc escolher o gerenciamento de usurios LDAP ou quando selecionar Servios de Rede Cliente LDAP no Centro de Controle do YaST no sistema instalado. Figura 25.2 YaST: Configurao do cliente LDAP

Para autenticar usurios da sua mquina em um servidor OpenLDAP e habilitar o gerenciamento de usurios via OpenLDAP, proceda da seguinte maneira: 1 Clique em Usar LDAP para habilitar o uso de LDAP. Selecione Usar LDAP mas Desabilitar Logins se voc deseja usar o LDAP para autenticao, mas no deseja que outros usurios efetuem login neste cliente. 2 Insira o endereo IP do servidor LDAP para uso.

454

Referncia

3 Insira a Base LDAP DN para selecionar a base de busca no servidor LDAP. Para recuperar o DN base automaticamente, clique em Pesquisar DN. Em seguida, o YaST verifica se h algum banco de dados LDAP no endereo de servidor especificado acima. Escolha o DN base apropriado nos resultados de pesquisa fornecidos pelo YaST. 4 Se a comunicao protegida por TLS ou SSL com o servidor for necessria, selecione LDAP TLS/SSL. 5 Se o servidor LDAP ainda usar LDAPv2, habilite explicitamente o uso desta verso de protocolo selecionando LDAP Verso 2. 6 Selecione Iniciar Automounter para montar diretrios remotos no seu cliente como um /home gerenciado remotamente. 7 Clique em Concluir para aplicar suas configuraes. Figura 25.3 YaST: Configurao Avanada

Para modificar dados no servidor como administrador, clique em Configurao Avanada. A caixa de dilogo seguinte dividida em duas guias. Consulte a Figura 25.3, YaST: Configurao Avanada (p 455):

LDAP Um servio de diretrio

455

1 Na guia Configuraes do Cliente, ajuste as seguintes configuraes s suas necessidades: a Se a base de busca para usurios, senhas e grupos diferir da base de busca global especificada em Base LDAP DN, insira esses contextos de nomeao diferentes em Mapa do Usurio, Mapa da Senha e Mapa do Grupo. b Especifique o protocolo de alterao de senha. O mtodo padro a ser usado sempre que uma senha alterada crypt, significando que os hashes de senha gerados por crypt so usados. Para obter detalhes sobre esta e outras opes, consulte a pgina de manual de pam_ldap. c Especifique o grupo LDAP a ser usado com Atributo de Membro de Grupo. O valor padro para isso membro. 2 Em Configuraes da Administrao, ajuste as seguintes configuraes: a Defina a base para armazenar os dados do gerenciamento de usurios via Base de Configurao DN. b Insira o valor apropriado para DN do Administrador. Este DN deve ser idntico ao valor rootdn especificado em /etc/openldap/slapd .conf para habilitar este usurio especfico a manipular dados armazenados no servidor LDAP. Digite o DN completo (como cn=admin,dc=suse,dc=de) ou ative Adicionar DN Base para adicionar automaticamente o DN base quando voc digitar cn=admin. c Marque Criar Objetos de Configurao Padro para criar os objetos de configurao bsica no servidor para habilitar o gerenciamento de usurios via LDAP. d Se a mquina do cliente deve agir como um servidor de arquivos para diretrios pessoais na rede, marque Diretrios Pessoais nesta Mquina. e Clique em Aceitar para sair de Configurao Avanada e em Concluir para aplicar suas configuraes. Use Definir Configuraes de Gerenciamento de Usurios para editar entradas no servidor LDAP. Acesso aos mdulos de configurao no servidor ento concedido

456

Referncia

de acordo com os ACLs e ACIs armazenados no servidor. Siga os procedimentos apresentados em Configurando os mdulos de administrao de usurios e grupos do YaST (p 457).

Configurando os mdulos de administrao de usurios e grupos do YaST


Use o cliente LDAP do YaST para adaptar os mdulos YaST para administrao de grupo e usurios e estend-los conforme necessrio. Defina modelos com valores padro para os atributos individuais para simplificar o registro de dados. As predefinies criadas aqui so armazenadas como objetos LDAP no diretrio LDAP. O registro de dados de usurios ainda realizado com mdulos YaST regulares para o gerenciamento de grupos e usurios. Os dados registrados so armazenados como objetos LDAP no servidor. Figura 25.4 YaST: Configurao do mdulo

A caixa de dilogo para configurao do mdulo (Figura 25.4, YaST: Configurao do mdulo (p 457)) permite a criao de novos mdulos, a seleo e modificao de mdulos de configurao existentes e o design e a modificao de modelos para estes mdulos.

LDAP Um servio de diretrio

457

Para criar um novo mdulo de configurao, proceda da seguinte maneira: 1 Clique em Novo e selecione o tipo de mdulo a ser criado. Para um mdulo de configurao de usurios, selecione suseuserconfiguration e para configurao de grupos, selecione susegroupconfiguration. 2 Escolha um nome para o novo modelo. A viso de contedo apresenta uma tabela listando todos os atributos permitidos neste mdulo com seus valores atribudos. Fora dos atributos definidos, a lista tambm contm todos os outros atributos permitidos pelo esquema atual, mas que no so usados atualmente. 3 Aceite os valores predefinidos ou ajuste os padres para usar na configurao de usurios e grupos selecionando o respectivo atributo, pressionando Editar e inserindo o novo valor. Renomeie um mdulo alterando o atributo cn do mdulo. Clicar em Apagar apaga o mdulo atualmente selecionado. 4 Aps clicar em OK, o novo mdulo ser adicionado ao menu de seleo. Os mdulos YaST para a administrao de usurios e grupos embute modelos com valores padro sensveis. Para editar um modelo associado a um mdulo de configurao, proceda da seguinte maneira: 1 Na caixa de dilogo Configurao do Mdulo, clique em Configurar Modelo. 2 Determine os valores dos atributos gerais atribudos a este modelo de acordo com suas necessidades ou deixe alguns vazios. Atributos vazios so apagados no servidor LDAP. 3 Modifique, apague ou adicione novos valores padro para novos objetos (objetos de configurao de grupos ou usurios na rvore LDAP).

458

Referncia

Figura 25.5 YaST: Configurao de um modelo de objeto

Conecte o modelo ao seu mdulo definindo o valor de atributo susedefaulttemplate do mdulo ao DN do mdulo adaptado. DICA Os valores padro para um atributo podem ser criados de outros atributos com o uso de uma varivel em vez de um valor absoluto. Por exemplo, ao criar um novo usurio, cn=%sn %givenName criado automaticamente dos valores de atributos para sn e givenName. Aps todos os mdulos e modelos terem sido configurados corretamente e estarem prontos para execuo, novos grupos e usurios podem ser registrados da maneira usual com o YaST.

LDAP Um servio de diretrio

459

25.6 Configurando grupos e usurios LDAP no YaST


O registro atual de dados de grupos e usurios difere apenas um pouco do procedimento quando LDAP no est sendo usado. As seguintes instrues breves esto relacionadas administrao dos usurios. O procedimento para administrar grupos anlogo. 1 Acesse a administrao do usurio YaST com Segurana & Usurios Administrao de Usurio. 2 Use Definir Filtros para limitar a exibio de usurios aos usurios LDAP e insira a senha para DN raiz. 3 Clique em Adicionar e insira a configurao de um novo usurio. Uma caixa de dilogo com quatro guias aberta: a Especifique nome de usurio, login e senha na guia Dados do Usurio. b Marque a guia Detalhes para a participao de grupo, shell de login e diretrio pessoal do novo usurio. Se necessrio, altere o padro para valores que melhor atendem suas necessidades. Os valores padro e as configuraes de senha podem ser definidos com o procedimento descrito em Configurando os mdulos de administrao de usurios e grupos do YaST (p 457). c Modifique ou aceite as Configuraes de Senha padro. d V para a guia Plug-Ins, selecione o plug-in do LDAP e clique em Iniciar para configurar atributos LDAP adicionais atribudos ao novo usurio (consulte a Figura 25.6, YaST: Configuraes LDAP adicionais (p 461)). 4 Clique em Aceitar para aplicar suas configuraes e saia da configurao do usurio.

460

Referncia

Figura 25.6 YaST: Configuraes LDAP adicionais

A forma de entrada inicial da administrao do usurio oferece Opes do LDAP. Isso fornece a possibilidade de aplicar filtros de busca do LDAP para o conjunto de usurios disponveis ou ir para o mdulo para a configurao de grupos e usurios LDAP selecionando Configurao de Grupos e Usurios LDAP.

25.7 Mais informaes


Assuntos mais complexos, como a configurao de SASL ou o estabelecimento de um servidor LDAP de replicao que distribui a carga de trabalho entre vrios escravos, intencionalmente no foi includa neste captulo. Informaes detalhadas sobre ambos os assuntos podem ser encontradas no Guia do Administrador do OpenLDAP 2.2 (referncias a seguir). O website do projeto OpenLDAP oferece documentao exaustiva para usurios LDAP iniciantes e avanados:

LDAP Um servio de diretrio

461

OpenLDAP Faq-O-Matic Uma coleo abrangente de perguntas e respostas referentes instalao, configurao e ao uso do OpenLDAP. Encontre-o em http://www.openldap .org/faq/data/cache/1.html. Guia Rpido de Incio Instrues breves etapa por etapa para instalar o seu primeiro servidor LDAP. Encontre-o em http://www.openldap.org/doc/admin22/quickstart .html ou em um sistema instalado em /usr/share/doc/packages/ openldap2/admin-guide/quickstart.html. Guia do Administrador do OpenLDAP 2.2 Uma introduo detalhada para todos os aspectos importantes da configurao do LDAP, incluindo criptografia e controles de acesso. Consulte http://www .openldap.org/doc/admin22/ ou, em um sistema instalado, /usr/ share/doc/packages/openldap2/admin-guide/index.html. Compreendendo o LDAP Uma introduo geral detalhada para os princpios bsicos do LDAP: http:// www.redbooks.ibm.com/redbooks/pdfs/sg244986.pdf. Literatura impressa sobre o LDAP: LDAP System Administration por Gerald Carter (ISBN 1-56592-491-6) Understanding and Deploying LDAP Directory Services por Howes, Smith e Good (ISBN 0-672-32316-8) O material de referncia mais importante sobre o LDAP so os RFCs (request for comments) correspondentes, 2251 a 2256.

462

Referncia

Servidor HTTP Apache

26

Com uma cota de mais de 70%, o Apache o servidor Web mais usado mundialmente de acordo com a pesquisa da http://www.netcraft.com/ em novembro de 2005. O Apache, desenvolvido pela Apache Software Foundation (http://www .apache.org/), est disponvel para a maioria dos sistemas operacionais. O SUSE Linux inclui o Apache verso 2.2. Neste captulo, aprenda como instalar, configurar e ajustar um servidor Web; como usar SSL, CGI e mdulos adicionais; e como solucionar problemas do Apache.

26.1 Inicializao Rpida


Com o auxlio desta seo, configure e inicie o Apache. necessrio usar a conta de usurio Root para instalar e configurar o Apache.

26.1.1 Requisitos
Certifique-se de que os requisitos sejam atendidos antes de tentar configurar o servidor Web Apache: 1. 2. A rede da mquina configurada corretamente. Para obter mais informaes sobre este tpico, consulte o Captulo 18, Rede bsica (p 331). A hora exata do sistema da mquina mantida por meio da sincronizao com um servidor de horrio. Isso necessrio porque as partes do protocolo HTTP

Servidor HTTP Apache

463

dependem da hora certa. Consulte o Captulo 24, Sincronizao de horrio com NTP (p 431) para saber mais sobre este tpico. 3. 4. As atualizaes de segurana mais recentes so instaladas. Em caso de dvida, execute uma Atualizao Online do YaST. A porta do servidor Web padro (porta 80) aberta no firewall. Para isso, configure o SUSEFirewall2 para permitir o servio Servidor HTTP na zona externa. Isso pode ser feito com o YaST. Configurando com o YaST (p 110) fornece os detalhes.

26.1.2 Instalao
O Apache no SUSE Linux no instalado por padro. Para instal-lo, inicie o YaST e selecione Software Gerenciamento de Software. Agora escolha Filtros Selees e selecione Servidor da Web Simples com Apache2. Confirme a instalao dos pacotes dependentes para concluir o processo de instalao. O Apache instalado com uma configurao padro e predefinida que executada instantaneamente. A instalao inclui o mdulo de multiprocessamento apache2-prefork, alm do mdulo PHP5. Consulte a Seo 26.4, Instalando, ativando e configurando mdulos (p 482) para obter mais informaes sobre mdulos.

26.1.3 Inicializao
Para iniciar o Apache e assegurar que seja iniciado automaticamente durante a inicializao da mquina, inicie o YaST e selecione Sistema Servios do Sistema (Nvel de Execuo). Procure apache2 e Habilite o servio. O servidor Web iniciado imediatamente. Quando voc grava suas mudanas com Concluir, o sistema configurado para iniciar o Apache automaticamente nos nveis de execuo 3 e 5 durante a inicializao. Para obter mais informaes sobre os nveis de execuo no SUSE Linux e uma descrio do editor de nvel de execuo do YaST, consulte a Seo 8.2.3, Configurando servios do sistema (runlevel) com o YaST (p 196). Para iniciar o Apache usando o shell, execute rcapache2 start. Para assegurar que o Apache seja iniciado automaticamente durante a inicializao da mquina nos nveis de execuo 3 e 5, use chkconfig -a apache2.

464

Referncia

Se voc no tiver recebido mensagens de erro ao iniciar o Apache, o servidor Web dever estar em execuo. Inicie um browser e abra http://localhost/. Dever ser exibida uma pgina de teste do Apache iniciada por If you can see this, it means that the installation of the Apache Web server software on this system was successful (Se voc estiver vendo isso, significa que a instalao do servidor Web Apache neste sistema foi bem-sucedida). Se voc no ver essa pgina, consulte a Seo 26.8, Soluo de problemas (p 501). Agora que o servidor Web est em execuo, possvel adicionar seus prprios documentos, ajustar a configurao de acordo com suas necessidades ou adicionar funcionalidade instalando mdulos.

26.2 Configurando o Apache


O Apache no SUSE Linux pode ser configurado de duas maneiras diferentes: com o YaST ou manualmente. A configurao manual oferece um nvel maior de detalhes, mas no tem a convenincia da interface grfica de usurio do YaST. IMPORTANTE: Mudanas de configurao As mudanas em quase todos os valores de configurao do Apache somente so efetuadas depois que o Apache reiniciado ou recarregado. Isso ocorre automaticamente ao usar o YaST e concluir a configurao com a opo Habilitado selecionada para o Servio HTTP. O reincio manual descrito na Seo 26.3, Iniciando e parando o Apache (p 480). A maioria das mudanas de configurao somente requerem um recarregamento com rcapache2 reload.

26.2.1 Configurando o Apache manualmente


A configurao manual do Apache requer a edio dos arquivos de configurao de texto simples como o usurio Root.

Servidor HTTP Apache

465

Arquivos de configurao
Os arquivos de configurao do Apache podem ser encontrados em duas localizaes diferentes: /etc/sysconfig/apache2 /etc/apache2/

/etc/sysconfig/apache2
O /etc/sysconfig/apache2 controla algumas configuraes globais do Apache, como mdulos para carregar, arquivos de configurao adicionais para incluir, flags com os quais o servidor deve ser iniciado e flags que devem ser adicionados linha de comando. Como toda opo de configurao desse arquivo est amplamente documentada, no so citadas aqui. No caso de um servidor Web de finalidade geral, as configuraes em /etc/sysconfig/apache2 devem bastar para as necessidades de configurao. IMPORTANTE: Nenhum mdulo SuSEconfig do Apache O mdulo SuSEconfig do Apache foi removido do SUSE Linux. Ele deixou de ser necessrio para a execuo do SuSEconfig aps a mudana de /etc/ sysconfig/apache2.

/etc/apache2/
/etc/apache2/ hospeda todos os arquivos de configurao do Apache. O propsito de cada arquivo explicado a seguir. Cada um deles inclui vrias opes de configurao (tambm chamadas de diretivas). Como todas as opes de configurao desses arquivos esto amplamente documentadas, no so citadas aqui. Os arquivos de configurao do Apache so organizados da seguinte maneira:
/etc/apache2/ | |- charset.conv |- conf.d/ | | | |- *.conf | |- default-server.conf

466

Referncia

||||||||||| | | | | |||

errors.conf httpd.conf listen.conf magic mime.types mod_*.conf server-tuning.conf ssl-global.conf ssl.* sysconfig.d | |- global.conf |- include.conf |- loadmodule.conf . . uid.conf vhosts.d |- *.conf

Arquivos de configurao do Apache em /etc/apache2/ charset.conv Especifica os conjuntos de caracteres usados para idiomas diferentes. No editar. conf.d/*.conf Arquivos de configurao adicionados por outros mdulos. Esses arquivos podem ser includos na configurao do host virtual quando necessrio. Consulte exemplos em vhosts.d/vhost.template. Com isso, voc pode fornecer diferentes conjuntos de mdulos para hosts virtuais diferentes. default-server.conf Configurao global para todos os hosts virtuais com padres aceitveis. Em vez de mudar os valores, sobregrave-os com uma configurao de host virtual. errors.conf Define como o Apache responde a erros. Para personalizar essas mensagens em todos os hosts virtuais, edite esse arquivo. Seno, sobregrave essas diretivas nas configuraes do seu host virtual. httpd.conf Principal arquivo de configurao do servidor Apache. Evite mudar esse arquivo. Ele contm essencialmente declaraes e configuraes globais. Sobregrave as configuraes globais nos respectivos arquivos de configurao relacionados aqui. Mude as configuraes especficas de host (como a raiz de documento) na configurao do host virtual.

Servidor HTTP Apache

467

listen.conf Vincula o Apache a endereos IP e portas especficos. A hospedagem virtual baseada em nomes (consulte Hosts virtuais identificados por nome (p 470) tambm configurada nesse arquivo. magic Dados do mdulo mime_magic que ajudam o Apache a determinar automaticamente o tipo MIME de um arquivo desconhecido. No mudar. mime.types Tipos MIME conhecidos pelo sistema ( um link para /etc/mime.types). No editar. Se for preciso adicionar tipos MIME no relacionados aqui, adicione-os a mod_mime-defaults.conf. mod_*.conf Arquivos de configurao dos mdulos instalados por padro. Consulte a Seo 26.4, Instalando, ativando e configurando mdulos (p 482) para obter detalhes. Observe que os arquivos de configurao dos mdulos opcionais residem no diretrio conf .d. server-tuning.conf Contm diretivas de configurao para os diferentes MPMs (consulte a Seo 26.4.4, Mdulos de multiprocessamento (p 486)), bem como opes de configurao geral que controlam o desempenho do Apache. Teste o servidor Web adequadamente ao fazer mudanas nesse arquivo. ssl-global.conf e ssl.* Configurao SSL global e dados de certificado SSL. Consulte a Seo 26.6, Configurando um servidor Web seguro com SSL (p 493) para obter detalhes. sysconfig.d/*.conf Arquivos de configurao gerados automaticamente de /etc/sysconfig/ apache2. No mude nenhum desses arquivos. De preferncia, edite /etc/ sysconfig/apache2. No coloque outros arquivos de configurao nesse diretrio. uid.conf Especifica o usurio e o ID do grupo com que o Apache executado. No mudar.

468

Referncia

vhosts.d/*.conf Dever conter a configurao do seu host virtual. O diretrio contm arquivos de modelo para hosts virtuais com e sem SSL. Todos os arquivos deste diretrio que terminam com .conf so includos automaticamente na configurao do Apache. Consulte Configurao do host virtual (p 469) para obter detalhes.

Configurao do host virtual


O termo host virtual refere-se habilidade do Apache de servir vrios URIs (universal resource identifiers) a partir da mesma mquina fsica. Isso significa que vrios domnios, como www.exemplo.com e www.exemplo.net, so executados por um servidor Web nico em uma mquina fsica. prtica comum usar hosts virtuais para evitar esforos administrativos (somente um servidor Web nico precisa ser mantido) e despesas de hardware (no necessrio ter um servidor dedicado para cada domnio). Os hosts virtuais podem ser identificados por nome, IP ou porta. Os hosts virtuais podem ser configurados atravs do YaST (consulte Hosts Virtuais (p 477)) ou atravs da edio manual da se um arquivo de configurao. Por padro, o Apache no SUSE Linux est preparado para um arquivo de configurao por host virtual em /etc/apache2/vhosts.d/. Todos os arquivos deste diretrio com a extenso .conf so includos automaticamente na configurao. Um modelo bsico para um host virtual fornecido neste diretrio (vhost.template ou vhost-ssl .template para um host virtual com suporte SSL). DICA: Sempre crie uma configurao de host virtual recomendvel criar sempre um arquivo de configurao de host virtual, mesmo que o seu servidor Web hospede somente um domnio. Com isso, alm de ter a configurao especfica de domnio em um arquivo, voc poder sempre retroceder a uma configurao bsica de trabalho, bastando mover, apagar ou renomear o arquivo de configurao do host virtual. Pelo mesmo motivo, voc tambm dever criar arquivos de configurao separados para cada host virtual. O bloco <VirtualHost></VirtualHost> contm as informaes que se aplicam a um domnio especfico. Quando o Apache recebe uma solicitao de cliente para um host virtual definido, ele usa as diretivas fornecidas nesta seo. Quase todas as diretivas

Servidor HTTP Apache

469

podem ser usadas em um contexto de host virtual. Consulte http://httpd.apache .org/docs/2.0/mod/quickreference.html para obter mais informaes sobre as diretivas de configurao do Apache.

Hosts virtuais identificados por nome


No caso de hosts virtuais identificados por nome, cada endereo IP atende mais de um site da Web. O Apache usa o campo host no cabealho HTTP enviado pelo cliente para conectar a solicitao a uma entrada ServerName correspondente de uma das declaraes do host virtual. Se no for encontrada nenhuma entrada ServerName, o primeiro host virtual especificado ser usado como padro. A diretiva NameVirtualHost informa o Apache em qual endereo IP e, opcionalmente, em qual porta escutar solicitaes de clientes que contm o nome de domnio no cabealho HTTP. Essa opo definida no arquivo de configurao /etc/ apache2/listen.conf. O primeiro argumento pode ser um nome de domnio completo, mas recomendvel usar o endereo IP. O segundo argumento a porta (opcional). Por padro, a porta 80 usada e configurada atravs da diretiva Listen. O curinga * pode ser usado para que o endereo IP e o nmero da porta recebam solicitaes em todas as interfaces. Os endereos IPv6 devem ser colocados entre colchetes. Exemplo 26.1 Variaes de entradas VirtualHost identificadas por nome
# NameVirtualHost Endereo IP[:Porta] NameVirtualHost 192.168.1.100:80 NameVirtualHost 192.168.1.100 NameVirtualHost *:80 NameVirtualHost * NameVirtualHost [2002:c0a8:164::]:80

A tag VirtualHost de abertura usa o endereo IP (ou nome de domnio completo) declarado anteriormente com NameVirtualHost como um argumento na configurao de host virtual identificado por nome. Um nmero de porta anteriormente declarado com a diretiva NameVirtualHost opcional. O curinga * tambm permitido como substituto do endereo IP. Esta sintaxe somente vlida quando combinada ao curinga em NameVirtualHost *. Ao usar endereos IPv6, inclua o endereo entre colchetes.

470

Referncia

Exemplo 26.2 Diretivas VirtualHost identificadas por nome


<VirtualHost 192.168.1.100:80> ... </VirtualHost> <VirtualHost 192.168.1.100> ... </VirtualHost> <VirtualHost *:80> ... </VirtualHost> <VirtualHost *> ... </VirtualHost> <VirtualHost [2002:c0a8:164::]> ... </VirtualHost>

Hosts virtuais identificados por IP


Esta configurao de host virtual alternativa requer a configurao de vrios IPs para uma mquina. Uma instncia do Apache hospeda vrios domnios, a cada qual atribudo um IP diferente. O servidor fsico deve ter um endereo IP para cada host virtual identificado por IP. Se a mquina no tiver vrias placas de rede, interfaces de rede virtuais (lias de IP) tambm podero ser usadas. O seguinte exemplo mostra o Apache em execuo em uma mquina com o IP 192.168.0.10, hospedando dois domnios nos IPs adicionais 192.168.0.20 e 192.168.0.30. necessrio um bloco VirtualHost separado para cada servidor virtual. Exemplo 26.3 Diretivas VirtualHost identificadas por IP
<VirtualHost 192.168.0.20> ... </VirtualHost> <VirtualHost 192.168.0.30> ... </VirtualHost>

Aqui, as diretivas VirtualHost somente so especificadas para interfaces que no sejam 192.168.0.10. Quando uma diretiva Listen tambm configurada para 192.168.0.10, necessrio criar um host virtual identificado por IP separado para responder aos pedidos HTTP quela interface, caso contrrio, sero aplicadas as diretivas encontradas na configurao do servidor padro (/etc/apache2/default-server .conf).

Servidor HTTP Apache

471

Configurao bsica do host virtual


preciso que pelo menos as diretivas a seguir estejam presentes na configurao de cada host virtual para compor um host virtual. Consulte /etc/apache2/vhosts .d/vhost.template para conhecer mais opes. ServerName Nome de domnio completo com o qual o host dever ser intitulado. DocumentRoot Caminho para o diretrio do qual o Apache dever atender a arquivos deste host. Por motivos de segurana, proibido o acesso ao sistema de arquivos inteiro por padro, por isso, voc deve desbloquear explicitamente esse diretrio dentro de um container Directory. ServerAdmin Endereo de e-mail do administrador de servidor. Este endereo, por exemplo, mostrado nas pginas de erro criadas pelo Apache. ErrorLog Arquivo de registro de erros deste host virtual. Embora no seja necessrio, costumase criar arquivos de registro de erros separados para cada host virtual, visto que facilita bastante a depurao de erros. /var/log/apache2/ o diretrio padro no qual devem ser mantidos os arquivos de registro do Apache. CustomLog Arquivo de registro de acessos deste host virtual. Embora no seja necessrio, costuma-se criar arquivos de registro de acessos separados para cada host virtual, visto que permite a anlise das estatsticas de acesso de cada host individualmente. /var/log/apache2/ o diretrio padro no qual devem ser mantidos os arquivos de registro do Apache. Conforme mencionado acima, devido a motivos de segurana, proibido o acesso ao sistema de arquivos inteiro por padro. Portanto, desbloqueie explicitamente o diretrio DocumentRoot no qual voc colocou os arquivos a serem atendidos pelo Apache:
<Directory "/srv/www/example.com_htdocs"> Order allow,deny Allow from all </Directory>

O arquivo de configurao completo tem a seguinte aparncia:

472

Referncia

Exemplo 26.4 Configurao bsica de VirtualHost


<VirtualHost 192.168.0.10> ServerName www.exemplo.com DocumentRoot /srv/www/exemplo.com_htdocs ServerAdmin webmaster@exemplo.com ErrorLog /var/log/apache2/www.exemplo.com_log CustomLog /var/log/apache2/www.exemplo.com-access_log common <Directory "/srv/www/exemplo.com"> Order allow,deny Allow from all </Directory> </VirtualHost>

26.2.2 Configurando o Apache com o YaST


Para configurar o servidor Web com o YaST, inicie o YaST e selecione Servios de Rede Servidor HTTP. Quando o mdulo iniciado pela primeira vez, o Assistente de Servidor HTTP iniciado, solicitando que voc tome algumas decises bsicas em relao administrao do servidor. Aps concluir o assistente, a caixa de dilogo em Configurao de Servidor HTTP (p 478) iniciada toda vez que voc chama o mdulo Servidor HTTP.

Assistente de Servidor HTTP


O Assistente de Servidor HTTP consiste em cinco etapas. Na ltima etapa da caixa de dilogo, voc tem a oportunidade de entrar no modo de configurao de especialista para realizar configuraes ainda mais especficas.

Seleo de Dispositivo de Rede


Especifique aqui as interfaces e portas de rede usadas pelo Apache para escutar as solicitaes recebidas. Voc pode selecionar qualquer combinao de interfaces de rede existentes e seus respectivos endereos IP. As portas de todas as trs faixas (portas conhecidas, portas registradas e portas dinmicas ou privadas) que no forem reservadas por outros servios podero ser usadas. A configurao padro escutar em todas as interfaces de rede (endereos IP) pela porta 80. Marque Abrir Firewall nas Portas Selecionadas para abrir as portas no firewall em que o servidor Web escuta. necessrio disponibilizar um servidor Web na rede, que pode

Servidor HTTP Apache

473

ser uma LAN, uma WAN ou a Internet. Manter a porta fechada til somente nas situaes de teste em que no necessrio nenhum acesso externo ao servidor Web. Clique em Prximo para continuar a configurao.

Mdulos
A opo de configurao Mdulos propicia a ativao ou desativao das linguagens de script para as quais o servidor Web dever ter suporte. Para obter informaes sobre a ativao ou desativao de outros mdulos, consulte Mdulos do Servidor (p 479). Clique em Prximo para avanar para a caixa de dilogo seguinte.

Host Padro
Esta opo pertence ao servidor Web padro. Como explicado na Configurao do host virtual (p 469), o Apache pode atender a vrios hosts virtuais a partir de uma nica mquina fsica. O primeiro host virtual declarado no arquivo de configurao normalmente conhecido como host padro. Cada host virtual herda a configurao do host padro. Para editar as configuraes do host (tambm chamadas de diretivas), escolha a entrada adequada na tabela e clique em Editar. Para adicionar novas diretivas, clique em Adicionar. Para apagar uma diretiva, selecione-a e clique em Excluir.

474

Referncia

Figura 26.1 Assistente de Servidor HTTP: Host Padro

Esta a lista das configuraes padro do servidor: Raiz de Documento Caminho para o diretrio do qual o Apache atende a arquivos deste host. /srv/ www/htdocs o local padro. Alias Com a ajuda das diretivas Alias, os URLs podem ser mapeados para localizaes fsicas do sistema de arquivos. Isso significa que determinado caminho mesmo fora da Raiz de Documento no sistema de arquivos pode ser acessado por meio de um URL que serve de lias para esse caminho. O diretrio padro Alias /icons do SUSE Linux aponta para /usr/share/ apache2/icons para os cones do Apache exibidos na tela de ndice de diretrio. ScriptAlias Semelhante diretiva Alias, a diretiva ScriptAlias mapeia um URL para a localizao do sistema de arquivos. A diferena que ScriptAlias designa o

Servidor HTTP Apache

475

diretrio de destino como localizao CGI, significando que os scripts CGI devem ser executados nessa localizao. Diretrio Com a configurao Diretrio, voc pode incluir um grupo de opes de configurao que se aplicaro somente ao diretrio especificado. As opes de acesso e exibio dos diretrios /usr/share/apache2/icons e /srv/www/cgi-bin so configuradas aqui. No dever ser necessrio mudar os padres. Incluso Com a incluso possvel especificar arquivos de configurao adicionais. /etc/ apache2/conf.d/ o diretrio que contm os arquivos de configurao que acompanham os mdulos externos. Por padro, esto includos todos os arquivos neste diretrio (*.conf). /etc/apache2/conf.d/apache2-manual ?conf o diretrio que contm todos os arquivos de configurao apache2-manual. Nome do Servidor Especifica o URL padro usado por clientes para contatar o servidor Web. Use um nome completo de domnio (FQDN) para acessar o servidor Web em http://FQDN/ ou em seu endereo IP. No possvel escolher um nome arbitrrio aqui; o servidor dever ser conhecido por este nome. E-Mail do Administrador do Servidor Endereo de e-mail do administrador de servidor. Este endereo, por exemplo, mostrado nas pginas de erro criadas pelo Apache. Resoluo do Servidor Esta opo refere-se Configurao do host virtual (p 469). Determinar Servidor que Solicita por Cabealhos HTTP permite uma resposta do VirtualHost para uma solicitao a seu nome de servidor (consulte Hosts virtuais identificados por nome (p 470)). Determinar Servidor que Solicita por Endereo IP faz com que o Apache selecione o host solicitado, de acordo com as informaes de cabealho HTTP enviadas pelo cliente. Consulte Hosts virtuais identificados por IP (p 471) para obter mais detalhes sobre hosts virtuais identificados por IP. Aps concluir a etapa do Host Padro, clique em Prximo para continuar a configurao.

476

Referncia

Hosts Virtuais
Nesta etapa, o assistente exibe uma lista dos hosts virtuais j configurados (consulte Configurao do host virtual (p 469)). Se voc no tiver feito mudanas manualmente antes de iniciar o assistente de HTTP do YaST, somente um host virtual estar presente (idntico ao host padro configurado na etapa anterior). Ele est marcado como padro (com um asterisco ao lado do nome do servidor). Para adicionar um host, clique em Adicionar para abrir uma caixa de dilogo na qual inserir informaes bsicas sobre o host. Identificao de Servidor contm o nome do servidor, a raiz do contedo do servidor (DocumentRoot) e o e-mail do administrador. Resoluo do Servidor usado para determinar como um host identificado (por nome ou por IP). Essas opes so explicadas em Host Padro (p 474). Clique em Prximo para avanar para a segunda parte da caixa de dilogo de configurao do host virtual. Na parte 2 da configurao do host virtual especifique se os scripts CGI sero habilitados e os diretrios a serem usados para eles. Tambm possvel habilitar SSL. Para isso, necessrio especificar tambm o caminho para o certificado. Consulte a Seo 26.6.2, Configurando o Apache com SSL (p 498) para obter detalhes sobre SSL e certificados. Com a opo ndice de Diretrio, voc pode especificar o arquivo a exibir quando o cliente solicita um diretrio (por padro, index.html). Adicione um ou mais nomes de arquivos (separados por espaos) se desejar mudar essa definio. Com a opo Habilitar HTML Pblico, o contedo dos diretrios pblicos dos usurios (~user/public _html/) disponibilizado no servidor em http://www.example.com/~user. IMPORTANTE: Criando hosts virtuais No possvel adicionar hosts virtuais vontade. Quando se usa hosts virtuais identificados por nome, cada nome de host dever ser resolvido na rede. No caso de hosts virtuais identificados por IP, voc s pode designar um host para cada endereo IP disponvel.

Resumo
Esta a etapa final do assistente. Determine como e quando o servidor Apache deve ser iniciado: durante a inicializao ou manualmente. Consulte tambm um breve resumo sobre a configurao feita at o momento. Se voc estiver satisfeito com as configuraes, clique em Concluir para concluir a configurao. Para mudar algo, clique Servidor HTTP Apache 477

em Anterior at chegar caixa de dilogo desejada. Clique em Configurao Especialista de Servidor HTTP para abrir a caixa de dilogo descrita em Configurao de Servidor HTTP (p 478). Figura 26.2 Assistente de Servidor HTTP: Resumo

Configurao de Servidor HTTP


A caixa de dilogo Configurao de Servidor HTTP permite tambm fazer mais ajustes configurao do que o assistente (executado somente quando voc configura o servidor Web pela primeira vez). Ela consiste em quatro guias descritas a seguir. Nenhuma opo de configurao mudada ser efetivada imediatamente voc sempre precisar confirmar as mudanas com Concluir para torn-las efetivas. Ao clicar em Cancelar, voc sai do mdulo de configurao e descarta suas mudanas.

Escutar Portas e Endereos


Em Servio HTTP, defina se o Apache dever estar em execuo (Habilitado) ou parado (Desabilitado). Em Escutar nas Portas, Adicione, Edite, ou Apague endereos e portas nos quais o servidor dever estar disponvel. O padro escutar em todas as interfaces

478

Referncia

pela porta 80. Sempre marque a opo Abrir Firewall nas Portas Selecionadas, seno o servidor Web no poder ser alcanado do exterior. Manter a porta fechada til somente nas situaes de teste em que no necessrio nenhum acesso externo ao servidor Web. Com Arquivos de Registro, observe o registro de acesso ou o registro de erros. Isso til para testar a configurao. O arquivo de registro abre uma janela separada, na qual voc tambm pode reiniciar ou recarregar o servidor Web (consulte a Seo 26.3, Iniciando e parando o Apache (p 480) para obter detalhes). Esses comandos so efetivados imediatamente. Figura 26.3 Configurao de Servidor HTTP: Escutar Portas e Endereos

Mdulos do Servidor
Voc pode mudar o status (habilitado ou desabilitado) dos mdulos do Apache2 clicando em Toggle Status. Clique em Adicionar Mdulo para adicionar um novo mdulo que j esteja instalado mas no relacionado. Saiba mais sobre mdulos na Seo 26.4, Instalando, ativando e configurando mdulos (p 482).

Servidor HTTP Apache

479

Figura 26.4 Configurao de Servidor HTTP: Mdulos do Servidor

Host Padro ou Hosts


Essas caixas de dilogo so idnticas s que j foram descritas. Consulte Host Padro (p 474) e Hosts Virtuais (p 477).

26.3 Iniciando e parando o Apache


Se tiver sido configurado com o YaST (consulte a Seo 26.2.2, Configurando o Apache com o YaST (p 473)), o Apache ser iniciado durante o tempo de inicializao nos nveis de execuo 3 e 5 e parado nos nveis de execuo 0, 1, 2 e 6. Voc poder mudar esse comportamento usando o editor de nvel de execuo do YaST ou a ferramenta de linha de comando chkconfig. Para iniciar, parar ou manipular o Apache em um sistema em execuo, use o script init /usr/sbin/rcapache2 (consulte a Seo 8.2.2, Scripts Init (p 192) para obter informaes gerais sobre os scripts init). O comando rcapache2 usa os seguintes parmetros:

480

Referncia

start Inicia o Apache caso ainda no esteja em execuo. startssl Inicia o Apache com suporte SSL caso ainda no esteja em execuo. Para obter mais informaes sobre o suporte SSL, consulte a Seo 26.6, Configurando um servidor Web seguro com SSL (p 493). restart Pra e reinicia o Apache. Inicia o servidor Web caso ele no estivesse em execuo antes. try-restart Pra e reinicia o Apache somente se estivesse em execuo antes. reload or graceful Pra o servidor Web instruindo todos os processos bifurcados do Apache para concluir suas solicitaes antes de encerrar. Com o trmino de cada processo, ele substitudo por um processo recm-iniciado, o que resulta no reincio completo do Apache. DICA rcapache2 reload o mtodo preferencial para reiniciar o Apache em ambientes de produo (por exemplo, para ativar uma mudana na configurao), pois permite que todos os clientes sejam atendidos sem provocar interrupes na conexo. configtest Verifica a sintaxe dos arquivos de configurao sem afetar um servidor Web em execuo. Como essa verificao forada toda vez que o servidor iniciado, recarregado ou reiniciado, normalmente no necessrio executar o teste explicitamente (se houver um erro de configurao, o servidor Web no ser iniciado, recarregado nem reiniciado). probe Examina a necessidade de um recarregamento (verifica se a configurao mudou) e sugere os argumentos necessrios para o comando rcapache2.

Servidor HTTP Apache

481

server-status e full-server-status Descarta uma tela de status breve ou completa, respectivamente. Requer lynx ou w3m instalado e o mdulo mod_status habilitado. Alm disso, adicione status a APACHE_SERVER_FLAGS no arquivo /etc/sysconfig/apache2. DICA: Flags adicionais Se voc especificar flags adicionais a rcapache2, eles sero transferidos diretamente para o servidor Web.

26.4 Instalando, ativando e configurando mdulos


O software do Apache criado de maneira modular: toda a funcionalidade, exceto algumas tarefas centrais, so manipuladas por mdulos. Isso progrediu tanto que at o HTTP processado por um mdulo (http_core). Os mdulos do Apache podem ser incorporados ao binrio do Apache durante a compilao ou carregados dinamicamente durante a execuo. Consulte a Seo 26.4.2, Ativao e desativao (p 483) para obter detalhes sobre como carregar os mdulos de maneira dinmica. Os mdulos do Apache podem ser divididos em quatro categorias diferentes: Mdulos de base Os mdulos de base so compilados no Apache por padro. O Apache do SUSE Linux possui somente a compilao de mod_so (necessrio para carregar outros mdulos) e http_core. Todos os outros esto disponveis como objetos compartilhados: em vez de serem includos no binrio do servidor, eles podem ser includos durante a execuo. Mdulos de extenso Em geral, os mdulos chamados de extenses vm no pacote de software do Apache, mas normalmente no so compilados estaticamente no servidor. No SUSE Linux, esses mdulos esto disponveis como objetos compartilhados que podem ser carregados no Apache durante a execuo.

482

Referncia

Mdulos externos Os mdulos rotulados como externos no esto includos na distribuio oficial do Apache. O SUSE Linux oferece vrios deles j disponveis para uso. Mdulos de multiprocessamento Os MPMs so responsveis pela aceitao e manipulao de solicitaes ao servidor Web, representando o centro do software do servidor Web.

26.4.1 Instalao dos mdulos


Se voc seguiu a maneira padro de instalar o Apache (descrita na Seo 26.1.2, Instalao (p 464)), ele ser instalado com todos os mdulos de base e de extenso, o mdulo de multiprocessamento Prefork MPM e o mdulo externo PHP5. Voc pode instalar mdulos externos adicionais iniciando o YaST e escolhendo Software Gerenciamento de Software. Agora escolha Filtro Pesquisa e procure apache. Entre outros pacotes, a lista resultante contm todos os mdulos externos disponveis do Apache.

26.4.2 Ativao e desativao


Ao usar o YaST, voc pode ativar ou desativar os mdulos da linguagem de script (PHP5, Perl, Python e Ruby) com a configurao de mdulo descrita em Assistente de Servidor HTTP (p 473). Todos os outros mdulos podem ser habilitados ou desabilitados conforme descrio em Mdulos do Servidor (p 479). Se preferir ativar ou desativar os mdulos manualmente, use os comandos a2enmod mod_foo ou a2dismod mod_foo respectivamente. a2enmod -l gera uma lista de todos os mdulos ativos no momento. IMPORTANTE: Incluindo arquivos de configurao para mdulos externos Se voc ativou os mdulos externos manualmente, certifique-se de carregar seus arquivos de configurao em todas as configuraes de host virtual. Os arquivos de configurao para mdulos externos localizam-se em /etc/ apache2/conf.d/ e no so carregados por padro. Se voc precisar dos mesmos mdulos em cada host virtual, poder incluir *.conf a partir desse

Servidor HTTP Apache

483

diretrio. Caso contrrio, inclua os arquivos individuais. Consulte /etc/ apache2/vhost.d/vhost.template para obter exemplos.

26.4.3 Mdulos de base e de extenso


Todos os mdulos de base e de extenso so descritos detalhadamente na documentao do Apache. Somente uma descrio breve dos mdulos mais importantes est disponvel aqui. Consulte http://httpd.apache.org/docs/2.2/mod/ para saber detalhes sobre cada mdulo. mod_alias Fornece as diretivas Alias e Redirect, com as quais possvel mapear um URl para um diretrio especfico (Alias) ou redirecionar um URL solicitado para outra localizao. Esse mdulo habilitado por padro. mod_auth* Os mdulos de autenticao oferecem diferentes mtodos de autenticao: autenticao bsica com mod_auth_basic ou autenticao sintetizada com mod_auth_digest. A autenticao sintetizada considerada experimental no Apache 2.2. mod_auth_basic e mod_auth_digest devem ser combinados com um mdulo provedor de autenticao, mod_authn_* (por exemplo, mod_authn_file para autenticao baseada em arquivo de texto) e com um mdulo de autorizao mod_authz_* (por exemplo, mod_authz_user para autorizao de usurio). Mais informaes sobre este tpico esto disponveis nas instrues Como fazer autenticao em http://httpd.apache.org/docs/2.2/howto/auth .html mod_autoindex Autoindex gera listagens de diretrio quando no h nenhum arquivo de ndice (por exemplo, index.html). A aparncia desses ndices configurvel. Esse mdulo habilitado por padro. No entanto, as listagens de diretrio so desabilitadas por padro por meio da diretiva Options sobregrave essa definio na configurao do seu host virtual. O arquivo de configurao padro desse mdulo est localizado em /etc/apache2/mod _autoindex-defaults.conf.

484

Referncia

mod_cgi mod_cgi necessrio para executar scripts CGI. Esse mdulo habilitado por padro. mod_deflate Quando se usa esse mdulo, o Apache pode ser configurado para compactar dinamicamente determinados tipos de arquivos antes de entreg-los. mod_dir mod_dir fornece a diretiva DirectoryIndex, com a qual voc pode configurar os arquivos que sero entregues automaticamente quando for solicitado um diretrio (index.html por padro). Ele tambm faz o redirecionamento automtico para o URl correto quando uma solicitao de diretrio no contm uma barra no fim. Esse mdulo habilitado por padro. mod_expires Com mod_expires, voc pode controlar a freqncia com que os caches de proxy e browser atualizam seus documentos enviando um cabealho Expires. Esse mdulo habilitado por padro. mod_include mod_include permite usar SSI (Server Side Includes), que fornece uma funcionalidade bsica para gerar pginas HTML de forma dinmica. Esse mdulo habilitado por padro. mod_info Fornece uma viso geral abrangente da configurao do servidor em http://localhost/server-info/. Por motivos de segurana, voc deve sempre limitar o acesso a esse URL. Por padro, somente localhost possui permisso para acessar esse URL. mod_info est configurado em /etc/apache2/mod_info .conf mod_log_config Com este mdulo, possvel configurar a aparncia dos arquivos de registro do Apache. Esse mdulo habilitado por padro. mod_mime O mdulo mime assegura-se de que um arquivo seja entregue com o cabealho MIME correto de acordo com a extenso do nome do arquivo (por exemplo text/html para documentos HTML). Esse mdulo habilitado por padro.

Servidor HTTP Apache

485

mod_negotiation Necessrio para negociao de contedo. Consulte http://httpd.apache.org/docs/2.2/content-negotiation.html para obter mais informaes. Esse mdulo habilitado por padro. mod_rewrite Fornece a funcionalidade do mod_alias, porm, oferece mais recursos e flexibilidade. Com mod_rewrite, voc pode redirecionar URLs de acordo com regras mltiplas, cabealhos de solicitao e outros. mod_speling mod_speling tenta corrigir automaticamente erros tipogrficos em URLs, como erros de maiscula/minscula. mod_ssl Habilita as conexes criptografadas entre o servidor Web e os clientes. Consulte a Seo 26.6, Configurando um servidor Web seguro com SSL (p 493) para obter detalhes. Esse mdulo habilitado por padro. mod_status Fornece informaes sobre a atividade e o desempenho do servidor em http://localhost/server-status/. Por motivos de segurana, voc deve sempre limitar o acesso a esse URL. Por padro, somente localhost possui permisso para acessar esse URI. mod_status est configurado em /etc/apache2/mod _status.conf mod_suexec mod_suexec permite executar scripts CGI para outro usurio e grupo. Esse mdulo habilitado por padro. mod_userdir Habilita diretrios especficos de usurio disponveis em ~user/. A diretiva UserDir deve ser especificada na configurao. Esse mdulo habilitado por padro.

26.4.4 Mdulos de multiprocessamento


O SUSE Linux oferece dois mdulos de multiprocessamento (MPMs) diferentes para uso com o Apache.

486

Referncia

MPM prefork
O MPM prefork implementa um servidor Web de pr-bifurcao sem threads. Ele faz o servidor Web comportar-se de maneira semelhante ao Apache verso 1.x, no sentido de isolar as solicitaes e as manipular atravs da bifurcao de um processo filho separado. Dessa forma, solicitaes problemticas no podem afetar outras, evitando um bloqueio do servidor Web. Embora o MPM prefork oferea estabilidade com este mtodo processual, ele consome mais recursos do sistema do que o seu equivalente, o MPM worker. O MPM prefork considerado o MPM padro para sistemas operacionais baseados em Unix. IMPORTANTE: MPMs neste documento Este documento pressupe que o Apache usado com o MPM prefork.

MPM worker
O MPM worker oferece um servidor Web de vrios threads. Thread a forma mais simples de um processo. A vantagem de um thread em relao a um processo o menor consumo de recursos. Em vez de somente bifurcar processos filhos, o MPM worker atende solicitaes usando threads com processos do servidor. Os processos filhos pr-bifurcados possuem vrios threads. Esse mtodo melhora o desempenho do Apache por consumir menos recursos do sistema do que o MPM prefork. Uma grande desvantagem a estabilidade do MPM worker: se um thread for corrompido, todos os threads de um processo podem ser afetados. No pior dos casos, isso poder resultar em falha do servidor. Talvez ocorram erros internos do servidor devido a threads que no podem se comunicar com recursos do sistema, sobretudo ao usar CGI (Common Gateway Interface) com o Apache em situao de sobrecarga. Outro argumento contra o uso do MPM worker com o Apache que nem todos os mdulos disponveis do Apache so seguros para o thread e, portanto, no podem ser usados em conjunto com o MPM worker. ATENO: Usando mdulos PHP com MPMs Nem todos os mdulos PHP disponveis so seguros para o thread. O uso do MPM worker com mod_php bastante desaconselhvel.

Servidor HTTP Apache

487

26.4.5 Mdulos externos


Veja aqui uma lista de todos os mdulos externos fornecidos com o SUSE Linux. Veja a documentao do mdulo no diretrio indicado. FastCGI FastCGI uma extenso ao CGI independente de linguagem, escalvel e aberta que oferece alto desempenho sem as limitaes de APIs especficas de servidor. Os aplicativos FastCGI so muito rpidos por serem persistentes. No h overhead de inicializao por solicitao. Nome do pacote: apache2-mod_fastcgi Arquivo de configurao: /etc/apache2/conf.d/mod_fastcgi.conf Mais informaes: /usr/share/doc/packages/apache2-mod_fastcgi mod_perl mod_perl o habilita a executar scripts Perl em um interpretador embutido. O interpretador persistente embutido no servidor evita o overhead de iniciar um interpretador externo e a desvantagem do tempo de inicializao do Perl. Nome do pacote: apache2-mod_perl Arquivo de configurao: /etc/apache2/conf.d/mod_perl.conf Mais informaes: /usr/share/doc/packages/apache2-mod_perl mod_php5 PHP uma linguagem de script embutida em HTML para vrias plataformas no servidor. Nome do pacote: apache2-mod_php5 Arquivo de configurao: /etc/apache2/conf.d/php5.conf Mais informaes: /usr/share/doc/packages/apache2-mod_php5 mod_python mod_python permite embutir o Python no servidor HTTP Apache visando um impulso considervel no desempenho e maior flexibilidade ao desenvolver aplicativos baseados na Web. Nome do pacote: apache2-mod_python Mais informaes: /usr/share/doc/packages/apache2-mod_python

488

Referncia

mod_ruby O mod_ruby embute o interpretador Ruby no servidor Web Apache, permitindo que os scripts CGI do Ruby sejam executados de forma nativa. Eles so iniciados muito mais rapidamente do que sem mod_ruby. Nome do pacote: apache2-mod_ruby Mais informaes: /usr/share/doc/packages/apache2-mod_ruby mod_jk-ap20 Esse mdulo fornece conectores entre o Apache e um container do servlet Tomcat. Nome do pacote: mod_jk-ap20 Mais informaes: /usr/share/doc/packages/mod_jk-ap20

26.4.6 Compilao
O Apache pode ser estendido por usurios avanados atravs da gravao de mdulos personalizados. Para desenvolver mdulos para o Apache ou compilar mdulos de terceiros, necessrio o pacote apache2-devel e as ferramentas de desenvolvimento correspondentes. O apache2-devel tambm contm as ferramentas apxs2, que so necessrias para a compilao de mdulos adicionais para o Apache. O apxs2 permite a compilao e instalao de mdulos do cdigo-fonte (inclusive as mudanas necessrias nos arquivos de configurao), que cria objetos compartilhados dinmicos (DSOs) que podem ser carregados no Apache durante a execuo. Os binrios do apxs2 ficam localizados em /usr/sbin: /usr/sbin/apxs2 apropriado para a criao de um mdulo de extenso que funciona com qualquer MPM. A instalao fica localizada em /usr/lib/ apache2. /usr/sbin/apxs2-prefork apropriado para os mdulos MPM prbifurcao. A instalao fica localizada em /usr/lib/apache2-prefork. /usr/sbin/apxs2-worker apropriado para os mdulos MPM prbifurcao. O apxs2 instala os mdulos de modo que possam ser usados em todos os MPMs. Os outros dois programas instalam os mdulos para que possam ser usados somente nos

Servidor HTTP Apache

489

respectivos MPMs. O apxs2 instala os mdulos em /usr/lib/apache2, enquanto que o apxs2-prefork e o apxs2-worker instalam os mdulos em /usr/lib/ apache2-prefork ou /usr/lib/apache2-worker. Instale e ative um mdulo a partir do cdigo-fonte usando os comandos cd /path/to/module/source; apxs2 -cia mod_foo.c (-c compila, -i instala e -a ativa o mdulo). Outras opes do apxs2 so descritas na pgina de manual apxs2(1).

26.5 Obtendo scripts CGI para trabalhar


A CGI (Common Gateway Interface, interface de gateway comum) do Apache permite a criao de contedo dinmico usando programas ou scripts geralmente chamados de scripts CGI. Os scripts CGI podem ser escritos em qualquer linguagem de programao. Em geral, so usadas linguagens de script como Perl ou PHP. Para habilitar o Apache a fornecer contedo criado por scripts CGI, necessrio ativar mod_cgi. mod_alias tambm necessrio. Ambos so habilitados por padro. Consulte a Seo 26.4.2, Ativao e desativao (p 483) para obter detalhes sobre a ativao de mdulos. ATENO: Segurana de CGI A permisso concedida ao servidor para executar scripts CGI constitui uma potencial falha de segurana. Consulte a Seo 26.7, Evitando problemas de segurana (p 499) para obter informaes adicionais.

26.5.1 Configurao do Apache


No SUSE Linux, a execuo de scripts CGI permitida somente no diretrio /srv/ www/cgi-bin/. A localizao j est configurada para executar scripts CGI. Se voc criou uma configurao de host virtual (consulte Configurao do host virtual (p 469)) e deseja colocar seus scripts em um diretrio especfico de host, dever desbloquear e configurar esse diretrio.

490

Referncia

Exemplo 26.5 Configurao de CGI para VirtualHost


ScriptAlias /cgi-bin/ "/srv/www/exemplo.com_cgi-bin/" <Directory "/srv/www/exemplo.com_cgi-bin/"> Options +ExecCGI AddHandler cgi-script .cgi .pl Order allow,deny Allow from all </Directory>

Instrui o Apache a tratar todos os arquivos dentro desse diretrio como scripts CGI. Habilita a execuo de scripts CGI. Instrui o servidor a tratar os arquivos com extenses .pl e .cgi como scripts CGI. Ajuste de acordo com as suas necessidades. As diretivas Order e Allow controlam o estado de acesso padro e a ordem em que as diretivas Allow e Deny so avaliadas. Neste caso, as declaraes deny so avaliadas antes das declaraes allow, e o acesso de todos os lugares habilitado.

26.5.2 Executando um script de exemplo


A programao CGI difere da programao "normal" no sentido de que os programas e scripts CGI precisam ser precedidos por um cabealho de tipo MIME como Content-type: text/html. Esse cabealho enviado ao cliente, para que ele identifique o tipo de contedo que est recebendo. Alm disso, a sada do script deve ser compreensvel pelo cliente, geralmente um browser da Web (HTML na maioria dos casos, texto simples ou imagens, por exemplo). Um script de teste simples, disponvel em /usr/share/doc/packages/ apache2/test-cgi, faz parte do pacote do Apache. Ele gera o contedo de algumas variveis de ambiente como texto simples. Copie-o para /srv/www/cgi-bin/ ou para o diretrio de script do seu host virtual (/srv/www/exemplo.com_cgi-bin/) e nomeieo como teste.cgi. Os arquivos acessveis pelo servidor Web devem ser de propriedade do usurio Root (consulte a Seo 26.7, Evitando problemas de segurana (p 499) para obter

Servidor HTTP Apache

491

informaes adicionais). Como os servidores Web so executados com outro usurio, os scripts CGI devem ser passveis de execuo e leitura universais. Passe para o diretrio CGI e use o comando chmod 755 teste.cgi para aplicar as permisses apropriadas. Agora chame http://localhost/cgi-bin/teste.cgi ou http://exemplo.com/cgi-bin/teste.cgi. Voc dever ver o relatrio do script de teste CGI/1.0.

26.5.3 Soluo de problemas


Se em vez de da sada do programa de teste for exibida uma mensagem de erro, verifique o seguinte: Soluo de problemas de CGI Voc recarregou o servidor aps mudar a configurao? Verifique com rcapache2 probe. Se voc configurou seu diretrio CGI personalizado, ele est configurado corretamente? Em caso de dvida, experimente o script dentro do diretrio CGI padro /srv/www/cgi-bin/ e chame-o com http://localhost/cgi-bin/teste.cgi. As permisses de arquivo esto corretas? Passe para o diretrio CGI e execute o comando ls -l teste.cgi. A sada dever comear com
-rwxr-xr-x 1 root root

Verifique se o script no contm erros de programao. Se voc no tiver mudado o teste.cgi, talvez no seja essa a questo. Porm, se voc estiver usando seus prprios programas, sempre verifique se eles no contm erros de programao.

492

Referncia

26.6 Configurando um servidor Web seguro com SSL


Sempre que h transferncia de dados confidenciais (como informaes de carto de crdito) entre o servidor Web e o cliente, desejvel ter uma conexo criptografada segura com autenticao. O mod_ssl oferece uma criptografia forte usando os protocolos SSL (Secure Sockets Layer) e TLS (Transport Layer Security) na comunicao HTTP entre um cliente e o servidor Web. Com SSL/TSL, estabelecida uma conexo privada entre o servidor Web e o cliente. Com a integridade dos dados garantida, cliente e servidor so capazes de autenticar-se um ao outro. Para isso, o servidor envia um certificado SSL contendo informaes que comprovam a validade da identidade do servidor antes que solicitaes a um URL sejam respondidas. Por sua vez, isso garante que o servidor o nico ponto de terminao correto para essa comunicao. Alm disso, o certificado gera uma conexo criptografada entre o cliente e o servidor capaz de transmitir informaes sem o risco de exposio de contedo confidencial em texto simples. Em vez de implementar os protocolos SSL/TSL por conta prpria, o mod_ssl atua como interface entre o Apache e uma biblioteca SSL. A biblioteca OpenSSL usada no SUSE Linux. Ela instalada automaticamente com o Apache. O efeito mais visvel do uso de mod_ssl com o Apache que os URLs aparecem com o prefixo https:// em vez de http://.

26.6.1 Criando um certificado SSL


Para usar SSL/TSL com o servidor Web, voc deve criar um certificado SSL. Esse certificado, necessrio para a autorizao entre o servidor Web e o cliente, possibilita a cada parte identificar claramente a outra. Para garantir a integridade do certificado, ele deve ser assinado por uma entidade em que todos os usurios confiem. H trs tipos de certificados que voc pode criar: um certificado simulado somente para teste, um certificado auto-assinado para um crculo definido de usurios que confiam em voc e um certificado assinado por uma autoridade de certificao (CA) notria e independente.

Servidor HTTP Apache

493

A criao de um certificado se resume em um processo de duas etapas. Primeiro gerada uma chave privada para a autoridade de certificao, em seguida, o certificado do servidor assinado com essa chave. DICA: Mais informaes Para saber mais sobre conceitos e definies sobre SSL/TSL, consulte http://httpd.apache.org/docs/2.2/ssl/ssl_intro.html.

Criando um certificado simulado


Gerar um certificado simulado simples. Basta chamar o script /usr/bin/gensslcert. Ele cria ou sobregrava os seguintes arquivos: /etc/apache2/ssl.crt/ca.crt /etc/apache2/ssl.crt/server.crt /etc/apache2/ssl.key/server.key /etc/apache2/ssl.csr/server.csr Uma cpia de ca.crt tambm colocada em /srv/www/htdocs/CA.crt para download. IMPORTANTE Um certificado simulado nunca deve ser usado em um sistema de produo. Use-o somente para teste.

Criando um certificado auto-assinado


Se voc estiver configurando um servidor Web seguro para uma Intranet ou para um crculo definido de usurios, talvez seja suficiente assinar um certificado com sua prpria autoridade de certificao (CA). A criao de um certificado auto-assinado um processo interativo de nove etapas. Passe para o diretrio /usr/share/doc/packages/apache2 e execute o seguinte comando: ./mkcert.sh make --no-print-directory

494

Referncia

/usr/bin/openssl /usr/sbin/ custom. No tente executar esse comando fora desse diretrio. O programa apresenta uma srie de prompts, dos quais alguns precisam de entrada do usurio. Procedimento 26.1 Criao de um certificado auto-assinado com mkcert.sh 1 Decide the signature algorithm used for certificates (Defina o algoritmo de assinatura usado para certificados) Escolha RSA ( com DSA.
R

, o padro), pois alguns browsers mais antigos tm problema

2 Generating RSA private key for CA (1024 bit) (Gerando chave privada RSA para CA - 1024 bits) Nenhuma interao necessria. 3 Generating X.509 certificate signing request for CA (Gerando solicitao de assinatura de certificado X.509 para CA) Crie aqui o nome exclusivo da CA. Para isso voc ter que responder a algumas perguntas, como nome do pas ou da organizao. Digite dados vlidos, pois tudo que voc digitar aqui aparecer depois no certificado. Voc no precisa responder a todas as perguntas. Se alguma no lhe diz respeito ou se voc quer deix-la em branco, use .. Nome comum o nome da prpria CA escolha um nome significativo, como CA Minha empresa. 4 Generating X.509 certificate for CA signed by itself (Gerando certificado X.509 para CA assinado por ele prprio) Escolha a verso
3

do certificado (padro).

5 Generating RSA private key for SERVER (1024 bit) (Gerando chave privada RSA para servidor - 1024 bits) Nenhuma interao necessria.

Servidor HTTP Apache

495

6 Generating X.509 certificate signing request for SERVER (Gerando solicitao de assinatura de certificado X.509 para servidor) Crie aqui o nome exclusivo da chave do servidor. As perguntas so quase idnticas s que j foram respondidas para o nome exclusivo da CA. Os dados digitados aqui se aplicam ao servidor Web e no precisam ser idnticos aos dados da CA (por exemplo, se o servidor estiver em outro lugar). IMPORTANTE: Selecionando um nome comum O nome comum digitado aqui dever ser o nome de host completo do servidor seguro (por exemplo, www.exemplo.com). De outra forma, quando o browser acessar o servidor Web, ele emitir aviso de que o certificado no corresponde ao servidor. 7 Generating X.509 certificate signed by own CA (Gerando certificado X.509 assinado pela prpria CA) Escolha a verso
3

do certificado (padro).

8 Encrypting RSA private key of CA with a pass phrase for security (Criptografando chave privada RSA da CA com frase secreta por segurana) altamente recomendvel criptografar a chave privada da CA com uma senha, por isso, escolha Y e digite uma senha. 9 Encrypting RSA private key of SERVER with a pass phrase for security (Criptografando chave privada RSA do servidor com frase secreta por segurana) Criptografar a chave do servidor com senha significa digitar essa senha todas as vezes que o servidor Web for iniciado. Isso dificulta o incio automtico do servidor na inicializao da mquina ou a reinicializao do servidor Web. Portanto, razovel responder N a essa pergunta. Lembre-se de que a sua chave fica desprotegida quando no criptografada com senha e assegure-se de que somente pessoas autorizadas tenham acesso chave.

496

Referncia

IMPORTANTE: Criptografando a chave do servidor Se voc escolher criptografar a chave do servidor com senha, aumente o valor de APACHE_TIMEOUT em /etc/sysconfig/apache2. Caso contrrio, voc no haver tempo suficiente para voc digitar a frase secreta antes que a tentativa de iniciar o servidor fracasse. A pgina de resultados do script contm uma lista com certificados e chaves gerados por ele. Ao contrrio da sada do script, os arquivos no foram gerados no diretrio local conf, mas nas localizaes corretas em /etc/apache2/. A ltima etapa copiar o arquivo do certificado da CA de /etc/apache2/ssl .crt/ca.crt em uma localizao em que os usurios possam acess-lo para incorpor-lo lista de CAs conhecidas e confiveis em seus browsers da Web. Caso contrrio, o browser acusar que o certificado foi emitido por uma autoridade desconhecida. O certificado vlido por um ano. IMPORTANTE: Certificados auto-assinados Somente use um certificado auto-assinado em um servidor Web que seja acessado pelas pessoas que o reconhecem e confiam em voc como autoridade de certificao. No recomendado usar esse tipo de certificado em uma loja aberta ao pblico, por exemplo.

Obtendo certificado assinado oficialmente


Existem autoridades de certificao oficiais que assinam seus certificados. O certificado, assinado por uma terceira parte confivel, pode ser confiado inteiramente. Os servidores Web que funcionam para o pblico geralmente tm um certificado oficialmente assinado. As CAs oficiais mais conhecidas so Thawte (http://www.thawte.com/ ou Verisign (www.verisign.com). Essas e outras CAs j so compiladas em todos os browsers, de modo que os certificados assinados por elas sejam aceitos automaticamente pelos browsers. Ao solicitar um certificado oficialmente assinado, em vez de enviar um certificado CA, voc emite uma CSR (Certificate Signing Request - solicitao de assinatura de certificado). Para cri-la, chame o script /usr/share/ssl/misc/CA.sh -newreq.

Servidor HTTP Apache

497

Em primeiro lugar, o script pede uma senha, com a qual a CSR deve ser criptografada. Em seguida, voc solicitado a digitar um nome exclusivo. Para isso voc ter que responder a algumas perguntas, como nome do pas ou da organizao. Digite dados vlidos tudo que voc digitar aqui aparecer depois no certificado e ser verificado. Voc no precisa responder a todas as perguntas. Se voc no tiver resposta para alguma pergunta ou quiser deix-la em branco, use .. Nome comum o nome da prpria CA escolha um nome significativo, como CA Minha empresa. Por fim, necessrio digitar uma senha de verificao e um nome de empresa alternativo. Localize a CSR no diretrio em que voc chamou o script. O nome do arquivo newreq .pem.

26.6.2 Configurando o Apache com SSL


A porta padro das solicitaes SSL e TLS no servidor Web a 443. No h conflito entre uma recepo normal do Apache na porta 80 e uma recepo habilitada por SSL/TLS do Apache na porta 443. Na verdade, HTTP e HTTPS podem ser executados na mesma instncia do Apache. Geralmente os hosts virtuais separados so usados para despachar solicitaes porta 80 e porta 443 para servidores virtuais separados. IMPORTANTE: Configurao de firewall No se esquea de abrir o firewall do Apache habilitado por SSL na porta 443. Isso pode ser feito com o YaST, conforme descrito em Configurando com o YaST (p 110). Para usar SSL, ele deve ser ativado na configurao global do servidor. Abra /etc/ sysconfig/apache2 em um editor e procure APACHE_MODULES. Adicione ssl lista de mdulos, caso ele ainda no esteja presente (mod_ssl ativado por padro). Em seguida, procure APACHE_SERVER_FLAGS e adicione SSL. Se voc decidiu criptografar com senha seu certificado de servidor, dever tambm aumentar o valor de APACHE_TIMEOUT para que tenha tempo suficiente de digitar a frase secreta quando o Apache for iniciado. Reinicie o servidor para ativar essas mudanas. No basta recarregar. O diretrio da configurao de host virtual contm um modelo /etc/apache2/ vhosts.d/vhost-ssl.template com diretivas especficas de SSL amplamente documentadas. Consulte a configurao geral de host virtual na Configurao do host virtual (p 469). 498 Referncia

Comece apenas ajustando os valores das seguintes diretivas: DocumentRoot ServerName ServerAdmin ErrorLog TransferLog IMPORTANTE: Hosts virtuais identificados por nome e SSL impossvel executar vrios hosts virtuais habilitados para SSL em um servidor dotado de apenas um endereo IP. Os usurios que se conectam a uma configurao assim recebem uma mensagem de aviso informando que o certificado no corresponde ao nome do servidor toda vez que eles visitam o URL. Um endereo IP ou porta separado(a) necessrio a todo domnio habilitado para SSL para efetivar a comunicao baseada em um certificado SSL vlido.

26.7 Evitando problemas de segurana


Um servidor Web exposto Internet pblica requer um esforo administrativo contnuo. inevitvel que sejam levantadas questes de segurana, relacionadas tanto ao software como configurao incorreta acidental. Aqui vo algumas dicas sobre como lidar com elas.

26.7.1 Software atualizado


Se forem encontradas vulnerabilidades no software do Apache, um aviso de segurana ser emitido pelo SUSE. Ele contm instrues para a correo de vulnerabilidades, que devem ser aplicadas o mais rpido possvel. As notificaes de segurana do SUSE esto disponveis nas seguintes localizaes:

Servidor HTTP Apache

499

Pgina da Web http://www.suse.com/us/private/support/ online_help/mailinglists/ Lista de discusso http://www.suse.com/us/private/support/ online_help/mailinglists/ Fonte RSS http://www.novell.com/linux/security/suse _security.xml

26.7.2 Permisses de DocumentRoot


Por padro, no SUSE Linux, o diretrio de DocumentRoot /srv/www/htdocs e o diretrio CGI /srv/www/cgi-bin pertencem ao usurio e grupo Root. No mude essas permisses. Se os diretrios fossem gravveis para todos, qualquer usurio poderia colocar arquivos neles. Esses arquivos seriam ento executados pelo Apache com as permisses de wwwrun, que poderiam dar ao usurio acesso no desejado a recursos do sistema de arquivos. Use os subdiretrios de /srv/www para colocar os diretrios de DocumentRoot e CGI para seus hosts virtuais e certifique-se de que esses diretrios e arquivos pertencem ao usurio e grupo Root.

26.7.3 Acesso ao sistema de arquivos


Por padro, o acesso a todo o sistema de arquivos negado em /etc/apache2/ httpd.conf. Nunca sobregrave essas diretivas, mas habilite o acesso especificamente a todos os diretrios que o Apache dever ler (consulte Configurao bsica do host virtual (p 472) para obter detalhes). Nesse processo, verifique se nenhum arquivo crtico (como arquivos de senhas ou de configurao do sistema) possam ser lidos de um ponto externo.

26.7.4 Scripts CGI


Os scripts interativos em Perl, PHP, SSI ou qualquer outra linguagem de programao podem essencialmente executar comandos arbitrrios e, portanto, apresentam um problema geral de segurana. Os scripts a serem executados a partir do servidor devem ser instalados somente a partir de fontes em que o administrador do servidor confia. Permitir que os usurios executem seus prprios scripts, em geral no uma boa prtica. Outra recomendao realizar auditorias de segurana para todos os scripts.

500

Referncia

Para facilitar ao mximo a administrao de scripts, costuma-se limitar a execuo dos scripts CGI a diretrios especficos em vez de permiti-los globalmente. As diretivas ScriptAlias e Option ExecCGI so usadas para configurao. A configurao padro do SUSE Linux no permite a execuo de scripts CGI a partir de qualquer lugar. Como todos os scripts CGI so executados como o mesmo usurio, pode haver conflito entre scripts diferentes. O mdulo suEXEC permite executar scripts CGI para outro usurio e grupo.

26.7.5 Diretrios do usurio


Ao habilitar os diretrios do usurio (com mod_userdir ou mod_rewrite), voc no deve permitir os arquivos .htaccess, o que permitiria aos usurios sobregravar as configuraes de segurana. Se isso no for possvel, ao menos limite o envolvimento do usurio usando a diretiva AllowOverRide. No SUSE Linux, os arquivos .htaccess so habilitados por padro, mas o usurio no tem permisso de sobregravar nenhuma diretiva Option ao usar mod_userdir (consulte o arquivo de configurao /etc/apache2/mod_userdir.conf).

26.8 Soluo de problemas


Se o Apache no for iniciado, a pgina da Web no estiver acessvel ou os usurios no puderem se conectar ao servidor Web, importante encontrar a causa do problema. A seguir, esto alguns locais tpicos para procurar explicaes de erros e coisas importantes a serem verificadas. Primeiro, o rcapache2 (descrito na Seo 26.3, Iniciando e parando o Apache (p 480)) mostra detalhes sobre erros, portanto, pode ser bastante til se for realmente usado para operar o Apache. Algumas vezes, tentador usar o /usr/sbin/httpd2 binrio para iniciar ou interromper o servidor Web. Evite fazer isso e use o script rcapache2. O rcapache2 fornece at dicas sobre como resolver erros de configurao. Alm disso, a importncia de arquivos de registro no pode ser demasiadamente enfatizada. No caso de erros fatais e no fatais, deve-se procurar as causas nos arquivos de registro do Apache, especialmente no arquivo de registro de erros. Voc tambm pode controlar o detalhamento das mensagens registradas com a diretiva LogLevel Servidor HTTP Apache 501

se forem necessrios mais detalhes nos arquivos de registro. Por padro, o arquivo de registro de erros est localizado em /var/log/apache2/error_log. DICA: Um teste simples Observe as mensagens de registro do Apache com o comando tail -F /var/log/apache2/meu_reg_erros. A seguir, execute rcapache2 restart. Agora, tente conectar-se a um browser e verifique a sada. Um erro comum no abrir as portas do Apache na configurao de firewall do servidor. Se voc configura o Apache com o YaST, existe uma opo separada disponvel que cuida desta questo especfica (consulte a Seo 26.2.2, Configurando o Apache com o YaST (p 473)). Se voc estiver configurando o Apache manualmente, abra as portas de firewall para HTTP e HTTPS atravs do mdulo de firewall do YaST. Se o erro no puder ser descoberto com a ajuda de qualquer desses meios, verifique o banco de dados de erros do Apache online em http://httpd.apache.org/bug _report.html. A comunidade de usurios do Apache tambm pode ser acessada atravs de uma lista de discusso disponvel em http://httpd.apache.org/ userslist.html. Um grupo de discusso recomendado comp.infosystems .www.servers.unix.

26.9 Mais informaes


O pacote apache2-doc contm o manual completo do Apache em vrios idiomas para instalao e referncia local. Ele no instalado por padro, e a maneira mais rpida de faz-lo usando o comando yast -i apache2-doc. Depois de instalado, o manual do Apache fica disponvel em http://localhost/manual/. Voc tambm poder acess-lo na Web em http://httpd.apache.org/docs-2.2/. Dicas de configurao especficas do SUSE esto disponveis no diretrio /usr/ share/doc/packages/apache2/README.*.

26.9.1 Apache 2.2


Para obter uma lista dos novos recursos do Apache 2.2, consulte http://httpd .apache.org/docs/2.2/new_features_2_2.html. As informaes sobre

502

Referncia

o upgrade da verso 2.0 para a verso 2.2 esto disponveis em http://httpd .apache.org/docs-2.2/upgrading.html.

26.9.2 Mdulos do Apache


Mais informaes sobre os mdulos externos do Apache da Seo 26.4.5, Mdulos externos (p 488) esto disponveis nas seguintes localizaes: FastCGI http://www.fastcgi.com/ mod_perl http://perl.apache.org/ mod_php5 http://www.php.net/manual/en/install.unix.apache2.php mod_python http://www.modpython.org/ mod_ruby http://www.modruby.net/

26.9.3 Desenvolvimento
Mais informaes sobre o desenvolvimento dos mdulos do Apache ou sobre o envolvimento no projeto do servidor Web Apache esto disponveis nas seguintes localizaes: Informaes para desenvolvedores do Apache http://httpd.apache.org/dev/ Documentao do desenvolvedor do Apache http://httpd.apache.org/docs/2.2/developer/ Escrevendo mdulos do Apache com Perl e C http://www.modperl.com/

Servidor HTTP Apache

503

26.9.4 Fontes diversas


Se voc tiver dificuldades especficas ao Apache no SUSE Linux, consulte o Banco de Dados de Suporte do SUSE em http://portal.suse.com/sdb/en/index .html. O histrico do Apache pode ser encontrado em http://httpd.apache .org/ABOUT_APACHE.html. Essa pgina tambm explica porque o servidor chamado de Apache.

504

Referncia

Sincronizao de arquivos

27

Atualmente, muitas pessoas usam vrios computadores; um computador em casa, um ou mais no trabalho e possivelmente um laptop ou PDA quando viajam. Vrios arquivos so necessrios em todos esses computadores. Talvez voc queira trabalhar com todos os computadores e modificar os arquivos, conseqentemente tendo a verso mais recente dos dados disponveis em todos os computadores.

27.1 Software de sincronizao de dados disponvel


A sincronizao de dados no um problema para computadores permanentemente conectados por uma rede rpida. Nesse caso, use um sistema de arquivos de rede, como o NFS, e armazene os arquivos em um servidor para que todos os hosts acessem os mesmos dados via rede. Essa abordagem ser impossvel se a conexo de rede for instvel ou no permanente. Quando voc viaja com um laptop, precisa ter cpias de todos os arquivos necessrios no disco rgido local. Entretanto, necessrio sincronizar os arquivos modificados. Quando voc modificar um arquivo em um computador, verifique se uma cpia dele foi atualizada em todos os outros computadores. No caso de cpias ocasionais, elas podem ser feitas manualmente com o scp ou o rsync. Entretanto, se vrios arquivos forem envolvidos, o procedimento poder ser complicado e demandar muito cuidado para evitar erros, como a sobregravao de um arquivo novo por um antigo.

Sincronizao de arquivos

505

ATENO: Risco de perda de dados Antes de comear a gerenciar seus dados com um sistema de sincronizao, voc deve se informar sobre o programa usado e testar sua funcionalidade. indispensvel ter um backup de arquivos importantes. A tarefa prolongada e sujeita a erros de sincronizar dados manualmente pode ser evitada se voc usar um dos programas que utilizam vrios mtodos para automatiz-la. Os resumos a seguir tm o simples objetivo de dar uma viso geral sobre como esses programas funcionam e como podem ser usados. Se voc planeja us-los, leia a documentao do programa.

27.1.1 Unison
O Unison no um sistema de arquivos de rede. Em vez disso, os arquivos so simplesmente gravados e editados localmente. O programa Unison pode ser executado manualmente para sincronizar arquivos. Quando a sincronizao executada pela primeira vez, um banco de dados criado nos dois hosts, contendo checksums, marcaes de horrios e permisses dos arquivos selecionados. Na prxima vez em que for executado, o Unison poder reconhecer quais arquivos foram mudados e propor que a transmisso seja feita do outro host ou para ele. Normalmente, todas as sugestes podem ser aceitas.

27.1.2 CVS
O CVS, que mais usado para gerenciar verses de origem de programas, oferece a possibilidade de manter cpias dos arquivos em vrios computadores. Dessa forma, ele tambm adequado para sincronizao de dados. O CVS mantm um repositrio central no servidor, no qual os arquivos e as mudanas feitas neles so gravados. As mudanas realizadas localmente so enviadas para o repositrio e podem ser recuperadas de outros computadores por meio de uma atualizao. Todos os procedimentos devem ser iniciados pelo usurio. O CVS muito suscetvel a erros quando ocorrem mudanas em vrios computadores. As mudanas so fundidas e, se elas forem feitas nas mesmas linhas, um conflito ser reportado. Quando ocorre um conflito, o banco de dados permanece em estado consistente. O conflito s fica visvel para resoluo no host cliente.

506

Referncia

27.1.3 Subversion
Ao contrrio do CVS, que evoluiu, o Subversion (SVN) um projeto de design consistente. O Subversion foi desenvolvido como sucessor tecnicamente aprimorado do CVS. O Subversion foi aprimorado em vrios aspectos com relao ao seu antecessor. Devido ao seu histrico, o CVS mantm apenas arquivos e no lida com diretrios. Os diretrios tambm tm um histrico de verso no Subversion e podem ser copiados e renomeados, assim como os arquivos. Tambm possvel adicionar metadados a todos os arquivos e todos os diretrios. Esses metadados podem ser totalmente mantidos com o controle de verso. Em oposio ao CVS, o Subversion tem suporte para acesso transparente rede por protocolos dedicados, como o WebDAV. O WebDAV estende a funcionalidade do protocolo HTTP para permitir acesso de gravao colaborativo a arquivos em servidores Web remotos. O Subversion foi montado principalmente com base em pacotes de software existentes. Portanto, o servidor Web do Apache e a extenso WebDAV sempre so executados junto com o Subversion.

27.1.4 mailsync
Diferentemente das ferramentas de sincronizao abordadas nas sees anteriores, o mailsync sincroniza somente e-mails entre caixas de correio. O procedimento pode ser aplicado em arquivos de caixas de correio locais, bem como em caixas de correio de um servidor IMAP. Com base no ID da mensagem contido no cabealho do e-mail, as mensagens especficas so sincronizadas ou apagadas. A sincronizao possvel entre caixas de correio especficas e entre hierarquias de caixas de correio.

27.1.5 rsync
Quando o controle de verso no necessrio, mas grandes estruturas de diretrio precisam ser sincronizadas em conexes de rede lentas, a ferramenta rsync oferece mecanismos avanados para a transmisso apenas de mudanas entre arquivos. Isso no diz respeito somente a arquivos de texto, mas tambm a arquivos binrios. Para

Sincronizao de arquivos

507

detectar as diferenas entre os arquivos, o rsync os subdivide em blocos e realiza checksums neles. O esforo dedicado deteco das mudanas tem um preo. Os sistemas a serem sincronizados devem ser dimensionados generosamente para uso do rsync. A RAM especialmente importante.

27.1.6 Novell iFolder


O Novell iFolder permite acessar seus arquivos de qualquer local e a qualquer momento. Se voc colocar os arquivos no diretrio do iFolder, ele ser sincronizado instantaneamente com o servidor. Com esse mtodo, possvel trabalhar de qualquer lugar. O Novell iFolder tambm permite trabalhar offline. Isso muito conveniente se voc no tiver uma conexo com a Internet, por exemplo, e estiver trabalhando com um laptop durante viagens. Assim que voc conseguir conectar-se com a Internet, as mudanas do seu trabalho sero enviadas para o servidor. Trabalhar com o iFolder envolve estas etapas: 1. 2. 3. 4. Efetue login antes de trabalhar com o iFolder. Mude suas preferncias com relao freqncia de sincronizao. Sincronize os arquivos e exiba a atividade entre o seu cliente e o servidor iFolder. Solucione todos os conflitos durante a sincronizao. Os conflitos ocorrem quando voc altera o mesmo arquivo em dois computadores diferentes. O iFolder armazena arquivos em conflito em um diretrio separado para impedir a perda de dados.

Para obter mais informaes sobre o iFolder, consulte http://www.novell.com/ en-en/documentation/. Encontre dicas e truques teis sobre o iFolder em http://www.novell.com/coolsolutions/ifmag/.

508

Referncia

27.2 Determinando fatores para selecionar um programa


H alguns fatores importantes a serem considerados ao decidir que programa ser usado.

27.2.1 Cliente-servidor versus ponto a ponto


Dois modelos diferentes so comumente usados para distribuir dados. No primeiro modelo, todos os clientes sincronizam seus arquivos com um servidor central. O servidor deve ser acessvel a todos os clientes pelo menos ocasionalmente. Esse modelo usado pelo Subversion, CVS e WebDAV. A outra possibilidade deixar todos os hosts ligados em rede sincronizarem seus dados entre os pontos uns dos outros. Esse o conceito seguido pelo unison. O rsync, na realidade, funciona no modo de cliente, mas qualquer cliente tambm pode atuar como um servidor.

27.2.2 Portabilidade
O Subversion, o CVS e o unison tambm esto disponveis para muitos outros sistemas operacionais, incluindo vrios sistemas Unix e Windows.

27.2.3 Interativo versus automtico


No Subversion, no CVS, no WebDAV e no Unison, o usurio inicia manualmente a sincronizao de dados. Isso permite um controle fino dos dados a serem sincronizados e um fcil gerenciamento de conflitos. No entanto, se os intervalos de sincronizao forem muito longos, ser mais provvel que ocorram conflitos.

27.2.4 Conflitos: incidncia e soluo


Conflitos s ocorrem raramente no Subversion ou no CVS, mesmo quando muitas pessoas trabalham em um grande projeto de programa. Isso ocorre porque os documentos so fundidos na base de linhas individuais. Quando ocorre um conflito, somente um

Sincronizao de arquivos

509

cliente afetado. Normalmente, os conflitos no Subversion ou no CVS podem ser facilmente resolvidos. O Unison reporta conflitos, permitindo que os arquivos afetados sejam excludos da sincronizao. Entretanto, as mudanas no podem ser fundidas to facilmente quanto no Subversion ou no CVS. Em oposio ao Subversion ou ao CVS, em que possvel aceitar parcialmente as mudanas em caso de conflito, o WebDAV s executa o registro da entrada quando toda a modificao considerada bem-sucedida. No h gerenciamento de conflitos no rsync. O usurio responsvel por no sobregravar acidentalmente arquivos e resolver manualmente todos os possveis conflitos. Para obter segurana, possvel empregar adicionalmente um sistema de controle de verso como o RCS.

27.2.5 Selecionando e adicionando arquivos


Em sua configurao padro, o Unison sincroniza toda uma rvore de diretrios. Novos arquivos que aparecem na rvore so includos automaticamente na sincronizao. No Subversion ou no CVS, novos diretrios e arquivos devem ser adicionados explicitamente por meio do comando svn add ou o cvs add, respectivamente. Esse procedimento resulta em um maior controle do usurio sobre os arquivos a serem sincronizados. Por outro lado, novos arquivos so sempre ignorados, especialmente quando os pontos de interrogao na sada de svn update e svn status ou cvs update so ignorados devido ao grande nmero de arquivos.

27.2.6 Histrico
Um recurso adicional do Subversion ou do CVS a possibilidade de reconstruo de verses antigas de arquivos. Um breve comentrio de edio pode ser inserido em cada mudana, e o desenvolvimento dos arquivos pode ser facilmente rastreado posteriormente com base no contedo dos comentrios. Essa uma ajuda valiosa para textos de teses e de programas.

510

Referncia

27.2.7 Volume de dados e requisitos do disco rgido


Os discos rgidos de todos os hosts envolvidos devem ter espao em disco suficiente para todos os dados distribudos. O Subversion e o CVS requerem espao adicional para o banco de dados repositrio no servidor. O histrico do arquivo tambm armazenado no servidor, requerendo ainda mais espao. Quando arquivos em formato de texto so mudados, somente as linhas modificadas so gravadas. Arquivos binrios requerem espao em disco adicional relativo ao tamanho do arquivo sempre que ele for mudado.

27.2.8 Interface grfica do usurio (GUI)


O Unison oferece uma interface grfica do usurio que exibe os procedimentos de sincronizao a serem realizados. Aceite a proposta ou exclua arquivos especficos da sincronizao. No modo de texto, confirme de forma interativa os procedimentos especficos. Usurios experientes normalmente executam o Subversion ou o CVS a partir da linha de comando. Entretanto, as interfaces grficas do usurio esto disponveis para Linux, como a cervisia, e para outros sistemas operacionais, como a wincvs. Muitas ferramentas de desenvolvimento, como a kdevelop, e editores de texto, como o emacs, fornecem suporte para o CVS ou o Subversion. sempre mais fcil realizar a resoluo de conflitos com esses front ends.

27.2.9 Facilidade de uso


O Unison e o rsync so mais fceis de usar e tambm mais adequados a usurios inexperientes. De certa forma, mais difcil operar o CVS e o Subversion. Os usurios devem entender a interao entre o repositrio e os dados locais. As mudanas dos dados devem ser primeiro fundidas localmente no repositrio. Esse procedimento executado com o comando cvs update ou svn update. Em seguida, os dados devem ser enviados de volta ao repositrio com o comando cvs commit ou svn commit. Depois de compreender esse procedimento, os usurios inexperientes tambm sero capazes de usar o CVS e o Subversion com facilidade.

Sincronizao de arquivos

511

27.2.10 Segurana contra ataques


Durante a transmisso, o ideal proteger os dados contra interceptao e manipulao. O Unison, o CVS, o rsync e o Subversion podem ser facilmente usados via ssh (secure shell - shell seguro), fornecendo segurana contra ataques deste tipo. A execuo do CVS ou do Unison via rsh (remote shell - shell remoto) deve ser evitada. O acesso ao CVS com o mecanismo pserver em redes desprotegidas tambm no recomendvel. O Subversion j fornece as medidas de segurana necessrias ao ser executado com o Apache.

27.2.11 Proteo contra perda de dados


O CVS tem sido usado por desenvolvedores por um longo tempo para gerenciar projetos de programas e extremamente estvel. Como o histrico do desenvolvimento gravado, o CVS fornece proteo at mesmo contra certos erros do usurio, como uma excluso no intencional de um arquivo. Apesar de no ser to comum quanto o CVS, o Subversion j est sendo empregado em ambientes de produo, como no prprio projeto do Subversion. O Unison ainda relativamente novo, mas ostenta um alto nvel de estabilidade. Entretanto, ele mais sensvel a erros do usurio. Depois que a sincronizao da excluso de um arquivo confirmada, no h como restaurar o arquivo. Tabela 27.1 x = disponvel unison Cliente/Servidor Portabilidade Interatividade Velocidade Conflitos igual Lin,Un*x,Win x o CVS/SVN C-S/C-S Lin,Un*x,Win x/x o/+ ++/++ rsync C-S Lin,Un*x,Win x + o mailsync igual Lin,Un*x + + Recursos das ferramentas de sincronizao de arquivos: -- = muito ruim, - = ruim ou no disponvel, o = mdio, + = bom, ++ = excelente,

512

Referncia

unison Sel. de arquivos Dir.

CVS/SVN Sel/arq., dir.

rsync Dir.

mailsync Caixa de Correio +

Histrico Espao em disco rgido Interface grfica do usurio (GUI) Dificuldade Ataques Perda de dados

x/x --

o/o

+ +(ssh) +

o/o +/+(ssh) ++/++

+ +(ssh) +

o +(SSL) +

27.3 Introduo ao Unison


O Unison uma excelente soluo para sincronizar e transferir rvores inteiras de diretrios. A sincronizao executada nas duas direes e pode ser controlada por meio de um front end grfico intuitivo. Tambm possvel usar uma verso de console. A sincronizao pode ser automatizada, de forma que a interao com o usurio no seja necessria, mas preciso ter experincia.

27.3.1 Requisitos
O Unison deve ser instalado no cliente e no servidor. Nesse contexto, o termo servidor se refere a um segundo host, o host remoto (diferente do CVS, explicado na Seo 27.1.2, CVS (p 506)). Na seo a seguir, o Unison ser usado com o ssh. Nesse caso, um cliente SSH deve ser instalado no cliente e um servidor SSH deve ser instalado no servidor.

Sincronizao de arquivos

513

27.3.2 Usando o Unison


A abordagem usada pelo Unison a associao de dois diretrios (roots). Essa associao simblica; no se trata de uma conexo online. Neste exemplo, o layout do diretrio o seguinte: Cliente: Servidor: /home/tux/dir1 /home/geeko/dir2

Voc deseja sincronizar esses dois diretrios. O usurio conhecido como tux no cliente e como geeko no servidor. A primeira coisa a fazer testar se a comunicao entre cliente e servidor funciona:
unison -testserver /home/tux/dir1 ssh://geeko@server//homes/geeko/dir2

Os problemas encontrados com mais freqncia so: As verses do Unison usadas no cliente e no servidor no so compatveis. O servidor no permite conexes com SSH. Nenhum dos dois caminhos especificados existe. Se tudo funcionar, omita a opo -testserver. Durante a primeira sincronizao, o Unison ainda no conhece a relao entre os dois diretrios e envia sugestes para a direo da transferncia dos arquivos e diretrios especficos. As setas da coluna Ao indicam a direo da transferncia. Um ponto de interrogao significa que o Unison no capaz de fazer uma sugesto com relao direo da transferncia, pois as duas verses foram mudadas ou so novas. As teclas de seta podem ser usadas para definir a direo da transferncia de entradas especficas. Se as direes de transferncia estiverem corretas para todas as entradas exibidas, simplesmente clique em Ir. As caractersticas do Unison (por exemplo, se ele executa a sincronizao automaticamente em casos de limpeza) podem ser controladas por meio de parmetros de linha de comando especificados quando o programa iniciado. Veja a lista completa de todos os parmetros com unison --help.

514

Referncia

Exemplo 27.1 O arquivo ~/.unison/example.prefs


root=/home/tux/dir1 root=ssh://wilber@server//homes/wilber/dir2 batch=true

Para cada par mantido um registro de sincronizao no diretrio do usurio ~/ .unison. Definies de configurao, como ~/.unison/example.prefs, tambm podem ser armazenadas neste diretrio. Para iniciar a sincronizao, especifique esse arquivo como parmetro da linha de comando, como em unison example.prefs.

27.3.3 Mais informaes


A documentao oficial do Unison extremamente til. Por essa razo, esta seo simplesmente fornece uma breve introduo. O manual completo est disponvel em http://www.cis.upenn.edu/~bcpierce/unison/ e no unison do pacote SUSE.

27.4 Introduo ao CVS


O CVS adequado para fins de sincronizao, caso arquivos especficos sejam editados com freqncia e sejam armazenados em um formato de arquivo, como texto ASCII, ou como texto de origem de programa. O uso do CVS para sincronizar dados em outros formatos, como arquivos JPEG, possvel, mas lida com grandes quantidades de dados, pois todas as variantes de um arquivo so armazenadas permanentemente no servidor CVS. Nesses casos, no possvel usar a maioria dos recursos do CVS. O uso do CVS para sincronizar arquivos s ser possvel se todas as estaes de trabalho puderem acessar o mesmo servidor.

27.4.1 Configurando um servidor CVS


O servidor o host em que todos os arquivos vlidos se localizam, incluindo as verses mais recentes de todos os arquivos. Qualquer estao de trabalho estacionria pode ser usada como um servidor. Se possvel, os dados do repositrio do CVS devem ser includos em backups regulares.

Sincronizao de arquivos

515

Durante a configurao de um servidor CVS, uma boa idia conceder aos usurios o acesso ao servidor via SSH. Se o usurio for conhecido pelo servidor como tux e o software do CVS estiver instalado tanto no servidor quanto no cliente, as variveis de ambiente a seguir devero ser definidas no lado do cliente:
CVS_RSH=ssh CVS_ROOT=tux@server:/serverdir

O comando cvs init pode ser usado para inicializar o servidor CVS no lado cliente. Esse procedimento deve ser executado apenas uma vez. Finalmente, necessrio designar um nome sincronizao. Selecione ou crie um diretrio no cliente exclusivamente para conter arquivos a serem gerenciados com o CVS (o diretrio tambm pode ficar vazio). O nome do diretrio tambm ser o nome da sincronizao. Neste exemplo, o diretrio chamado de synchome. V para esse diretrio e digite o comando a seguir para definir o nome de sincronizao como synchome:
cvs import synchome tux wilber

Vrios comandos do CVS requerem um comentrio. Para essa finalidade, o CVS inicia um editor (o editor definido na varivel do ambiente $EDITOR ou vi, se nenhum editor tiver sido definido). A chamada do editor pode ser evitada se voc inserir o comentrio antes na linha de comando, como no exemplo a seguir:
cvs import -m 'this is a test' synchome tux wilber

27.4.2 Usando o CVS


O repositrio de sincronizao agora pode ter a sada registrada de todos os hosts com cvs co synchome. Esse procedimento cria um novo subdiretrio synchome no cliente. Para enviar suas mudanas para o servidor, v para o diretrio synchome (ou um de seus subdiretrios) e digite cvs commit. Por padro, todos os arquivos (incluindo subdiretrios) so enviados para o servidor. Para enviar somente determinados arquivos ou diretrios, especifique-os em cvs commit file1 directory1. necessrio adicionar novos arquivos e diretrios ao repositrio com um comando como cvs add file1 directory1 antes de envi-los para o servidor. Depois disso, envie arquivos e diretrios adicionados recentemente com cvs commit file1 directory1.

516

Referncia

Se voc for para outra estao de trabalho, registre a sada do repositrio de sincronizao, caso isso no tenha sido feito em uma sesso anterior na mesma estao de trabalho (veja acima). Inicie a sincronizao com o servidor com cvs update. Atualize arquivos ou diretrios especficos como em cvs update file1 directory1. Para ver a diferena entre os arquivos atuais e verses armazenadas no servidor, use o comando cvs diff ou cvs diff file1 directory1. Use cvs -nq update para ver quais arquivos seriam afetados por uma atualizao. Estes so alguns smbolos de status exibidos durante uma atualizao: U A verso local foi atualizada. Isso afeta todos os arquivos fornecidos pelo servidor e ausentes no sistema local. S A verso local foi modificada. Se havia mudanas no servidor, foi possvel fundir as diferenas na cpia local. P A verso local foi corrigida com a verso do servidor. C O arquivo local est em conflito com a verso atual do repositrio. ? Este arquivo no existe no CVS. O status M indica um arquivo modificado localmente. Envie a cpia local para o servidor ou remova o arquivo local e execute a atualizao novamente. Nesse caso, o arquivo ausente ser recuperado do servidor. Se voc enviar um arquivo modificado localmente e ele tiver sido mudado na mesma linha de comando e enviado, poder haver um conflito, indicado por C. Nesse caso, observe as marcas de conflito (> e <) no arquivo e decida entre as duas verses. Como essa tarefa pode ser desagradvel, voc pode abandonar as mudanas, apagar o arquivo local e digitar cvs up para recuperar a verso atual do servidor.

Sincronizao de arquivos

517

27.4.3 Mais informaes


Esta seo simplesmente oferece uma breve introduo sobre as vrias possibilidades do CVS. Uma documentao mais abrangente est disponvel no seguinte URL:
http://www.cvshome.org/ http://www.gnu.org/manual/

27.5 Introduo ao Subversion


O Subversion um sistema de controle de verso de cdigo-fonte aberto gratuito e amplamente considerado como sucessor do CVS, o que quer dizer que os recursos apresentados pelo CVS normalmente tambm esto presentes no Subversion. Ele especialmente recomendvel quando as vantagens do CVS so almejadas sem que seja necessrio tolerar as desvantagens. Muitos desses recursos j foram apresentados brevemente na Seo 27.1.3, Subversion (p 507).

27.5.1 Instalando um servidor Subversion


A instalao de um banco de dados repositrio em um servidor um procedimento relativamente simples. O Subversion fornece uma ferramenta de administrao dedicada para essa finalidade. Digite o comando a seguir para criar um novo repositrio:
svnadmin create /path/to/repository

Outras opes podem ser relacionadas com svnadmin help. Em oposio ao CVS, o Subversion no baseado no RCS, mas em tipos diferentes de repositrio. O Banco de Dados Berkeley ou FSFS (um repositrio que utiliza o sistema de arquivos diretamente) usado normalmente. No instale um repositrio em sistemas de arquivos remotos, como NFS, AFS ou Windows SMB. O banco de dados requer mecanismos de bloqueio POSIX, no suportados por esses sistemas de arquivos. O comando svnlook fornece informaes sobre um repositrio existente.
svnlook info /path/to/repository

necessrio configurar um servidor para permitir que usurios diferentes acessem o repositrio. Use o servidor Web do Apache com o WebDAV para fazer isso, ou use o svnserve, o servidor fornecido com o Subversion. Quando o svnserve estiver em execuo, o repositrio poder ser acessado com um URL com svn:// ou 518 Referncia

svn+ssh://. Usurios que podem se autenticar chamando svn podem ser definidos em /etc/svnserve.conf. A deciso sobre o uso do Apache ou do svnserce depende de vrios fatores. recomendvel pesquisar o manual do Subversion. Mais informaes sobre o assunto podem ser encontradas na Seo 27.5.3, Mais informaes (p 521).

27.5.2 Utilizao e operao


Use o comando svn (similar ao cvs) para acessar um repositrio do Subversion. Use o comando svn help para obter a descrio de um parmetro de um comando:
checkout (co): Check out a working copy from a repository. usage: checkout URL[@REV]... [CAMINHO] If specified, REV determines in which revision the URL is first looked up. If PATH is omitted, the basename of the URL will be used as the destination. If multiple URLs are given each will be checked out into a sub-directory of PATH, with the name of the sub-directory being the basename of the URL. ...

O contedo fornecido por um servidor configurado corretamente correspondente a determinado repositrio pode ser acessado por qualquer cliente com um dos seguintes comandos:
svn list http://svn.example.com/path/to/project

ou
svn list svn://svn.example.com/path/to/project

Grave um projeto existente no diretrio atual (registre a sada) com o comando svn checkout:
svn checkout http://svn.example.com/path/to/project nameofproject

O registro da sada cria um novo subdiretrio nameofproject no cliente. Operaes (adio, cpia, renomeao, excluso) podem ser executadas em:
svn svn svn svn add file copy oldfile newfile move oldfile newfile delete file

Sincronizao de arquivos

519

Esses comandos tambm podem ser usados em diretrios. Alm disso, o Subversion pode registrar as propriedades de um arquivo ou diretrio:
svn propset license GPL foo.txt

O exemplo anterior define o valor GPL para a propriedade license. Exiba propriedades com svn proplist:
svn proplist --verbose foo.txt Properties on 'foo.txt': license : GPL

Grave as mudanas no servidor com svn commit. Outro usurio pode incorporar suas mudanas no diretrio de trabalho dele sincronizando com o servidor e usando svn update. Diferentemente do CVS, o status de um diretrio em operao no Subversion pode ser exibido sem acesso ao repositrio com svn status. Mudanas locais so exibidas em cinco colunas, sendo a primeira a mais importante: '' Nenhuma mudana. 'A' O objeto marcado para adio. 'D' O objeto marcado para excluso. 'M' O objeto foi modificado. 'C' O objeto est em conflito. 'I' O objeto foi ignorado. '?' O objeto no est sendo mantido por controle de verso.

520

Referncia

'!' O objeto reportado como ausente. Este flag exibido quando o objeto apagado ou movido sem o comando svn. '~' O objeto estava sendo mantido como um arquivo, mas foi substitudo por um diretrio, ou ocorreu o oposto. A segunda coluna mostra o status das propriedades. O significado de todas as outras colunas pode ser lido no manual do Subversion.

27.5.3 Mais informaes


O primeiro ponto de referncia a home page do projeto Subversion, em http:// subversion.tigris.org/. Um manual altamente recomendvel pode ser encontrado no diretrio file:///usr/share/doc/packages/subversion/ html/book.html depois da instalao do pacote subversion-doc e tambm est disponvel online em http://svnbook.red-bean.com/svnbook/index .html.

27.6 Introduo ao rsync


O rsync ser til quando for necessrio transmitir grandes quantidades de dados regularmente, sem que haja muitas mudanas. Esse , por exemplo, sempre o caso da criao de backups. Uma outra aplicao diz respeito a servidores para teste. Esses servidores armazenam rvores completas de diretrio de servidores Web regularmente espelhadas em um servidor Web em um DMZ.

27.6.1 Configurao e operao


O rsync pode ser operado em dois modos diferentes. Ele pode ser usado para arquivar ou copiar dados. Para isso, somente um shell remoto, como o ssh, necessrio no sistema de destino. Entretanto, o rsync tambm pode ser usado como um daemon para fornecer diretrios rede. O modo de operao bsica do rsync no requer qualquer configurao especial. O rsync permite diretamente o espelhamento de diretrios inteiros em outro sistema. Como Sincronizao de arquivos 521

exemplo, o comando a seguir cria um backup do diretrio pessoal do tux em um servidor de backup chamado de sun:
rsync -baz -e ssh /home/tux/ tux@sun:backup

O comando a seguir usado para reproduzir o diretrio de volta:


rsync -az -e ssh tux@sun:backup /home/tux/

At esse ponto, o gerenciamento no muito diferente do de uma ferramenta de cpia comum, como o scp. O rsync deve ser operado no modo rsync para que todos os recursos fiquem totalmente disponveis. Isso feito ao se iniciar o daemon rsyncd em mais de um sistema. Configure-o no arquivo /etc/rsyncd.conf. Por exemplo, para tornar o diretrio /srv/ftp disponvel com o rsync, use a seguinte configurao:
gid = nobody uid = nobody read only = true use chroot = no transfer logging = true log format = %h %o %f %l %b log file = /var/log/rsyncd.log [FTP] path = /srv/ftp comment = An Example

Em seguida, inicie o rsyncd com rcrsyncd start. O rsyncd tambm pode ser iniciado automaticamente durante o processo de inicializao. Configure esse recurso ativando esse servio no editor de nveis de execuo fornecido pelo YaST ou digitando manualmente o comando insserv rsyncd. O rsyncd tambm pode ser iniciado com xinetd. Entretanto, isso s recomendvel para servidores que raramente usam o rsyncd. O exemplo tambm cria um arquivo de registro listando todas as conexes. Esse arquivo armazenado em /var/log/rsyncd.log. Ento ser possvel testar a transferncia de um sistema cliente. Faa isso com o seguinte comando:
rsync -avz sun::FTP

Esse comando lista todos os arquivos presentes no diretrio /srv/ftp do servidor. Essa solicitao tambm registrada no arquivo de registro /var/log/rsyncd

522

Referncia

.log. Para iniciar uma transferncia real, fornea um diretrio de destino. Use . para o diretrio atual. Por exemplo:
rsync -avz sun::FTP .

Por padro, nenhum arquivo ser apagado durante a sincronizao com o rsync. Se esse procedimento for forado, a opo adicional --delete dever ser expressa. Para garantir que nenhum arquivo novo seja apagado, use a opo --update como alternativa. Qualquer conflito ocorrido deve ser resolvido manualmente.

27.6.2 Mais informaes


Informaes importantes sobre o rsync so fornecidas nas pginas de manual man rsync eman rsyncd.conf. Uma referncia tcnica sobre os princpios de operao do rsync pode ser encontrada em /usr/share/doc/packages/rsync/ tech_report.ps. Encontre as notcias mais recentes sobre o rsync no site do projeto, em http://rsync.samba.org/.

27.7 Introduo ao mailsync


O mailsync principalmente adequado para as trs tarefas a seguir: Sincronizao de e-mails armazenados localmente com e-mails armazenados em um servidor Migrao de caixas de correio de um formato diferente ou de um servidor diferente Verificao de integridade de uma caixa de correio ou pesquisa de duplicatas

27.7.1 Configurao e uso


O mailsync faz a distino entre a prpria caixa de correio (o armazenamento) e a conexo entre duas caixas de correio (o canal). As definies de armazenamentos e canais esto em ~/.mailsync. Os pargrafos a seguir explicam alguns exemplos de armazenamento. Uma simples definio pode ser exibida como a seguir:

Sincronizao de arquivos

523

store saved-messages { pat Mail/saved-messages prefix Mail/ }

O Mail/ um subdiretrio do diretrio pessoal do usurio que contm pastas de email, incluindo a pasta saved-messages. Se o mailsync for iniciado com mailsync -m saved-messages, ele listar um ndice de todas as mensagens em saved-messages. Se a definio a seguir for feita
store localdir { pat Mail/* prefix Mail/ }

o comando mailsync -m localdir listar todas as mensagens armazenadas em Mail/. Em contraste, o comando mailsync localdir relaciona os nomes de pastas. As especificaes de um armazenamento em um servidor IMAP so exibidas como a seguir:
store imapinbox { server {mail.edu.harvard.com/user=gulliver} ref {mail.edu.harvard.com} pat INBOX }

O exemplo acima se refere simplesmente pasta principal do servidor IMAP. Um armazenamento das subpastas seria exibido da seguinte forma:
store imapdir { server {mail.edu.harvard.com/user=gulliver} ref {mail.edu.harvard.com} pat INBOX.* prefix INBOX. }

Se o servidor IMAP suportar conexes criptografadas, as especificaes do servidor devem mudar para
server {mail.edu.harvard.com/ssl/user=gulliver}

ou, se o certificado do servidor no for conhecido, para


server {mail.edu.harvard.com/ssl/novalidate-cert/user=gulliver}

O prefixo ser explicado posteriormente. Agora, as pastas em Mail/ devem ser conectadas aos subdiretrios do servidor IMAP.

524

Referncia

channel folder localdir imapdir { msinfo .mailsync.info }

O mailsync usa o arquivo msinfo para manter o rastreamento de mensagens que j tenham sido sincronizadas. O comando mailsync folder faz o seguinte: Expande a caixa de correio padro em ambos os lados. Remove o prefixo dos nomes de pasta resultantes. Sincroniza as pastas em pares (ou os cria, caso no existam). Dessa maneira, a pasta INBOX.sent-mail do servidor IMPA sincronizada com a pasta local Mail/sent-mail (desde que as definies explicadas acima existam). A sincronizao entre a pasta especfica realizada como a seguir: Se uma mensagem j existir em ambos os lados, nada acontecer. Se a mensagem estiver ausente em um dos lados e for nova (no listada no arquivo msinfo), ela ser transmitida aqui. Se a mensagem simplesmente existir em um dos lados e for antiga (j listada no arquivo msinfo), ela ser apagada (pois a mensagem que obviamente existia do outro lado foi apagada). Para saber com antecedncia quais mensagens sero transmitidas e quais sero apagadas durante uma sincronizao, inicie o mailsync com um canal e um armazenamento com mailsync folder localdir. Esse comando produz uma lista de todas as mensagens novas nos hosts locais, bem como uma lista de todas as mensagens que seriam apagadas no lado do IMAP durante uma sincronizao. Da mesma forma, o comando mailsync folder imapdir produz uma lista de todas as mensagens novas no lado do IMAP e uma lista de todas as mensagens que devem ser apagadas do host local durante uma sincronizao.

27.7.2 Problemas possveis


No caso de perda de dados, o mtodo mais seguro apagar o arquivo de registro do canal relevante msinfo. Conseqentemente, todas as mensagens que existam somente

Sincronizao de arquivos

525

em um lado sero vistas como novas e, portanto, transmitidas durante a prxima sincronizao. Somente mensagens com um ID so includas na sincronizao. Mensagens sem ID so simplesmente ignoradas, o que significa que no so transmitidas nem apagadas. Um ID de mensagem ausente normalmente causado por programas com falhas no envio ou na gravao de uma mensagem. Em certos servidores IMAP, a pasta principal chamada de INBOX e as subpastas so chamadas de um nome selecionado ao acaso (em contraste com INBOX e INBOX.name). Portanto, no possvel especificar um padro exclusivamente para as subpastas dos servidores IMAP. Depois da transmisso bem-sucedida de mensagens para um servidor IMAP, os drivers da caixa de correio (c-client) usados pelo mailsync definem um flag de status especial. Por essa razo, alguns programas de e-mail, como mutt, no so capazes de reconhecer essas mensagens como novas. Desabilite a configurao desse flag de status especial com a opo -n.

27.7.3 Mais informaes


O README in /usr/share/doc/packages/mailsync/, includo em mailsync, fornece informaes adicionais. Nesse contexto, o RFC 2076 Common Internet Message Headers de especial interesse.

526

Referncia

Samba
Com o Samba, uma mquina Unix pode ser configurada como um servidor de arquivos e de impresso para mquinas em DOS, Windows e OS/2. O Samba se tornou um produto completo e bastante complexo. Configure o Samba com o YaST, o SWAT (uma interface da Web) ou o arquivo de configurao.

28

28.1 Terminologia
Protocolo SMB O Samba usa o protocolo SMB (bloco de mensagens do servidor), baseado nos servios NetBIOS. Devido presso da IBM, a Microsoft lanou o protocolo para que outros fabricantes de software pudessem estabelecer conexes com uma rede de domnio Microsoft. Com o Samba, o protocolo SMB opera acima do protocolo TCP/IP, de modo que este ltimo precisa estar instalado em todos os clientes. Protocolo CIFS O protocolo CIFS (sistema de arquivos da Internet comuns) outro protocolo para o qual o Samba oferece suporte. O CIFS um protocolo de acesso padro a sistemas de arquivos remotos para utilizao pela rede, permitindo que grupos de usurios trabalhem juntos e compartilhem documentos pela rede. NetBIOS O NetBIOS uma interface de software (API) projetada para a comunicao entre mquinas. Nesse caso, prestado um servio de nome. Ele permite que mquinas conectadas rede reservem nomes para si. Aps a reserva, essas mquinas podem ser tratadas pelo nome. No h um processo central para a verificao de nomes.

Samba

527

Qualquer mquina da rede pode reservar quantos nomes quiser, contanto que os nomes no estejam em uso ainda. A interface NetBIOS passa a poder ser implementada para diferentes arquiteturas de rede. Uma implementao que funciona com relativa proximidade com o hardware da rede chamada de NetBEUI, mas ela muitas vezes chamada de NetBIOS. Os protocolos de rede implementados com o NetBIOS so o IPX da Novell (NetBIOS via TCP/IP) e TCP/IP. Os nomes de NetBIOS enviados por TCP/IP no possuem nada em comum com os nomes usados em /etc/hosts ou com os nomes definidos pelo DNS. O NetBIOS usa sua prpria conveno de nomes independente. Contudo, recomendvel usar nomes que correspondam aos nomes de hosts DNS para facilitar a administrao. Esse o padro usado pelo Samba. servidor Samba O servidor Samba um servidor que fornece servios SMB/CIFS e servios de nomeao NetBIOS por IP aos clientes. No caso do Linux, h dois daemons para o servidor Samba: smnd para os servios SMB/CIFS e nmbd para servios de nomeao. cliente Samba O cliente Samba um sistema que usa servios Samba de um servidor Samba pelo protocolo SMB. Todos os sistemas operacionais comuns, como Mac OS X, Windows e OS/2, prestam suporte ao protocolo SMB. O protocolo TCP/IP precisa estar instalado em todos os computadores. O Samba fornece um cliente para as diferentes verses do UNIX. No caso do Linux, h um mdulo de kernel para SMB que permite a integrao de recursos SMB no nvel de sistema Linux. No necessrio executar daemons para o cliente Samba. Compartilhamentos Os servidores SMB oferecem espao em hardware a seus clientes por meio de compartilhamentos. Compartilhamentos so impressoras e diretrios com seus subdiretrios no servidor. Ele exportado por meio de um nome e pode ser acessado pelo nome. O nome do compartilhamento pode ser definido por qualquer nome; no precisa ser o nome do diretrio de exportao. Uma impressora tambm recebe um nome. Os clientes podem acessar a impressora pelo nome.

528

Referncia

28.2 Iniciando e interrompendo o Samba


Voc pode iniciar ou interromper o servidor Samba manualmente ou automaticamente durante a inicializao. A poltica de iniciar e interromper faz parte da configurao do servidor Samba YaST descrita na Seo 28.3.1, Configurando um servidor Samba com o YaST (p 529). Para interromper ou iniciar a execuo dos servios Samba com o YaST, use Sistema Servios do Sistema (Runlevel). Na linha de comando, interrompa os servios necessrios ao Samba com rcsmb stop && rcnmb stop e use rcnmb start && rcsmb start para inici-los.

28.3 Configurando um servidor Samba


O servidor Samba no SUSE Linux pode ser configurado de duas maneiras diferentes: com o YaST ou manualmente. A configurao manual oferece um nvel maior de detalhes, mas no tem a convenincia da interface grfica de usurio do YaST.

28.3.1 Configurando um servidor Samba com o YaST


Para configurar o servidor Samba, inicie o YaST e selecione Servios de Rede Servidor Samba. Quando o mdulo iniciado pela primeira vez, a caixa de dilogo Instalao do Servidor Samba iniciada, solicitando que voc tome algumas decises bsicas em relao administrao do servidor. No final da configurao, a senha de root do Samba solicitada. Nas inicializaes seguintes, a caixa de dilogo Configurao do Servidor Samba ser exibida. A caixa de dilogo Instalao do Servidor Samba consiste em duas etapas: Nome de Grupo de Trabalho ou Domnio Selecione um nome existente em Nome de Grupo de Trabalho ou Domnio ou digite um novo nome e clique em Prximo.

Samba

529

Tipo de Servidor Samba Na etapa seguinte, especifique se o servidor dever funcionar como PDC e clique em Prximo. possvel mudar todas as configuraes na Instalao do Servidor Samba posteriormente na caixa de dilogo Configurao do Servidor Samba com a guia Identidade. Na primeira vez que voc iniciar o mdulo do servidor Samba, a caixa de dilogo Configurao do Servidor Samba exibida logo aps a caixa de dilogo Instalao do Servidor Samba. Ela contm trs guias: Inicializao Na guia Inicializao, voc pode definir como iniciar o servidor Samba. Para iniciar o servio sempre que o sistema for inicializado, clique em Durante a Inicializao. Para ativar a inicializao automtica, escolha Manualmente. Mais informaes sobre como iniciar um servidor Samba so fornecidas na Seo 28.2, Iniciando e interrompendo o Samba (p 529). Nesta guia, tambm possvel abrir portas no seu firewall. Para fazer isso, selecione Abrir Porta no Firewall. Se tiver vrias interfaces de rede, clique em Detalhes do Firewall, selecione as interfaces e clique em OK para selecionar a interface de rede para os servios Samba. Compartilhamentos Nesta guia, determine os compartilhamentos do Samba a serem ativados. H alguns compartilhamentos predefinidos, como homes e impressoras. Use Alternar Status para alternar entre Ativo e Inativo. Clique em Adicionar para adicionar novos compartilhamentos e Apagar para apagar o compartilhamento selecionado. Identidade Em Identidade, voc pode determinar o domnio ao qual o host deve ser associado (Configuraes de Base) e se um nome de host alternativo deve ser usado na rede (Nome de Host do NetBIOS). Para definir configuraes globais de especialista ou autenticao de usurio, clique em Configuraes de Usurio. Clique em Concluir para fechar a configurao.

530

Referncia

28.3.2 Administrao da Web com o SWAT


Uma ferramenta alternativa para a administrao do servidor Samba o SWAT (Ferramenta de Administrao da Web do Samba). Ele oferece uma interface da Web simples para configurao do servidor Samba. Para usar o SWAT, abra http:// localhost:901 e efetue login como usurio root. Se voc no tiver uma conta root especial do Samba, use a conta root do sistema. NOTA: Ativando o SWAT Aps a instalao do servidor Samba, o SWAT no estar ativado. Para ativlo, abra Servios de Rede Servios de Rede (xinetd) no YaST, habilite a configurao dos servios de rede, selecione swat na tabela e clique em Alternar Status (Ativado ou Desativado).

28.3.3 Configurando o servidor manualmente


Se pretender usar o Samba como servidor, instale samba. O arquivo de configurao do Samba o /etc/samba/smb.conf. Esse arquivo pode ser dividido em duas partes lgicas. A seo [global] contm as configuraes central e global. As sees [share] contm os compartilhamentos individuais de arquivo e impressora. Com essa abordagem, detalhes relativos aos compartilhamentos podem ser definidos de forma diferenciada ou global na seo [global], que aumenta a transparncia estrutural do arquivo de configurao.

A seo global
Os seguintes parmetros da seo [global] precisam de ajustes para atender aos requisitos de configurao da sua rede para que outras mquinas possam acessar seu servidor Samba via SMB em um ambiente Windows. workgroup = TUX-NET Essa linha designa o servidor Samba a um grupo de trabalho. Substitua o TUX-NET por um grupo de trabalho apropriado do seu ambiente de rede. Seu servidor Samba aparece sob o nome DNS, a menos que esse nome tenha sido designado a alguma outra mquina na rede. Se o nome DNS no estiver disponvel, defina o nome do Samba 531

servidor usando netbiosname=MYNAME. Consulte mansmb.conf para obter mais detalhes sobre esse parmetro. os level = 2 Esse parmetro determina se seu servidor Samba tenta se tornar um LMB (Local Master Browser - Browser Master Local) para seu grupo de trabalho. Escolha um valor bem reduzido para poupar a rede do Windows existente de perturbaes causadas por um servidor Samba mal configurado. Mais informaes sobre esse importante tpico podem ser encontradas nos arquivos BROWSING.txt e BROWSING-Config.txt, no subdiretrio textdocs da documentao do pacote. Se nenhum outro servidor SMB estiver presente na rede (como o servidor Windows NT ou 2000) e voc desejar que o servidor Samba mantenha uma lista de todos os sistemas presentes no ambiente local, ajuste o os level em um valor mais alto (por exemplo, 65). Assim, o servidor Samba selecionado como LMB para a rede local. Ao mudar essa configurao, reflita bem sobre como isso pode afetar um ambiente de rede Windows existente. Primeiro, teste as mudanas em uma rede isolada ou em um horrio no crtico do dia. suporte WINS e servidor WINS Para integrar o servidor Samba a uma rede Windows existente dotada de um servidor WINS ativo, habilite a opo wins server e defina seu valor para o endereo IP desse servidor WINS. Se as suas mquinas do Windows estiverem conectadas a sub-redes separadas e ainda assim precisarem levar as restantes em considerao, ser necessrio configurar um servidor WINS. Para transformar um servidor Samba em um servidor WINS, defina a opo wins support = Yes. Verifique se somente um servidor Samba da rede possui essa configurao habilitada. As opes wins server e wins support nunca devem ficar habilitadas ao mesmo tempo no arquivo smb .conf.

Compartilhamentos
Os exemplos a seguir ilustram como uma unidade de CD-ROM e os diretrios do usurio (homes) so disponibilizados aos clientes SMB.

532

Referncia

[cdrom] Para evitar a disponibilizao acidental da unidade de CD-ROM, essas linhas so desativadas com marcas de comentrios (nesse caso, pontos-e-vrgulas). Remova os pontos-e-vrgulas da primeira coluna para compartilhar a unidade do CD-ROM com o Samba. Exemplo 28.1 Compartilhamento de CD-ROM
;[cdrom] ; comment = Linux CD-ROM ; path = /media/cdrom ; locking = No

[cdrom] e comment A entrada [cdrom] o nome do compartilhamento que pode ser visto por todos os clientes SMB na rede. Um comment adicional pode ser feito para enriquecer a descrio do compartilhamento. path = /media/cdrom path exporta o diretrio /media/cdrom. Por meio de uma configurao padro bastante restritiva, esse tipo de compartilhamento somente disponibilizado aos usurios presentes nesse sistema. Se esse compartilhamento precisar ser disponibilizado a todos, adicione uma linha guest ok = yes configurao. Essa configurao concede permisses de leitura a todos na rede. Recomenda-se muita cautela no manejo desse parmetro. Isso se aplica ainda mais intensamente ao uso desse parmetro na seo [global]. [homes] O compartilhamento [home] possui especial importncia aqui. Se o usurio possuir uma conta e senha vlidas para o servidor de arquivos Linux e seu prprio diretrio pessoal, pode ficar conectado a ele. Exemplo 28.2 Share homes
[homes] comment = Home Directories valid users = %S browseable = No read only = No create mask = 0640 directory mask = 0750

Samba

533

[homes] Contanto que no haja nenhum outro compartilhamento usando o nome de compartilhamento do usurio que estabelece a conexo ao servidor SMB, um compartilhamento gerado dinamicamente usando as diretivas de compartilhamento [homes]. O nome resultante do compartilhamento o nome do usurio. valid users = %S %S substitudo pelo nome concreto do compartilhamento logo que uma conexo tenha sido estabelecida com sucesso. Para um compartilhamento [homes], sempre ser usado o nome do usurio. Conseqentemente, os direitos de acesso ao compartilhamento de um usurio ficam restritos exclusivamente a ele. browseable = No Essa configurao torna o compartilhamento invisvel no ambiente da rede. read only = No Por padro, o Samba probe o acesso de gravao aos compartilhamentos exportados por meio do parmetro read only = Yes. Para tornar um compartilhamento gravvel, defina o valor read only = No, que corresponde a writeable = Yes. create mask = 0640 Como os sistemas que no se baseiam no MS Windows NT no compreendem o conceito de permisses do UNIX, no so capazes de designar permisses ao criar um arquivo. O parmetro create mask define as permisses de acesso designadas a arquivos recm-criados. Isso somente se aplica a compartilhamentos gravveis. Na verdade, essa configurao significa que o proprietrio possui permisses de leitura e gravao e que os membros do grupo principal do proprietrio possuem permisses de leitura. valid users = %S impede o acesso de leitura mesmo se o grupo possuir permisses de leitura. Para que o grupo tenha acesso de leitura ou gravao, desative a linha valid users = %S.

Nveis de segurana
Para aumentar a segurana, cada acesso a compartilhamento pode ser protegido por senha. O SMB possui trs formas de verificar as permisses:

534

Referncia

Segurana no nvel do compartilhamento (security = share) Uma senha rigorosamente designada a um compartilhamento. Todos que conheam essa senha possuem acesso ao compartilhamento. Segurana no nvel do usurio (security = user) Essa variao introduz o conceito do usurio ao SMB. Cada usurio precisa se registrar no servidor com sua prpria senha. Aps o registro, o servidor pode conceder acesso a compartilhamentos exportados especficos condicionados a nomes de usurios. Segurana no nvel do servidor (security = server): Para seus clientes, o Samba age como se estivesse operando em modo de nvel de usurio. Entretanto, ele encaminha todas as consultas de senha a outro servidor de modo de nvel de usurio, que se encarrega da autenticao. Essa configurao pressupe um parmetro adicional (password server). A seleo de segurana no nvel de compartilhamento, usurio ou servidor se aplica a todo o servidor. No possvel oferecer compartilhamentos individuais de uma configurao de servidor com segurana no nvel de compartilhamento e outros com segurana no nvel de usurio. Entretanto, possvel executar um servidor Samba separado para cada endereo IP configurado em um sistema. Para obter mais informaes sobre esse assunto, consulte a Coleo HOWTO do Samba. No caso de vrios servidores em um sistema, preste ateno nas opes interfaces e bind interfaces only.

28.4 Configurando clientes


Os clientes somente podem acessar o servidor Samba via TCP/IP. O NetBEUI e o NetBIOS via IPX no podem ser usados com o Samba.

28.4.1 Configurando um cliente Samba com o YaST


Configure um cliente Samba para acessar recursos (arquivos ou impressoras) no servidor Samba. Digite o domnio ou grupo de trabalho na caixa de dilogo Grupo de Trabalho Samba. Clique em Pesquisar para exibir todos os grupos ou domnios disponveis, que

Samba

535

podem ser selecionados com o mouse. Se voc ativar Usar tambm informaes SMB para a Autenticao de Linux, a autenticao do usurio ser executada no servidor Samba. Aps concluir todas as configuraes, clique em Concluir para finalizar a configurao.

28.4.2 Windows 9x e ME
O Windows 9x e ME j vm com suporte para TCP/IP. Entretanto, esse suporte no instalado como o padro. Para adicionar TCP/IP, v at Painel de Controle Sistema e escolha Adicionar Protocolos TCP/IP da Microsoft. Aps reinicializar sua mquina com o Windows, procure o servidor Samba clicando duas vezes no cone de rea de trabalho do ambiente de rede. DICA Para usar uma impressora no servidor Samba, instale a unidade da impressora padro Apple-PostScript na verso correspondente do Windows. melhor vincular essa unidade fila de impresso do Linux, que aceita o Postscript como um formato de entrada.

28.5 Samba como servidor de login


Em redes onde se encontram predominantemente clientes Windows, muitas vezes prefervel que os usurios somente possam se registrar com uma conta e senha vlidos. Em uma rede baseada no Windows, essa tarefa realizada por um servidor Windows NT configurado como um controlador de domnio primrio (PDC), mas tambm pode ser executada com a ajuda de um servidor Samba. As entradas a serem feitas na seo [global] de smb.conf aparecem no Exemplo 28.3, Seo global em smb.conf (p 536). Exemplo 28.3 Seo global em smb.conf
[global] workgroup = TUX-NET domain logons = Yes domain master = Yes

536

Referncia

Se forem usadas senhas criptografadas para fins de verificao (essa a configurao padro com instalaes bem mantidas do MS Windows 9x, MS Windows NT 4.0 do pacote de servios 3, e todos os produtos posteriores) o servidor Samba precisar ser capaz de trat-las. A entrada encrypt passwords = yes na seo [global] permite isso (com a verso 3 do Samba, esse passa a ser o padro). Alm disso, necessrio preparar contas e senhas de usurios em formato de criptografia compatvel com o Windows. Para isso, use o comando smbpasswd -a name. Crie a conta de domnio dos computadores, exigida pelo conceito de domnio do Windows NT, com os seguintes comandos: Exemplo 28.4 Configurando uma conta de mquina
useradd hostname\$ smbpasswd -a -m hostname

Com o comando useradd, um smbolo de cifro adicionado. O comando smbpasswd insere esse smbolo automaticamente quando o parmetro -m usado. O exemplo de configurao comentado (/usr/share/doc/packages/Samba/ examples/smb.conf.SuSE) contm configuraes que automatizam essa tarefa. Exemplo 28.5 Configurao automatizada de uma conta de mquina
add machine script = /usr/sbin/useradd -g nogroup -c "NT Machine Account" \ -s /bin/false %m\$

Para verificar se o Samba pode executar esse script corretamente, escolha um usurio do Samba com as permisses de administrador obrigatrias. Para isso, selecione um usurio e adicione-o ao grupo ntadmin. Depois disso, ser possvel designar a todos os usurios pertencentes a esse grupo Linux o status de Domain Admin com o comando:
net groupmap add ntgroup="Domain Admins" unixgroup=ntadmin

Mais informaes sobre esse tpico aparecem no Captulo 12 da Coleo HOWTO do Samba, contida no arquivo /usr/share/doc/packages/samba/ Samba-HOWTO-Collection.pdf.

28.6 Mais informaes


Informaes detalhadas sobre o Samba esto disponveis na documentao digital. Digite apropos samba na linha de comando para exibir algumas pginas do manual ou simplesmente pesquise no diretrio /usr/share/doc/packages/samba, se Samba 537

a documentao do Samba estiver instalada, para obter mais documentao e exemplos online. Uma configurao de exemplo comentada (smb.conf.SuSE) pode ser encontrada no subdiretrio exemplos. A Coleo HOWTO fornecida pela equipe Samba inclui uma seo sobre a soluo de problemas. Alm disso, a Parte V do documento oferece um guia passo a passo para a verificao da configurao. A coleo HOWTO do Samba pode ser encontrada em /usr/share/doc/packages/samba/Samba-HOWTO-Collection.pdf aps a instalao do pacote samba-doc.

538

Referncia

O Servidor Proxy Squid

29

O Squid um proxy de cache amplamente utilizado em plataformas Linux e UNIX. Isso significa que armazena objetos da Internet solicitados, como dados em um servidor da Web ou FTP, em uma mquina mais prxima da estao de trabalho solicitante do que o servidor. Este captulo discute sua configurao, as configuraes necessrias para execut-lo, como configurar o sistema para realizar um proxy transparente, como reunir estatsticas sobre o uso do cache com a ajuda dos programas, como o Calamaris e o cachemgr, e como filtrar contedos da Web com o squidGuard. O Squid atua como um proxy de cache. Redireciona pedidos de objeto dos clientes (neste caso, de browsers da Web) para o servidor. Quando os objetos solicitados chegam do servidor, ele fornece os objetos ao cliente e mantm uma cpia deles no cache do disco rgido. Uma das vantagens do cache que vrios clientes que solicitem o mesmo objeto podem ser atendidos a partir do cache do disco rgido. Este procedimento permite que os clientes recebam os dados muito mais rapidamente em relao Internet. Alm disso, reduz o trfego da rede. Junto com o cache real, o Squid oferece uma ampla gama de recursos. Entre eles, distribuir a carga entre hierarquias de intercomunicao dos servidores proxy, definir listas de controle de acesso restrito para todos os clientes que acessam o proxy, permitir ou negar o acesso a pginas da Web especficas com a ajuda de outros aplicativos e gerar estatsticas sobre pginas da Web visitadas com freqncia para avaliao dos hbitos de navegao dos usurios. O Squid no um proxy genrico. Normalmente, ele funciona como proxy apenas para conexes HTTP. Ele tambm tem suporte para protocolos FTP, Gopher, SSL e WAIS, mas no para outros protocolos da Internet, como Real Audio, notcias ou videoconferncia. Como o Squid tem suporte apenas para o protocolo UDP a fim de fornecer comunicao entre caches diferentes, no h suporte para vrios outros programas multimdia. O Servidor Proxy Squid 539

29.1 Alguns fatos sobre caches proxy


Como cache proxy, o Squid pode ser usado de vrias maneiras. Quando combinado com um firewall, pode ajudar na segurana. Vrios proxies podem ser usados juntos. Tambm pode determinar os tipos de objetos que devem ser armazenados no cache e durante quanto tempo.

29.1.1 Squid e segurana


possvel usar o Squid junto com um firewall para proteger as redes internas de acesso externo usando um cache proxy. O firewall nega acesso de todos os clientes a servios externos, exceto o Squid. Todas as conexes da Web devem ser estabelecidas pelo proxy. Com esta configurao, o Squid controla totalmente o acesso Web. Se a configurao do firewall incluir um DMZ, o proxy deve operar dentro desta zona. A Seo 29.5, Configurando um proxy transparente (p 551) descreve como implementar um proxytransparente. Isto simplifica a configurao dos clientes, porque neste caso eles no necessitam de informaes sobre o proxy.

29.1.2 Vrios caches


Vrias instncias do Squid podem ser configuradas para trocar objetos entre eles. Isto reduz a carga total do sistema e aumenta as chances de encontrar um objeto j existente na rede local. Tambm possvel configurar hierarquias de cache, de maneira que um cache seja capaz de encaminhar solicitaes de objeto para caches irmos ou para um cache pai, fazendo com que obtenha objetos de outro cache na rede local ou diretamente da origem. Escolher a topologia adequada para a hierarquia de cache muito importante, porque no desejvel aumentar o trfego geral na rede. Para uma rede muito grande, faz sentido configurar um servidor proxy para toda subrede e conect-los a um proxy pai, que por sua vez conectado ao cache do proxy ISP. Todas estas comunicaes so tratadas pelo ICP (Internet cache protocol) que executado no protocolo UDP. As transferncias de dados entre caches so tratadas com HTTP (hypertext transmission protocol) baseado no TCP.

540

Referncia

Para encontrar o servidor mais adequado do qual obter os objetos, um cache envia uma solicitao ICP a todos os proxies irmos. Estes respondem s solicitaes via repostas ICP com um cdigo HIT se o objeto foi detectado ou, em caso contrrio, com um MISS. Se forem encontradas vrias respostas HIT, o servidor proxy decide de qual servidor fazer download, dependendo de fatores como que cache enviou a resposta mais rpida ou qual est mais prximo. Se no for recebida nenhuma resposta satisfatria, a solicitao enviada ao cache pai. DICA Para evitar duplicao de objetos em vrios caches na rede, so usados outros protocolos ICP, como CARP (cache array routing protocol) ou HTCP (hypertext cache protocol). Quanto maior o nmero de objetos mantidos na rede, maior a possibilidade de localizar o desejado.

29.1.3 Armazenando objetos da Internet em cache


Nem todos os objetos disponveis na rede so estticos. H muitas pginas CGI, contadores de visitantes e documentos com contedo SSL criptografado que so gerados dinamicamente. Objetos como estes no so armazenados no cache porque mudam toda vez que so acessados. A questo com relao a quanto tempo todos os outros objetos armazenados no cache devem permanecer ali. Para determin-lo, todos os objetos no cache recebem a atribuio de um ou vrios estados possveis. Os servidores da Web e proxy descobrem o status de um objeto adicionando cabealhos aos objetos, como ltima modificao ou Vencimento e a data correspondente. Tambm so usados outros cabealhos especificando que objetos no devem ser armazenados no cache. Os objetos no cache normalmente so substitudos, devido falta de espao livro no disco rgido, usando algoritmos como LRU (last recently used). Basicamente, significa que o proxy elimina os objetos que no foram solicitados pelo tempo mais longo.

O Servidor Proxy Squid

541

29.2 Requisitos do sistema


O fator mais importante determinar o mximo de carga de rede que o sistema deve suportar. Portanto, importante prestar mais ateno aos picos de carga, porque podem ser superiores a quatro vezes a mdia do dia. Quando em dvida, seria melhor superestimar os requisitos do sistema, porque com o Squid trabalhando no limite das suas capacidades pode haver uma perda grave de qualidade do servio. As sees a seguir assinalam os fatores do sistema em ordem de importncia.

29.2.1 Discos rgidos


A velocidade exerce uma importante funo no processo de cache, de maneira que este fator merece uma ateno especial. Para discos rgidos, este parmetro descrito como tempo de busca aleatrio, medido em milissegundos. Como os blocos de dados que o Squid l no disco rgido ou grava dele tendem a ser pequenos, o tempo de busca do disco rgido mais importante que seus throughput de dados. Para fins de um proxy, os discos rgidos com velocidades de alta rotao so provavelmente a melhor opo, porque permitem que a cabea de leitura-gravao seja posicionada no ponto desejado mais rapidamente. Uma possibilidade para acelerar o sistema usar vrios discos simultaneamente ou empregar matrizes de RAID de distribuio.

29.2.2 Tamanho do cache do disco


Em um cache pequeno, a possibilidade de um HIT (encontrar o objeto solicitado j localizado ali) pequena, porque o cache facilmente arquivado e os objetos menos solicitados so substitudos por outros mais novos. Se, por exemplo, um GB estiver disponvel para o cache e os usurios s navegarem 10 MB por dia, levaria mais de 100 dias para preencher o cache. A maneira mais fcil de determinar o tamanho de cache necessrio considerar a taxa mxima de transferncia da conexo. Com uma conexo de 1 Mbit/s, a taxa mxima de transferncia de 125 KB/s. Se todo este trfego terminar no cache, em uma hora teria adicionado 450 MB e, considerando-se que todo esse trfego seja gerado em apenas oito horas de trabalho, alcanaria 3,6 GB em um dia. Como a conexo normalmente no usada at o seu limite superior de volume, pode-se presumir que o volume de dados total tratado pelo cache seja aproximadamente de 2 GB. Por esta razo necessrio

542

Referncia

um espao em disco de 2 GB no exemplo, para que o Squid guarde os dados interessantes pesquisados no cache.

29.2.3 RAM
A quantidade de memria (RAM) de que o Squid necessita diretamente relacionada ao nmero de objetos no cache. O Squid tambm armazena referncias de objeto e objetos solicitados freqentemente na memria principal do cache para acelerar a recuperao destes dados. A memria de acesso aleatrio muito mais rpida do que um disco rgido. Alm disso, h outros dados que o Squid necessita manter na memria, como uma tabela com todos os endereos IP tratados, um cache de nome de domnio exato, os objetos solicitados com mais freqncia, listas de controle de acesso, buffers e mais. muito importante ter memria suficiente para o processo Squid, porque o desempenho do sistema muito reduzido se tiver que se trocado para o disco. A ferramenta cachemgr.cgi pode ser usada para gerenciamento da memria de cache. Esta ferramenta apresentada na Seo 29.6, cachemgr.cgi (p 554). Sites com grande trfego de rede devem considerar o uso de um sistema AMD64 ou Intel EM64T com memria superior a 4 GB.

29.2.4 CPU
O Squid no um programa que necessite de uso intenso de CPU. A carga do processador s aumentada enquanto os contedos do cache so armazenados ou verificados. O uso de uma mquina multiprocessadora no aumenta o desempenho do sistema. Para aumentar a eficincia, melhor comprar discos mais rpidos ou adicionar mais memria.

29.3 Iniciando o Squid


O Squid j pr-configurado no SUSE Linux, possvel inici-lo logo aps a instalao. Para assegurar uma inicializao mais fcil, a rede deve ser configurada de maneira que pelo menos um servidor e a Internet possam ser alcanados. Pode haver problemas se for usada uma conexo discada com uma configurao DNS dinmica. Neste caso,

O Servidor Proxy Squid

543

deve ser digitado pelo menos o nome do servidor, porque o Squid no inicia se no detectar um servidor DNS em /etc/resolv.conf.

29.3.1 Comandos para iniciar e interromper o Squid


Para iniciar o Squid, digite rcsquid start na linha de comando como root. Na inicializao, a estrutura do diretrio do cache deve ser definida primeiro em /var/ cache/squid. Isto feito automaticamente pelo script de inicializao /etc/init .d/squid e pode levar alguns segundo ou mesmo minutos. Se aparecer concludo direita em verde, o Squid foi carregado com xito. Para testar a funcionalidade do Squid no sistema local, digite localhost como proxy e 3128 como porta no browser. Para permitir que usurios do sistema local e outros sistemas acessem o Squid e a Internet, mude a entrada nos arquivos de configurao /etc/squid/squid.conf de http_access deny all para http_access allow all. Entretanto, ao fazer isto, leve em conta que, com esta ao, o Squid fica totalmente acessvel a qualquer um. Assim, defina ACLs que acessam o controle ao proxy. Mais informaes sobre isto esto disponveis na Seo 29.4.2, Opes de controles de acesso (p 549). Aps modificar o arquivo de configurao /etc/squid/squid.conf, o Squid deve recarregar o arquivo de configurao. Faa isto com rcsquid reload. Outra alternativa reiniciar o Squid com rcsquid restart. O comando rcsquid status pode ser usado para verificar se o proxy est sendo executado. O comando rcsquid stop faz o Squid desligar. Pode demorar um pouco, porque o Squid espera at meio minuto (shutdown_lifetime option in /etc/ squid/squid.conf) antes de soltar as conexes para os clientes e gravar seus dados no disco. ATENO: Encerrando o Squid Encerrar o Squid com kill ou killall pode danificar o cache. Para poder reiniciar o Squid, o cache danificado deve ser apagado. Se o Squid morrer aps um curto perodo de tempo mesmo que tenha sido iniciado com xito, verifique se h uma entrada de nome de servidor com falha ou se o arquivo /etc/ resolv.conf est faltando. O Squid registra a causa da falha de inicializao no

544

Referncia

arquivo /var/log/squid/cache.log. Se o Squid tiver que ser carregado automaticamente quando o sistema inicializado, use o editor de nvel de execuo YaST para ativar o Squid para os nveis de execuo desejados. Consulte a Seo Servios do Sistema (Runlevel) (Captulo 2, Configurao do sistema com YaST, Inicializao). Uma desinstalao do Squid no remove a hierarquia de cache nem os arquivos de registro. Para remov-los, apague o diretrio /var/cache/squid manualmente.

29.3.2 Servidor DNS local


Configurar um servidor DNS local til mesmo se ele no gerencia o seu prprio domnio. Ele ento atua simplesmente como um servidor de nomes apenas para caches e capaz de resolver as solicitaes de DNS atravs dos servidores de nome raiz sem necessitar de qualquer configurao especial (consulte a Seo 20.3, Iniciando o BIND do servidor de nomes (p 390)). Como isto pode ser feito depende de como voc escolhe o DNS dinmico durante a configurao da conexo da Internet. DNS dinmico Normalmente, com DNS dinmico, o servidor DNS configurado pelo provedor durante o estabelecimento da conexo Internet e o arquivo local /etc/resolv .conf ajustado automaticamente. Este comportamento controlado no arquivo /etc/sysconfig/network/config com a varivel sysconfig MODIFY_RESOLV_CONF_DYNAMICALLY, que definida como "yes". Defina esta varivel para "no" com o editor sysconfig do YaST (consulte a Seo 8.3.1, Mudando a configurao do sistema usando o Editor sysconfig do YaST (p 198)). Digite o servidor DNS local no arquivo /etc/resolv.conf com o endereo IP 127.0.0.1 para localhost. Desta maneira o Squid pode sempre encontrar o nome do servidor local quando inicia. Para tornar o nome do servidor do provedor acessvel, digite-o no arquivo de configurao /etc/named.conf em forwarders junto com seu endereo IP. Com DNS dinmico, isto pode ser feito automaticamente durante o estabelecimento da conexo, definindo a varivel sysconfig MODIFY_NAMED_CONF_DYNAMICALLY para SIM. DNS esttico Com DNS esttico, no ocorre nenhum ajuste de DNS automtico enquanto estabelecida uma conexo, assim no necessrio mudar quaisquer variveis

O Servidor Proxy Squid

545

sysconfig. Entretanto, preciso digitar o servidor DNS local no arquivo /etc/ resolv.conf como descrito acima. Para tornar o nome do servidor do provedor acessvel, digite-o no arquivo de configurao /etc/named.conf sob forwarders junto com seu endereo IP. DICA: DNS e Firewall Se voc tiver um firewall em execuo, verifique se as solicitaes de DNS podem passar por ele.

29.4 O arquivo de configurao /etc/squid/squid.conf


Todas as definies do servidor proxy do Squid so feitas no arquivo /etc/squid/ squid.conf . Para iniciar o Squid pela primeira vez, no so necessrias mudanas neste arquivo, mas clientes externos tero acesso negado inicialmente. O proxy disponvel para localhost. A porta padro 3128. O arquivo de configurao prinstalado /etc/squid/squid.conf fornece informaes detalhadas sobre as opes e vrios exemplos. Praticamente todas as entradas comeam com # (as linhas so comentadas) e as especificaes relevantes podem ser encontradas no fim da linha. Os valores dados praticamente sempre se correlacionam com os valores padro, portanto remover os sinais de comentrio sem mudar nenhum dos parmetros na realidade tem pouco efeito na maioria dos casos. Se possvel, deixe o exemplo como e insira as opes junto com os parmetros modificados na linha abaixo. Desta maneira, os valores padro podem ser facilmente recuperados e comparados com as mudanas. DICA: Adaptando o arquivo de configurao aps uma atualizao Se voc tiver atualizado de uma verso anterior do Squid, recomendvel editar o novo /etc/squid/squid.conf e aplicar somente as mudanas feitas no arquivo anterior. Se tentar usar o antigo squid.conf, h risco da configurao deixar de funcionar, porque as opes s vezes so modificadas e novas mudanas adicionadas.

546

Referncia

29.4.1 Opes de configurao geral (seleo)


http_port 3128 Esta a porta em que o Squid ouve as solicitaes do cliente. A porta padro 3128, mas 8080 tambm comum. Se quiser, especifique vrios nmeros de porta, separados por espaos em branco. cache_peer hostname tipo proxy-port icp-port Neste caso, digite um proxy pai, por exemplo, se quiser usar o proxy do seu ISP. Como hostname, digite o nome e o endereo IP do proxy a usar e, como tipo, digite pai. Para proxy-port, digite o nmero de porta que tambm dado pelo operador do pai para uso no browser, normalmente 8080. Defina a icp-port para 7 ou 0 se a porta ICP do pai no for conhecida e seu uso for irrelevante para o provedor. Alm disso, default e no-query podem ser especificados aps os nmeros de porta para proibir o uso do protocolo ICP. O Squid comporta-se ento como um browser normal no que diz respeito ao proxy do provedor. cache_mem 8 MB Esta entrada define a quantidade de memria que o Squid pode usar para respostas muito populares. O padro 8 MB. Isto no especifica o uso de memria do Squid e poder ser excedido. cache_dir ufs /var/cache/squid/ 100 16 256 A entrada cache_dir define o diretrio em que todos os objetos so armazenados no disco. Os nmeros ao final indicam o espao mximo de disco no MB a usar e o nmero de diretrios no primeiro e no segundo nvel. O parmetro ufs deve ser deixado sozinho. O padro 100 MB de espao de disco ocupado no diretrio /var/cache/squid e a criao de 16 subdiretrios dentro dele, cada um com mais 256 subdiretrios. Ao especificar o espao de disco a usar, deixe espao de disco de reserva suficiente. Os valores de um mnimo de 50% at um mximo de 80% do espao de disco disponvel so o ideal aqui. Os dois ltimos nmeros para os diretrios s devem ser aumentados com cuidado, porque diretrios demais tambm pode causar problemas de desempenho. Se voc tiver vrios discos que compartilhem o cache, digite vrias linhas cache_dir.

O Servidor Proxy Squid

547

cache_access_log /var/log/squid/access.log, cache_log /var/log/squid/cache.log, cache_store_log /var/log/squid/store.log Estas trs entradas especificam os caminhos em que o Squid registra todas as suas aes. Normalmente, nada mudado aqui. Se o Squid estiver passado por uma sobrecarga de uso pesado, pode fazer sentido distribuir o cache e os arquivos de registro em vrios discos. emulate_httpd_log off Se a entrada for definida como on, obtenha arquivos de registro legveis. Entretanto, alguns programas de avaliao no podem interpretar isto. client_netmask 255.255.255.255 Com esta entrada, faa mascaramento dos endereos IP dos clientes nos arquivos de registro. O ltimo dgito do endereo IP definido como zero se voc digitar 255.255.255.0 aqui. Voc pode proteger a privacidade dos seus clientes desta maneira. ftp_user Squid@ Com isto, defina a senha que o Squid deve usar para o login do FTP annimo. Faz sentido especificar um endereo de e-mail vlido aqui, porque alguns servidores de FTP os verificam para fins de validade. cache_mgr webmaster Um endereo de e-mail ao qual o Squid envia uma mensagem se ele falhar inesperadamente. O padro webmaster. logfile_rotate 0 Se voc executar squid -k rotate, o Squid poder rotacionar arquivos de registro protegidos. Os arquivos so numerados neste processo e, aps alcanarem o valor especificado, o arquivo mais antigo sobregravado. O valor padro 0 porque os arquivos de registro de arquivamento e apagamento no SUSE Linux so realizados por uma tarefa cron definida no arquivo de configurao /etc/ logrotate/squid. append_domain <domain> Com append_domain, especifique que domnio anexar automaticamente quando no for dado nenhum. Normalmente, o seu prprio domnio digitado aqui, portanto digitar www no browser d acesso ao seu prprio servidor da Web.

548

Referncia

forwarded_for on Se voc definir a entrada como off, o Squid remover o endereo IP e o nome do sistema do cliente das solicitaes HTTP. Caso contrrio, ele adicionar uma linha ao cabealho como
X-Forwarded-For: 192.168.0.0

negative_ttl 5 minutes; negative_dns_ttl 5 minutes Normalmente, no necessrio mudar esses valores. Porm, se voc tiver uma conexo discada, possvel que s vezes a Internet no esteja acessvel. O Squid detecta as solicitaes que falharam e no emite novas solicitaes, embora a conexo com a Internet tenha sido restabelecida. Neste caso, mude os minutos para segundos e, aps voc clicar em Recarregar no browser, o processo de discagem deve continuar em alguns segundos. never_direct allow acl_name Para impedir que o Squid faa solicitaes diretamente da Internet, use o comando acima para forar conexo com outro proxy. necessrio que ele tenha sido digitado anteriormente em cache_peer. Se all estiver especificado como acl_name, force todas as solicitaes para que sejam encaminhadas diretamente ao pai. Isto pode ser necessrio, por exemplo, se voc estiver usando um provedor que estipula estritamente o uso de seus proxies ou nega acesso direto do seu firewall Internet.

29.4.2 Opes de controles de acesso


O Squid fornece um sistema detalhado para controle do acesso ao proxy. Com a implementao de ACLs, ele pode ser configurado de forma fcil e abrangente. Isto envolve listas com regras que so processadas em seqncia. As ACLs devem ser definidas antes de serem usadas. Algumas ACLs padro, como all e localhost, j existem. Entretanto, a simples definio de uma ACL no significa que ela ser realmente aplicada. Isto s acontece em conjunto com regras http_access. acl <acl_name> <type> <data> Uma ACL requer pelo menos trs especificaes para defini-la. O nome <acl_name> pode ser escolhido arbitrariamente. Para <type>, selecione entre vrias opes diferentes, que podem ser encontradas na seo ACCESS CONTROLS no arquivo /etc/squid/squid.conf . A especificao para <dados> depende do tipo de cada ACL e s pode ser lida em um arquivo, por exemplo, por meio de nomes de host, endereos IP ou URLs. A seguir, alguns exemplos simples:

O Servidor Proxy Squid

549

acl acl acl acl

mysurfers srcdomain .my-domain.com teachers src 192.168.1.0/255.255.255.0 students src 192.168.7.0-192.168.9.0/255.255.255.0 lunch time MTWHF 12:00-15:00

http_access allow <acl_name> http_access define quem tem permisso de usar o proxy e quem pode acessar o qu na Internet. Para isto, as ACLs devem ser fornecidas. localhost e all j foram definidos acima, o que pode negar ou permitir acesso com deny ou allow. Uma lista com qualquer nmero de entradas http_access pode ser criada, processada de cima para baixo e, dependendo do que ocorrer primeiro, o acesso permitido ou negado ao respectivo URL. A ltima entrada deve ser sempre http_access deny all. No exemplo a seguir, o localhost tem livre acesso a tudo enquanto todos os outros hosts tm acesso completamente negado.
http_access allow localhost http_access deny all

Em outro exemplo com estas regras, o grupo teachers (professores) sempre tem acesso Internet. O grupo students (alunos) s tem acesso de segunda-feira a sexta-feira na hora do almoo.
http_access http_access http_access http_access deny localhost allow teachers allow students lunch time deny all

Para fins de legibilidade, a lista com as entradas http_access s pode ser digitada na posio designada no arquivo /etc/squid/squid.conf. Isto , entre o texto
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR # CLIENTS

e o ltimo
http_access deny all

redirect_program /usr/bin/squidGuard Com esta opo, especifique um redirecionador como squidGuard, que permite bloquear URLs indesejados. O acesso de vrios grupos de usurios Internet pode ser controlado individualmente com a ajuda da autenticao de proxy e das ACLs adequadas. O squidGuard um pacote separado que pode ser instalado e configurado.

550

Referncia

auth_param basic program /usr/sbin/pam_auth Se for necessrio autenticar usurios no proxy, defina um programa correspondente, como pam_auth. Ao acessar pam_auth pela primeira vez, o usurio v uma janela de login na qual deve digitar o nome de usurio e senha. Alm disso, ainda necessrio usar uma ACL, de forma que apenas clientes com login vlido podem usar a Internet:
acl password proxy_auth REQUIRED http_access allow password http_access deny all

REQUIRED aps proxy_auth pode ser substitudo por uma lista de nomes de usurios permitidos ou pelo caminho para essa lista. ident_lookup_access allow <acl_name> Com isto, execute uma solicitao de identificao para todos os clientes definidos via ACL para encontrar a identidade de cada usurio. Se voc aplicar all ao <acl_name>, isto ser vlido para todos os clientes. Alm disso, um daemon de identificao deve estar em execuo em todos os clientes. No caso do Linux, instale o pacote pidentd para este fim. No caso do Microsoft Windows, h um software grtis para download na Internet. Para garantir que apenas clientes com pesquisa de identificao bem-sucedida sejam permitidos, defina uma ACL correspondente aqui:
acl identhosts ident REQUIRED http_access allow identhosts http_access deny all

Aqui, substitua tambm REQUIRED por uma lista de nomes de usurios permitidos. O uso de ident pode tornar o tempo de acesso um pouco lento, porque pesquisas de identificao so repetidas para cada solicitao.

29.5 Configurando um proxy transparente


O modo normal de trabalhar com servidores proxy o seguinte: o browser da Web envia solicitaes para uma determinada porta no servidor proxy e o proxy fornece estes objetos solicitados, estejam ou no no cache. Quando voc trabalha em uma rede, vrias situaes podem surgir: O Servidor Proxy Squid 551

Para fins de segurana, recomendado que todos os clientes usem um proxy para navegar na Internet. Todos os clientes devem usar um proxy, independentemente de estarem conscientes dele. O proxy em uma rede movido, mas os clientes existentes devem manter sua antiga configurao. Em todos esses casos, pode ser usado um proxy transparente. O princpio muito fcil: o proxy intercepta e responde as solicitaes do browser da Web, de maneira que o browser da Web recebe as pginas solicitadas sem saber de onde elas vm. Como o nome indica, todo o processo feito de maneira transparente.

29.5.1 Opes de configurao em /etc/squid/squid.conf


As opes que devem ser ativadas no arquivo /etc/squid/squid.conf para garantir a execuo do proxy transparente so: httpd_accel_host virtual httpd_accel_port 80 O nmero de porta em que o servidor HTTP real est localizado httpd_accel_with_proxy em httpd_accel_uses_host_header em

29.5.2 Configurao de firewall com SuSEfirewall2


Agora redirecione todas as solicitaes de entrada atravs do firewall com ajuda de uma regra de encaminhamento de porta para a porta do Squid. Para fazer isso, use a ferramenta SuSEfirewall2 anexada, descrita em Configurando com o YaST (p 110). Seu arquivo de configurao encontrado em /etc/sysconfig/SuSEfirewall2.

552

Referncia

O arquivo de configurao consiste em entradas bem documentadas. Para definir um proxy transparente, preciso configurar vrias opes de firewall: Dispositivo apontando para a Internet: FW_DEV_EXT="eth1" Dispositivo apontando para a rede: FW_DEV_INT="eth0" Definir portas e servios (consulte /etc/services) no firewall que so acessadas de redes no confiveis (externas), como a Internet. Neste exemplo, apenas os servios da Web so oferecidos externamente:
FW_SERVICES_EXT_TCP="www"

Definir portas ou servios (consulte /etc/services) no firewall que so acessadas de rede segura (interna), ambas via TCP e UDP:
FW_SERVICES_INT_TCP="domain www 3128" FW_SERVICES_INT_UDP="domain"

Isto permite acessar servios da Web e o Squid (cuja porta padro 3128). O servio domain representa o DNS (servio de nome de domnio). Este servio normalmente usado. Caso contrrio, basta retir-lo das entradas acima e definir a opo seguinte como no:
FW_SERVICE_DNS="yes"

A opo mais importante a nmero 15: Exemplo 29.1 Configurao de firewall: Opo 15
# # # # # # # # # # # # # # 15.) Which accesses to services should be redirected to a local port on the firewall machine? This can be used to force all internal users to surf via your Squid proxy, or transparently redirect incoming Web traffic to a secure Web server. Choice: leave empty or use the following explained syntax of redirecting rules, separated with spaces. A redirecting rule consists of 1) source IP/net, 2) destination IP/net, 3) original destination port and 4) local port to redirect the traffic to, separated by a colon, e.g. "10.0.0.0/8,0/0,80,3128 0/0,172.20.1.1,80,8080"

Os comentrios acima mostram a sintaxe a seguir. Primeiro, digite o endereo IP e a mscara de rede das redes internas que acessam o firewall de proxy. Em seguida, digite

O Servidor Proxy Squid

553

o endereo IP e a mscara de rede s quais estes clientes enviam suas solicitaes. No caso de browsers da Web, especifique as redes 0/0, um curinga que significa a todos os lugares. Depois, digite a porta original para a qual estas solicitaes so enviadas e, finalmente, a porta para a qual todas essas solicitaes so redirecionadas. Como o Squid tem suporte para outros protocolos alm do HTTP, redirecione as solicitaes de outras portas para o proxy, como FTP (porta 21), HTTPS ou SSL (porta 443). Neste exemplo, servios da Web (porta 80) so redirecionados para a porta do proxy (porta 3128). Se houver mais redes ou servios a adicionar, eles devem ser separados por um espao em branco na entrada respectiva.
FW_REDIRECT_TCP="192.168.0.0/16,0/0,80,3128 192.168.0.0/16,0/0,21,3128" FW_REDIRECT_UDP="192.168.0.0/16,0/0,80,3128 192.168.0.0/16,0/0,21,3128"

Para iniciar o firewall e a nova configurao com ele, mude um entrada no arquivo /etc/sysconfig/SuSEfirewall2 . A entrada START_FW deve ser definida como "yes". Iniciar o Squid como mostrado na Seo 29.3, Iniciando o Squid (p 543). Para verificar se tudo est funcionando corretamente, verifique os registros do Squid em /var/log/ squid/access.log. Para verificar se todas as portas esto corretamente configuradas, realize uma explorao de portas na mquina de qualquer computador externo rede. Apenas os servios da Web (porta 80) devem ser abertos. Para explorar as portas com nmap, a sintaxe do comando nmap -O IP_address.

29.6 cachemgr.cgi
O gerenciador de cache (cachemgr.cgi) um utilitrio CGI para exibio de estatsticas sobre o uso da memria de um processo Squid em execuo. tambm uma maneira mais prtica de gerenciar o cache e ver estatsticas sem efetuar login no servidor.

29.6.1 Configurao
Primeiro, necessrio um servidor da Web em execuo no sistema. Configure o Apache como descrito no Captulo 26, Servidor HTTP Apache (p 463). Para verificar se o Apache j est em execuo, como root, digite o comando rcapache status. Se aparecer uma mensagem como a seguinte:
Checking for service httpd: OK Server uptime: 1 day 18 hours 29 minutes 39 seconds

554

Referncia

O Apache estar em execuo na mquina. Caso contrrio, digite rcapache iniciar para iniciar o Apache com as configuraes padro do SUSE Linux. A ltima etapa a configurar copiar o arquivo cachemgr.cgi para o diretrio Apache cgi-bin:
cp /usr/share/doc/packages/squid/scripts/cachemgr.cgi /srv/www/cgi-bin/

29.6.2 ACLs do gerenciador de cache em /etc/squid/squid.conf


H algumas configuraes padro no arquivo original que so necessrias para o gerenciador de cache. Primeiro, duas ACLs so definidas e depois as opes http_access usam estas ACLs para fornecer acesso do script CGI ao Squid. A primeira ACL a mais importante, porque o gerenciador de cache tenta se comunicar com o Squid pelo protocolo cache_object.
acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255

As regras a seguir do os direitos de acesso do Apache para o Squid:


http_access allow manager localhost http_access deny manager

Estas regras consideram que o servidor da Web e o Squid esto em execuo na mesma mquina. Se a comunicao entre o gerenciador do cache e o Squid tiver origem em um servidor da Web em outro computador, incluir uma ACL extra como no Exemplo 29.2, Regras de acesso (p 555). Exemplo 29.2 Regras de acesso
acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl webserver src 192.168.1.7/255.255.255.255 # webserver IP

Em seguida, adicionar as regras do Exemplo 29.3, Regras de acesso (p 555) para permitir acesso do servidor da Web. Exemplo 29.3 Regras de acesso
http_access allow manager localhost http_access allow manager webserver http_access deny manager

O Servidor Proxy Squid

555

Configure uma senha para que o gerenciador acesse mais opes, como fechar o cache remotamente ou mostrar mais informaes sobre o cache. Para isto, configure a entrada cachemgr_passwd com uma senha para o gerenciador e a lista de opes a ser exibida. Esta lista aparece como parte dos comentrios de entrada em /etc/squid/ squid.conf. Reinicie o Squid toda vez que mudar o arquivo de configurao. Faa isto facilmente com rcsquid reload.

29.6.3 Exibindo estatsticas


V para o site da Web correspondente http://webserver.example.org/ cgi-bin/cachemgr.cgi. Pressione continue e pesquise as diversas estatsticas. Mais detalhes de cada entrada mostrada pelo gerenciador de cache so encontrados no FAQ do Squid em http://www.squid-cache.org/Doc/FAQ/FAQ-9.html.

29.7 squidGuard
Esta seo no pretende explicar uma configurao do squidGuard em profundidade, apenas apresent-lo e fornecer alguns conselhos para us-lo. Para obter informaes mais detalhadas sobre questes de configurao, consulte o site do squidGuard em http://www.squidguard.org. O squidGuard um plug-in grtis (GPL) e flexvel, alm de atuar como um filtro rpido, redirecionador e controlador de acesso para o Squid. Permite que voc defina vrias regras de acesso com diferentes restries para diferentes grupos de usurio em um cache do Squid. O squidGuard usa a interface redirecionadora padro do Squid. O squidGuard pode fazer o seguinte: Limitar o acesso Web para alguns usurios a uma lista de servidores da Web ou URLs aceitos ou bem conhecidos. Bloquear o acesso a alguns servidores da Web ou URLS listados ou constantes da lista negra para alguns usurios. Bloquear o acesso a URLs correspondentes a uma lista de expresses ou palavras regulares.

556

Referncia

Redirecionar URLs bloqueados para uma pgina de informao intelligent baseada em CGI. Redirecionar usurios no registrados a um formulrio de registro. Redirecionar banners para um GIF vazio. Usar diversas regras de acesso baseadas em hora do dia, dia da semana, data, etc. Usar regras diferentes para grupos de usurios diferentes. O squidGuard e o Squid no podem ser usados para: Editar, filtrar ou censurar texto dentro de documentos. Editar, filtrar ou censurar linguagens de script embutidas em HTML, como JavaScript e VBscript. Para us-los, instale squidGuard. Fornea um arquivo de configurao mnimo, como /etc/squidguard.conf. Encontre exemplos de configurao em http:// www.squidguard.org/config/. Experimente depois com definies de configurao mais complicadas. Em seguida, crie uma pgina de simulao de acesso negado ou uma pgina CGI mais ou menos complexa para redirecionar o Squid se o cliente solicitar um site da Web includo na lista negra. A utilizao do Apache altamente recomendvel. Agora, configure o Squid para usar o squidGuard. Use a seguinte entrada no arquivo /etc/squid/squid.conf:
redirect_program /usr/bin/squidGuard

Outra opo, denominada redirect_children, configura o nmero de processos de redirect (neste caso o squidGuard) executados na mquina. O squidGuard bastante rpido para tratar vrias solicitaes: em um Pentium 500 MHz com 5.900 domnios e 7.880 URLs (totalizando 13.780), podem ser processadas 100.000 solicitaes em 10 segu